@taiga-ui/addon-doc 3.39.1 → 3.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-addon-doc-components.umd.js +49 -17
- package/bundles/taiga-ui-addon-doc-components.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-doc-tokens.umd.js +19 -4
- package/bundles/taiga-ui-addon-doc-tokens.umd.js.map +1 -1
- package/components/demo/demo.component.d.ts +3 -1
- package/components/example/example.component.d.ts +1 -1
- package/components/example/example.options.d.ts +1 -0
- package/components/internal/header/header.component.d.ts +3 -1
- package/components/internal/source-code/source-code.component.d.ts +3 -1
- package/components/main/main.component.d.ts +4 -1
- package/components/navigation/navigation.component.d.ts +6 -3
- package/esm2015/components/demo/demo.component.js +9 -4
- package/esm2015/components/example/example.component.js +2 -2
- package/esm2015/components/example/example.options.js +2 -1
- package/esm2015/components/internal/header/header.component.js +9 -5
- package/esm2015/components/internal/source-code/source-code.component.js +9 -5
- package/esm2015/components/main/main.component.js +13 -5
- package/esm2015/components/navigation/navigation.component.js +14 -6
- package/esm2015/tokens/doc-icons.js +13 -0
- package/esm2015/tokens/index.js +2 -1
- package/fesm2015/taiga-ui-addon-doc-components.js +48 -20
- package/fesm2015/taiga-ui-addon-doc-components.js.map +1 -1
- package/fesm2015/taiga-ui-addon-doc-tokens.js +14 -1
- package/fesm2015/taiga-ui-addon-doc-tokens.js.map +1 -1
- package/package.json +5 -5
- package/tokens/doc-icons.d.ts +11 -0
- package/tokens/index.d.ts +1 -0
|
@@ -4,11 +4,11 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Inj
|
|
|
4
4
|
import { FormControl } from '@angular/forms';
|
|
5
5
|
import { Title } from '@angular/platform-browser';
|
|
6
6
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
7
|
-
import { TUI_DOC_PAGE_LOADED, TUI_DOC_SCROLL_BEHAVIOR, TUI_DOC_SEARCH_TEXT, } from '@taiga-ui/addon-doc/tokens';
|
|
7
|
+
import { TUI_DOC_ICONS, TUI_DOC_PAGE_LOADED, TUI_DOC_SCROLL_BEHAVIOR, TUI_DOC_SEARCH_TEXT, } from '@taiga-ui/addon-doc/tokens';
|
|
8
8
|
import { tuiTransliterateKeyboardLayout } from '@taiga-ui/addon-doc/utils';
|
|
9
9
|
import { TuiSidebarDirective } from '@taiga-ui/addon-mobile';
|
|
10
10
|
import { tuiControlValue, TuiDestroyService, tuiPure, tuiUniqBy } from '@taiga-ui/cdk';
|
|
11
|
-
import { TuiModeDirective } from '@taiga-ui/core';
|
|
11
|
+
import { TUI_COMMON_ICONS, TuiModeDirective, } from '@taiga-ui/core';
|
|
12
12
|
import { filter, map, startWith, take, takeUntil } from 'rxjs/operators';
|
|
13
13
|
import { NAVIGATION_ITEMS, NAVIGATION_LABELS, NAVIGATION_PROVIDERS, NAVIGATION_TITLE, } from './navigation.providers';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
@@ -22,7 +22,7 @@ import * as i7 from "@taiga-ui/addon-doc/directives";
|
|
|
22
22
|
import * as i8 from "@angular/platform-browser";
|
|
23
23
|
import * as i9 from "rxjs";
|
|
24
24
|
export class TuiDocNavigationComponent {
|
|
25
|
-
constructor(cdr, titleService, title$, doc, mode, sidebar, labels, items, searchText, router, activatedRoute, destroy$, readyToScroll$, scrollBehavior) {
|
|
25
|
+
constructor(cdr, titleService, title$, doc, mode, sidebar, labels, items, searchText, router, activatedRoute, destroy$, readyToScroll$, scrollBehavior, docIcons, icons) {
|
|
26
26
|
this.doc = doc;
|
|
27
27
|
this.mode = mode;
|
|
28
28
|
this.sidebar = sidebar;
|
|
@@ -34,6 +34,8 @@ export class TuiDocNavigationComponent {
|
|
|
34
34
|
this.destroy$ = destroy$;
|
|
35
35
|
this.readyToScroll$ = readyToScroll$;
|
|
36
36
|
this.scrollBehavior = scrollBehavior;
|
|
37
|
+
this.docIcons = docIcons;
|
|
38
|
+
this.icons = icons;
|
|
37
39
|
this.menuOpen = false;
|
|
38
40
|
this.openPagesArr = [];
|
|
39
41
|
this.openPagesGroupsArr = [];
|
|
@@ -141,8 +143,8 @@ export class TuiDocNavigationComponent {
|
|
|
141
143
|
});
|
|
142
144
|
}
|
|
143
145
|
}
|
|
144
|
-
TuiDocNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocNavigationComponent, deps: [{ token: ChangeDetectorRef }, { token: Title }, { token: NAVIGATION_TITLE }, { token: DOCUMENT }, { token: TuiModeDirective }, { token: TuiSidebarDirective, optional: true }, { token: NAVIGATION_LABELS }, { token: NAVIGATION_ITEMS }, { token: TUI_DOC_SEARCH_TEXT }, { token: Router }, { token: ActivatedRoute }, { token: TuiDestroyService, self: true }, { token: TUI_DOC_PAGE_LOADED }, { token: TUI_DOC_SCROLL_BEHAVIOR }], target: i0.ɵɵFactoryTarget.Component });
|
|
145
|
-
TuiDocNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocNavigationComponent, selector: "tui-doc-navigation", host: { properties: { "class._open": "this.menuOpen" } }, providers: NAVIGATION_PROVIDERS, ngImport: i0, template: "<tui-input\n #input\n tuiTextfieldSize=\"m\"\n
|
|
146
|
+
TuiDocNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocNavigationComponent, deps: [{ token: ChangeDetectorRef }, { token: Title }, { token: NAVIGATION_TITLE }, { token: DOCUMENT }, { token: TuiModeDirective }, { token: TuiSidebarDirective, optional: true }, { token: NAVIGATION_LABELS }, { token: NAVIGATION_ITEMS }, { token: TUI_DOC_SEARCH_TEXT }, { token: Router }, { token: ActivatedRoute }, { token: TuiDestroyService, self: true }, { token: TUI_DOC_PAGE_LOADED }, { token: TUI_DOC_SCROLL_BEHAVIOR }, { token: TUI_DOC_ICONS }, { token: TUI_COMMON_ICONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
147
|
+
TuiDocNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocNavigationComponent, selector: "tui-doc-navigation", host: { properties: { "class._open": "this.menuOpen" } }, providers: NAVIGATION_PROVIDERS, ngImport: i0, template: "<tui-input\n #input\n tuiTextfieldSize=\"m\"\n class=\"t-input\"\n [formControl]=\"search\"\n [tuiAutoFocus]=\"!!sidebar\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldIconLeft]=\"docIcons.search\"\n>\n {{ searchText }}\n <ng-container *ngIf=\"canOpen\">\n <tui-data-list *tuiDataList>\n <tui-opt-group\n *ngFor=\"let group of filtered$ | async; let index = index\"\n [label]=\"labels[index] || ''\"\n >\n <a\n *ngFor=\"let item of group\"\n tuiOption\n [routerLink]=\"item.route\"\n [fragment]=\"item.fragment\"\n (click)=\"onClick(input)\"\n >\n {{ item.title }}\n </a>\n </tui-opt-group>\n </tui-data-list>\n </ng-container>\n</tui-input>\n\n<nav class=\"t-navigation\">\n <tui-scrollbar\n class=\"t-scrollbar\"\n [tuiMode]=\"mode$ | async\"\n >\n <tui-accordion\n [closeOthers]=\"false\"\n [rounded]=\"false\"\n >\n <tui-accordion-item\n *ngFor=\"let label of labels; index as index\"\n size=\"s\"\n [borders]=\"null\"\n [(open)]=\"!!openPagesArr[index]\"\n >\n <span class=\"t-label\">\n <strong>{{ label }}</strong>\n </span>\n <ng-template tuiAccordionItemContent>\n <div class=\"t-section\">\n <ng-container\n *ngFor=\"let item of items[index]; index as subIndex\"\n [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: index * 100 + subIndex}\"\n ></ng-container>\n </div>\n </ng-template>\n </tui-accordion-item>\n </tui-accordion>\n <div class=\"t-items-container\">\n <ng-container\n *ngFor=\"let item of itemsWithoutSections; let index = index\"\n [ngTemplateOutlet]=\"pages\"\n [ngTemplateOutletContext]=\"{item: item, index: items.length - 1 + index}\"\n ></ng-container>\n </div>\n\n <ng-template\n #pages\n let-item=\"item\"\n let-index=\"index\"\n >\n <a\n *ngIf=\"!item.subPages; else subPagesTemplate\"\n tuiLink\n routerLinkActive=\"t-sublink_active\"\n class=\"t-sublink\"\n [routerLink]=\"item.route\"\n [tuiScrollIntoViewLink]=\"isActive(item.route)\"\n (click)=\"closeMenu()\"\n >\n {{ item.title }}\n </a>\n <ng-template #subPagesTemplate>\n <div\n routerLinkActive\n class=\"t-subsection\"\n [routerLinkActiveOptions]=\"{exact: false}\"\n >\n <button\n *ngIf=\"item.subPages\"\n tuiLink\n type=\"button\"\n class=\"t-sublink t-sublink_subsection\"\n (click)=\"onGroupClick(index)\"\n >\n <tui-svg\n class=\"t-chevron\"\n [class.t-chevron_active]=\"!!openPagesGroupsArr[index]\"\n [src]=\"icons.more\"\n ></tui-svg>\n {{ item.title }}\n </button>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"!!openPagesGroupsArr[index]\"\n >\n <div class=\"t-section t-section_bordered\">\n <a\n *ngFor=\"let subPage of $pages(item.subPages)\"\n tuiLink\n routerLinkActive=\"t-sublink_active\"\n class=\"t-sublink t-sublink_small\"\n [routerLink]=\"subPage.route\"\n [fragment]=\"subPage.fragment\"\n [tuiScrollIntoViewLink]=\"isActive(subPage.route)\"\n (click)=\"closeMenu()\"\n >\n {{ subPage.title }}\n </a>\n </div>\n </tui-expand>\n </div>\n </ng-template>\n </ng-template>\n </tui-scrollbar>\n</nav>\n\n<ng-content></ng-content>\n", styles: [":host{z-index:1;display:flex;flex-direction:column;text-align:center;background:var(--tui-base-01)}.t-input{margin:1.25rem}.t-navigation{display:flex;max-height:100%;min-height:0;flex:1 1 0;text-align:left}.t-scrollbar{scroll-behavior:smooth;width:100%}@media screen and (prefers-reduced-motion: reduce){.t-scrollbar{scroll-behavior:auto}}.t-items-container{display:flex;flex-direction:column;padding:0 1rem}.t-label{margin-left:.5rem}.t-expand{margin-left:.25rem}.t-section{display:flex;flex-direction:column;align-items:flex-start;margin:-1rem 0 -.5rem}.t-section_bordered{margin:.5rem 0;border-left:1px solid var(--tui-base-03)}.t-subsection{margin-left:.5rem}.t-sublink{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:1rem 0 0;border:0;background:none;font-size:inherit;line-height:inherit;font:var(--tui-font-text-m);margin-left:.5rem}.t-sublink_small{margin-left:1rem;line-height:1.5rem;padding-top:.5rem}.t-sublink_subsection{margin-left:0;line-height:1.6rem}.t-sublink.t-sublink.t-sublink_active{color:var(--tui-text-01)}.t-chevron{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;width:1rem;height:1rem;margin:-.25rem .25rem 0 -.1875rem}.t-chevron_active{transform:rotate(90deg)}\n"], components: [{ type: i1.TuiInputComponent, selector: "tui-input" }, { type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i2.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i2.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }, { type: i1.TuiAccordionComponent, selector: "tui-accordion", inputs: ["closeOthers", "rounded"] }, { type: i1.TuiAccordionItemComponent, selector: "tui-accordion-item", inputs: ["noPadding", "showArrow", "borders", "size", "disabled", "disableHover", "open", "async"], outputs: ["openChange"] }, { type: i2.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], directives: [{ type: i1.TuiInputDirective, selector: "tui-input" }, { type: i2.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.TuiAutoFocusDirective, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { type: i2.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { type: i2.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { type: i2.TuiTextfieldIconLeftDirective, selector: "[tuiTextfieldIconLeft]", inputs: ["tuiTextfieldIconLeft"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TuiOptGroupDirective, selector: "tui-opt-group", inputs: ["label"] }, { type: i6.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { type: i1.TuiAccordionItemContentDirective, selector: "ng-template[tuiAccordionItemContent]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i7.TuiScrollIntoViewLinkDirective, selector: "[tuiScrollIntoViewLink]", inputs: ["tuiScrollIntoViewLink"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
146
148
|
__decorate([
|
|
147
149
|
tuiPure
|
|
148
150
|
], TuiDocNavigationComponent.prototype, "filterItems", null);
|
|
@@ -204,8 +206,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
204
206
|
}] }, { type: undefined, decorators: [{
|
|
205
207
|
type: Inject,
|
|
206
208
|
args: [TUI_DOC_SCROLL_BEHAVIOR]
|
|
209
|
+
}] }, { type: undefined, decorators: [{
|
|
210
|
+
type: Inject,
|
|
211
|
+
args: [TUI_DOC_ICONS]
|
|
212
|
+
}] }, { type: undefined, decorators: [{
|
|
213
|
+
type: Inject,
|
|
214
|
+
args: [TUI_COMMON_ICONS]
|
|
207
215
|
}] }]; }, propDecorators: { menuOpen: [{
|
|
208
216
|
type: HostBinding,
|
|
209
217
|
args: ['class._open']
|
|
210
218
|
}], filterItems: [], flattenSubPages: [] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDdEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFnQixnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRy9ELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1B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MkJBQUMsY0FBYzs7MEJBQ3JCLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDaEMsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUUxQixNQUFNOzJCQUFDLHVCQUF1Qjs0Q0FyQ25DLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxhQUFhO2dCQWtGbEIsV0FBVyxNQXlCWCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VGl0bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUdWlEb2NQYWdlfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBUVUlfRE9DX1BBR0VfTE9BREVELFxuICAgIFRVSV9ET0NfU0NST0xMX0JFSEFWSU9SLFxuICAgIFRVSV9ET0NfU0VBUkNIX1RFWFQsXG59IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdG9rZW5zJztcbmltcG9ydCB7VHVpRG9jUGFnZXN9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdHlwZXMnO1xuaW1wb3J0IHt0dWlUcmFuc2xpdGVyYXRlS2V5Ym9hcmRMYXlvdXR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdXRpbHMnO1xuaW1wb3J0IHtUdWlTaWRlYmFyRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tbW9iaWxlJztcbmltcG9ydCB7dHVpQ29udHJvbFZhbHVlLCBUdWlEZXN0cm95U2VydmljZSwgdHVpUHVyZSwgdHVpVW5pcUJ5fSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpTW9kZURpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlJbnB1dENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBOQVZJR0FUSU9OX0lURU1TLFxuICAgIE5BVklHQVRJT05fTEFCRUxTLFxuICAgIE5BVklHQVRJT05fUFJPVklERVJTLFxuICAgIE5BVklHQVRJT05fVElUTEUsXG59IGZyb20gJy4vbmF2aWdhdGlvbi5wcm92aWRlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2aWdhdGlvbi5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBOQVZJR0FUSU9OX1BST1ZJREVSUyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jTmF2aWdhdGlvbkNvbXBvbmVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fb3BlbicpXG4gICAgbWVudU9wZW4gPSBmYWxzZTtcblxuICAgIG9wZW5QYWdlc0FycjogYm9vbGVhbltdID0gW107XG4gICAgb3BlblBhZ2VzR3JvdXBzQXJyOiBib29sZWFuW10gPSBbXTtcbiAgICBhY3RpdmUgPSAnJztcblxuICAgIHJlYWRvbmx5IHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG5cbiAgICByZWFkb25seSBmaWx0ZXJlZCQgPSB0dWlDb250cm9sVmFsdWU8c3RyaW5nPih0aGlzLnNlYXJjaCkucGlwZShcbiAgICAgICAgZmlsdGVyKHNlYXJjaCA9PiBzZWFyY2gubGVuZ3RoID4gMiksXG4gICAgICAgIG1hcChzZWFyY2ggPT4gdGhpcy5maWx0ZXJJdGVtcyh0aGlzLmZsYXR0ZW5TdWJQYWdlcyh0aGlzLml0ZW1zKSwgc2VhcmNoKSksXG4gICAgKTtcblxuICAgIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3M+ID0gdGhpcy5tb2RlLmNoYW5nZSQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5tb2RlLm1vZGUgfHwgJ29uTGlnaHQnKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVGl0bGUpIHRpdGxlU2VydmljZTogVGl0bGUsXG4gICAgICAgIEBJbmplY3QoTkFWSUdBVElPTl9USVRMRSkgdGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGU6IFR1aU1vZGVEaXJlY3RpdmUsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpU2lkZWJhckRpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgc2lkZWJhcjogdW5rbm93bixcbiAgICAgICAgQEluamVjdChOQVZJR0FUSU9OX0xBQkVMUykgcmVhZG9ubHkgbGFiZWxzOiBzdHJpbmdbXSxcbiAgICAgICAgQEluamVjdChOQVZJR0FUSU9OX0lURU1TKVxuICAgICAgICByZWFkb25seSBpdGVtczogcmVhZG9ubHkgVHVpRG9jUGFnZXNbXSxcbiAgICAgICAgQEluamVjdChUVUlfRE9DX1NFQVJDSF9URVhUKSByZWFkb25seSBzZWFyY2hUZXh0OiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoUm91dGVyKSBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfUEFHRV9MT0FERUQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlUb1Njcm9sbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19TQ1JPTExfQkVIQVZJT1IpIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsQmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yLFxuICAgICkge1xuICAgICAgICAvLyBBbmd1bGFyIGNhbid0IG5hdmlnYXRlIG5vIGFuY2hvciBsaW5rc1xuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNjEwMTc1Ni9hbmd1bGFyMi1yb3V0aW5nLXdpdGgtaGFzaHRhZy10by1wYWdlLWFuY2hvclxuICAgICAgICB0aXRsZSQuc3Vic2NyaWJlKHRpdGxlID0+IHtcbiAgICAgICAgICAgIGNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XG4gICAgICAgICAgICB0aGlzLm9wZW5BY3RpdmVQYWdlR3JvdXAoKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQW5jaG9yTGluayh0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmZyYWdtZW50IHx8ICcnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAodGhpcy5zZWFyY2gudmFsdWU/Lmxlbmd0aCA/PyAwKSA+IDI7XG4gICAgfVxuXG4gICAgZ2V0IGl0ZW1zV2l0aG91dFNlY3Rpb25zKCk6IFR1aURvY1BhZ2VzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICAkcGFnZXMocGFnZXM6IGFueSk6IHJlYWRvbmx5IFR1aURvY1BhZ2VbXSB7XG4gICAgICAgIHJldHVybiBwYWdlcyBhcyBUdWlEb2NQYWdlW107XG4gICAgfVxuXG4gICAgaXNBY3RpdmUocm91dGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcm91dGUgPT09IHRoaXMuYWN0aXZlO1xuICAgIH1cblxuICAgIG9uR3JvdXBDbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlblBhZ2VzR3JvdXBzQXJyW2luZGV4XSA9ICF0aGlzLm9wZW5QYWdlc0dyb3Vwc0FycltpbmRleF07XG4gICAgfVxuXG4gICAgY2xvc2VNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25DbGljayhpbnB1dDogVHVpSW5wdXRDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaW5wdXQub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VhcmNoLnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5vcGVuQWN0aXZlUGFnZUdyb3VwKCk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGZpbHRlckl0ZW1zKFxuICAgICAgICBpdGVtczogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUdWlEb2NQYWdlW10+LFxuICAgICAgICBzZWFyY2g6IHN0cmluZyxcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMubWFwKHNlY3Rpb24gPT5cbiAgICAgICAgICAgIHR1aVVuaXFCeShcbiAgICAgICAgICAgICAgICBzZWN0aW9uLmZpbHRlcigoe3RpdGxlLCBrZXl3b3JkcyA9ICcnfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaCA9IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLmluY2x1ZGVzKHR1aVRyYW5zbGl0ZXJhdGVLZXlib2FyZExheW91dChzZWFyY2gpKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuaW5jbHVkZXModHVpVHJhbnNsaXRlcmF0ZUtleWJvYXJkTGF5b3V0KHNlYXJjaCkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2gucmVwbGFjZSgvLS9naSwgJycpLmluY2x1ZGVzKHRpdGxlKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICd0aXRsZScsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBmbGF0dGVuU3ViUGFnZXMoXG4gICAgICAgIGl0ZW1zOiByZWFkb25seSBUdWlEb2NQYWdlc1tdLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPiB7XG4gICAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2U8UmVhZG9ubHlBcnJheTxyZWFkb25seSBUdWlEb2NQYWdlW10+PihcbiAgICAgICAgICAgIChhcnJheSwgaXRlbSkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLmFycmF5LFxuICAgICAgICAgICAgICAgIGl0ZW0ucmVkdWNlPHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4oXG4gICAgICAgICAgICAgICAgICAgIChwYWdlcywgcGFnZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICdzdWJQYWdlcycgaW4gcGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gWy4uLnBhZ2VzLCAuLi5wYWdlLnN1YlBhZ2VzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogWy4uLnBhZ2VzLCBwYWdlXSxcbiAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWN0aXZlUm91dGUocm91dGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUocm91dGUsIHtcbiAgICAgICAgICAgIHBhdGhzOiAnc3Vic2V0JyxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiAnc3Vic2V0JyxcbiAgICAgICAgICAgIGZyYWdtZW50OiAnaWdub3JlZCcsXG4gICAgICAgICAgICBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBbmNob3JMaW5rKGhhc2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlYWR5VG9TY3JvbGwkXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIoQm9vbGVhbiksIHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvQW5jaG9yTGluayhoYXNoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuQWN0aXZlUGFnZUdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKHBhZ2VzLCBwYWdlc0luZGV4KSA9PiB7XG4gICAgICAgICAgICBwYWdlcy5mb3JFYWNoKChwYWdlLCBwYWdlSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoJ3JvdXRlJyBpbiBwYWdlICYmIHRoaXMuaXNBY3RpdmVSb3V0ZShwYWdlLnJvdXRlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0FycltwYWdlc0luZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gcGFnZS5yb3V0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoJ3N1YlBhZ2VzJyBpbiBwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2Uuc3ViUGFnZXMuZm9yRWFjaChzdWJQYWdlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQWN0aXZlUm91dGUoc3ViUGFnZS5yb3V0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0FycltwYWdlc0luZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuUGFnZXNHcm91cHNBcnJbcGFnZXNJbmRleCAqIDEwMCArIHBhZ2VJbmRleF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gc3ViUGFnZS5yb3V0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbmF2aWdhdGVUb0FuY2hvckxpbmsoZnJhZ21lbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBub2RlcyA9IGZyYWdtZW50ID8gdGhpcy5kb2MucXVlcnlTZWxlY3RvckFsbChgIyR7ZnJhZ21lbnR9YCkgOiBbXTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IG5vZGVzLmxlbmd0aCAmJiBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndHVpLWRvYy1hbmltYXRlZC1leGFtcGxlJyk7XG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgYmxvY2s6ICdzdGFydCcsXG4gICAgICAgICAgICBpbmxpbmU6ICduZWFyZXN0JyxcbiAgICAgICAgICAgIGJlaGF2aW9yOiB0aGlzLnNjcm9sbEJlaGF2aW9yLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8dHVpLWlucHV0XG4gICAgI2lucHV0XG4gICAgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIlxuICAgIHR1aVRleHRmaWVsZEljb25MZWZ0PVwidHVpSWNvblNlYXJjaFwiXG4gICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoXCJcbiAgICBbdHVpQXV0b0ZvY3VzXT1cIiEhc2lkZWJhclwiXG4gICAgW3R1aVRleHRmaWVsZENsZWFuZXJdPVwidHJ1ZVwiXG4gICAgW3R1aVRleHRmaWVsZExhYmVsT3V0c2lkZV09XCJ0cnVlXCJcbj5cbiAgICB7eyBzZWFyY2hUZXh0IH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbk9wZW5cIj5cbiAgICAgICAgPHR1aS1kYXRhLWxpc3QgKnR1aURhdGFMaXN0PlxuICAgICAgICAgICAgPHR1aS1vcHQtZ3JvdXBcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZmlsdGVyZWQkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwibGFiZWxzW2luZGV4XSB8fCAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJpdGVtLmZyYWdtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soaW5wdXQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L3R1aS1vcHQtZ3JvdXA+XG4gICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvdHVpLWlucHV0PlxuXG48bmF2IGNsYXNzPVwidC1uYXZpZ2F0aW9uXCI+XG4gICAgPHR1aS1zY3JvbGxiYXJcbiAgICAgICAgY2xhc3M9XCJ0LXNjcm9sbGJhclwiXG4gICAgICAgIFt0dWlNb2RlXT1cIm1vZGUkIHwgYXN5bmNcIlxuICAgID5cbiAgICAgICAgPHR1aS1hY2NvcmRpb25cbiAgICAgICAgICAgIFtjbG9zZU90aGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbcm91bmRlZF09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0dWktYWNjb3JkaW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgbGFiZWxzOyBpbmRleCBhcyBpbmRleFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIFtib3JkZXJzXT1cIm51bGxcIlxuICAgICAgICAgICAgICAgIFsob3BlbildPVwiISFvcGVuUGFnZXNBcnJbaW5kZXhdXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBsYWJlbCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdHVpQWNjb3JkaW9uSXRlbUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1tpbmRleF07IGluZGV4IGFzIHN1YkluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBpbmRleDogaW5kZXggKiAxMDAgKyBzdWJJbmRleH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90dWktYWNjb3JkaW9uLWl0ZW0+XG4gICAgICAgIDwvdHVpLWFjY29yZGlvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInQtaXRlbXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNXaXRob3V0U2VjdGlvbnM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwYWdlc1wiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBpbmRleDogaXRlbXMubGVuZ3RoIC0gMSArIGluZGV4fVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI3BhZ2VzXG4gICAgICAgICAgICBsZXQtaXRlbT1cIml0ZW1cIlxuICAgICAgICAgICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0uc3ViUGFnZXM7IGVsc2Ugc3ViUGFnZXNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJ0LXN1YmxpbmtfYWN0aXZlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtc3VibGlua1wiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgW3R1aVNjcm9sbEludG9WaWV3TGlua109XCJpc0FjdGl2ZShpdGVtLnJvdXRlKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlTWVudSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3N1YlBhZ2VzVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1zdWJzZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cIntleGFjdDogZmFsc2V9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJQYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1zdWJsaW5rIHQtc3VibGlua19zdWJzZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkdyb3VwQ2xpY2soaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJ0dWlJY29uQ2hldnJvblJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY2hldnJvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnQtY2hldnJvbl9hY3RpdmVdPVwiISFvcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8dHVpLWV4cGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwiISFvcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInQtc2VjdGlvbiB0LXNlY3Rpb25fYm9yZGVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3ViUGFnZSBvZiAkcGFnZXMoaXRlbS5zdWJQYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJ0LXN1YmxpbmtfYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXN1YmxpbmsgdC1zdWJsaW5rX3NtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic3ViUGFnZS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJzdWJQYWdlLmZyYWdtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aVNjcm9sbEludG9WaWV3TGlua109XCJpc0FjdGl2ZShzdWJQYWdlLnJvdXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZU1lbnUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdWJQYWdlLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdHVpLWV4cGFuZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC90dWktc2Nyb2xsYmFyPlxuPC9uYXY+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsbUJBQW1CLEdBRXRCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFF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QUMsbUJBQW1COzswQkFFMUIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ2hDLE1BQU07MkJBQUMsbUJBQW1COzswQkFFMUIsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUM5QixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLGdCQUFnQjs0Q0F2QzVCLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxhQUFhO2dCQW9GbEIsV0FBVyxNQXlCWCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VGl0bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUdWlEb2NQYWdlfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tZG9jL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBUVUlfRE9DX0lDT05TLFxuICAgIFRVSV9ET0NfUEFHRV9MT0FERUQsXG4gICAgVFVJX0RPQ19TQ1JPTExfQkVIQVZJT1IsXG4gICAgVFVJX0RPQ19TRUFSQ0hfVEVYVCxcbiAgICBUdWlEb2NJY29ucyxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy90b2tlbnMnO1xuaW1wb3J0IHtUdWlEb2NQYWdlc30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy90eXBlcyc7XG5pbXBvcnQge3R1aVRyYW5zbGl0ZXJhdGVLZXlib2FyZExheW91dH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy91dGlscyc7XG5pbXBvcnQge1R1aVNpZGViYXJEaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1tb2JpbGUnO1xuaW1wb3J0IHt0dWlDb250cm9sVmFsdWUsIFR1aURlc3Ryb3lTZXJ2aWNlLCB0dWlQdXJlLCB0dWlVbmlxQnl9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ09NTU9OX0lDT05TLFxuICAgIFR1aUJyaWdodG5lc3MsXG4gICAgVHVpQ29tbW9uSWNvbnMsXG4gICAgVHVpTW9kZURpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlJbnB1dENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBOQVZJR0FUSU9OX0lURU1TLFxuICAgIE5BVklHQVRJT05fTEFCRUxTLFxuICAgIE5BVklHQVRJT05fUFJPVklERVJTLFxuICAgIE5BVklHQVRJT05fVElUTEUsXG59IGZyb20gJy4vbmF2aWdhdGlvbi5wcm92aWRlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2aWdhdGlvbi5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBOQVZJR0FUSU9OX1BST1ZJREVSUyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jTmF2aWdhdGlvbkNvbXBvbmVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fb3BlbicpXG4gICAgbWVudU9wZW4gPSBmYWxzZTtcblxuICAgIG9wZW5QYWdlc0FycjogYm9vbGVhbltdID0gW107XG4gICAgb3BlblBhZ2VzR3JvdXBzQXJyOiBib29sZWFuW10gPSBbXTtcbiAgICBhY3RpdmUgPSAnJztcblxuICAgIHJlYWRvbmx5IHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG5cbiAgICByZWFkb25seSBmaWx0ZXJlZCQgPSB0dWlDb250cm9sVmFsdWU8c3RyaW5nPih0aGlzLnNlYXJjaCkucGlwZShcbiAgICAgICAgZmlsdGVyKHNlYXJjaCA9PiBzZWFyY2gubGVuZ3RoID4gMiksXG4gICAgICAgIG1hcChzZWFyY2ggPT4gdGhpcy5maWx0ZXJJdGVtcyh0aGlzLmZsYXR0ZW5TdWJQYWdlcyh0aGlzLml0ZW1zKSwgc2VhcmNoKSksXG4gICAgKTtcblxuICAgIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPFR1aUJyaWdodG5lc3M+ID0gdGhpcy5tb2RlLmNoYW5nZSQucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5tb2RlLm1vZGUgfHwgJ29uTGlnaHQnKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVGl0bGUpIHRpdGxlU2VydmljZTogVGl0bGUsXG4gICAgICAgIEBJbmplY3QoTkFWSUdBVElPTl9USVRMRSkgdGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChUdWlNb2RlRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGU6IFR1aU1vZGVEaXJlY3RpdmUsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpU2lkZWJhckRpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgc2lkZWJhcjogdW5rbm93bixcbiAgICAgICAgQEluamVjdChOQVZJR0FUSU9OX0xBQkVMUykgcmVhZG9ubHkgbGFiZWxzOiBzdHJpbmdbXSxcbiAgICAgICAgQEluamVjdChOQVZJR0FUSU9OX0lURU1TKVxuICAgICAgICByZWFkb25seSBpdGVtczogcmVhZG9ubHkgVHVpRG9jUGFnZXNbXSxcbiAgICAgICAgQEluamVjdChUVUlfRE9DX1NFQVJDSF9URVhUKSByZWFkb25seSBzZWFyY2hUZXh0OiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoUm91dGVyKSBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfUEFHRV9MT0FERUQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlUb1Njcm9sbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19TQ1JPTExfQkVIQVZJT1IpIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsQmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfSUNPTlMpIHJlYWRvbmx5IGRvY0ljb25zOiBUdWlEb2NJY29ucyxcbiAgICAgICAgQEluamVjdChUVUlfQ09NTU9OX0lDT05TKSByZWFkb25seSBpY29uczogVHVpQ29tbW9uSWNvbnMsXG4gICAgKSB7XG4gICAgICAgIC8vIEFuZ3VsYXIgY2FuJ3QgbmF2aWdhdGUgbm8gYW5jaG9yIGxpbmtzXG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM2MTAxNzU2L2FuZ3VsYXIyLXJvdXRpbmctd2l0aC1oYXNodGFnLXRvLXBhZ2UtYW5jaG9yXG4gICAgICAgIHRpdGxlJC5zdWJzY3JpYmUodGl0bGUgPT4ge1xuICAgICAgICAgICAgY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlKTtcbiAgICAgICAgICAgIHRoaXMub3BlbkFjdGl2ZVBhZ2VHcm91cCgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbmNob3JMaW5rKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZnJhZ21lbnQgfHwgJycpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnNlYXJjaC52YWx1ZT8ubGVuZ3RoID8/IDApID4gMjtcbiAgICB9XG5cbiAgICBnZXQgaXRlbXNXaXRob3V0U2VjdGlvbnMoKTogVHVpRG9jUGFnZXMge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtc1t0aGlzLml0ZW1zLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgICRwYWdlcyhwYWdlczogYW55KTogcmVhZG9ubHkgVHVpRG9jUGFnZVtdIHtcbiAgICAgICAgcmV0dXJuIHBhZ2VzIGFzIFR1aURvY1BhZ2VbXTtcbiAgICB9XG5cbiAgICBpc0FjdGl2ZShyb3V0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiByb3V0ZSA9PT0gdGhpcy5hY3RpdmU7XG4gICAgfVxuXG4gICAgb25Hcm91cENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdID0gIXRoaXMub3BlblBhZ2VzR3JvdXBzQXJyW2luZGV4XTtcbiAgICB9XG5cbiAgICBjbG9zZU1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudU9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGlucHV0OiBUdWlJbnB1dENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpbnB1dC5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWVudU9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWFyY2guc2V0VmFsdWUoJycpO1xuICAgICAgICB0aGlzLm9wZW5BY3RpdmVQYWdlR3JvdXAoKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZmlsdGVySXRlbXMoXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4sXG4gICAgICAgIHNlYXJjaDogc3RyaW5nLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPiB7XG4gICAgICAgIHJldHVybiBpdGVtcy5tYXAoc2VjdGlvbiA9PlxuICAgICAgICAgICAgdHVpVW5pcUJ5KFxuICAgICAgICAgICAgICAgIHNlY3Rpb24uZmlsdGVyKCh7dGl0bGUsIGtleXdvcmRzID0gJyd9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0ga2V5d29yZHMudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUuaW5jbHVkZXModHVpVHJhbnNsaXRlcmF0ZUtleWJvYXJkTGF5b3V0KHNlYXJjaCkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcy5pbmNsdWRlcyh0dWlUcmFuc2xpdGVyYXRlS2V5Ym9hcmRMYXlvdXQoc2VhcmNoKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC5yZXBsYWNlKC8tL2dpLCAnJykuaW5jbHVkZXModGl0bGUpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgJ3RpdGxlJyxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGZsYXR0ZW5TdWJQYWdlcyhcbiAgICAgICAgaXRlbXM6IHJlYWRvbmx5IFR1aURvY1BhZ2VzW10sXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUdWlEb2NQYWdlW10+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLnJlZHVjZTxSZWFkb25seUFycmF5PHJlYWRvbmx5IFR1aURvY1BhZ2VbXT4+KFxuICAgICAgICAgICAgKGFycmF5LCBpdGVtKSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uYXJyYXksXG4gICAgICAgICAgICAgICAgaXRlbS5yZWR1Y2U8cmVhZG9ubHkgVHVpRG9jUGFnZVtdPihcbiAgICAgICAgICAgICAgICAgICAgKHBhZ2VzLCBwYWdlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1YlBhZ2VzJyBpbiBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbLi4ucGFnZXMsIC4uLnBhZ2Uuc3ViUGFnZXNdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbLi4ucGFnZXMsIHBhZ2VdLFxuICAgICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBY3RpdmVSb3V0ZShyb3V0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5pc0FjdGl2ZShyb3V0ZSwge1xuICAgICAgICAgICAgcGF0aHM6ICdzdWJzZXQnLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6ICdzdWJzZXQnLFxuICAgICAgICAgICAgZnJhZ21lbnQ6ICdpZ25vcmVkJyxcbiAgICAgICAgICAgIG1hdHJpeFBhcmFtczogJ2lnbm9yZWQnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUFuY2hvckxpbmsoaGFzaDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVhZHlUb1Njcm9sbCRcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcihCb29sZWFuKSwgdGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm5hdmlnYXRlVG9BbmNob3JMaW5rKGhhc2gpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5BY3RpdmVQYWdlR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgocGFnZXMsIHBhZ2VzSW5kZXgpID0+IHtcbiAgICAgICAgICAgIHBhZ2VzLmZvckVhY2goKHBhZ2UsIHBhZ2VJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgncm91dGUnIGluIHBhZ2UgJiYgdGhpcy5pc0FjdGl2ZVJvdXRlKHBhZ2Uucm91dGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblBhZ2VzQXJyW3BhZ2VzSW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBwYWdlLnJvdXRlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgnc3ViUGFnZXMnIGluIHBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFnZS5zdWJQYWdlcy5mb3JFYWNoKHN1YlBhZ2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVSb3V0ZShzdWJQYWdlLnJvdXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblBhZ2VzQXJyW3BhZ2VzSW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYWdlc0dyb3Vwc0FycltwYWdlc0luZGV4ICogMTAwICsgcGFnZUluZGV4XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBzdWJQYWdlLnJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuYXZpZ2F0ZVRvQW5jaG9yTGluayhmcmFnbWVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gZnJhZ21lbnQgPyB0aGlzLmRvYy5xdWVyeVNlbGVjdG9yQWxsKGAjJHtmcmFnbWVudH1gKSA6IFtdO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbm9kZXMubGVuZ3RoICYmIG5vZGVzW25vZGVzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCd0dWktZG9jLWFuaW1hdGVkLWV4YW1wbGUnKTtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgICAgICAgIGlubGluZTogJ25lYXJlc3QnLFxuICAgICAgICAgICAgYmVoYXZpb3I6IHRoaXMuc2Nyb2xsQmVoYXZpb3IsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjx0dWktaW5wdXRcbiAgICAjaW5wdXRcbiAgICB0dWlUZXh0ZmllbGRTaXplPVwibVwiXG4gICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoXCJcbiAgICBbdHVpQXV0b0ZvY3VzXT1cIiEhc2lkZWJhclwiXG4gICAgW3R1aVRleHRmaWVsZENsZWFuZXJdPVwidHJ1ZVwiXG4gICAgW3R1aVRleHRmaWVsZExhYmVsT3V0c2lkZV09XCJ0cnVlXCJcbiAgICBbdHVpVGV4dGZpZWxkSWNvbkxlZnRdPVwiZG9jSWNvbnMuc2VhcmNoXCJcbj5cbiAgICB7eyBzZWFyY2hUZXh0IH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbk9wZW5cIj5cbiAgICAgICAgPHR1aS1kYXRhLWxpc3QgKnR1aURhdGFMaXN0PlxuICAgICAgICAgICAgPHR1aS1vcHQtZ3JvdXBcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZmlsdGVyZWQkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwibGFiZWxzW2luZGV4XSB8fCAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJpdGVtLmZyYWdtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soaW5wdXQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L3R1aS1vcHQtZ3JvdXA+XG4gICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvdHVpLWlucHV0PlxuXG48bmF2IGNsYXNzPVwidC1uYXZpZ2F0aW9uXCI+XG4gICAgPHR1aS1zY3JvbGxiYXJcbiAgICAgICAgY2xhc3M9XCJ0LXNjcm9sbGJhclwiXG4gICAgICAgIFt0dWlNb2RlXT1cIm1vZGUkIHwgYXN5bmNcIlxuICAgID5cbiAgICAgICAgPHR1aS1hY2NvcmRpb25cbiAgICAgICAgICAgIFtjbG9zZU90aGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbcm91bmRlZF09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0dWktYWNjb3JkaW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgbGFiZWxzOyBpbmRleCBhcyBpbmRleFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIFtib3JkZXJzXT1cIm51bGxcIlxuICAgICAgICAgICAgICAgIFsob3BlbildPVwiISFvcGVuUGFnZXNBcnJbaW5kZXhdXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBsYWJlbCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdHVpQWNjb3JkaW9uSXRlbUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0LXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1tpbmRleF07IGluZGV4IGFzIHN1YkluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBpbmRleDogaW5kZXggKiAxMDAgKyBzdWJJbmRleH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90dWktYWNjb3JkaW9uLWl0ZW0+XG4gICAgICAgIDwvdHVpLWFjY29yZGlvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInQtaXRlbXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNXaXRob3V0U2VjdGlvbnM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwYWdlc1wiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBpbmRleDogaXRlbXMubGVuZ3RoIC0gMSArIGluZGV4fVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI3BhZ2VzXG4gICAgICAgICAgICBsZXQtaXRlbT1cIml0ZW1cIlxuICAgICAgICAgICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0uc3ViUGFnZXM7IGVsc2Ugc3ViUGFnZXNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJ0LXN1YmxpbmtfYWN0aXZlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtc3VibGlua1wiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZVwiXG4gICAgICAgICAgICAgICAgW3R1aVNjcm9sbEludG9WaWV3TGlua109XCJpc0FjdGl2ZShpdGVtLnJvdXRlKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlTWVudSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3N1YlBhZ2VzVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1zdWJzZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cIntleGFjdDogZmFsc2V9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJQYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1zdWJsaW5rIHQtc3VibGlua19zdWJzZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkdyb3VwQ2xpY2soaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY2hldnJvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnQtY2hldnJvbl9hY3RpdmVdPVwiISFvcGVuUGFnZXNHcm91cHNBcnJbaW5kZXhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImljb25zLm1vcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdHVpLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktZXhwYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtZXhwYW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCIhIW9wZW5QYWdlc0dyb3Vwc0FycltpbmRleF1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidC1zZWN0aW9uIHQtc2VjdGlvbl9ib3JkZXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWJQYWdlIG9mICRwYWdlcyhpdGVtLnN1YlBhZ2VzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cInQtc3VibGlua19hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtc3VibGluayB0LXN1Ymxpbmtfc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzdWJQYWdlLnJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cInN1YlBhZ2UuZnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHVpU2Nyb2xsSW50b1ZpZXdMaW5rXT1cImlzQWN0aXZlKHN1YlBhZ2Uucm91dGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlTWVudSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN1YlBhZ2UudGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC90dWktZXhwYW5kPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3R1aS1zY3JvbGxiYXI+XG48L25hdj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { tuiCreateOptions, tuiProvideOptions } from '@taiga-ui/cdk';
|
|
2
|
+
export const TUI_DOC_DEFAULT_ICONS = {
|
|
3
|
+
search: `tuiIconSearch`,
|
|
4
|
+
day: `tuiIconSun`,
|
|
5
|
+
night: `tuiIconMoon`,
|
|
6
|
+
code: `tuiIconCode`,
|
|
7
|
+
menu: `tuiIconMenuLarge`,
|
|
8
|
+
};
|
|
9
|
+
export const TUI_DOC_ICONS = tuiCreateOptions(TUI_DOC_DEFAULT_ICONS);
|
|
10
|
+
export function tuiDocIconsProvider(icons) {
|
|
11
|
+
return tuiProvideOptions(TUI_DOC_ICONS, icons, TUI_DOC_DEFAULT_ICONS);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLWljb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL3Rva2Vucy9kb2MtaWNvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBVWxFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFnQjtJQUM5QyxNQUFNLEVBQUUsZUFBZTtJQUN2QixHQUFHLEVBQUUsWUFBWTtJQUNqQixLQUFLLEVBQUUsYUFBYTtJQUNwQixJQUFJLEVBQUUsYUFBYTtJQUNuQixJQUFJLEVBQUUsa0JBQWtCO0NBQzNCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVyRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsS0FBMkI7SUFDM0QsT0FBTyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlDcmVhdGVPcHRpb25zLCB0dWlQcm92aWRlT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpRG9jSWNvbnMge1xuICAgIHJlYWRvbmx5IHNlYXJjaDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGRheTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IG5pZ2h0OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgY29kZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IG1lbnU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFRVSV9ET0NfREVGQVVMVF9JQ09OUzogVHVpRG9jSWNvbnMgPSB7XG4gICAgc2VhcmNoOiBgdHVpSWNvblNlYXJjaGAsXG4gICAgZGF5OiBgdHVpSWNvblN1bmAsXG4gICAgbmlnaHQ6IGB0dWlJY29uTW9vbmAsXG4gICAgY29kZTogYHR1aUljb25Db2RlYCxcbiAgICBtZW51OiBgdHVpSWNvbk1lbnVMYXJnZWAsXG59O1xuXG5leHBvcnQgY29uc3QgVFVJX0RPQ19JQ09OUyA9IHR1aUNyZWF0ZU9wdGlvbnMoVFVJX0RPQ19ERUZBVUxUX0lDT05TKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aURvY0ljb25zUHJvdmlkZXIoaWNvbnM6IFBhcnRpYWw8VHVpRG9jSWNvbnM+KTogUHJvdmlkZXIge1xuICAgIHJldHVybiB0dWlQcm92aWRlT3B0aW9ucyhUVUlfRE9DX0lDT05TLCBpY29ucywgVFVJX0RPQ19ERUZBVUxUX0lDT05TKTtcbn1cbiJdfQ==
|
package/esm2015/tokens/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './code-actions';
|
|
2
2
|
export * from './code-editor';
|
|
3
3
|
export * from './default-tabs';
|
|
4
|
+
export * from './doc-icons';
|
|
4
5
|
export * from './example-content-processor';
|
|
5
6
|
export * from './excluded-properties';
|
|
6
7
|
export * from './i18n';
|
|
@@ -12,4 +13,4 @@ export * from './see-also';
|
|
|
12
13
|
export * from './source-code';
|
|
13
14
|
export * from './title';
|
|
14
15
|
export * from './url-state-handler';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb2RlLWFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2RlLWVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtdGFicyc7XG5leHBvcnQgKiBmcm9tICcuL2RvYy1pY29ucyc7XG5leHBvcnQgKiBmcm9tICcuL2V4YW1wbGUtY29udGVudC1wcm9jZXNzb3InO1xuZXhwb3J0ICogZnJvbSAnLi9leGNsdWRlZC1wcm9wZXJ0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bic7XG5leHBvcnQgKiBmcm9tICcuL2xvZ28nO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlLWxvYWRlZCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLWJlaGF2aW9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2VlLWFsc28nO1xuZXhwb3J0ICogZnJvbSAnLi9zb3VyY2UtY29kZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpdGxlJztcbmV4cG9ydCAqIGZyb20gJy4vdXJsLXN0YXRlLWhhbmRsZXInO1xuIl19
|