UNPKG

@diplodoc/transform

Version:

A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML

4 lines 85.4 kB
{ "version": 3, "sources": ["../../src/scss/Users/3y3k0/doctools/diplodoc/packages/transform/src/scss/_common.scss", "../../src/scss/Users/3y3k0/doctools/diplodoc/packages/transform/src/scss/_lists.scss", "../../src/scss/%3Cinput%20css%208aoobB%3E", "../../src/scss/Users/3y3k0/doctools/diplodoc/packages/transform/src/scss/private.scss", "../../src/scss/Users/3y3k0/doctools/diplodoc/packages/transform/src/scss/brand.scss", "../../src/scss/Users/3y3k0/doctools/diplodoc/packages/transform/src/scss/_anchor.scss", "../../src/scss/Users/3y3k0/doctools/diplodoc/packages/transform/src/scss/_highlight.scss", "../../src/scss/Users/3y3k0/doctools/diplodoc/packages/transform/src/scss/_code.scss"], "sourcesContent": ["/* stylelint-disable declaration-no-important */\n\n@use 'private';\n@use 'brand';\n@use 'lists';\n\n@mixin removeMarginForEdgeChildren {\n & > *:first-child {\n margin-top: 0;\n }\n\n & > *:last-child {\n margin-bottom: 0;\n }\n}\n\n.yfm {\n @include private.private-brand();\n @include brand.brand();\n\n font-family: var(--yfm-font-family-sans);\n font-size: var(--yfm-font-size, 15px);\n line-height: var(--yfm-font-line-height, 20px);\n word-wrap: break-word;\n color: var(--yfm-color-text);\n tab-size: var(--yfm-tab-size, inherit);\n\n --yfm-font-family-monospace: 'Menlo', 'Monaco', 'Consolas', 'Ubuntu Mono', 'Liberation Mono',\n 'DejaVu Sans Mono', 'Courier New', 'Courier', monospace;\n --yfm-font-family-sans: 'Segoe UI', arial, helvetica, sans-serif, 'Apple Color Emoji',\n 'Segoe UI Emoji', 'Segoe UI Symbol';\n\n * {\n box-sizing: border-box;\n }\n\n & > *:not(h2):not(h3):not(h4):not(h5):not(h6):first-child {\n margin-top: 0 !important;\n }\n\n & > *:last-child {\n margin-bottom: 0 !important;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-bottom: 15px;\n font-weight: 500;\n }\n\n h1 {\n font-size: var(--yfm-font-size-h1, 32px);\n line-height: var(--yfm-font-line-height-h1, 40px);\n }\n\n h2 {\n font-size: var(--yfm-font-size-h2, 24px);\n line-height: var(--yfm-font-line-height-h2, 28px);\n }\n\n h3 {\n font-size: var(--yfm-font-size-h3, 20px);\n line-height: var(--yfm-font-line-height-h3, 24px);\n }\n\n h4 {\n font-size: var(--yfm-font-size-h4, 17px);\n line-height: var(--yfm-font-line-height-h4, 24px);\n }\n\n h5 {\n font-size: var(--yfm-font-size-h5, 15px);\n line-height: var(--yfm-font-line-height-h5, 20px);\n }\n\n h6 {\n font-size: var(--yfm-font-size-h6, 13px);\n line-height: var(--yfm-font-line-height-h6, 18px);\n }\n\n a {\n background-color: transparent;\n color: var(--yfm-color-link);\n text-decoration: none;\n\n &:hover,\n &:active {\n color: var(--yfm-color-link-hover);\n }\n\n &:not([href]) {\n color: inherit;\n }\n }\n\n strong {\n font-weight: 700;\n }\n\n img,\n svg {\n box-sizing: content-box;\n max-width: 100%;\n max-height: fit-content;\n border: none;\n vertical-align: middle;\n\n &[align='right'] {\n padding-left: 20px;\n }\n\n &[align='left'] {\n padding-right: 20px;\n }\n }\n\n .mermaid svg[id*='mermaid'] {\n max-height: none;\n }\n\n img {\n object-fit: contain;\n background-color: var(--yfm-color-base);\n }\n\n svg {\n height: auto;\n }\n\n img + small {\n display: block;\n }\n\n p,\n blockquote,\n ul,\n ol,\n dl,\n table,\n pre {\n margin-block: var(--yfm-text-block-margin-block, 0 15px);\n margin-inline: var(--yfm-text-block-margin-inline, 0);\n }\n\n ul,\n ol,\n dl {\n & pre {\n margin-top: 15px;\n }\n }\n\n code,\n kbd,\n pre {\n font-family: var(--yfm-font-family-monospace);\n font-size: 1em;\n font-feature-settings: normal;\n }\n\n input {\n margin: 0;\n overflow: visible;\n\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n\n &[type='checkbox'] {\n position: relative;\n top: 1px;\n\n box-sizing: border-box;\n padding: 0;\n }\n }\n\n table {\n color: var(--yfm-color-table);\n\n display: inline-block;\n max-width: 100%;\n width: auto;\n overflow: auto;\n position: relative;\n z-index: 1;\n\n box-sizing: border-box;\n border: 1px solid var(--yfm-color-table-border);\n border-radius: 8px;\n border-collapse: collapse;\n border-spacing: 0;\n background: var(--yfm-color-table-background);\n\n thead {\n background-color: var(--yfm-color-table-head-background);\n }\n\n tr:first-child {\n td,\n th {\n border-top: none;\n }\n }\n\n tr:last-child {\n td,\n th {\n border-bottom: none;\n }\n }\n\n th,\n td {\n padding: 10px 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: 1px solid var(--yfm-color-table-border);\n\n @include removeMarginForEdgeChildren();\n }\n\n td {\n vertical-align: top;\n white-space: normal;\n }\n\n th {\n font-weight: 500;\n text-align: left;\n }\n\n tr td:first-child,\n tr th:first-child {\n border-left: none;\n }\n tr td:last-child,\n tr th:last-child {\n border-right: none;\n }\n }\n\n &:not(.yfm_no-stripe-table) table tr:nth-child(2n) {\n background-color: var(--yfm-color-table-stripe-row-background);\n }\n\n hr {\n box-sizing: content-box;\n height: 0.25em;\n padding: 0;\n margin: 1.5em 0;\n overflow: hidden;\n\n background-color: var(--yfm-color-border);\n border: none;\n\n &::before {\n content: '';\n display: table;\n }\n\n &::after {\n content: '';\n display: table;\n clear: both;\n }\n }\n\n blockquote {\n position: relative;\n padding-left: 12px;\n border-left: 3px solid var(--yfm-color-accent);\n\n @include removeMarginForEdgeChildren();\n }\n\n dl {\n padding: 0;\n\n @include removeMarginForEdgeChildren();\n\n dt {\n margin-bottom: 5px;\n font-size: 1em;\n font-weight: bold;\n }\n\n dd {\n margin-bottom: 15px;\n padding: 0 15px;\n }\n }\n\n dd {\n margin-left: 0;\n }\n\n ul,\n ol {\n padding-left: 2.2em;\n }\n\n ul ul:last-child,\n ul ol:last-child,\n ol ol:last-child,\n ol ul:last-child {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n li {\n word-wrap: break-word;\n }\n\n li:first-child,\n li + li {\n margin-block: var(--yfm-list-item-margin-block, 0.33em 0);\n }\n\n li {\n p,\n blockquote {\n margin-block: var(--yfm-list-text-margin-block, 0 15px);\n }\n\n > p:only-of-type,\n > blockquote:only-of-type,\n > p:first-child:has(+ ul),\n > p:first-child:has(+ ol) {\n margin-block: var(--yfm-list-text-only-margin-block, 0);\n }\n\n > p:last-child {\n margin-block: var(--yfm-list-text-last-margin-block, 0);\n }\n }\n\n code {\n padding: 0.1em 0.4em 0.15em;\n background-color: var(--yfm-color-inline-code-background);\n border-radius: 4px;\n font-size: 0.875em;\n white-space: pre-wrap;\n color: var(--yfm-color-inline-code);\n tab-size: var(--yfm-tab-size-code, inherit);\n }\n\n a code {\n color: inherit;\n }\n\n pre {\n word-wrap: normal;\n }\n\n table code {\n white-space: nowrap;\n }\n\n pre * code {\n display: inline;\n padding: 0;\n margin: 0;\n overflow: visible;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n color: var(--yfm-color-text);\n }\n\n pre > code {\n display: block;\n padding: 16px;\n overflow: auto;\n\n background-color: var(--yfm-color-code-background);\n color: var(--yfm-color-text);\n\n white-space: pre;\n\n .yfm-line-number {\n display: inline-block;\n padding-right: 1em;\n color: var(--yfm-color-line-numbers, #666);\n user-select: none;\n }\n }\n\n sup,\n sub {\n line-height: 0;\n }\n\n /*\n Hides element visually, but leaves it visible for search crawlers and screen readers\n\n https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n */\n .visually-hidden {\n position: absolute;\n\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n width: 1px;\n height: 1px;\n margin: -1px;\n\n padding: 0;\n\n white-space: nowrap;\n\n border: 0;\n\n clip-path: inset(100%);\n user-select: none;\n }\n}\n", "@use 'sass:list';\n@use 'sass:string';\n\n@function get-counter-ident($depth) {\n $ident: hier-list-item;\n\n @for $i from 0 to $depth {\n $ident: sub-#{$ident};\n }\n\n @return $ident;\n}\n\n@function get-selector($depth) {\n $selector: ol;\n\n @for $i from 0 to $depth {\n $selector: '#{$selector} > li > ol';\n }\n\n @return $selector;\n}\n\n@function get-marker-content($idents) {\n $length: list.length($idents);\n $content: '';\n\n @for $i from 1 through $length {\n @if $i > 1 {\n $content: '#{$content} \".\"';\n }\n\n $content: '#{$content} counter(#{list.nth($idents, $i)})';\n }\n\n @return #{$content} '. ';\n}\n\n@mixin hier-list($max-depth) {\n $ident-path: ();\n\n @for $i from 0 through $max-depth {\n $ident: get-counter-ident($i);\n $ident-path: list.append($ident-path, $ident);\n\n & #{get-selector($i)} {\n --hier-list-start: 0;\n counter-reset: #{$ident} var(--hier-list-start);\n\n & > li {\n counter-increment: $ident;\n\n &::marker {\n content: get-marker-content($ident-path);\n }\n }\n }\n }\n}\n\n.yfm {\n @include hier-list(5);\n\n &.yfm_no-list-reset ol,\n ol.yfm_no-list-reset,\n .yfm_no-list-reset ol {\n counter-reset: list-item;\n\n & li {\n counter-increment: unset;\n\n &::marker {\n content: unset;\n }\n }\n }\n}\n", "/* stylelint-disable declaration-no-important */\n.yfm ol {\n --hier-list-start: 0;\n counter-reset: hier-list-item var(--hier-list-start);\n}\n.yfm ol > li {\n counter-increment: hier-list-item;\n}\n.yfm ol > li::marker {\n content: counter(hier-list-item) \". \";\n}\n.yfm ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li {\n counter-increment: sub-hier-list-item;\n}\n.yfm ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li {\n counter-increment: sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li > ol > li {\n counter-increment: sub-sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \".\" counter(sub-sub-sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li {\n counter-increment: sub-sub-sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \".\" counter(sub-sub-sub-hier-list-item) \".\" counter(sub-sub-sub-sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-sub-sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li > ol > li {\n counter-increment: sub-sub-sub-sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \".\" counter(sub-sub-sub-hier-list-item) \".\" counter(sub-sub-sub-sub-hier-list-item) \".\" counter(sub-sub-sub-sub-sub-hier-list-item) \". \";\n}\n.yfm.yfm_no-list-reset ol,\n.yfm ol.yfm_no-list-reset,\n.yfm .yfm_no-list-reset ol {\n counter-reset: list-item;\n}\n.yfm.yfm_no-list-reset ol li,\n.yfm ol.yfm_no-list-reset li,\n.yfm .yfm_no-list-reset ol li {\n counter-increment: unset;\n}\n.yfm.yfm_no-list-reset ol li::marker,\n.yfm ol.yfm_no-list-reset li::marker,\n.yfm .yfm_no-list-reset ol li::marker {\n content: unset;\n}\n\n.yfm {\n --yfm-color-text-private: rgba(0, 0, 0, 0.7);\n --yfm-color-link-private: #027bf3;\n --yfm-color-link-hover-private: #004080;\n --yfm-color-base-private: #ffffff;\n --yfm-color-table-private: #333;\n --yfm-color-border-private: rgba(0, 0, 0, 0.07);\n --yfm-color-table-row-background-private: rgba(0, 0, 0, 0.02);\n --yfm-color-accent-private: #027bf3;\n --yfm-color-inline-code-private: rgba(59, 96, 128, 1);\n --yfm-color-inline-code-background-private: rgba(107, 132, 153, 0.12);\n --yfm-color-code-background-private: rgba(107, 132, 153, 0.12);\n --yfm-color-code-background-hovered-private: rgba(107, 132, 153, 0.2);\n --yfm-color-hljs-background-private: rgba(107, 132, 153, 0.12);\n --yfm-color-hljs-subst-private: #444;\n --yfm-color-hljs-comment-private: #888888;\n --yfm-color-hljs-deletion-private: #880000;\n --yfm-color-hljs-section-private: #880000;\n --yfm-color-hljs-pseudo-private: #bc6060;\n --yfm-color-hljs-literal-private: #78a960;\n --yfm-color-hljs-addition-private: #397300;\n --yfm-color-hljs-meta-private: #1f7199;\n --yfm-color-hljs-meta-string-private: #4d99bf;\n --yfm-color-note-tip-private: #56bd67;\n --yfm-color-note-tip-background-private: rgba(63, 201, 46, 0.1);\n --yfm-color-note-warning-private: #f19518;\n --yfm-color-note-warning-background-private: rgba(255, 136, 0, 0.15);\n --yfm-color-note-important-private: #ff4645;\n --yfm-color-note-important-background-private: rgba(235, 50, 38, 0.08);\n --yfm-color-note-info-private: #027bf3;\n --yfm-color-note-info-background-private: rgba(2, 123, 243, 0.08);\n --yfm-color-term-title-private: #027bf3;\n --yfm-color-term-title-hover-private: #004080;\n --yfm-color-term-dfn-background-private: rgb(255, 255, 255);\n --yfm-color-term-dfn-shadow-private: rgba(0, 0, 0, 0.15);\n --yfm-color-term-dfn-presudo-shadow-private: rgb(229, 229, 229);\n --yfm-color-modal-content-private: rgb(255, 255, 255);\n --yfm-color-modal-actions-hover-private: rgba(0, 0, 0, 0.05);\n --yfm-color-modal-wide-content-private: rgba(0, 0, 0, 0.85);\n --yfm-color-modal-wide-content-overlay-private: rgb(0, 0, 0);\n --yfm-color-base: var(--yfm-color-base-private);\n --yfm-color-text: var(--yfm-color-text-private);\n --yfm-color-link: var(--yfm-color-link-private);\n --yfm-color-link-hover: var(--yfm-color-link-hover-private);\n --yfm-color-border: var(--yfm-color-border-private);\n --yfm-color-accent: var(--yfm-color-accent-private);\n --yfm-color-inline-code: var(--yfm-color-inline-code-private);\n --yfm-color-inline-code-background: var(--yfm-color-inline-code-background-private);\n --yfm-color-code-background: var(--yfm-color-code-background-private);\n --yfm-color-code-hovered-background: var(--yfm-color-code-hovered-background-private);\n --yfm-color-hljs-background: var(--yfm-color-hljs-background-private);\n --yfm-color-hljs-subst: var(--yfm-color-hljs-subst-private);\n --yfm-color-hljs-comment: var(--yfm-color-hljs-comment-private);\n --yfm-color-hljs-deletion: var(--yfm-color-hljs-deletion-private);\n --yfm-color-hljs-section: var(--yfm-color-hljs-section-private);\n --yfm-color-hljs-pseudo: var(--yfm-color-hljs-pseudo-private);\n --yfm-color-hljs-literal: var(--yfm-color-hljs-literal-private);\n --yfm-color-hljs-addition: var(--yfm-color-hljs-addition-private);\n --yfm-color-hljs-meta: var(--yfm-color-hljs-meta-private);\n --yfm-color-hljs-meta-string: var(--yfm-color-hljs-meta-string-private);\n --yfm-color-note-tip: var(--yfm-color-note-tip-private);\n --yfm-color-note-tip-background: var(--yfm-color-note-tip-background-private);\n --yfm-color-note-warning: var(--yfm-color-note-warning-private);\n --yfm-color-note-warning-background: var(--yfm-color-note-warning-background-private);\n --yfm-color-note-important: var(--yfm-color-note-important-private);\n --yfm-color-note-important-background: var(--yfm-color-note-important-background-private);\n --yfm-color-note-info: var(--yfm-color-note-info-private);\n --yfm-color-note-info-background: var(--yfm-color-note-info-background-private);\n --yfm-color-term-title: var(--yfm-color-term-title-private);\n --yfm-color-term-title-hover: var(--yfm-color-term-title-hover-private);\n --yfm-color-term-dfn-background: var(--yfm-color-term-dfn-background-private);\n --yfm-color-term-dfn-shadow: var(--yfm-color-term-dfn-shadow-private);\n --yfm-color-term-dfn-pseudo-shadow: var(--yfm-color-term-dfn-presudo-shadow-private);\n --yfm-color-modal-content: var(--yfm-color-modal-content-private);\n --yfm-color-modal-actions-hover: var(--yfm-color-modal-actions-hover-private);\n --yfm-color-modal-wide-content: var(--yfm-color-modal-wide-content-private);\n --yfm-color-modal-wide-content-overlay: var(--yfm-color-modal-wide-content-overlay-private);\n --yfm-color-table: var(--yfm-color-table-private);\n --yfm-color-table-border: var(--yfm-color-border);\n --yfm-color-table-background: var(--yfm-color-base);\n --yfm-color-table-head-background: var(--yfm-color-table-row-background);\n --yfm-color-table-stripe-row-background: var(--yfm-color-table-row-background);\n --yfm-color-table-row-background: var(--yfm-color-table-row-background-private);\n font-family: var(--yfm-font-family-sans);\n font-size: var(--yfm-font-size, 15px);\n line-height: var(--yfm-font-line-height, 20px);\n word-wrap: break-word;\n color: var(--yfm-color-text);\n tab-size: var(--yfm-tab-size, inherit);\n --yfm-font-family-monospace: \"Menlo\", \"Monaco\", \"Consolas\", \"Ubuntu Mono\", \"Liberation Mono\",\n \"DejaVu Sans Mono\", \"Courier New\", \"Courier\", monospace;\n --yfm-font-family-sans: \"Segoe UI\", arial, helvetica, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n /*\n Hides element visually, but leaves it visible for search crawlers and screen readers\n\n https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n */\n}\n.yfm * {\n box-sizing: border-box;\n}\n.yfm > *:not(h2):not(h3):not(h4):not(h5):not(h6):first-child {\n margin-top: 0 !important;\n}\n.yfm > *:last-child {\n margin-bottom: 0 !important;\n}\n.yfm h1,\n.yfm h2,\n.yfm h3,\n.yfm h4,\n.yfm h5,\n.yfm h6 {\n margin-bottom: 15px;\n font-weight: 500;\n}\n.yfm h1 {\n font-size: var(--yfm-font-size-h1, 32px);\n line-height: var(--yfm-font-line-height-h1, 40px);\n}\n.yfm h2 {\n font-size: var(--yfm-font-size-h2, 24px);\n line-height: var(--yfm-font-line-height-h2, 28px);\n}\n.yfm h3 {\n font-size: var(--yfm-font-size-h3, 20px);\n line-height: var(--yfm-font-line-height-h3, 24px);\n}\n.yfm h4 {\n font-size: var(--yfm-font-size-h4, 17px);\n line-height: var(--yfm-font-line-height-h4, 24px);\n}\n.yfm h5 {\n font-size: var(--yfm-font-size-h5, 15px);\n line-height: var(--yfm-font-line-height-h5, 20px);\n}\n.yfm h6 {\n font-size: var(--yfm-font-size-h6, 13px);\n line-height: var(--yfm-font-line-height-h6, 18px);\n}\n.yfm a {\n background-color: transparent;\n color: var(--yfm-color-link);\n text-decoration: none;\n}\n.yfm a:hover, .yfm a:active {\n color: var(--yfm-color-link-hover);\n}\n.yfm a:not([href]) {\n color: inherit;\n}\n.yfm strong {\n font-weight: 700;\n}\n.yfm img,\n.yfm svg {\n box-sizing: content-box;\n max-width: 100%;\n max-height: fit-content;\n border: none;\n vertical-align: middle;\n}\n.yfm img[align=right],\n.yfm svg[align=right] {\n padding-left: 20px;\n}\n.yfm img[align=left],\n.yfm svg[align=left] {\n padding-right: 20px;\n}\n.yfm .mermaid svg[id*=mermaid] {\n max-height: none;\n}\n.yfm img {\n object-fit: contain;\n background-color: var(--yfm-color-base);\n}\n.yfm svg {\n height: auto;\n}\n.yfm img + small {\n display: block;\n}\n.yfm p,\n.yfm blockquote,\n.yfm ul,\n.yfm ol,\n.yfm dl,\n.yfm table,\n.yfm pre {\n margin-block: var(--yfm-text-block-margin-block, 0 15px);\n margin-inline: var(--yfm-text-block-margin-inline, 0);\n}\n.yfm ul pre,\n.yfm ol pre,\n.yfm dl pre {\n margin-top: 15px;\n}\n.yfm code,\n.yfm kbd,\n.yfm pre {\n font-family: var(--yfm-font-family-monospace);\n font-size: 1em;\n font-feature-settings: normal;\n}\n.yfm input {\n margin: 0;\n overflow: visible;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n.yfm input[type=checkbox] {\n position: relative;\n top: 1px;\n box-sizing: border-box;\n padding: 0;\n}\n.yfm table {\n color: var(--yfm-color-table);\n display: inline-block;\n max-width: 100%;\n width: auto;\n overflow: auto;\n position: relative;\n z-index: 1;\n box-sizing: border-box;\n border: 1px solid var(--yfm-color-table-border);\n border-radius: 8px;\n border-collapse: collapse;\n border-spacing: 0;\n background: var(--yfm-color-table-background);\n}\n.yfm table thead {\n background-color: var(--yfm-color-table-head-background);\n}\n.yfm table tr:first-child td,\n.yfm table tr:first-child th {\n border-top: none;\n}\n.yfm table tr:last-child td,\n.yfm table tr:last-child th {\n border-bottom: none;\n}\n.yfm table th,\n.yfm table td {\n padding: 10px 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: 1px solid var(--yfm-color-table-border);\n}\n.yfm table th > *:first-child,\n.yfm table td > *:first-child {\n margin-top: 0;\n}\n.yfm table th > *:last-child,\n.yfm table td > *:last-child {\n margin-bottom: 0;\n}\n.yfm table td {\n vertical-align: top;\n white-space: normal;\n}\n.yfm table th {\n font-weight: 500;\n text-align: left;\n}\n.yfm table tr td:first-child,\n.yfm table tr th:first-child {\n border-left: none;\n}\n.yfm table tr td:last-child,\n.yfm table tr th:last-child {\n border-right: none;\n}\n.yfm:not(.yfm_no-stripe-table) table tr:nth-child(2n) {\n background-color: var(--yfm-color-table-stripe-row-background);\n}\n.yfm hr {\n box-sizing: content-box;\n height: 0.25em;\n padding: 0;\n margin: 1.5em 0;\n overflow: hidden;\n background-color: var(--yfm-color-border);\n border: none;\n}\n.yfm hr::before {\n content: \"\";\n display: table;\n}\n.yfm hr::after {\n content: \"\";\n display: table;\n clear: both;\n}\n.yfm blockquote {\n position: relative;\n padding-left: 12px;\n border-left: 3px solid var(--yfm-color-accent);\n}\n.yfm blockquote > *:first-child {\n margin-top: 0;\n}\n.yfm blockquote > *:last-child {\n margin-bottom: 0;\n}\n.yfm dl {\n padding: 0;\n}\n.yfm dl > *:first-child {\n margin-top: 0;\n}\n.yfm dl > *:last-child {\n margin-bottom: 0;\n}\n.yfm dl dt {\n margin-bottom: 5px;\n font-size: 1em;\n font-weight: bold;\n}\n.yfm dl dd {\n margin-bottom: 15px;\n padding: 0 15px;\n}\n.yfm dd {\n margin-left: 0;\n}\n.yfm ul,\n.yfm ol {\n padding-left: 2.2em;\n}\n.yfm ul ul:last-child,\n.yfm ul ol:last-child,\n.yfm ol ol:last-child,\n.yfm ol ul:last-child {\n margin-top: 0;\n margin-bottom: 0;\n}\n.yfm li {\n word-wrap: break-word;\n}\n.yfm li:first-child,\n.yfm li + li {\n margin-block: var(--yfm-list-item-margin-block, 0.33em 0);\n}\n.yfm li p,\n.yfm li blockquote {\n margin-block: var(--yfm-list-text-margin-block, 0 15px);\n}\n.yfm li > p:only-of-type,\n.yfm li > blockquote:only-of-type,\n.yfm li > p:first-child:has(+ ul),\n.yfm li > p:first-child:has(+ ol) {\n margin-block: var(--yfm-list-text-only-margin-block, 0);\n}\n.yfm li > p:last-child {\n margin-block: var(--yfm-list-text-last-margin-block, 0);\n}\n.yfm code {\n padding: 0.1em 0.4em 0.15em;\n background-color: var(--yfm-color-inline-code-background);\n border-radius: 4px;\n font-size: 0.875em;\n white-space: pre-wrap;\n color: var(--yfm-color-inline-code);\n tab-size: var(--yfm-tab-size-code, inherit);\n}\n.yfm a code {\n color: inherit;\n}\n.yfm pre {\n word-wrap: normal;\n}\n.yfm table code {\n white-space: nowrap;\n}\n.yfm pre * code {\n display: inline;\n padding: 0;\n margin: 0;\n overflow: visible;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n color: var(--yfm-color-text);\n}\n.yfm pre > code {\n display: block;\n padding: 16px;\n overflow: auto;\n background-color: var(--yfm-color-code-background);\n color: var(--yfm-color-text);\n white-space: pre;\n}\n.yfm pre > code .yfm-line-number {\n display: inline-block;\n padding-right: 1em;\n color: var(--yfm-color-line-numbers, #666);\n user-select: none;\n}\n.yfm sup,\n.yfm sub {\n line-height: 0;\n}\n.yfm .visually-hidden {\n position: absolute;\n overflow: hidden;\n clip: rect(0 0 0 0);\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n white-space: nowrap;\n border: 0;\n clip-path: inset(100%);\n user-select: none;\n}\n\n.yfm h1 .yfm-clipboard-anchor,\n.yfm h2 .yfm-clipboard-anchor,\n.yfm h3 .yfm-clipboard-anchor,\n.yfm h4 .yfm-clipboard-anchor,\n.yfm h5 .yfm-clipboard-anchor,\n.yfm h6 .yfm-clipboard-anchor {\n background: none;\n color: var(--yfm-color-link);\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n}\n.yfm h1 .yfm-clipboard-anchor:hover,\n.yfm h2 .yfm-clipboard-anchor:hover,\n.yfm h3 .yfm-clipboard-anchor:hover,\n.yfm h4 .yfm-clipboard-anchor:hover,\n.yfm h5 .yfm-clipboard-anchor:hover,\n.yfm h6 .yfm-clipboard-anchor:hover {\n color: var(--yfm-color-link-hover);\n}\n.yfm h1 .yfm-anchor,\n.yfm h1 .yfm-clipboard-anchor,\n.yfm h2 .yfm-anchor,\n.yfm h2 .yfm-clipboard-anchor,\n.yfm h3 .yfm-anchor,\n.yfm h3 .yfm-clipboard-anchor,\n.yfm h4 .yfm-anchor,\n.yfm h4 .yfm-clipboard-anchor,\n.yfm h5 .yfm-anchor,\n.yfm h5 .yfm-clipboard-anchor,\n.yfm h6 .yfm-anchor,\n.yfm h6 .yfm-clipboard-anchor {\n display: inline-block;\n width: 24px;\n padding-right: 4px;\n margin-left: -24px;\n float: left;\n text-align: center;\n font-size: 18px;\n}\n.yfm h1 .yfm-anchor:focus::before,\n.yfm h1 .yfm-clipboard-anchor:focus::before,\n.yfm h2 .yfm-anchor:focus::before,\n.yfm h2 .yfm-clipboard-anchor:focus::before,\n.yfm h3 .yfm-anchor:focus::before,\n.yfm h3 .yfm-clipboard-anchor:focus::before,\n.yfm h4 .yfm-anchor:focus::before,\n.yfm h4 .yfm-clipboard-anchor:focus::before,\n.yfm h5 .yfm-anchor:focus::before,\n.yfm h5 .yfm-clipboard-anchor:focus::before,\n.yfm h6 .yfm-anchor:focus::before,\n.yfm h6 .yfm-clipboard-anchor:focus::before {\n opacity: 1;\n}\n.yfm h1 .yfm-anchor::before,\n.yfm h1 .yfm-clipboard-anchor::before,\n.yfm h2 .yfm-anchor::before,\n.yfm h2 .yfm-clipboard-anchor::before,\n.yfm h3 .yfm-anchor::before,\n.yfm h3 .yfm-clipboard-anchor::before,\n.yfm h4 .yfm-anchor::before,\n.yfm h4 .yfm-clipboard-anchor::before,\n.yfm h5 .yfm-anchor::before,\n.yfm h5 .yfm-clipboard-anchor::before,\n.yfm h6 .yfm-anchor::before,\n.yfm h6 .yfm-clipboard-anchor::before {\n content: \"#\";\n opacity: 0;\n}\n.yfm h1:hover .yfm-anchor::before,\n.yfm h1:hover .yfm-clipboard-anchor::before,\n.yfm h2:hover .yfm-anchor::before,\n.yfm h2:hover .yfm-clipboard-anchor::before,\n.yfm h3:hover .yfm-anchor::before,\n.yfm h3:hover .yfm-clipboard-anchor::before,\n.yfm h4:hover .yfm-anchor::before,\n.yfm h4:hover .yfm-clipboard-anchor::before,\n.yfm h5:hover .yfm-anchor::before,\n.yfm h5:hover .yfm-clipboard-anchor::before,\n.yfm h6:hover .yfm-anchor::before,\n.yfm h6:hover .yfm-clipboard-anchor::before {\n opacity: 1;\n}\n.yfm table h1 .yfm-anchor,\n.yfm table h1 .yfm-clipboard-anchor,\n.yfm table h2 .yfm-anchor,\n.yfm table h2 .yfm-clipboard-anchor,\n.yfm table h3 .yfm-anchor,\n.yfm table h3 .yfm-clipboard-anchor,\n.yfm table h4 .yfm-anchor,\n.yfm table h4 .yfm-clipboard-anchor,\n.yfm table h5 .yfm-anchor,\n.yfm table h5 .yfm-clipboard-anchor,\n.yfm table h6 .yfm-anchor,\n.yfm table h6 .yfm-clipboard-anchor {\n width: 1em;\n margin-left: -1em;\n padding-right: 0;\n}\n.yfm .yfm-tabs .yfm-anchor::before,\n.yfm .yfm-tabs .yfm-clipboard-anchor::before {\n position: absolute;\n padding-right: 2px;\n}\n\n.yfm .hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: var(--yfm-color-hljs-background);\n}\n.yfm .hljs,\n.yfm .hljs-subst {\n color: var(--yfm-color-hljs-subst);\n}\n.yfm .hljs-comment {\n color: var(--yfm-color-hljs-comment);\n}\n.yfm .hljs-keyword,\n.yfm .hljs-attribute,\n.yfm .hljs-selector-tag,\n.yfm .hljs-meta-keyword,\n.yfm .hljs-doctag,\n.yfm .hljs-name {\n font-weight: bold;\n}\n.yfm .hljs-type,\n.yfm .hljs-string,\n.yfm .hljs-number,\n.yfm .hljs-selector-id,\n.yfm .hljs-selector-class,\n.yfm .hljs-quote,\n.yfm .hljs-template-tag,\n.yfm .hljs-deletion {\n color: var(--yfm-color-hljs-deletion);\n}\n.yfm .hljs-title,\n.yfm .hljs-section {\n color: var(--yfm-color-hljs-section);\n font-weight: bold;\n}\n.yfm .hljs-regexp,\n.yfm .hljs-symbol,\n.yfm .hljs-variable,\n.yfm .hljs-template-variable,\n.yfm .hljs-link,\n.yfm .hljs-selector-attr,\n.yfm .hljs-selector-pseudo {\n color: var(--yfm-color-hljs-pseudo);\n}\n.yfm .hljs-literal {\n color: var(--yfm-color-hljs-literal);\n}\n.yfm .hljs-built_in,\n.yfm .hljs-bullet,\n.yfm .hljs-code,\n.yfm .hljs-addition {\n color: var(--yfm-color-hljs-addition);\n}\n.yfm .hljs-meta {\n color: var(--yfm-color-hljs-meta);\n}\n.yfm .hljs-meta-string {\n color: var(--yfm-color-hljs-meta-string);\n}\n.yfm .hljs-emphasis {\n font-style: italic;\n}\n.yfm .hljs-strong {\n font-weight: bold;\n}\n\n.yfm-clipboard {\n position: relative;\n}\n.yfm-clipboard .yfm-clipboard-button {\n min-width: 20px;\n min-height: 20px;\n}\n.yfm-clipboard:hover .yfm-clipboard-button {\n opacity: 1;\n}\n.yfm-clipboard > pre {\n border-radius: 10px;\n overflow: hidden;\n}\n.yfm-clipboard-button {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n opacity: 0;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n}\n.yfm-clipboard-button:focus {\n opacity: 1;\n}\n.yfm-clipboard-icon {\n pointer-events: none;\n}\n.yfm-clipboard-inline-code {\n transition: 0.3s;\n}\n.yfm-clipboard-inline-code:hover {\n cursor: pointer;\n background-color: var(--yfm-color-code-background-hovered-private);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzLzN5M2swL2RvY3Rvb2xzL2RpcGxvZG9jL3BhY2thZ2VzL3RyYW5zZm9ybS9zcmMvc2NzcyIsInNvdXJjZXMiOlsiX2NvbW1vbi5zY3NzIiwiX2xpc3RzLnNjc3MiLCJwcml2YXRlLnNjc3MiLCJicmFuZC5zY3NzIiwiX2FuY2hvci5zY3NzIiwiX2hpZ2hsaWdodC5zY3NzIiwiX2NvZGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQzZDUTtFQUNJO0VBQ0E7O0FBRUE7RUFDSSxtQkFSQTs7QUFVQTtFQUNJOztBQVJaO0VBQ0k7RUFDQTs7QUFFQTtFQUNJLG1CQVJBOztBQVVBO0VBQ0k7O0FBUlo7RUFDSTtFQUNBOztBQUVBO0VBQ0ksbUJBUkE7O0FBVUE7RUFDSTs7QUFSWjtFQUNJO0VBQ0E7O0FBRUE7RUFDSSxtQkFSQTs7QUFVQTtFQUNJOztBQVJaO0VBQ0k7RUFDQTs7QUFFQTtFQUNJLG1CQVJBOztBQVVBO0VBQ0k7O0FBUlo7RUFDSTtFQUNBOztBQUVBO0VBQ0ksbUJBUkE7O0FBVUE7RUFDSTs7QUFVaEI7QUFBQTtBQUFBO0VBR0k7O0FBRUE7QUFBQTtBQUFBO0VBQ0k7O0FBRUE7QUFBQTtBQUFBO0VBQ0k7OztBRHhEaEI7RUVmSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUMzQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUhsQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7QUFBQTtFQUVBO0FBQUE7QUFnWEE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBN1dBO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1JO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTs7QUFHSjtFQUNJOztBQUlSO0VBQ0k7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUNJOztBQUdKO0FBQUE7RUFDSTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPSTtFQUNBOztBQU1BO0FBQUE7QUFBQTtFQUNJOztBQUlSO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBRUE7RUFDQTs7QUFJUjtFQUNJO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSUE7QUFBQTtFQUVJOztBQUtKO0FBQUE7RUFFSTs7QUFJUjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBdE5SO0FBQUE7RUFDSTs7QUFHSjtBQUFBO0VBQ0k7O0FBc05BO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7QUFBQTtFQUVJOztBQUVKO0FBQUE7RUFFSTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQTVRSjtFQUNJOztBQUdKO0VBQ0k7O0FBNFFKO0VBQ0k7O0FBbFJKO0VBQ0k7O0FBR0o7RUFDSTs7QUFpUkE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUlSO0VBQ0k7O0FBR0o7QUFBQTtFQUVJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0VBSUk7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0FBQUE7RUFFSTs7QUFJQTtBQUFBO0VBRUk7O0FBR0o7QUFBQTtBQUFBO0FBQUE7RUFJSTs7QUFHSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7QUFBQTtFQUVJOztBQVNKO0VBQ0k7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUVBO0VBRUE7RUFDQTs7O0FJN1pBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFHSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTtFQUNBOztBQUtKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJOztBQVlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7QUFNUjtBQUFBO0VBRUk7RUFDQTs7O0FDdkVSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFBQTtFQUVJOztBQUdKO0VBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUk7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVFJOztBQUdKO0FBQUE7RUFFSTtFQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0k7O0FBR0o7RUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUlJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7OztBQzVFSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7QUFJQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG5cbkB1c2UgJ3ByaXZhdGUnO1xuQHVzZSAnYnJhbmQnO1xuQHVzZSAnbGlzdHMnO1xuXG5AbWl4aW4gcmVtb3ZlTWFyZ2luRm9yRWRnZUNoaWxkcmVuIHtcbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4ueWZtIHtcbiAgICBAaW5jbHVkZSBwcml2YXRlLnByaXZhdGUtYnJhbmQoKTtcbiAgICBAaW5jbHVkZSBicmFuZC5icmFuZCgpO1xuXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXlmbS1mb250LWZhbWlseS1zYW5zKTtcbiAgICBmb250LXNpemU6IHZhcigtLXlmbS1mb250LXNpemUsIDE1cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS15Zm0tZm9udC1saW5lLWhlaWdodCwgMjBweCk7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIGNvbG9yOiB2YXIoLS15Zm0tY29sb3ItdGV4dCk7XG4gICAgdGFiLXNpemU6IHZhcigtLXlmbS10YWItc2l6ZSwgaW5oZXJpdCk7XG5cbiAgICAtLXlmbS1mb250LWZhbWlseS1tb25vc3BhY2U6ICdNZW5sbycsICdNb25hY28nLCAnQ29uc29sYXMnLCAnVWJ1bnR1IE1vbm8nLCAnTGliZXJhdGlvbiBNb25vJyxcbiAgICAgICAgJ0RlamFWdSBTYW5zIE1vbm8nLCAnQ291cmllciBOZXcnLCAnQ291cmllcicsIG1vbm9zcGFjZTtcbiAgICAtLXlmbS1mb250LWZhbWlseS1zYW5zOiAnU2Vnb2UgVUknLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmLCAnQXBwbGUgQ29sb3IgRW1vamknLFxuICAgICAgICAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJztcblxuICAgICoge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgICYgPiAqOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0teWZtLWZvbnQtc2l6ZS1oMSwgMzJweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS15Zm0tZm9udC1saW5lLWhlaWdodC1oMSwgNDBweCk7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXlmbS1mb250LXNpemUtaDIsIDI0cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0teWZtLWZvbnQtbGluZS1oZWlnaHQtaDIsIDI4cHgpO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS15Zm0tZm9udC1zaXplLWgzLCAyMHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXlmbS1mb250LWxpbmUtaGVpZ2h0LWgzLCAyNHB4KTtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0teWZtLWZvbnQtc2l6ZS1oNCwgMTdweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS15Zm0tZm9udC1saW5lLWhlaWdodC1oNCwgMjRweCk7XG4gICAgfVxuXG4gICAgaDUge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXlmbS1mb250LXNpemUtaDUsIDE1cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0teWZtLWZvbnQtbGluZS1oZWlnaHQtaDUsIDIwcHgpO1xuICAgIH1cblxuICAgIGg2IHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS15Zm0tZm9udC1zaXplLWg2LCAxM3B4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXlmbS1mb250LWxpbmUtaGVpZ2h0LWg2LCAxOHB4KTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS15Zm0tY29sb3ItbGluayk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0teWZtLWNvbG9yLWxpbmstaG92ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoW2hyZWZdKSB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgaW1nLFxuICAgIHN2ZyB7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgJlthbGlnbj0ncmlnaHQnXSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmW2FsaWduPSdsZWZ0J10ge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZXJtYWlkIHN2Z1tpZCo9J21lcm1haWQnXSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teWZtLWNvbG9yLWJhc2UpO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICBpbWcgKyBzbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHAsXG4gICAgYmxvY2txdW90ZSxcbiAgICB1bCxcbiAgICBvbCxcbiAgICBkbCxcbiAgICB0YWJsZSxcbiAgICBwcmUge1xuICAgICAgICBtYXJnaW4tYmxvY2s6IHZhcigtLXlmbS10ZXh0LWJsb2NrLW1hcmdpbi1ibG9jaywgMCAxNXB4KTtcbiAgICAgICAgbWFyZ2luLWlubGluZTogdmFyKC0teWZtLXRleHQtYmxvY2stbWFyZ2luLWlubGluZSwgMCk7XG4gICAgfVxuXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwge1xuICAgICAgICAmIHByZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgcHJlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXlmbS1mb250LWZhbWlseS1tb25vc3BhY2UpO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAgICZbdHlwZT0nY2hlY2tib3gnXSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDFweDtcblxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS15Zm0tY29sb3ItdGFibGUpO1xuXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS15Zm0tY29sb3ItdGFibGUtYm9yZGVyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0teWZtLWNvbG9yLXRhYmxlLWJhY2tncm91bmQpO1xuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXlmbS1jb2xvci10YWJsZS1oZWFkLWJhY2tncm91bmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgdGQsXG4gICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgdGQsXG4gICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS15Zm0tY29sb3ItdGFibGUtYm9yZGVyKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgcmVtb3ZlTWFyZ2luRm9yRWRnZUNoaWxkcmVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgdHIgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRyIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIHRyIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIHRyIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLnlmbV9uby1zdHJpcGUtdGFibGUpIHRhYmxlIHRyOm50aC1jaGlsZCgybikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS15Zm0tY29sb3ItdGFibGUtc3RyaXBlLXJvdy1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBociB7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBoZWlnaHQ6IDAuMjVlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAxLjVlbSAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXlmbS1jb2xvci1ib3JkZXIpO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0teWZtLWNvbG9yLWFjY2VudCk7XG5cbiAgICAgICAgQGluY2x1ZGUgcmVtb3ZlTWFyZ2luRm9yRWRnZUNoaWxkcmVuKCk7XG4gICAgfVxuXG4gICAgZGwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIHJlbW92ZU1hcmdpbkZvckVkZ2VDaGlsZHJlbigpO1xuXG4gICAgICAgIGR0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBkZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICB1bCxcbiAgICBvbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi4yZW07XG4gICAgfVxuXG4gICAgdWwgdWw6bGFzdC1jaGlsZCxcbiAgICB1bCBvbDpsYXN0LWNoaWxkLFxuICAgIG9sIG9sOmxhc3QtY2hpbGQsXG4gICAgb2wgdWw6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgbGk6Zmlyc3QtY2hpbGQsXG4gICAgbGkgKyBsaSB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0teWZtLWxpc3QtaXRlbS1tYXJnaW4tYmxvY2ssIDAuMzNlbSAwKTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHAsXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS15Zm0tbGlzdC10ZXh0LW1hcmdpbi1ibG9jaywgMCAxNXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gcDpvbmx5LW9mLXR5cGUsXG4gICAgICAgID4gYmxvY2txdW90ZTpvbmx5LW9mLXR5cGUsXG4gICAgICAgID4gcDpmaXJzdC1jaGlsZDpoYXMoKyB1bCksXG4gICAgICAgID4gcDpmaXJzdC1jaGlsZDpoYXMoKyBvbCkge1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS15Zm0tbGlzdC10ZXh0LW9ubHktbWFyZ2luLWJsb2NrLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0teWZtLWxpc3QtdGV4dC1sYXN0LW1hcmdpbi1ibG9jaywgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb2RlIHtcbiAgICAgICAgcGFkZGluZzogMC4xZW0gMC40ZW0gMC4xNWVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS15Zm0tY29sb3ItaW5saW5lLWNvZGUtYmFja2dyb3VuZCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NWVtO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS15Zm0tY29sb3ItaW5saW5lLWNvZGUpO1xuICAgICAgICB0YWItc2l6ZTogdmFyKC0teWZtLXRhYi1zaXplLWNvZGUsIGluaGVyaXQpO1xuICAgIH1cblxuICAgIGEgY29kZSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cblxuICAgIHByZSB7XG4gICAgICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuICAgIH1cblxuICAgIHRhYmxlIGNvZGUge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIHByZSAqIGNvZGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0teWZtLWNvbG9yLXRleHQpO1xuICAgIH1cblxuICAgIHByZSA+IGNvZGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teWZtLWNvbG9yLWNvZGUtYmFja2dyb3VuZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS15Zm0tY29sb3ItdGV4dCk7XG5cbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcblxuICAgICAgICAueWZtLWxpbmUtbnVtYmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS15Zm0tY29sb3ItbGluZS1udW1iZXJzLCAjNjY2KTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3VwLFxuICAgIHN1YiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8qXG4gICAgICAgIEhpZGVzIGVsZW1lbnQgdmlzdWFsbHksIGJ1dCBsZWF2ZXMgaXQgdmlzaWJsZSBmb3Igc2VhcmNoIGNyYXdsZXJzIGFuZCBzY3JlZW4gcmVhZGVyc1xuXG4gICAgICAgIGh0dHBzOi8vd3d3LmExMXlwcm9qZWN0LmNvbS9wb3N0cy8yMDEzLTAxLTExLWhvdy10by1oaWRlLWNvbnRlbnQvXG4gICAgICAgIGh0dHBzOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuICAgICovXG4gICAgLnZpc3VhbGx5LWhpZGRlbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuXG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG5cbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIGJvcmRlcjogMDtcblxuICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDEwMCUpO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG59XG4iLCJAdXNlICdzYXNzOmxpc3QnO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuXG5AZnVuY3Rpb24gZ2V0LWNvdW50ZXItaWRlbnQoJGRlcHRoKSB7XG4gICAgJGlkZW50OiBoaWVyLWxpc3QtaXRlbTtcblxuICAgIEBmb3IgJGkgZnJvbSAwIHRvICRkZXB0aCB7XG4gICAgICAgICRpZGVudDogc3ViLSN7JGlkZW50fTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRpZGVudDtcbn1cblxuQGZ1bmN0aW9uIGdldC1zZWxlY3RvcigkZGVwdGgpIHtcbiAgICAkc2VsZWN0b3I6IG9sO1xuXG4gICAgQGZvciAkaSBmcm9tIDAgdG8gJGRlcHRoIHtcbiAgICAgICAgJHNlbGVjdG9yOiAnI3skc2VsZWN0b3J9ID4gbGkgPiBvbCc7XG4gICAgfVxuXG4gICAgQHJldHVybiAkc2VsZWN0b3I7XG59XG5cbkBmdW5jdGlvbiBnZXQtbWFya2VyLWNvbnRlbnQoJGlkZW50cykge1xuICAgICRsZW5ndGg6IGxpc3QubGVuZ3RoKCRpZGVudHMpO1xuICAgICRjb250ZW50OiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgIEBpZiAkaSA+IDEge1xuICAgICAgICAgICAgJGNvbnRlbnQ6ICcjeyRjb250ZW50fSBcIi5cIic7XG4gICAgICAgIH1cblxuICAgICAgICAkY29udGVudDogJyN7JGNvbnRlbnR9IGNvdW50ZXIoI3tsaXN0Lm50aCgkaWRlbnRzLCAkaSl9KSc7XG4gICAgfVxuXG4gICAgQHJldHVybiAjeyRjb250ZW50fSAnLiAnO1xufVxuXG5AbWl4aW4gaGllci1saXN0KCRtYXgtZGVwdGgpIHtcbiAgICAkaWRlbnQtcGF0aDogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRtYXgtZGVwdGgge1xuICAgICAgICAkaWRlbnQ6IGdldC1jb3VudGVyLWlkZW50KCRpKTtcbiAgICAgICAgJGlkZW50LXBhdGg6IGxpc3QuYXBwZW5kKCRpZGVudC1wYXRoLCAkaWRlbnQpO1xuXG4gICAgICAgICYgI3tnZXQtc2VsZWN0b3IoJGkpfSB7XG4gICAgICAgICAgICAtLWhpZXItbGlzdC1zdGFydDogMDtcbiAgICAgICAgICAgIGNvdW50ZXItcmVzZXQ6ICN7JGlkZW50fSB2YXIoLS1oaWVyLWxpc3Qtc3RhcnQpO1xuXG4gICAgICAgICAgICAmID4gbGkge1xuICAgI