@rededor/site-front-end-lib 0.0.44 → 0.0.46

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.
@@ -1,4 +1,6 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, Inject, Input, Output, PLATFORM_ID } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import checkSafariAgent from '../../helpers/check-safari-agent.func';
2
4
  import * as i0 from "@angular/core";
3
5
  import * as i1 from "../../services/algolia-search-api/algolia-search-api.service";
4
6
  export class AlgoliaComponent {
@@ -13,8 +15,9 @@ export class AlgoliaComponent {
13
15
  this.ready = true;
14
16
  }
15
17
  }
16
- constructor(algoliaSearchApiService) {
18
+ constructor(algoliaSearchApiService, platformId) {
17
19
  this.algoliaSearchApiService = algoliaSearchApiService;
20
+ this.platformId = platformId;
18
21
  this.compAlgoliaConfig = { id: '', key: '' };
19
22
  this.label = '';
20
23
  this.name = 'cura-dropdown';
@@ -34,9 +37,31 @@ export class AlgoliaComponent {
34
37
  this.isMultiple = false;
35
38
  // State
36
39
  this.ready = false;
40
+ this.isMobile = false;
41
+ this.isSafari = false;
42
+ this.mediumBreakpoint = 768;
43
+ this.scrollY = 0;
37
44
  this.resetItem = new EventEmitter();
38
45
  this.algoliaResults = new EventEmitter();
39
46
  }
47
+ ngOnInit() {
48
+ if (isPlatformBrowser(this.platformId)) {
49
+ const viewportInnerWidth = window.innerWidth;
50
+ this.isMobile = viewportInnerWidth < this.mediumBreakpoint;
51
+ this.isSafari = checkSafariAgent();
52
+ }
53
+ }
54
+ manageFocusSafari() {
55
+ if (isPlatformBrowser(this.platformId) && this.isMobile && this.isSafari) {
56
+ this.scrollY = window.scrollY;
57
+ window.scrollTo(0, 0);
58
+ }
59
+ }
60
+ manageScrollPosition() {
61
+ if (isPlatformBrowser(this.platformId) && this.isMobile && this.isSafari) {
62
+ window.scrollTo({ top: this.scrollY });
63
+ }
64
+ }
40
65
  resetValues() {
41
66
  this.resetItem.emit();
42
67
  }
@@ -84,13 +109,16 @@ export class AlgoliaComponent {
84
109
  }
85
110
  }
86
111
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AlgoliaComponent, deps: [{ token: i1.AlgoliaSearchApiService }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: AlgoliaComponent, isStandalone: true, selector: "rdsite-algolia", inputs: { algoliaConfig: "algoliaConfig", label: "label", name: "name", required: "required", selected: "selected", value: "value", placeholder: "placeholder", deleteButton: "deleteButton", iconName: "iconName", status: "status", startSearchAtCharLen: "startSearchAtCharLen", hintTitle: "hintTitle", hints: "hints", searchParams: "searchParams" }, outputs: { resetItem: "resetItem", algoliaResults: "algoliaResults" }, ngImport: i0, template: "<cura-dropdown-search\r\n [value]=\"value\"\r\n [status]=\"status\"\r\n [name]=\"name\"\r\n [required]=\"required\"\r\n [selected]=\"selected\"\r\n [label]=\"label\"\r\n [iconName]=\"iconName\"\r\n [placeholder]=\"placeholder\"\r\n (valueChange)=\"resetValues()\"\r\n (input)=\"termChange($event)\"\r\n>\r\n @if (status === 'error') {\r\n <cura-dropdown-search-option name=\"error\">\r\n <div class=\"head\">\r\n <cura-icon size=\"24\" name=\"alertCircle\" color=\"error-700\"></cura-icon>\r\n <cura-paragraph size=\"small\" color=\"error-700\" weight=\"bold\"> N\u00E3o h\u00E1 nenhum resultado para \"{{ searchTerm.toUpperCase() }}\".</cura-paragraph>\r\n </div>\r\n </cura-dropdown-search-option>\r\n }\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n", styles: ["cura-dropdown-search-option[name=error]{pointer-events:none;cursor:default}cura-dropdown-search-option[name=error] .head{display:flex;flex-direction:row;justify-content:center;align-items:center;justify-content:flex-start;gap:8px;width:100%}cura-dropdown-search-option[name=error]::ng-deep cura-label{background-color:transparent!important}cura-dropdown-search-option[name=error]:hover{background-color:inherit;color:inherit;pointer-events:none}@media only screen and (min-width: 769px){cura-dropdown-search{position:relative;z-index:1}}\n"] }); }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AlgoliaComponent, deps: [{ token: i1.AlgoliaSearchApiService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: AlgoliaComponent, isStandalone: true, selector: "rdsite-algolia", inputs: { algoliaConfig: "algoliaConfig", label: "label", name: "name", required: "required", selected: "selected", value: "value", placeholder: "placeholder", deleteButton: "deleteButton", iconName: "iconName", status: "status", startSearchAtCharLen: "startSearchAtCharLen", hintTitle: "hintTitle", hints: "hints", searchParams: "searchParams" }, outputs: { resetItem: "resetItem", algoliaResults: "algoliaResults" }, ngImport: i0, template: "<cura-dropdown-search\r\n [value]=\"value\"\r\n [status]=\"status\"\r\n [name]=\"name\"\r\n [required]=\"required\"\r\n [selected]=\"selected\"\r\n [label]=\"label\"\r\n [iconName]=\"iconName\"\r\n [placeholder]=\"placeholder\"\r\n (valueChange)=\"resetValues()\"\r\n (input)=\"termChange($event)\"\r\n (focus)=\"manageFocusSafari()\"\r\n (blur)=\"manageScrollPosition()\"\r\n>\r\n @if (status === 'error') {\r\n <cura-dropdown-search-option name=\"error\">\r\n <div class=\"head\">\r\n <cura-icon size=\"24\" name=\"alertCircle\" color=\"error-700\"></cura-icon>\r\n <cura-paragraph size=\"small\" color=\"error-700\" weight=\"bold\"> N\u00E3o h\u00E1 nenhum resultado para \"{{ searchTerm.toUpperCase() }}\".</cura-paragraph>\r\n </div>\r\n </cura-dropdown-search-option>\r\n }\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n", styles: ["cura-dropdown-search-option[name=error]{pointer-events:none;cursor:default}cura-dropdown-search-option[name=error] .head{display:flex;flex-direction:row;justify-content:center;align-items:center;justify-content:flex-start;gap:8px;width:100%}cura-dropdown-search-option[name=error]::ng-deep cura-label{background-color:transparent!important}cura-dropdown-search-option[name=error]:hover{background-color:inherit;color:inherit;pointer-events:none}@media only screen and (min-width: 769px){cura-dropdown-search{position:relative;z-index:1}}\n"] }); }
89
114
  }
90
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AlgoliaComponent, decorators: [{
91
116
  type: Component,
92
- args: [{ selector: 'rdsite-algolia', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<cura-dropdown-search\r\n [value]=\"value\"\r\n [status]=\"status\"\r\n [name]=\"name\"\r\n [required]=\"required\"\r\n [selected]=\"selected\"\r\n [label]=\"label\"\r\n [iconName]=\"iconName\"\r\n [placeholder]=\"placeholder\"\r\n (valueChange)=\"resetValues()\"\r\n (input)=\"termChange($event)\"\r\n>\r\n @if (status === 'error') {\r\n <cura-dropdown-search-option name=\"error\">\r\n <div class=\"head\">\r\n <cura-icon size=\"24\" name=\"alertCircle\" color=\"error-700\"></cura-icon>\r\n <cura-paragraph size=\"small\" color=\"error-700\" weight=\"bold\"> N\u00E3o h\u00E1 nenhum resultado para \"{{ searchTerm.toUpperCase() }}\".</cura-paragraph>\r\n </div>\r\n </cura-dropdown-search-option>\r\n }\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n", styles: ["cura-dropdown-search-option[name=error]{pointer-events:none;cursor:default}cura-dropdown-search-option[name=error] .head{display:flex;flex-direction:row;justify-content:center;align-items:center;justify-content:flex-start;gap:8px;width:100%}cura-dropdown-search-option[name=error]::ng-deep cura-label{background-color:transparent!important}cura-dropdown-search-option[name=error]:hover{background-color:inherit;color:inherit;pointer-events:none}@media only screen and (min-width: 769px){cura-dropdown-search{position:relative;z-index:1}}\n"] }]
93
- }], ctorParameters: () => [{ type: i1.AlgoliaSearchApiService }], propDecorators: { algoliaConfig: [{
117
+ args: [{ selector: 'rdsite-algolia', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<cura-dropdown-search\r\n [value]=\"value\"\r\n [status]=\"status\"\r\n [name]=\"name\"\r\n [required]=\"required\"\r\n [selected]=\"selected\"\r\n [label]=\"label\"\r\n [iconName]=\"iconName\"\r\n [placeholder]=\"placeholder\"\r\n (valueChange)=\"resetValues()\"\r\n (input)=\"termChange($event)\"\r\n (focus)=\"manageFocusSafari()\"\r\n (blur)=\"manageScrollPosition()\"\r\n>\r\n @if (status === 'error') {\r\n <cura-dropdown-search-option name=\"error\">\r\n <div class=\"head\">\r\n <cura-icon size=\"24\" name=\"alertCircle\" color=\"error-700\"></cura-icon>\r\n <cura-paragraph size=\"small\" color=\"error-700\" weight=\"bold\"> N\u00E3o h\u00E1 nenhum resultado para \"{{ searchTerm.toUpperCase() }}\".</cura-paragraph>\r\n </div>\r\n </cura-dropdown-search-option>\r\n }\r\n <ng-content></ng-content>\r\n</cura-dropdown-search>\r\n", styles: ["cura-dropdown-search-option[name=error]{pointer-events:none;cursor:default}cura-dropdown-search-option[name=error] .head{display:flex;flex-direction:row;justify-content:center;align-items:center;justify-content:flex-start;gap:8px;width:100%}cura-dropdown-search-option[name=error]::ng-deep cura-label{background-color:transparent!important}cura-dropdown-search-option[name=error]:hover{background-color:inherit;color:inherit;pointer-events:none}@media only screen and (min-width: 769px){cura-dropdown-search{position:relative;z-index:1}}\n"] }]
118
+ }], ctorParameters: () => [{ type: i1.AlgoliaSearchApiService }, { type: undefined, decorators: [{
119
+ type: Inject,
120
+ args: [PLATFORM_ID]
121
+ }] }], propDecorators: { algoliaConfig: [{
94
122
  type: Input,
95
123
  args: ['algoliaConfig']
96
124
  }], label: [{
@@ -124,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
124
152
  }], algoliaResults: [{
125
153
  type: Output
126
154
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb2xpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FsZ29saWEvYWxnb2xpYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FsZ29saWEvYWxnb2xpYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFZL0YsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsMkRBQTJEO0lBQzNELElBQ0ksYUFBYSxDQUFDLE1BQXFCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUE0QkQsWUFBNkIsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUF4QzdFLHNCQUFpQixHQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBYzlDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxTQUFJLEdBQUcsZUFBZSxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztR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QkFDNUMsQ0FBQztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBeEZVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLDZlQ1o3QiwyeUJBc0JBOzs0RkRWYSxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsc0JBQXNCLENBQUM7NEZBVzdCLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsZUFBZTtnQkFTYixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQVVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFsZ29saWFDb25maWcsIEFsZ29saWFTZWFyY2hQYXJhbXMsIFJkc2xBbGdvbGlhTXVsdGlwbGVJbmRleCB9IGZyb20gJy4uLy4uL21vZGVscy9hbGdvbGlhLXNlYXJjaC1hcGkubW9kZWwnO1xyXG5pbXBvcnQgeyBBbGdvbGlhU2VhcmNoQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZ29saWEtc2VhcmNoLWFwaS9hbGdvbGlhLXNlYXJjaC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZ29saWFPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxnb2xpYS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Jkc2l0ZS1hbGdvbGlhJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWxnb2xpYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FsZ29saWEuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWxnb2xpYUNvbXBvbmVudCB7XHJcbiAgY29tcEFsZ29saWFDb25maWc6IEFsZ29saWFDb25maWcgPSB7IGlkOiAnJywga2V5OiAnJyB9O1xyXG4gIGdldCBhbGdvbGlhQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcEFsZ29saWFDb25maWc7XHJcbiAgfVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdhbGdvbGlhQ29uZmlnJylcclxuICBzZXQgYWxnb2xpYUNvbmZpZyhjb25maWc6IEFsZ29saWFDb25maWcpIHtcclxuICAgIHRoaXMucmVhZHkgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnNldHVwQWxnb2xpYShjb25maWcpKSB7XHJcbiAgICAgIHRoaXMuY29tcEFsZ29saWFDb25maWcgPSBjb25maWc7XHJcbiAgICAgIHRoaXMucmVhZHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBuYW1lID0gJ2N1cmEtZHJvcGRvd24nO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ0Zhw6dhIGEgc3VhIGJ1c2NhJztcclxuICBASW5wdXQoKSBkZWxldGVCdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpY29uTmFtZSA9ICdzZWFyY2gnO1xyXG4gIEBJbnB1dCgpIHN0YXR1czogJ2RlZmF1bHQnIHwgJ2Vycm9yJyA9ICdkZWZhdWx0JztcclxuXHJcbiAgQElucHV0KCkgc3RhcnRTZWFyY2hBdENoYXJMZW46IG51bWJlciA9IDI7XHJcbiAgQElucHV0KCkgaGludFRpdGxlID0gJ01haXMgQnVzY2Fkb3MnO1xyXG4gIEBJbnB1dCgpIGhpbnRzOiBBbGdvbGlhT3B0aW9uW10gPSBbXTtcclxuICBASW5wdXQoKSBzZWFyY2hQYXJhbXM6IEFsZ29saWFTZWFyY2hQYXJhbXMgPSB7fTtcclxuXHJcbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vIEFsZ29saWFcclxuICBpc011bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIFN0YXRlXHJcbiAgcmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHJlc2V0SXRlbTogRXZlbnRFbWl0dGVyPHt9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWxnb2xpYVJlc3VsdHM6IEV2ZW50RW1pdHRlcjx7fT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWxnb2xpYVNlYXJjaEFwaVNlcnZpY2U6IEFsZ29saWFTZWFyY2hBcGlTZXJ2aWNlKSB7fVxyXG5cclxuICByZXNldFZhbHVlcygpIHtcclxuICAgIHRoaXMucmVzZXRJdGVtLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHRlcm1DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSkge1xyXG4gICAgICB0aGlzLnNlYXJjaFRlcm0gPSBldmVudD8udGFyZ2V0Py52YWx1ZTtcclxuICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVzZXRWYWx1ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldHVwQWxnb2xpYShjb25maWc6IEFsZ29saWFDb25maWcpOiBib29sZWFuIHtcclxuICAgIGlmIChjb25maWc/LmlkICYmIGNvbmZpZz8ua2V5ICYmIChjb25maWc/LmluZGV4IHx8IGNvbmZpZz8ubXVsdGlwbGVJbmRleCkpIHtcclxuICAgICAgaWYgKGNvbmZpZy5tdWx0aXBsZUluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5pc011bHRpcGxlID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzTXVsdGlwbGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlYXJjaCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFRlcm0/Lmxlbmd0aCA+PSB0aGlzLnN0YXJ0U2VhcmNoQXRDaGFyTGVuICYmIHRoaXMucmVhZHkpIHtcclxuICAgICAgaWYgKCF0aGlzLmlzTXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLmFsZ29saWFTZWFyY2hBcGlTZXJ2aWNlLnNlYXJjaCh0aGlzLnNlYXJjaFRlcm0sIHRoaXMuYWxnb2xpYUNvbmZpZy5pbmRleCEsIHRoaXMuc2VhcmNoUGFyYW1zKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hbGdvbGlhUmVzdWx0cy5lbWl0KHJlc3VsdHMpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBxdWVyaWVzOiBSZHNsQWxnb2xpYU11bHRpcGxlSW5kZXhbXSA9IHRoaXMuY29tcEFsZ29saWFDb25maWc/Lm11bHRpcGxlSW5kZXghLm1hcCgoaTogUmRzbEFsZ29saWFNdWx0aXBsZUluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geyAuLi5pLCBxdWVyeTogdGhpcy5zZWFyY2hUZXJtIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hbGdvbGlhU2VhcmNoQXBpU2VydmljZS5zZWFyY2hNdWx0aXBsZUluZGV4ZXMocXVlcmllcykuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxnb2xpYVJlc3VsdHMuZW1pdChyZXN1bHRzLnJlc3VsdHMpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8Y3VyYS1kcm9wZG93bi1zZWFyY2hcclxuICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gIFtzdGF0dXNdPVwic3RhdHVzXCJcclxuICBbbmFtZV09XCJuYW1lXCJcclxuICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbaWNvbk5hbWVdPVwiaWNvbk5hbWVcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgKHZhbHVlQ2hhbmdlKT1cInJlc2V0VmFsdWVzKClcIlxyXG4gIChpbnB1dCk9XCJ0ZXJtQ2hhbmdlKCRldmVudClcIlxyXG4+XHJcbiAgQGlmIChzdGF0dXMgPT09ICdlcnJvcicpIHtcclxuICAgIDxjdXJhLWRyb3Bkb3duLXNlYXJjaC1vcHRpb24gbmFtZT1cImVycm9yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkXCI+XHJcbiAgICAgICAgPGN1cmEtaWNvbiBzaXplPVwiMjRcIiBuYW1lPVwiYWxlcnRDaXJjbGVcIiBjb2xvcj1cImVycm9yLTcwMFwiPjwvY3VyYS1pY29uPlxyXG4gICAgICAgIDxjdXJhLXBhcmFncmFwaCBzaXplPVwic21hbGxcIiBjb2xvcj1cImVycm9yLTcwMFwiIHdlaWdodD1cImJvbGRcIj4gTsOjbyBow6EgbmVuaHVtIHJlc3VsdGFkbyBwYXJhIFwie3sgc2VhcmNoVGVybS50b1VwcGVyQ2FzZSgpIH19XCIuPC9jdXJhLXBhcmFncmFwaD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2N1cmEtZHJvcGRvd24tc2VhcmNoLW9wdGlvbj5cclxuICB9XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2N1cmEtZHJvcGRvd24tc2VhcmNoPlxyXG4iXX0=
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb2xpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FsZ29saWEvYWxnb2xpYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FsZ29saWEvYWxnb2xpYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxnQkFBZ0IsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBU3JFLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELDJEQUEyRDtJQUMzRCxJQUNJLGFBQWEsQ0FBQyxNQUFxQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBZ0NELFlBQ21CLHVCQUFnRCxFQUMzQixVQUFrQjtRQUR2Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQVE7UUE5QzFELHNCQUFpQixHQUFrQixFQUFFLEVBQUUsRUFBRSxF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QztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBcEhVLGdCQUFnQix5REErQ2pCLFdBQVc7bUdBL0NWLGdCQUFnQiw2ZUNkN0IsdTNCQXdCQTs7NEZEVmEsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLHNCQUFzQixDQUFDOzswQkFtRDlCLE1BQU07MkJBQUMsV0FBVzt5Q0F4Q2pCLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsZUFBZTtnQkFTYixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQWNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWxnb2xpYUNvbmZpZywgQWxnb2xpYVNlYXJjaFBhcmFtcywgUmRzbEFsZ29saWFNdWx0aXBsZUluZGV4IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FsZ29saWEtc2VhcmNoLWFwaS5tb2RlbCc7XHJcbmltcG9ydCB7IEFsZ29saWFTZWFyY2hBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxnb2xpYS1zZWFyY2gtYXBpL2FsZ29saWEtc2VhcmNoLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxnb2xpYU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hbGdvbGlhLm1vZGVsJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgY2hlY2tTYWZhcmlBZ2VudCBmcm9tICcuLi8uLi9oZWxwZXJzL2NoZWNrLXNhZmFyaS1hZ2VudC5mdW5jJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmRzaXRlLWFsZ29saWEnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGdvbGlhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWxnb2xpYS5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGdvbGlhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb21wQWxnb2xpYUNvbmZpZzogQWxnb2xpYUNvbmZpZyA9IHsgaWQ6ICcnLCBrZXk6ICcnIH07XHJcbiAgZ2V0IGFsZ29saWFDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wQWxnb2xpYUNvbmZpZztcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2FsZ29saWFDb25maWcnKVxyXG4gIHNldCBhbGdvbGlhQ29uZmlnKGNvbmZpZzogQWxnb2xpYUNvbmZpZykge1xyXG4gICAgdGhpcy5yZWFkeSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc2V0dXBBbGdvbGlhKGNvbmZpZykpIHtcclxuICAgICAgdGhpcy5jb21wQWxnb2xpYUNvbmZpZyA9IGNvbmZpZztcclxuICAgICAgdGhpcy5yZWFkeSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIG5hbWUgPSAnY3VyYS1kcm9wZG93bic7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnRmHDp2EgYSBzdWEgYnVzY2EnO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZUJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGljb25OYW1lID0gJ3NlYXJjaCc7XHJcbiAgQElucHV0KCkgc3RhdHVzOiAnZGVmYXVsdCcgfCAnZXJyb3InID0gJ2RlZmF1bHQnO1xyXG5cclxuICBASW5wdXQoKSBzdGFydFNlYXJjaEF0Q2hhckxlbjogbnVtYmVyID0gMjtcclxuICBASW5wdXQoKSBoaW50VGl0bGUgPSAnTWFpcyBCdXNjYWRvcyc7XHJcbiAgQElucHV0KCkgaGludHM6IEFsZ29saWFPcHRpb25bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFBhcmFtczogQWxnb2xpYVNlYXJjaFBhcmFtcyA9IHt9O1xyXG5cclxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gQWxnb2xpYVxyXG4gIGlzTXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gU3RhdGVcclxuICByZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTW9iaWxlID0gZmFsc2U7XHJcbiAgaXNTYWZhcmkgPSBmYWxzZTtcclxuICBtZWRpdW1CcmVha3BvaW50ID0gNzY4O1xyXG4gIHNjcm9sbFkgPSAwO1xyXG5cclxuICBAT3V0cHV0KCkgcmVzZXRJdGVtOiBFdmVudEVtaXR0ZXI8e30+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBhbGdvbGlhUmVzdWx0czogRXZlbnRFbWl0dGVyPHt9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZ29saWFTZWFyY2hBcGlTZXJ2aWNlOiBBbGdvbGlhU2VhcmNoQXBpU2VydmljZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZDogb2JqZWN0LFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICBjb25zdCB2aWV3cG9ydElubmVyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgdGhpcy5pc01vYmlsZSA9IHZpZXdwb3J0SW5uZXJXaWR0aCA8IHRoaXMubWVkaXVtQnJlYWtwb2ludDtcclxuICAgICAgdGhpcy5pc1NhZmFyaSA9IGNoZWNrU2FmYXJpQWdlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hbmFnZUZvY3VzU2FmYXJpKCkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdGhpcy5pc01vYmlsZSAmJiB0aGlzLmlzU2FmYXJpKSB7XHJcbiAgICAgIHRoaXMuc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZO1xyXG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYW5hZ2VTY3JvbGxQb3NpdGlvbigpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5pc1NhZmFyaSkge1xyXG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRoaXMuc2Nyb2xsWSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0VmFsdWVzKCkge1xyXG4gICAgdGhpcy5yZXNldEl0ZW0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgdGVybUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGVybSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xyXG4gICAgICB0aGlzLnNlYXJjaCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZXNldFZhbHVlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0dXBBbGdvbGlhKGNvbmZpZzogQWxnb2xpYUNvbmZpZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGNvbmZpZz8uaWQgJiYgY29uZmlnPy5rZXkgJiYgKGNvbmZpZz8uaW5kZXggfHwgY29uZmlnPy5tdWx0aXBsZUluZGV4KSkge1xyXG4gICAgICBpZiAoY29uZmlnLm11bHRpcGxlSW5kZXgpIHtcclxuICAgICAgICB0aGlzLmlzTXVsdGlwbGUgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aXBsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVGVybT8ubGVuZ3RoID49IHRoaXMuc3RhcnRTZWFyY2hBdENoYXJMZW4gJiYgdGhpcy5yZWFkeSkge1xyXG4gICAgICBpZiAoIXRoaXMuaXNNdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMuYWxnb2xpYVNlYXJjaEFwaVNlcnZpY2Uuc2VhcmNoKHRoaXMuc2VhcmNoVGVybSwgdGhpcy5hbGdvbGlhQ29uZmlnLmluZGV4ISwgdGhpcy5zZWFyY2hQYXJhbXMpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAocmVzdWx0cykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFsZ29saWFSZXN1bHRzLmVtaXQocmVzdWx0cyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHF1ZXJpZXM6IFJkc2xBbGdvbGlhTXVsdGlwbGVJbmRleFtdID0gdGhpcy5jb21wQWxnb2xpYUNvbmZpZz8ubXVsdGlwbGVJbmRleCEubWFwKChpOiBSZHNsQWxnb2xpYU11bHRpcGxlSW5kZXgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7IC4uLmksIHF1ZXJ5OiB0aGlzLnNlYXJjaFRlcm0gfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFsZ29saWFTZWFyY2hBcGlTZXJ2aWNlLnNlYXJjaE11bHRpcGxlSW5kZXhlcyhxdWVyaWVzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hbGdvbGlhUmVzdWx0cy5lbWl0KHJlc3VsdHMucmVzdWx0cyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxjdXJhLWRyb3Bkb3duLXNlYXJjaFxyXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgW3N0YXR1c109XCJzdGF0dXNcIlxyXG4gIFtuYW1lXT1cIm5hbWVcIlxyXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gIFtpY29uTmFtZV09XCJpY29uTmFtZVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAodmFsdWVDaGFuZ2UpPVwicmVzZXRWYWx1ZXMoKVwiXHJcbiAgKGlucHV0KT1cInRlcm1DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgKGZvY3VzKT1cIm1hbmFnZUZvY3VzU2FmYXJpKClcIlxyXG4gIChibHVyKT1cIm1hbmFnZVNjcm9sbFBvc2l0aW9uKClcIlxyXG4+XHJcbiAgQGlmIChzdGF0dXMgPT09ICdlcnJvcicpIHtcclxuICAgIDxjdXJhLWRyb3Bkb3duLXNlYXJjaC1vcHRpb24gbmFtZT1cImVycm9yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkXCI+XHJcbiAgICAgICAgPGN1cmEtaWNvbiBzaXplPVwiMjRcIiBuYW1lPVwiYWxlcnRDaXJjbGVcIiBjb2xvcj1cImVycm9yLTcwMFwiPjwvY3VyYS1pY29uPlxyXG4gICAgICAgIDxjdXJhLXBhcmFncmFwaCBzaXplPVwic21hbGxcIiBjb2xvcj1cImVycm9yLTcwMFwiIHdlaWdodD1cImJvbGRcIj4gTsOjbyBow6EgbmVuaHVtIHJlc3VsdGFkbyBwYXJhIFwie3sgc2VhcmNoVGVybS50b1VwcGVyQ2FzZSgpIH19XCIuPC9jdXJhLXBhcmFncmFwaD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2N1cmEtZHJvcGRvd24tc2VhcmNoLW9wdGlvbj5cclxuICB9XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2N1cmEtZHJvcGRvd24tc2VhcmNoPlxyXG4iXX0=
@@ -64,11 +64,11 @@ export class HeaderComponent {
64
64
  this.headerService.toggleShowSearch(false);
65
65
  }
66
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.CuraService }, { token: i2.HeaderService }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: HeaderComponent, isStandalone: true, selector: "rdsite-header", inputs: { project: "project", theme: "theme", searchControl: "searchControl" }, outputs: { searchChange: "searchChange" }, ngImport: i0, template: "<header class=\"rdsite-header\" [ngStyle]=\"getCuraCssVars('header')\">\r\n <div class=\"rdsite-header-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div class=\"rdsite-header-logo\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-logo\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-aux-menu\" [ngStyle]=\"getCuraCssVars('aux')\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-aux-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-action-menu\" [ngStyle]=\"getCuraCssVars('action')\">\r\n <ng-content select=\"rdsite-header-action-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-main-menu\" [ngStyle]=\"getCuraCssVars('main')\">\r\n <ng-content select=\"rdsite-header-main-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-side-menu\" [ngStyle]=\"getCuraCssVars('side')\">\r\n <!-- <ng-content select=\"rdsite-header-side-menu\"></ng-content> -->\r\n <ng-content select=\"#rdsite-header-side-menu\"></ng-content>\r\n </div>\r\n @if (searchControl) {\r\n <div class=\"rdsite-header-search\">\r\n <rdsite-search [searchControl]=\"searchControl\" [label]=\"'O que voc\u00EA procura?'\" [debounceTime]=\"1500\" [setFocus]=\"true\" (enterPress)=\"doSearch($event)\">\r\n </rdsite-search>\r\n </div>\r\n }\r\n </div>\r\n\r\n <rdsite-overlay class=\"search-overlay\" [ngClass]=\"{ active: headerService.showSearch() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n</header>\r\n", styles: [".rdsite-header{position:sticky;top:0;z-index:9999;display:grid!important;grid-template-areas:\". content .\";grid-template-columns:minmax(0px,1fr) minmax(auto,1366px) minmax(0px,1fr);grid-template-rows:80px;background-color:var(--header-bg-color);height:80px}.rdsite-header::ng-deep *{font-family:Gotham,Arial,Helvetica,sans-serif}.rdsite-header .rdsite-header-content{grid-area:content;display:grid!important;grid-template-areas:\"logo . action\" \"logo . action\" \"main main main\";grid-template-columns:144px 1fr auto;grid-template-rows:36px 44px 0px}.rdsite-header .rdsite-header-content .rdsite-header-logo{grid-area:logo}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu{display:none;grid-area:aux;background-color:var(--header-aux-bg-color);justify-content:flex-start}.rdsite-header .rdsite-header-content .rdsite-header-action-menu{grid-area:action;background-color:var(--header-act-bg-color)}.rdsite-header .rdsite-header-content .rdsite-header-main-menu{grid-area:main}.rdsite-header .rdsite-header-content .rdsite-header-search{grid-area:search;display:none;z-index:-1}.rdsite-header .rdsite-header-content .rdsite-header-search rdsite-search{background-color:#fff;width:100%;height:100%;display:block}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo . action\" \"logo . action\" \"search search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-main-menu{display:none}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:48px;display:block;z-index:1000}.rdsite-header .search-overlay{top:100%;right:0;z-index:-1;width:100vw;height:100vh;transition:all .3s ease-out;opacity:0;background-color:var(--header-overlay-bg-color);pointer-events:none}.rdsite-header .search-overlay.active{z-index:999;opacity:.9;pointer-events:all}@media only screen and (min-width: 1024px){.rdsite-header .rdsite-header-content{grid-template-areas:\"logo aux action\" \"logo main main\";grid-template-columns:144px 1fr auto}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo aux action\" \"logo search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:auto}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu,.rdsite-header .rdsite-header-content .rdsite-header-main-menu{display:block}}@media only screen and (min-width: 1366px){.rdsite-header{height:88px}.rdsite-header .rdsite-header-content{grid-template-rows:36px 52px;height:88px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: OverlayComponent, selector: "rdsite-overlay", outputs: ["overlayClick"] }, { kind: "component", type: SearchComponent, selector: "rdsite-search", inputs: ["searchControl", "showSearchButtonMobile", "debounceTime", "label", "canClean", "enable", "loading", "setFocus"], outputs: ["controlBlur", "controlFocus", "controlReset", "termChange", "enterPress"] }] }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: HeaderComponent, isStandalone: true, selector: "rdsite-header", inputs: { project: "project", theme: "theme", searchControl: "searchControl" }, outputs: { searchChange: "searchChange" }, ngImport: i0, template: "<header class=\"rdsite-header\" [ngStyle]=\"getCuraCssVars('header')\">\r\n <div class=\"rdsite-header-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div class=\"rdsite-header-logo\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-logo\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-aux-menu\" [ngStyle]=\"getCuraCssVars('aux')\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-aux-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-action-menu\" [ngStyle]=\"getCuraCssVars('action')\">\r\n <ng-content select=\"rdsite-header-action-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-main-menu\" [ngStyle]=\"getCuraCssVars('main')\">\r\n <ng-content select=\"rdsite-header-main-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-side-menu\" [ngStyle]=\"getCuraCssVars('side')\">\r\n <!-- <ng-content select=\"rdsite-header-side-menu\"></ng-content> -->\r\n <ng-content select=\"#rdsite-header-side-menu\"></ng-content>\r\n </div>\r\n @if (searchControl) {\r\n <div class=\"rdsite-header-search\">\r\n <rdsite-search [searchControl]=\"searchControl\" [label]=\"'O que voc\u00EA procura?'\" [debounceTime]=\"1500\" [setFocus]=\"true\" (enterPress)=\"doSearch($event)\">\r\n </rdsite-search>\r\n </div>\r\n }\r\n </div>\r\n\r\n <rdsite-overlay class=\"search-overlay\" [ngClass]=\"{ active: headerService.showSearch() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n</header>\r\n", styles: [".rdsite-header{position:sticky;top:0;z-index:9999;display:grid!important;grid-template-areas:\". content .\";grid-template-columns:minmax(0px,1fr) minmax(auto,1366px) minmax(0px,1fr);grid-template-rows:80px;background-color:var(--header-bg-color);height:80px}.rdsite-header::ng-deep *{font-family:Gotham,Arial,Helvetica,sans-serif}.rdsite-header .rdsite-header-content{grid-area:content;display:grid!important;grid-template-areas:\"logo . action\" \"logo . action\" \"main main main\";grid-template-columns:144px 1fr auto;grid-template-rows:36px 44px 0px}.rdsite-header .rdsite-header-content .rdsite-header-logo{grid-area:logo}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu{display:none;grid-area:aux;background-color:var(--header-aux-bg-color);justify-content:flex-start}.rdsite-header .rdsite-header-content .rdsite-header-action-menu{grid-area:action;background-color:var(--header-act-bg-color)}.rdsite-header .rdsite-header-content .rdsite-header-main-menu{grid-area:main}.rdsite-header .rdsite-header-content .rdsite-header-search{grid-area:search;display:none;z-index:-1}.rdsite-header .rdsite-header-content .rdsite-header-search rdsite-search{background-color:#fff;width:100%;height:100%;display:block}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo . action\" \"logo . action\" \"search search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-main-menu{display:none}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:48px;display:block;z-index:1000}.rdsite-header .search-overlay{top:100%;right:0;z-index:-1;width:100vw;height:calc(100vh - 100%);transition:all .3s ease-out;opacity:0;background-color:var(--header-overlay-bg-color);pointer-events:none}.rdsite-header .search-overlay.active{z-index:999;opacity:.9;pointer-events:all}@media only screen and (min-width: 1024px){.rdsite-header .rdsite-header-content{grid-template-areas:\"logo aux action\" \"logo main main\";grid-template-columns:144px 1fr auto}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo aux action\" \"logo search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:auto}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu,.rdsite-header .rdsite-header-content .rdsite-header-main-menu{display:block}}@media only screen and (min-width: 1366px){.rdsite-header{height:88px}.rdsite-header .rdsite-header-content{grid-template-rows:36px 52px;height:88px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: OverlayComponent, selector: "rdsite-overlay", outputs: ["overlayClick"] }, { kind: "component", type: SearchComponent, selector: "rdsite-search", inputs: ["searchControl", "showSearchButtonMobile", "debounceTime", "label", "canClean", "enable", "loading", "setFocus"], outputs: ["controlBlur", "controlFocus", "controlReset", "termChange", "enterPress"] }] }); }
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: HeaderComponent, decorators: [{
70
70
  type: Component,
71
- args: [{ selector: 'rdsite-header', standalone: true, imports: [CommonModule, OverlayComponent, SearchComponent], template: "<header class=\"rdsite-header\" [ngStyle]=\"getCuraCssVars('header')\">\r\n <div class=\"rdsite-header-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div class=\"rdsite-header-logo\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-logo\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-aux-menu\" [ngStyle]=\"getCuraCssVars('aux')\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-aux-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-action-menu\" [ngStyle]=\"getCuraCssVars('action')\">\r\n <ng-content select=\"rdsite-header-action-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-main-menu\" [ngStyle]=\"getCuraCssVars('main')\">\r\n <ng-content select=\"rdsite-header-main-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-side-menu\" [ngStyle]=\"getCuraCssVars('side')\">\r\n <!-- <ng-content select=\"rdsite-header-side-menu\"></ng-content> -->\r\n <ng-content select=\"#rdsite-header-side-menu\"></ng-content>\r\n </div>\r\n @if (searchControl) {\r\n <div class=\"rdsite-header-search\">\r\n <rdsite-search [searchControl]=\"searchControl\" [label]=\"'O que voc\u00EA procura?'\" [debounceTime]=\"1500\" [setFocus]=\"true\" (enterPress)=\"doSearch($event)\">\r\n </rdsite-search>\r\n </div>\r\n }\r\n </div>\r\n\r\n <rdsite-overlay class=\"search-overlay\" [ngClass]=\"{ active: headerService.showSearch() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n</header>\r\n", styles: [".rdsite-header{position:sticky;top:0;z-index:9999;display:grid!important;grid-template-areas:\". content .\";grid-template-columns:minmax(0px,1fr) minmax(auto,1366px) minmax(0px,1fr);grid-template-rows:80px;background-color:var(--header-bg-color);height:80px}.rdsite-header::ng-deep *{font-family:Gotham,Arial,Helvetica,sans-serif}.rdsite-header .rdsite-header-content{grid-area:content;display:grid!important;grid-template-areas:\"logo . action\" \"logo . action\" \"main main main\";grid-template-columns:144px 1fr auto;grid-template-rows:36px 44px 0px}.rdsite-header .rdsite-header-content .rdsite-header-logo{grid-area:logo}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu{display:none;grid-area:aux;background-color:var(--header-aux-bg-color);justify-content:flex-start}.rdsite-header .rdsite-header-content .rdsite-header-action-menu{grid-area:action;background-color:var(--header-act-bg-color)}.rdsite-header .rdsite-header-content .rdsite-header-main-menu{grid-area:main}.rdsite-header .rdsite-header-content .rdsite-header-search{grid-area:search;display:none;z-index:-1}.rdsite-header .rdsite-header-content .rdsite-header-search rdsite-search{background-color:#fff;width:100%;height:100%;display:block}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo . action\" \"logo . action\" \"search search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-main-menu{display:none}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:48px;display:block;z-index:1000}.rdsite-header .search-overlay{top:100%;right:0;z-index:-1;width:100vw;height:100vh;transition:all .3s ease-out;opacity:0;background-color:var(--header-overlay-bg-color);pointer-events:none}.rdsite-header .search-overlay.active{z-index:999;opacity:.9;pointer-events:all}@media only screen and (min-width: 1024px){.rdsite-header .rdsite-header-content{grid-template-areas:\"logo aux action\" \"logo main main\";grid-template-columns:144px 1fr auto}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo aux action\" \"logo search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:auto}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu,.rdsite-header .rdsite-header-content .rdsite-header-main-menu{display:block}}@media only screen and (min-width: 1366px){.rdsite-header{height:88px}.rdsite-header .rdsite-header-content{grid-template-rows:36px 52px;height:88px}}\n"] }]
71
+ args: [{ selector: 'rdsite-header', standalone: true, imports: [CommonModule, OverlayComponent, SearchComponent], template: "<header class=\"rdsite-header\" [ngStyle]=\"getCuraCssVars('header')\">\r\n <div class=\"rdsite-header-content\" [ngClass]=\"{ 'show-search': headerService.showSearch() }\">\r\n <div class=\"rdsite-header-logo\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-logo\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-aux-menu\" [ngStyle]=\"getCuraCssVars('aux')\" (click)=\"overlayClick()\">\r\n <ng-content select=\"rdsite-header-aux-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-action-menu\" [ngStyle]=\"getCuraCssVars('action')\">\r\n <ng-content select=\"rdsite-header-action-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-main-menu\" [ngStyle]=\"getCuraCssVars('main')\">\r\n <ng-content select=\"rdsite-header-main-menu\"></ng-content>\r\n </div>\r\n <div class=\"rdsite-header-side-menu\" [ngStyle]=\"getCuraCssVars('side')\">\r\n <!-- <ng-content select=\"rdsite-header-side-menu\"></ng-content> -->\r\n <ng-content select=\"#rdsite-header-side-menu\"></ng-content>\r\n </div>\r\n @if (searchControl) {\r\n <div class=\"rdsite-header-search\">\r\n <rdsite-search [searchControl]=\"searchControl\" [label]=\"'O que voc\u00EA procura?'\" [debounceTime]=\"1500\" [setFocus]=\"true\" (enterPress)=\"doSearch($event)\">\r\n </rdsite-search>\r\n </div>\r\n }\r\n </div>\r\n\r\n <rdsite-overlay class=\"search-overlay\" [ngClass]=\"{ active: headerService.showSearch() }\" (overlayClick)=\"overlayClick()\"></rdsite-overlay>\r\n</header>\r\n", styles: [".rdsite-header{position:sticky;top:0;z-index:9999;display:grid!important;grid-template-areas:\". content .\";grid-template-columns:minmax(0px,1fr) minmax(auto,1366px) minmax(0px,1fr);grid-template-rows:80px;background-color:var(--header-bg-color);height:80px}.rdsite-header::ng-deep *{font-family:Gotham,Arial,Helvetica,sans-serif}.rdsite-header .rdsite-header-content{grid-area:content;display:grid!important;grid-template-areas:\"logo . action\" \"logo . action\" \"main main main\";grid-template-columns:144px 1fr auto;grid-template-rows:36px 44px 0px}.rdsite-header .rdsite-header-content .rdsite-header-logo{grid-area:logo}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu{display:none;grid-area:aux;background-color:var(--header-aux-bg-color);justify-content:flex-start}.rdsite-header .rdsite-header-content .rdsite-header-action-menu{grid-area:action;background-color:var(--header-act-bg-color)}.rdsite-header .rdsite-header-content .rdsite-header-main-menu{grid-area:main}.rdsite-header .rdsite-header-content .rdsite-header-search{grid-area:search;display:none;z-index:-1}.rdsite-header .rdsite-header-content .rdsite-header-search rdsite-search{background-color:#fff;width:100%;height:100%;display:block}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo . action\" \"logo . action\" \"search search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-main-menu{display:none}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:48px;display:block;z-index:1000}.rdsite-header .search-overlay{top:100%;right:0;z-index:-1;width:100vw;height:calc(100vh - 100%);transition:all .3s ease-out;opacity:0;background-color:var(--header-overlay-bg-color);pointer-events:none}.rdsite-header .search-overlay.active{z-index:999;opacity:.9;pointer-events:all}@media only screen and (min-width: 1024px){.rdsite-header .rdsite-header-content{grid-template-areas:\"logo aux action\" \"logo main main\";grid-template-columns:144px 1fr auto}.rdsite-header .rdsite-header-content.show-search{grid-template-areas:\"logo aux action\" \"logo search search\"}.rdsite-header .rdsite-header-content.show-search .rdsite-header-search{height:auto}.rdsite-header .rdsite-header-content .rdsite-header-aux-menu,.rdsite-header .rdsite-header-content .rdsite-header-main-menu{display:block}}@media only screen and (min-width: 1366px){.rdsite-header{height:88px}.rdsite-header .rdsite-header-content{grid-template-rows:36px 52px;height:88px}}\n"] }]
72
72
  }], ctorParameters: () => [{ type: i1.CuraService }, { type: i2.HeaderService }, { type: Document, decorators: [{
73
73
  type: Inject,
74
74
  args: [DOCUMENT]
@@ -84,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
84
84
  }], searchChange: [{
85
85
  type: Output
86
86
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBUzdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFHRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUks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dGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5ULCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDdXJhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZ2V0SGVhZGVyVGhlbWUgfSBmcm9tICcuL2hlbHBlcnMvaGVhZGVyVGhlbWUuZnVuYyc7XHJcbmltcG9ydCB7IEhlYWRlclRoZW1lLCBIZWFkZXJUaGVtZUtleXMgfSBmcm9tICcuL21vZGVscy9IZWFkZXJUaGVtZS5tb2RlbCc7XHJcbmltcG9ydCB7IEhlYWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2hlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4uL292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmRzaXRlLWhlYWRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5Q29tcG9uZW50LCBTZWFyY2hDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIGdldCBwcm9qZWN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Byb2plY3Q7XHJcbiAgfVxyXG4gIHNldCBwcm9qZWN0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Byb2plY3QgPSB2YWx1ZTtcclxuICAgIHRoaXMuaGVhZGVyVGhlbWUgPSBnZXRIZWFkZXJUaGVtZSh0aGlzLnByb2plY3QsIHRoaXMudGhlbWUsIHRoaXMuY3VyYVNlcnZpY2UpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wcm9qZWN0OiBzdHJpbmcgPSAnc2l0ZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHRoZW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RoZW1lO1xyXG4gIH1cclxuICBzZXQgdGhlbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGhlbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuaGVhZGVyVGhlbWUgPSBnZXRIZWFkZXJUaGVtZSh0aGlzLnByb2plY3QsIHRoaXMudGhlbWUsIHRoaXMuY3VyYVNlcnZpY2UpO1xyXG4gIH1cclxuICBwcml2YXRlIF90aGVtZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG5cclxuICBoZWFkZXJUaGVtZTogSGVhZGVyVGhlbWUgPSB7XHJcbiAgICBoZWFkZXI6IHt9LFxyXG4gICAgYXV4OiB7fSxcclxuICAgIGFjdGlvbjoge30sXHJcbiAgICBtYWluOiB7fSxcclxuICAgIHNpZGU6IHt9LFxyXG4gIH07XHJcblxyXG4gIHNjcm9sbFRvcCA9IDA7XHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBAT3V0cHV0KCkgc2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGN1cmFTZXJ2aWNlOiBDdXJhU2VydmljZSxcclxuICAgIHB1YmxpYyBoZWFkZXJTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSB8fCAhdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldykgcmV0dXJuO1xyXG4gICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlLnNob3dTZWFyY2goKSB8fCB0aGlzLmhlYWRlclNlcnZpY2Uuc2hvd1NpZGVNZW51KCkpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA/PyAwO1xyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcub25zY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUbyh7IHRvcDogdGhpcy5zY3JvbGxUb3AsIGJlaGF2aW9yOiAnYXV0bycgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Lm9uc2Nyb2xsID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VyYUNzc1ZhcnMoY29udGV4dDogSGVhZGVyVGhlbWVLZXlzKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJUaGVtZVtjb250ZXh0XTtcclxuICB9XHJcblxyXG4gIG92ZXJsYXlDbGljaygpIHtcclxuICAgIHRoaXMuaGVhZGVyU2VydmljZS50b2dnbGVTaG93U2VhcmNoKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGRvU2VhcmNoKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnRvZ2dsZVNob3dTZWFyY2goZmFsc2UpO1xyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwicmRzaXRlLWhlYWRlclwiIFtuZ1N0eWxlXT1cImdldEN1cmFDc3NWYXJzKCdoZWFkZXInKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyZHNpdGUtaGVhZGVyLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7ICdzaG93LXNlYXJjaCc6IGhlYWRlclNlcnZpY2Uuc2hvd1NlYXJjaCgpIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyZHNpdGUtaGVhZGVyLWxvZ29cIiAoY2xpY2spPVwib3ZlcmxheUNsaWNrKClcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicmRzaXRlLWhlYWRlci1sb2dvXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1hdXgtbWVudVwiIFtuZ1N0eWxlXT1cImdldEN1cmFDc3NWYXJzKCdhdXgnKVwiIChjbGljayk9XCJvdmVybGF5Q2xpY2soKVwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJyZHNpdGUtaGVhZGVyLWF1eC1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1hY3Rpb24tbWVudVwiIFtuZ1N0eWxlXT1cImdldEN1cmFDc3NWYXJzKCdhY3Rpb24nKVwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJyZHNpdGUtaGVhZGVyLWFjdGlvbi1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1tYWluLW1lbnVcIiBbbmdTdHlsZV09XCJnZXRDdXJhQ3NzVmFycygnbWFpbicpXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInJkc2l0ZS1oZWFkZXItbWFpbi1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1zaWRlLW1lbnVcIiBbbmdTdHlsZV09XCJnZXRDdXJhQ3NzVmFycygnc2lkZScpXCI+XHJcbiAgICAgIDwhLS0gPG5nLWNvbnRlbnQgc2VsZWN0PVwicmRzaXRlLWhlYWRlci1zaWRlLW1lbnVcIj48L25nLWNvbnRlbnQ+IC0tPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIjcmRzaXRlLWhlYWRlci1zaWRlLW1lbnVcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoc2VhcmNoQ29udHJvbCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1zZWFyY2hcIj5cclxuICAgICAgICA8cmRzaXRlLXNlYXJjaCBbc2VhcmNoQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCIgW2xhYmVsXT1cIidPIHF1ZSB2b2PDqiBwcm9jdXJhPydcIiBbZGVib3VuY2VUaW1lXT1cIjE1MDBcIiBbc2V0Rm9jdXNdPVwidHJ1ZVwiIChlbnRlclByZXNzKT1cImRvU2VhcmNoKCRldmVudClcIj5cclxuICAgICAgICA8L3Jkc2l0ZS1zZWFyY2g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG5cclxuICA8cmRzaXRlLW92ZXJsYXkgY2xhc3M9XCJzZWFyY2gtb3ZlcmxheVwiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBoZWFkZXJTZXJ2aWNlLnNob3dTZWFyY2goKSB9XCIgKG92ZXJsYXlDbGljayk9XCJvdmVybGF5Q2xpY2soKVwiPjwvcmRzaXRlLW92ZXJsYXk+XHJcbjwvaGVhZGVyPlxyXG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBUzdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFHRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUks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dGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5ULCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDdXJhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZ2V0SGVhZGVyVGhlbWUgfSBmcm9tICcuL2hlbHBlcnMvaGVhZGVyVGhlbWUuZnVuYyc7XHJcbmltcG9ydCB7IEhlYWRlclRoZW1lLCBIZWFkZXJUaGVtZUtleXMgfSBmcm9tICcuL21vZGVscy9IZWFkZXJUaGVtZS5tb2RlbCc7XHJcbmltcG9ydCB7IEhlYWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2hlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4uL292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmRzaXRlLWhlYWRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5Q29tcG9uZW50LCBTZWFyY2hDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIGdldCBwcm9qZWN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Byb2plY3Q7XHJcbiAgfVxyXG4gIHNldCBwcm9qZWN0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Byb2plY3QgPSB2YWx1ZTtcclxuICAgIHRoaXMuaGVhZGVyVGhlbWUgPSBnZXRIZWFkZXJUaGVtZSh0aGlzLnByb2plY3QsIHRoaXMudGhlbWUsIHRoaXMuY3VyYVNlcnZpY2UpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wcm9qZWN0OiBzdHJpbmcgPSAnc2l0ZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHRoZW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RoZW1lO1xyXG4gIH1cclxuICBzZXQgdGhlbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGhlbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuaGVhZGVyVGhlbWUgPSBnZXRIZWFkZXJUaGVtZSh0aGlzLnByb2plY3QsIHRoaXMudGhlbWUsIHRoaXMuY3VyYVNlcnZpY2UpO1xyXG4gIH1cclxuICBwcml2YXRlIF90aGVtZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG5cclxuICBoZWFkZXJUaGVtZTogSGVhZGVyVGhlbWUgPSB7XHJcbiAgICBoZWFkZXI6IHt9LFxyXG4gICAgYXV4OiB7fSxcclxuICAgIGFjdGlvbjoge30sXHJcbiAgICBtYWluOiB7fSxcclxuICAgIHNpZGU6IHt9LFxyXG4gIH07XHJcblxyXG4gIHNjcm9sbFRvcCA9IDA7XHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBAT3V0cHV0KCkgc2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGN1cmFTZXJ2aWNlOiBDdXJhU2VydmljZSxcclxuICAgIHB1YmxpYyBoZWFkZXJTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSB8fCAhdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldykgcmV0dXJuO1xyXG4gICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlLnNob3dTZWFyY2goKSB8fCB0aGlzLmhlYWRlclNlcnZpY2Uuc2hvd1NpZGVNZW51KCkpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA/PyAwO1xyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcub25zY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUbyh7IHRvcDogdGhpcy5zY3JvbGxUb3AsIGJlaGF2aW9yOiAnYXV0bycgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Lm9uc2Nyb2xsID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VyYUNzc1ZhcnMoY29udGV4dDogSGVhZGVyVGhlbWVLZXlzKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJUaGVtZVtjb250ZXh0XTtcclxuICB9XHJcblxyXG4gIG92ZXJsYXlDbGljaygpIHtcclxuICAgIHRoaXMuaGVhZGVyU2VydmljZS50b2dnbGVTaG93U2VhcmNoKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGRvU2VhcmNoKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnRvZ2dsZVNob3dTZWFyY2goZmFsc2UpO1xyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwicmRzaXRlLWhlYWRlclwiIFtuZ1N0eWxlXT1cImdldEN1cmFDc3NWYXJzKCdoZWFkZXInKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyZHNpdGUtaGVhZGVyLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7ICdzaG93LXNlYXJjaCc6IGhlYWRlclNlcnZpY2Uuc2hvd1NlYXJjaCgpIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyZHNpdGUtaGVhZGVyLWxvZ29cIiAoY2xpY2spPVwib3ZlcmxheUNsaWNrKClcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicmRzaXRlLWhlYWRlci1sb2dvXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1hdXgtbWVudVwiIFtuZ1N0eWxlXT1cImdldEN1cmFDc3NWYXJzKCdhdXgnKVwiIChjbGljayk9XCJvdmVybGF5Q2xpY2soKVwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJyZHNpdGUtaGVhZGVyLWF1eC1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1hY3Rpb24tbWVudVwiIFtuZ1N0eWxlXT1cImdldEN1cmFDc3NWYXJzKCdhY3Rpb24nKVwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJyZHNpdGUtaGVhZGVyLWFjdGlvbi1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1tYWluLW1lbnVcIiBbbmdTdHlsZV09XCJnZXRDdXJhQ3NzVmFycygnbWFpbicpXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInJkc2l0ZS1oZWFkZXItbWFpbi1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1zaWRlLW1lbnVcIiBbbmdTdHlsZV09XCJnZXRDdXJhQ3NzVmFycygnc2lkZScpXCI+XHJcbiAgICAgIDwhLS0gPG5nLWNvbnRlbnQgc2VsZWN0PVwicmRzaXRlLWhlYWRlci1zaWRlLW1lbnVcIj48L25nLWNvbnRlbnQ+IC0tPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIjcmRzaXRlLWhlYWRlci1zaWRlLW1lbnVcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoc2VhcmNoQ29udHJvbCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicmRzaXRlLWhlYWRlci1zZWFyY2hcIj5cclxuICAgICAgICA8cmRzaXRlLXNlYXJjaCBbc2VhcmNoQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCIgW2xhYmVsXT1cIidPIHF1ZSB2b2PDqiBwcm9jdXJhPydcIiBbZGVib3VuY2VUaW1lXT1cIjE1MDBcIiBbc2V0Rm9jdXNdPVwidHJ1ZVwiIChlbnRlclByZXNzKT1cImRvU2VhcmNoKCRldmVudClcIj5cclxuICAgICAgICA8L3Jkc2l0ZS1zZWFyY2g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG5cclxuICA8cmRzaXRlLW92ZXJsYXkgY2xhc3M9XCJzZWFyY2gtb3ZlcmxheVwiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBoZWFkZXJTZXJ2aWNlLnNob3dTZWFyY2goKSB9XCIgKG92ZXJsYXlDbGljayk9XCJvdmVybGF5Q2xpY2soKVwiPjwvcmRzaXRlLW92ZXJsYXk+XHJcbjwvaGVhZGVyPlxyXG4iXX0=
@@ -120,7 +120,14 @@ export class RdsiteLinkDirective {
120
120
  }
121
121
  navigateTo(href) {
122
122
  const siteBasePath = this.libConfig.siteSufix ?? '';
123
- const noBaseHref = href.includes(siteBasePath) ? href.replace(siteBasePath, '') : href;
123
+ const siteBasePathNoSlash = siteBasePath.replace(/\//g, '');
124
+ let noBaseHref = href;
125
+ if (href.startsWith(siteBasePathNoSlash)) {
126
+ noBaseHref = href.replace(siteBasePathNoSlash, '');
127
+ }
128
+ else if (href.startsWith(siteBasePath)) {
129
+ noBaseHref = href.replace(siteBasePath, '');
130
+ }
124
131
  if (this.libConfig?.customInternalLinkNavigation && this.libConfig.customInternalLinkNavigation(noBaseHref)) {
125
132
  return;
126
133
  }
@@ -165,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
165
172
  type: HostListener,
166
173
  args: ['click', ['$event']]
167
174
  }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzaXRlLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvZGlyZWN0aXZlcy9yZHNpdGUtbGluay9yZHNpdGUtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7O0FBUS9GLE1BQU0sT0FBTyxtQkFBbUI7SUFZOUIsWUFDVSxNQUFjLEVBQ08sVUFBa0IsRUFDckIsUUFBa0IsRUFDaEIsU0FBb0IsRUFDeEMsT0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIseUJBQW9ELEVBQ3BELHFCQUE0QztRQVA1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ08sZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDeEMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbkI5QyxrQkFBYSxHQUFHLGtDQUFrQyxDQUFDO1FBQ25ELGFBQVEsR0FBRyxNQUFNLENBQUM7UUFDbEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN0QixnQkFBVyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFD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QUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQWVJLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVO3lLQVRYLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFjQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBMSUJfQ09ORklHLCBMaWJDb25maWcgfSBmcm9tICcuLi8uLi90b2tlbnMvTGliQ29uZmlnJztcclxuaW1wb3J0IHsgUGhvbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGhvbmUvcGhvbmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUgfSBmcm9tICcuLi9yZHNpdGUtcGhvbmUtbW9kYWwvcmRzaXRlLXBob25lLW1vZGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5ARGlyZWN0aXZlKHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnW3Jkc2l0ZWxpbmtdJyxcclxuICBwcm92aWRlcnM6IFtSZHNpdGVQaG9uZU1vZGFsRGlyZWN0aXZlXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmRzaXRlTGlua0RpcmVjdGl2ZSB7XHJcbiAgcHJpdmF0ZSBleHRlcm5hbFJlZ2V4ID0gL15odHRwOnxodHRwczp8dGVsOnx3d3dcXC58bWFpbHRvOi87XHJcbiAgcHJpdmF0ZSB0ZWxSZWdleCA9IC90ZWw6LztcclxuICBwcml2YXRlIG1haWxSZWdleCA9IC9tYWlsdG86LztcclxuICBwcml2YXRlIHNpdGVVcmxMaXN0ID0gWydyZWRlZG9yc2FvbHVpeicsICdyZWRlZG9ybGFicyddO1xyXG4gIHByaXZhdGUgYWxsb3dlZFRhZ3MgPSBbJ0EnLCAnQ1VSQS1CVVRUT04nLCAnQ1VSQS1CVVRUT04tT1VUTElORScsICdDVVJBLUJVVFRPTi1UUkFOU1BBUkVOVCddO1xyXG5cclxuICBASW5wdXQoKSBhbmNob3JBZGp1c3RtZW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBhbmNob3JFeHRyYUFkanVzdG1lbnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBwaG9uZW1vZGFsOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcclxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBwaG9uZVNlcnZpY2U6IFBob25lU2VydmljZSxcclxuICAgIHByaXZhdGUgcmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZTogUmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8ICF0aGlzLmFsbG93ZWRUYWdzLmluY2x1ZGVzKHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudD8udGFnTmFtZSkpIHJldHVybjtcclxuICAgIGNvbnN0IGhyZWYgPSB0aGlzLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEF0dHJpYnV0ZSgnaHJlZicpID8/ICcnO1xyXG4gICAgaWYgKCFocmVmKSByZXR1cm47XHJcblxyXG4gICAgaWYgKHRoaXMuaXNQaG9uZShocmVmKSkge1xyXG4gICAgICB0aGlzLnBob25lQ2xpY2tlZCh7XHJcbiAgICAgICAgaHJlZixcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnQsXHJcbiAgICAgICAgcGhvbmVtb2RhbDogdGhpcy5waG9uZW1vZGFsLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzTW9iaWxlID0gdGhpcy5kZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNNb2JpbGUoKTtcclxuICAgIGNvbnN0IGRldmljZUluZm8gPSB0aGlzLmRldmljZURldGVjdG9yU2VydmljZS5nZXREZXZpY2VJbmZvKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNNYWlsKGhyZWYpKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IGlzTW9iaWxlIHx8IGRldmljZUluZm8uYnJvd3NlciAhPT0gJ0Nocm9tZScgPyAnX3NlbGYnIDogJ19ibGFuayc7XHJcbiAgICAgIHdpbmRvdy5vcGVuKGhyZWYsIHRhcmdldCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0V4dGVybmFsVXJsKGhyZWYpKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuaXNTaXRlVXJsKGhyZWYpID8gJ19zZWxmJyA6ICdfYmxhbmsnO1xyXG4gICAgICB3aW5kb3cub3BlbihocmVmLCB0YXJnZXQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNBbmNob3IoaHJlZikpIHtcclxuICAgICAgdGhpcy5zY3JvbGxUb0FuY2hvcihocmVmKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubmF2aWdhdGVUbyhocmVmKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNQaG9uZShocmVmOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRlbFJlZ2V4LnRlc3QoaHJlZik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzTWFpbChocmVmOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLm1haWxSZWdleC50ZXN0KGhyZWYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaG9uZUNsaWNrZWQodmFsdWU6IHsgaHJlZjogc3RyaW5nOyBldmVudDogRXZlbnQ7IGVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjsgcGhvbmVtb2RhbDogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCB9KSB7XHJcbiAgICBjb25zdCB7IGhyZWYsIGV2ZW50LCBlbGVtZW50LCBwaG9uZW1vZGFsIH0gPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLnBob25lU2VydmljZS5pc1Bob25lTW9kYWwoaHJlZikpIHtcclxuICAgICAgdGhpcy5zZXRQaG9uZU1vZGFsKGVsZW1lbnQsIHBob25lbW9kYWwpO1xyXG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUub3BlblBob25lTW9kYWwoZXZlbnQsIGhyZWYpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lm9wZW4oaHJlZiwgJ19zZWxmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBob25lTW9kYWwoZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LCBwaG9uZW1vZGFsOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4gfCBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMucGhvbmVtb2RhbCkgcmV0dXJuO1xyXG4gICAgaWYgKCF0aGlzLmxpYkNvbmZpZz8uY3VzdG9tUGhvbmVNb2RhbENvbmRpdGlvbikge1xyXG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUucmRzaXRlcGhvbmVtb2RhbCA9IHBob25lbW9kYWw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxpYkNvbmZpZz8uY3VzdG9tUGhvbmVNb2RhbENvbmRpdGlvbihlbGVtZW50KSkge1xyXG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUucmRzaXRlcGhvbmVtb2RhbCA9IHBob25lbW9kYWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRXh0ZXJuYWxVcmwoaHJlZjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5leHRlcm5hbFJlZ2V4LnRlc3QoaHJlZik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2l0ZVVybChocmVmOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGV4Y2VwdGlvbiA9ICcvcGFjaWVudGUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2l0ZVVybExpc3QuZmluZCgodXJsKSA9PiBocmVmLmluY2x1ZGVzKHVybCkgJiYgIWhyZWYuaW5jbHVkZXMoZXhjZXB0aW9uKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQW5jaG9yKGhyZWY6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGhyZWYuc3RhcnRzV2l0aCgnIycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxUb0FuY2hvcihocmVmOiBzdHJpbmcpIHtcclxuICAgIGlmIChocmVmID09PSAnIycpIHJldHVybjtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGNvbnN0IGRvY0VsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgICAgbGV0IGFkanVzdG1lbnQgPSAwO1xyXG5cclxuICAgICAgaWYgKHRoaXMubGliQ29uZmlnLmN1c3RvbUFuY2hvckFkanVzdG1lbnQpIHtcclxuICAgICAgICBhZGp1c3RtZW50ID0gdGhpcy5saWJDb25maWcuY3VzdG9tQW5jaG9yQWRqdXN0bWVudCh0aGlzLmRvY3VtZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuYW5jaG9yQWRqdXN0bWVudCkge1xyXG4gICAgICAgIGFkanVzdG1lbnQgPSB0aGlzLmFuY2hvckFkanVzdG1lbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmFuY2hvckV4dHJhQWRqdXN0bWVudCkge1xyXG4gICAgICAgIGFkanVzdG1lbnQgKz0gdGhpcy5hbmNob3JFeHRyYUFkanVzdG1lbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGJvZHlUb3AgPSB0aGlzLmRvY3VtZW50Py5ib2R5Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8udG9wID8/IDA7XHJcbiAgICAgIGNvbnN0IGhyZWZUb3AgPSB0aGlzLmRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihocmVmKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LnRvcCA/PyAwO1xyXG4gICAgICBjb25zdCBzY3JvbGxUb3AgPSBib2R5VG9wICogLTEgKyBocmVmVG9wIC0gYWRqdXN0bWVudDtcclxuICAgICAgZG9jRWxlbWVudC5zY3JvbGxUbyh7IHRvcDogc2Nyb2xsVG9wLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRlVG8oaHJlZjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzaXRlQmFzZVBhdGggPSB0aGlzLmxpYkNvbmZpZy5zaXRlU3VmaXggPz8gJyc7XHJcbiAgICBjb25zdCBub0Jhc2VIcmVmID0gaHJlZi5pbmNsdWRlcyhzaXRlQmFzZVBhdGgpID8gaHJlZi5yZXBsYWNlKHNpdGVCYXNlUGF0aCwgJycpIDogaHJlZjtcclxuICAgIGlmICh0aGlzLmxpYkNvbmZpZz8uY3VzdG9tSW50ZXJuYWxMaW5rTmF2aWdhdGlvbiAmJiB0aGlzLmxpYkNvbmZpZy5jdXN0b21JbnRlcm5hbExpbmtOYXZpZ2F0aW9uKG5vQmFzZUhyZWYpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBbcGF0aCwgcXVlcnldID0gbm9CYXNlSHJlZi5zcGxpdCgnPycpO1xyXG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICAgIGlmIChxdWVyeSkge1xyXG4gICAgICBjb25zdCBxdWVyeUFycmF5ID0gcXVlcnkuc3BsaXQoJyYnKTtcclxuICAgICAgcXVlcnlBcnJheS5mb3JFYWNoKChxKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYXJyID0gcS5zcGxpdCgnPScpO1xyXG4gICAgICAgIHF1ZXJ5UGFyYW1zW2FyclswXV0gPSBhcnJbMV07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdLCB7IHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB9KTtcclxuICB9XHJcbn1cclxuIl19
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzaXRlLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvZGlyZWN0aXZlcy9yZHNpdGUtbGluay9yZHNpdGUtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7O0FBUS9GLE1BQU0sT0FBTyxtQkFBbUI7SUFZOUIsWUFDVSxNQUFjLEVBQ08sVUFBa0IsRUFDckIsUUFBa0IsRUFDaEIsU0FBb0IsRUFDeEMsT0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIseUJBQW9ELEVBQ3BELHFCQUE0QztRQVA1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ08sZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDeEMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbkI5QyxrQkFBYSxHQUFHLGtDQUFrQyxDQUFDO1FBQ25ELGFBQVEsR0FBRyxNQUFNLENBQUM7UUFDbEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN0QixnQkFBVyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFD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VyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQXpKVSxtQkFBbUIsd0NBY3BCLFdBQVcsYUFDWCxRQUFRLGFBQ1IsVUFBVTttR0FoQlQsbUJBQW1CLDRPQUhuQixDQUFDLHlCQUF5QixDQUFDOzs0RkFHM0IsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQWVJLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVO3lLQVRYLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFjQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBMSUJfQ09ORklHLCBMaWJDb25maWcgfSBmcm9tICcuLi8uLi90b2tlbnMvTGliQ29uZmlnJztcclxuaW1wb3J0IHsgUGhvbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGhvbmUvcGhvbmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUgfSBmcm9tICcuLi9yZHNpdGUtcGhvbmUtbW9kYWwvcmRzaXRlLXBob25lLW1vZGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5ARGlyZWN0aXZlKHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnW3Jkc2l0ZWxpbmtdJyxcclxuICBwcm92aWRlcnM6IFtSZHNpdGVQaG9uZU1vZGFsRGlyZWN0aXZlXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmRzaXRlTGlua0RpcmVjdGl2ZSB7XHJcbiAgcHJpdmF0ZSBleHRlcm5hbFJlZ2V4ID0gL15odHRwOnxodHRwczp8dGVsOnx3d3dcXC58bWFpbHRvOi87XHJcbiAgcHJpdmF0ZSB0ZWxSZWdleCA9IC90ZWw6LztcclxuICBwcml2YXRlIG1haWxSZWdleCA9IC9tYWlsdG86LztcclxuICBwcml2YXRlIHNpdGVVcmxMaXN0ID0gWydyZWRlZG9yc2FvbHVpeicsICdyZWRlZG9ybGFicyddO1xyXG4gIHByaXZhdGUgYWxsb3dlZFRhZ3MgPSBbJ0EnLCAnQ1VSQS1CVVRUT04nLCAnQ1VSQS1CVVRUT04tT1VUTElORScsICdDVVJBLUJVVFRPTi1UUkFOU1BBUkVOVCddO1xyXG5cclxuICBASW5wdXQoKSBhbmNob3JBZGp1c3RtZW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBhbmNob3JFeHRyYUFkanVzdG1lbnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBwaG9uZW1vZGFsOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcclxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBwaG9uZVNlcnZpY2U6IFBob25lU2VydmljZSxcclxuICAgIHByaXZhdGUgcmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZTogUmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8ICF0aGlzLmFsbG93ZWRUYWdzLmluY2x1ZGVzKHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudD8udGFnTmFtZSkpIHJldHVybjtcclxuICAgIGNvbnN0IGhyZWYgPSB0aGlzLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEF0dHJpYnV0ZSgnaHJlZicpID8/ICcnO1xyXG4gICAgaWYgKCFocmVmKSByZXR1cm47XHJcblxyXG4gICAgaWYgKHRoaXMuaXNQaG9uZShocmVmKSkge1xyXG4gICAgICB0aGlzLnBob25lQ2xpY2tlZCh7XHJcbiAgICAgICAgaHJlZixcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnQsXHJcbiAgICAgICAgcGhvbmVtb2RhbDogdGhpcy5waG9uZW1vZGFsLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzTW9iaWxlID0gdGhpcy5kZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNNb2JpbGUoKTtcclxuICAgIGNvbnN0IGRldmljZUluZm8gPSB0aGlzLmRldmljZURldGVjdG9yU2VydmljZS5nZXREZXZpY2VJbmZvKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNNYWlsKGhyZWYpKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IGlzTW9iaWxlIHx8IGRldmljZUluZm8uYnJvd3NlciAhPT0gJ0Nocm9tZScgPyAnX3NlbGYnIDogJ19ibGFuayc7XHJcbiAgICAgIHdpbmRvdy5vcGVuKGhyZWYsIHRhcmdldCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0V4dGVybmFsVXJsKGhyZWYpKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuaXNTaXRlVXJsKGhyZWYpID8gJ19zZWxmJyA6ICdfYmxhbmsnO1xyXG4gICAgICB3aW5kb3cub3BlbihocmVmLCB0YXJnZXQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNBbmNob3IoaHJlZikpIHtcclxuICAgICAgdGhpcy5zY3JvbGxUb0FuY2hvcihocmVmKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubmF2aWdhdGVUbyhocmVmKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNQaG9uZShocmVmOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRlbFJlZ2V4LnRlc3QoaHJlZik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzTWFpbChocmVmOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLm1haWxSZWdleC50ZXN0KGhyZWYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaG9uZUNsaWNrZWQodmFsdWU6IHsgaHJlZjogc3RyaW5nOyBldmVudDogRXZlbnQ7IGVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjsgcGhvbmVtb2RhbDogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCB9KSB7XHJcbiAgICBjb25zdCB7IGhyZWYsIGV2ZW50LCBlbGVtZW50LCBwaG9uZW1vZGFsIH0gPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLnBob25lU2VydmljZS5pc1Bob25lTW9kYWwoaHJlZikpIHtcclxuICAgICAgdGhpcy5zZXRQaG9uZU1vZGFsKGVsZW1lbnQsIHBob25lbW9kYWwpO1xyXG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUub3BlblBob25lTW9kYWwoZXZlbnQsIGhyZWYpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lm9wZW4oaHJlZiwgJ19zZWxmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBob25lTW9kYWwoZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LCBwaG9uZW1vZGFsOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4gfCBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMucGhvbmVtb2RhbCkgcmV0dXJuO1xyXG4gICAgaWYgKCF0aGlzLmxpYkNvbmZpZz8uY3VzdG9tUGhvbmVNb2RhbENvbmRpdGlvbikge1xyXG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUucmRzaXRlcGhvbmVtb2RhbCA9IHBob25lbW9kYWw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxpYkNvbmZpZz8uY3VzdG9tUGhvbmVNb2RhbENvbmRpdGlvbihlbGVtZW50KSkge1xyXG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUucmRzaXRlcGhvbmVtb2RhbCA9IHBob25lbW9kYWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRXh0ZXJuYWxVcmwoaHJlZjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5leHRlcm5hbFJlZ2V4LnRlc3QoaHJlZik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2l0ZVVybChocmVmOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGV4Y2VwdGlvbiA9ICcvcGFjaWVudGUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2l0ZVVybExpc3QuZmluZCgodXJsKSA9PiBocmVmLmluY2x1ZGVzKHVybCkgJiYgIWhyZWYuaW5jbHVkZXMoZXhjZXB0aW9uKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQW5jaG9yKGhyZWY6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGhyZWYuc3RhcnRzV2l0aCgnIycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxUb0FuY2hvcihocmVmOiBzdHJpbmcpIHtcclxuICAgIGlmIChocmVmID09PSAnIycpIHJldHVybjtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGNvbnN0IGRvY0VsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgICAgbGV0IGFkanVzdG1lbnQgPSAwO1xyXG5cclxuICAgICAgaWYgKHRoaXMubGliQ29uZmlnLmN1c3RvbUFuY2hvckFkanVzdG1lbnQpIHtcclxuICAgICAgICBhZGp1c3RtZW50ID0gdGhpcy5saWJDb25maWcuY3VzdG9tQW5jaG9yQWRqdXN0bWVudCh0aGlzLmRvY3VtZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuYW5jaG9yQWRqdXN0bWVudCkge1xyXG4gICAgICAgIGFkanVzdG1lbnQgPSB0aGlzLmFuY2hvckFkanVzdG1lbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmFuY2hvckV4dHJhQWRqdXN0bWVudCkge1xyXG4gICAgICAgIGFkanVzdG1lbnQgKz0gdGhpcy5hbmNob3JFeHRyYUFkanVzdG1lbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGJvZHlUb3AgPSB0aGlzLmRvY3VtZW50Py5ib2R5Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8udG9wID8/IDA7XHJcbiAgICAgIGNvbnN0IGhyZWZUb3AgPSB0aGlzLmRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihocmVmKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LnRvcCA/PyAwO1xyXG4gICAgICBjb25zdCBzY3JvbGxUb3AgPSBib2R5VG9wICogLTEgKyBocmVmVG9wIC0gYWRqdXN0bWVudDtcclxuICAgICAgZG9jRWxlbWVudC5zY3JvbGxUbyh7IHRvcDogc2Nyb2xsVG9wLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRlVG8oaHJlZjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzaXRlQmFzZVBhdGggPSB0aGlzLmxpYkNvbmZpZy5zaXRlU3VmaXggPz8gJyc7XHJcbiAgICBjb25zdCBzaXRlQmFzZVBhdGhOb1NsYXNoID0gc2l0ZUJhc2VQYXRoLnJlcGxhY2UoL1xcLy9nLCAnJyk7XHJcbiAgICBsZXQgbm9CYXNlSHJlZiA9IGhyZWY7XHJcbiAgICBpZiAoaHJlZi5zdGFydHNXaXRoKHNpdGVCYXNlUGF0aE5vU2xhc2gpKSB7XHJcbiAgICAgIG5vQmFzZUhyZWYgPSBocmVmLnJlcGxhY2Uoc2l0ZUJhc2VQYXRoTm9TbGFzaCwgJycpO1xyXG4gICAgfSBlbHNlIGlmIChocmVmLnN0YXJ0c1dpdGgoc2l0ZUJhc2VQYXRoKSkge1xyXG4gICAgICBub0Jhc2VIcmVmID0gaHJlZi5yZXBsYWNlKHNpdGVCYXNlUGF0aCwgJycpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubGliQ29uZmlnPy5jdXN0b21JbnRlcm5hbExpbmtOYXZpZ2F0aW9uICYmIHRoaXMubGliQ29uZmlnLmN1c3RvbUludGVybmFsTGlua05hdmlnYXRpb24obm9CYXNlSHJlZikpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtwYXRoLCBxdWVyeV0gPSBub0Jhc2VIcmVmLnNwbGl0KCc/Jyk7XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgaWYgKHF1ZXJ5KSB7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5QXJyYXkgPSBxdWVyeS5zcGxpdCgnJicpO1xyXG4gICAgICBxdWVyeUFycmF5LmZvckVhY2goKHEpID0+IHtcclxuICAgICAgICBjb25zdCBhcnIgPSBxLnNwbGl0KCc9Jyk7XHJcbiAgICAgICAgcXVlcnlQYXJhbXNbYXJyWzBdXSA9IGFyclsxXTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF0aF0sIHsgcXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ const checkSafariAgent = () => {
2
+ const safariAgent = navigator.userAgent.includes('Safari');
3
+ const chromeAgent = navigator.userAgent.includes('Chrome');
4
+ return !chromeAgent && safariAgent;
5
+ };
6
+ export default checkSafariAgent;
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stc2FmYXJpLWFnZW50LmZ1bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9oZWxwZXJzL2NoZWNrLXNhZmFyaS1hZ2VudC5mdW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sZ0JBQWdCLEdBQUcsR0FBWSxFQUFFO0lBQ3JDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNELE9BQU8sQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUNGLGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjaGVja1NhZmFyaUFnZW50ID0gKCk6IGJvb2xlYW4gPT4ge1xyXG4gIGNvbnN0IHNhZmFyaUFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnU2FmYXJpJyk7XHJcbiAgY29uc3QgY2hyb21lQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCdDaHJvbWUnKTtcclxuICByZXR1cm4gIWNocm9tZUFnZW50ICYmIHNhZmFyaUFnZW50O1xyXG59O1xyXG5leHBvcnQgZGVmYXVsdCBjaGVja1NhZmFyaUFnZW50O1xyXG4iXX0=
@@ -4,4 +4,5 @@ export * from './formatPhone.func';
4
4
  export * from './getSiteUrl.func';
5
5
  export * from './removeHtmlTags.func';
6
6
  export * from './toQueryParams.func';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZW1vdmVEdXBsaWNhdGVPYmplY3RzRnJvbUFycmF5LmZ1bmMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZUR1cGxpY2F0ZVZhbHVlc0Zyb21BcnJheS5mdW5jJztcclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtYXRQaG9uZS5mdW5jJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZXRTaXRlVXJsLmZ1bmMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZUh0bWxUYWdzLmZ1bmMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RvUXVlcnlQYXJhbXMuZnVuYyc7XHJcbiJdfQ==
7
+ export * from './check-safari-agent.func';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JlbW92ZUR1cGxpY2F0ZU9iamVjdHNGcm9tQXJyYXkuZnVuYyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlRHVwbGljYXRlVmFsdWVzRnJvbUFycmF5LmZ1bmMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Zvcm1hdFBob25lLmZ1bmMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dldFNpdGVVcmwuZnVuYyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlSHRtbFRhZ3MuZnVuYyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdG9RdWVyeVBhcmFtcy5mdW5jJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGVjay1zYWZhcmktYWdlbnQuZnVuYyc7XHJcbiJdfQ==
@@ -364,7 +364,7 @@ export class SeoService {
364
364
  if (!this.canonicalTag) {
365
365
  this.canonicalTag = this.getCanonicalTag();
366
366
  }
367
- let path = this.location.path();
367
+ let path = this.document.location.pathname;
368
368
  if (!path.startsWith('/')) {
369
369
  path = `/${path}`;
370
370
  }
@@ -465,4 +465,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
465
465
  type: Inject,
466
466
  args: [DOCUMENT]
467
467
  }] }] });
468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXVCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFD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QyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQjtRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsV0FBVyxHQUFHLEVBQUUsRUFBRSxXQUFXLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQWM7UUFDcEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQzsrR0F2ZVUsVUFBVSxtRkEyQlgsVUFBVSxhQUNWLFFBQVE7bUhBNUJQLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBNEJJLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IERPQ1VNRU5ULCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCAqIGFzIGhlIGZyb20gJ2hlJztcblxuaW1wb3J0IHsgU29jaWFsTWV0YVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvc29jaWFsLW1ldGEtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9icmVhZGNydW1iL2JyZWFkY3J1bWItaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSnNvbkl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLWpzb24taXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9VbmlkYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tdW5pZGFkZS5tb2RlbCc7XG5pbXBvcnQgeyBXcFBvc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3Bvc3QvcG9zdC5tb2RlbCc7XG5pbXBvcnQgeyBnZXRTaXRlVXJsLCByZW1vdmVIdG1sVGFncyB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTZW9TZXJ2aWNlIHtcbiAgcHVibGljIHNlcGFyYXRvciA9ICcgLSAnO1xuICBwdWJsaWMgZGVmYXVsdFRpdGxlID0gJ1JlZGUgROKAmU9yJztcbiAgcHVibGljIGFjdGl2ZURlc2NyaXB0aW9uITogc3RyaW5nO1xuICBwdWJsaWMgc2FtZUFzID0gW1xuICAgICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vcmVkZWRvci8nLFxuICAgICdodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3JlZGVkb3Jfb2ZpY2lhbC8nLFxuICAgICdodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9yZWRlZG9yLXNhb2x1aXonLFxuICAgICdodHRwczovL3R3aXR0ZXIuY29tL3JlZGVkb3InLFxuICBdO1xuICBwdWJsaWMgdHdpdHRlclVzZXIgPSAnQHJlZGVkb3InO1xuXG4gIHByaXZhdGUgY2Fub25pY2FsVGFnITogSFRNTExpbmtFbGVtZW50O1xuICBwcml2YXRlIGpzb25UYWchOiBIVE1MU2NyaXB0RWxlbWVudDtcbiAgcHJpdmF0ZSBqc29uVGFnSWQgPSAnc2VvSlNPTic7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnSWQgPSAnYnJlYWRjcnVtYnNKU09OJztcblxuICBwdWJsaWMgdW5pZGFkZTogYW55ID0gbnVsbDtcbiAgcHVibGljIHVuaWRhZGVOYW1lOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVQYXRoOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVTbHVnOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRpdGxlOiBUaXRsZSxcbiAgICBwcml2YXRlIG1ldGE6IE1ldGEsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgQEluamVjdChMSUJfQ09ORklHKSBwcml2YXRlIGxpYkNvbmZpZzogTGliQ29uZmlnLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHt9XG5cbiAgcHVibGljIHNldEZ1bGxTZW8oZGF0YTogU2VvRGF0YSkge1xuICAgIHRoaXMuc2V0VGl0bGUoZGF0YS50aXRsZS50ZXh0LCAhIWRhdGEudGl0bGUuc3ViKTtcbiAgICB0aGlzLnNldERlc2NyaXB0aW9uKGRhdGEuZGVzY3JpcHRpb24pO1xuICAgIHRoaXMuc2V0Q2Fub25pY2FsSHJlZihkYXRhLmNhbm9uaWNhbCk7XG4gICAgdGhpcy5zZXRQYWdlSnNvbigpO1xuICAgIHRoaXMuc2V0U29jaWFsVGFncyhkYXRhLnNvY2lhbFRhZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0YWcgZGVzY3JpcHRpb24gZGEgcMOhZ2luYVxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgZGVzY3Jpw6fDo28gPHN0cmluZz5cbiAgICovXG4gIHB1YmxpYyBzZXREZXNjcmlwdGlvbihjb250ZW50OiBzdHJpbmcpOiBTZW9TZXJ2aWNlIHtcbiAgICBjb25zdCBkZXNjVGFnID0gdGhpcy5tZXRhLmdldFRhZyhcIm5hbWU9J2Rlc2NyaXB0aW9uJ1wiKTtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcbiAgICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uID0gY29udGVudDtcbiAgICBjb25zdCB0YWdDb250ZW50ID0geyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50IH07XG4gICAgaWYgKGRlc2NUYWcpIHtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcodGFnQ29udGVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YS5hZGRUYWcodGFnQ29udGVudCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBhIHDDoWdpbmFcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCB0eXBlID0gJ25hbWUnKSB7XG4gICAgY29uc3QgbWV0YXRhZyA9IHRoaXMubWV0YS5nZXRUYWcoYCR7dHlwZX09JyR7dGFnfSdgKTtcbiAgICBjb250ZW50ID0gaGUuZGVjb2RlKGNvbnRlbnQpO1xuICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcbiAgICBjb25zdCB0YWdDb250ZW50ID0ge1xuICAgICAgW3R5cGVdOiB0YWcsXG4gICAgICBjb250ZW50LFxuICAgIH07XG4gICAgaWYgKCFtZXRhdGFnKSB7XG4gICAgICB0aGlzLm1ldGEuYWRkVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbWV0YSB0YWdzIGRhIHDDoWdpbmFcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gYXR0ciBhdHJpYnV0byBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlVGFnKHRhZzogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGF0dHI6IHN0cmluZywgdHlwZSA9ICduYW1lJykge1xuICAgIGNvbnN0IG1ldGF0YWcgPSB0aGlzLm1ldGEuZ2V0VGFnKGAke3R5cGV9PScke3RhZ30nYCk7XG4gICAgaWYgKG1ldGF0YWcpIHtcbiAgICAgIHRoaXMubWV0YS5yZW1vdmVUYWcoYCR7YXR0cn09JHtjb250ZW50fWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbWV0YSB0YWdzIHBhcmEgRmFjZWJvb2tcbiAgICogQHBhcmFtIHRpdGxlIHTDrXR1bG8gcGFyYSBvIGZhY2Vib29rXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gZmFjZWJvb2tcbiAgICogQHBhcmFtIHVybCB1cmwgcGFyYSBkZWZpbmnDp8OjbyBkbyBmYWNlYm9va1xuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIGZhY2Vib29rXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YUZhY2Vib29rKHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHVybDogc3RyaW5nLCBpbWc6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp1cmwnLCB1cmwsICdwcm9wZXJ0eScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dGl0bGUnLCB0aXRsZSwgJ3Byb3BlcnR5Jyk7XG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzpkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uLCAncHJvcGVydHknKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOnR5cGUnLCAnd2Vic2l0ZScsICdwcm9wZXJ0eScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBpbWcgPz8gJycsICdwcm9wZXJ0eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBUd2l0dGVyXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyB0d2l0dGVyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gdHdpdHRlclxuICAgKiBAcGFyYW0gdXJsIHVybCBwYXJhIG8gdHdpdHRlclxuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIHR3aXR0ZXJcbiAgICovXG4gIHB1YmxpYyBzZXRNZXRhVHdpdHRlcih0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCB1cmw6IHN0cmluZywgaW1nOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgdXJsLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjp0aXRsZScsIHRpdGxlLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjppbWFnZScsIGltZyA/PyAnJywgJ25hbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGFncyBkZSByZWRlcyBzb2NpYWlzIChUd2l0dGVyIGUgT3BlbiBHcmFwaClcbiAgICogQHBhcmFtIHByb3BlcnRpZXNcbiAgICovXG4gIHNldFNvY2lhbFRhZ3MocHJvcGVydGllcz86IFNvY2lhbE1ldGFQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgcGFnZVBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgoKTtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgbGV0IGRlZmF1bHRQcm9wZXJ0aWVzOiBTb2NpYWxNZXRhUHJvcGVydGllcyA9IHtcbiAgICAgIHR3aXR0ZXJDYXJkOiAnc3VtbWFyeScsXG4gICAgICB0d2l0dGVyU2l0ZTogdGhpcy50d2l0dGVyVXNlcixcbiAgICAgIHR5cGU6ICd3ZWJzaXRlJyxcbiAgICAgIHRpdGxlOiB0aGlzLmdldFRpdGxlKCksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIHVybDogYCR7c2l0ZXVybH0ke3BhZ2VQYXRofWAsXG4gICAgICBpbWFnZTogdGhpcy5saWJDb25maWc/LmxvZ29QYXRoID8gYCR7c2l0ZXVybH0ke3RoaXMubGliQ29uZmlnLmxvZ29QYXRofWAgOiAnaHR0cHM6Ly93d3cucmVkZWRvcnNhb2x1aXouY29tLmJyL2Fzc2V0cy9pbWdzL2xvZ28tcmVkZWRvci1ibHVlLnBuZycsXG4gICAgfTtcbiAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXMgPSB7IC4uLmRlZmF1bHRQcm9wZXJ0aWVzLCAuLi5wcm9wZXJ0aWVzIH07XG4gICAgfVxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpjYXJkJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlckNhcmQgfHwgJycsICduYW1lJylcbiAgICAgIC5zZXRNZXRhVGFnKCd0d2l0dGVyOnNpdGUnLCBkZWZhdWx0UHJvcGVydGllcy50d2l0dGVyU2l0ZSB8fCAnJywgJ25hbWUnKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOnR5cGUnLCBkZWZhdWx0UHJvcGVydGllcy50eXBlIHx8ICcnLCAncHJvcGVydHknKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOnRpdGxlJywgZGVmYXVsdFByb3BlcnRpZXMudGl0bGUgfHwgJycsICdwcm9wZXJ0eScpXG4gICAgICAuc2V0TWV0YVRhZygnb2c6ZGVzY3JpcHRpb24nLCBkZWZhdWx0UHJvcGVydGllcy5kZXNjcmlwdGlvbiB8fCAnJywgJ3Byb3BlcnR5JylcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp1cmwnLCBkZWZhdWx0UHJvcGVydGllcy51cmwgfHwgJycsICdwcm9wZXJ0eScpXG4gICAgICAuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBkZWZhdWx0UHJvcGVydGllcy5pbWFnZSB8fCAnJywgJ3Byb3BlcnR5Jyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdMOtdHVsbyBkYSBww6FnaW5hXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIGRhIHDDoWdpbmEgPHN0cmluZz5cbiAgICogQHBhcmFtIHN1YiBTZSDDqSBzdWJzaXRlIGFjcmVzY2VudGEgdW5pZGFkZSA8Ym9vbGVhbj5cbiAgICovXG4gIHB1YmxpYyBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCBzdWIgPSBmYWxzZSkge1xuICAgIGlmICh0aXRsZSAmJiB0aXRsZSAhPT0gJycpIHtcbiAgICAgIHRpdGxlID0gaGUuZGVjb2RlKHRpdGxlKTtcbiAgICAgIHRpdGxlID0gcmVtb3ZlSHRtbFRhZ3ModGl0bGUpO1xuICAgICAgaWYgKHN1Yikge1xuICAgICAgICB0aXRsZSA9IGhlLmRlY29kZShgJHt0aXRsZX0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBPYnRlbSB0w610dWxvIGF0dWFsIGRhIHDDoWdpbmEgKi9cbiAgcHVibGljIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGUuZ2V0VGl0bGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQ0MDRUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudCAhPT0gJycpIHtcbiAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShjb21wb25lbnQpO1xuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcbiAgICAgIGlmICh0aGlzLnVuaWRhZGVOYW1lKSB7XG4gICAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShgJHtjb21wb25lbnR9JHt0aGlzLnNlcGFyYXRvcn0ke3RoaXMudW5pZGFkZU5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHRpdGxlID0gYEVycm8gNDA0IC0gJHtjb21wb25lbnR9IC0gJHt0aGlzLmxpYkNvbmZpZz8uc2l0ZU5hbWV9IC0gJHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIENyaWEgdGFnIHNjcmlwdCBwYXJhIEpTT04gZGUgYnJlYWRjcnVtYnMgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCcmVhZGNydW1ic0pTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRhZy5pZCA9IHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnSWQ7XG4gICAgdGFnLnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcgPSB0YWc7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIHNjcmlwdCBqc29uIGRlIGJyZWFkY3J1bWJzIG91IGNyaWEgc2UgbsOjbyBob3V2ZXIuICovXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcbiAgICBsZXQgaTogbnVtYmVyO1xuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS5pZCA9PT0gdGhpcy5icmVhZGNydW1ic0pzb25UYWdJZCkge1xuICAgICAgICByZXR1cm4gZWxlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk7XG4gIH1cblxuICAvKiogRGVmaW5lIG8gSlNPTiBkZSBicmVhZGNydW1icyBkYSBww6FnaW5hICovXG4gIHB1YmxpYyBzZXRCcmVhZGNydW1ic0pzb24oaXRlbXM6IEJyZWFkY3J1bWJJdGVtW10pIHtcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRoaXMuZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk7XG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgICdAY29udGV4dCc6ICdodHRwOi8vc2NoZW1hLm9yZycsXG4gICAgICAnQHR5cGUnOiAnQnJlYWRjcnVtYkxpc3QnLFxuICAgICAgaXRlbUxpc3RFbGVtZW50OiB0aGlzLmdldEpzb25CcmVhZGNydW1iSXRlbXMoaXRlbXMpLFxuICAgIH07XG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQ29udmVydGUgaXRlbnMgZG8gYnJlYWRjcnVtYiBlbSBpdGVucyBkbyBKU09OICovXG4gIHByaXZhdGUgZ2V0SnNvbkJyZWFkY3J1bWJJdGVtcyhpdGVtczogQnJlYWRjcnVtYkl0ZW1bXSk6IEJyZWFkY3J1bWJKc29uSXRlbVtdIHtcbiAgICBjb25zdCBqc29uSXRlbXMgPSBbXG4gICAgICB7XG4gICAgICAgICdAdHlwZSc6ICdMaXN0SXRlbScsXG4gICAgICAgIHBvc2l0aW9uOiAxLFxuICAgICAgICBpdGVtOiB7ICdAaWQnOiB0aGlzLmdldEJyZWFkY3J1bWJJdGVtVXJsKFsnLyddKSwgbmFtZTogaGUuZW5jb2RlKCdQw6FnaW5hIEluaWNpYWwnKSB9LFxuICAgICAgfSBhcyBCcmVhZGNydW1iSnNvbkl0ZW0sXG4gICAgXTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XG4gICAgICBjb25zdCBqc29uSXRlbTogQnJlYWRjcnVtYkpzb25JdGVtID0ge1xuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxuICAgICAgICBwb3NpdGlvbjogaSArIDIsXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoaXRlbT8udXJsIHx8IFtdKSwgbmFtZTogaGUuZW5jb2RlKGl0ZW0ubGFiZWwpIH0sXG4gICAgICB9O1xuICAgICAganNvbkl0ZW1zLnB1c2goanNvbkl0ZW0pO1xuICAgIH0pO1xuICAgIHJldHVybiBqc29uSXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogTW9udGEgYSB1cmwgZG8gaXRlbSBkZSBicmVhZGNydW1iIHByb3ZlbmllbnRlIGRvIGFycmF5IGRlIHVybHNcbiAgICogb3UgZG8gY2FtaW5obyBkYSBwcsOzcHJpYSBww6FnaW5hLCBjb25mb3JtZSBjYXNvIGRvIMO6bHRpbW8gaXRlbS5cbiAgICovXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYkl0ZW1VcmwodXJsOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGlmICghdXJsIHx8IHVybC5sZW5ndGggPD0gMCkge1xuICAgICAgY29uc3QgcGFnZVBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgoKTtcbiAgICAgIHJldHVybiBgJHtzaXRldXJsfSR7cGFnZVBhdGh9YDtcbiAgICB9XG4gICAgdXJsID0gdXJsLmZpbHRlcigodSkgPT4gdSAhPT0gdGhpcy51bmlkYWRlUGF0aCk7XG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XG4gICAgY29uc3QgZnVsbFBhdGggPSBgJHt1bmlkYWRlUGF0aH0vJHt1cmwuam9pbignLycpLnJlcGxhY2UoL15cXC8/LywgJycpfWA7XG4gICAgcmV0dXJuIGAke3NpdGV1cmx9JHtmdWxsUGF0aH1gLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG4gIH1cblxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgbyBKU09OIGRlIFNFTyAqL1xuICBwcml2YXRlIGNyZWF0ZUpTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRhZy5pZCA9IHRoaXMuanNvblRhZ0lkO1xuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIHRoaXMuanNvblRhZyA9IHRhZztcbiAgICByZXR1cm4gdGFnO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cbiAgcHJpdmF0ZSBnZXRKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcbiAgICBsZXQgaTogbnVtYmVyO1xuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS5pZCA9PT0gdGhpcy5qc29uVGFnSWQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUpTT05UYWcoKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmUgSlNPTiBwYXJhIFNFTyBzb21lbnRlIHF1YW5kbyBubyBzZXJ2aWRvciAqL1xuICBwdWJsaWMgc2V0UGFnZUpzb24oKSB7XG4gICAgdGhpcy5qc29uVGFnID0gdGhpcy5nZXRKU09OVGFnKCk7XG4gICAgY29uc3QgZ3JhcGggPSBbdGhpcy5nZXRPcmdKc29uKCksIHRoaXMuZ2V0V2Vic2l0ZUpzb24oKSwgdGhpcy5nZXRXZWJwYWdlSnNvbigpXTtcbiAgICBjb25zdCBqc29uID0geyAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLCAnQGdyYXBoJzogZ3JhcGggfTtcbiAgICB0aGlzLmpzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogT2J0ZW0gSlNPTiBkYSBPcmdhbml6YcOnw6NvICovXG4gIHByaXZhdGUgZ2V0T3JnSnNvbigpIHtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxuICAgICAgJ0BpZCc6IGAke3NpdGV1cmx9I29yZ2FuaXphdGlvbmAsXG4gICAgICBuYW1lOiB0aGlzLmRlZmF1bHRUaXRsZSxcbiAgICAgIGtleXdvcmRzOiB0aGlzLmxpYkNvbmZpZz8ua2V5d29yZHMsXG4gICAgICB1cmw6IGAke3NpdGV1cmx9YCxcbiAgICAgIHNhbWVBczogdGhpcy5zYW1lQXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBPYnRlbSBKU09OIGRvIFdlYnNpdGUgKHBvcnRhbCwgdW5pZGFkZXMsIGV0YykgKi9cbiAgcHJpdmF0ZSBnZXRXZWJzaXRlSnNvbigpIHtcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJTaXRlJyxcbiAgICAgICdAaWQnOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgLFxuICAgICAgdXJsOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9YCxcbiAgICAgIG5hbWU6IHRoaXMudW5pZGFkZU5hbWUsXG4gICAgICBrZXl3b3JkczogdGhpcy5saWJDb25maWc/LmtleXdvcmRzLFxuICAgIH07XG4gIH1cblxuICAvKiogT2J0ZW0gSnNvbiBkYSBww6FnaW5hICovXG4gIHByaXZhdGUgZ2V0V2VicGFnZUpzb24oKSB7XG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XG4gICAgY29uc3Qgc2l0ZVVSTCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGNvbnN0IHBhZ2VQYXRoID0gYCR7c2l0ZVVSTH0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XG4gICAgY29uc3QgZGVzYyA9IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gPyB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uIDogJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcbiAgICAgICdAaWQnOiBgJHtwYWdlUGF0aH0jd2VicGFnZWAsXG4gICAgICB1cmw6IHBhZ2VQYXRoLFxuICAgICAgaW5MYW5ndWFnZTogJ3B0LUJSJyxcbiAgICAgIG5hbWU6IHRoaXMuZ2V0VGl0bGUoKSxcbiAgICAgIGlzUGFydE9mOiB7ICdAaWQnOiBgJHtzaXRlVVJMfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgIH0sXG4gICAgICBhYm91dDogeyAnQGlkJzogYCR7c2l0ZVVSTH0jb3JnYW5pemF0aW9uYCB9LFxuICAgICAgZGVzY3JpcHRpb246IGRlc2MsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5pZGFkZVBhdGgoKSB7XG4gICAgbGV0IHVuaWRhZGVQYXRoID0gJyc7XG4gICAgaWYgKHRoaXMudW5pZGFkZSAmJiB0aGlzLnVuaWRhZGVQYXRoKSB7XG4gICAgICB1bmlkYWRlUGF0aCA9IHRoaXMudW5pZGFkZT8ucGF0aCA9PT0gJy8nID8gJycgOiB0aGlzLnVuaWRhZGVQYXRoPy5zdWJzdHJpbmcoMCwgdGhpcy51bmlkYWRlUGF0aD8ubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIHJldHVybiB1bmlkYWRlUGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnTDqW0gYSBVUkwgY2Fuw7RuaWNhIGRhIHDDoWdpbmEuXG4gICAqIEByZXR1cm5zIEEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxuICAgKi9cbiAgcHVibGljIGdldENhbm9uaWNhbEhyZWYoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY2Fub25pY2FsVGFnKSB7XG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhbm9uaWNhbFRhZy5ocmVmO1xuICB9XG5cbiAgLyoqIENyaWEgdGFnIHBhcmEgbGlua3MgY2Fub25pY2FscyBubyBoZWFkICovXG4gIHByaXZhdGUgY3JlYXRlQ2Fub25pY2FsVGFnKCk6IEhUTUxMaW5rRWxlbWVudCB7XG4gICAgY29uc3QgdGFnID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgdGFnLnNldEF0dHJpYnV0ZSgncmVsJywgJ2Nhbm9uaWNhbCcpO1xuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB0aGlzLmRvY3VtZW50LlVSTCk7XG4gICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0YWc7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIGxpbmsgY2Fub25pY2FsIGV4aXN0ZSBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xuICBwcml2YXRlIGdldENhbm9uaWNhbFRhZygpOiBIVE1MTGlua0VsZW1lbnQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTExpbmtFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS50YWdOYW1lID09PSAnTElOSycgJiYgZWxlbS5yZWwgPT09ICdjYW5vbmljYWwnKSB7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDYW5vbmljYWxUYWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbGluayBjYW5vbmljYWwgZGEgcMOhZ2luYVxuICAgKiBAcGFyYW0gdXJsIHVybCBjYW5vbmljYWxcbiAgICovXG4gIHB1YmxpYyBzZXRDYW5vbmljYWxIcmVmKHVybD86IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jYW5vbmljYWxUYWcpIHtcbiAgICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGhpcy5nZXRDYW5vbmljYWxUYWcoKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHRoaXMubG9jYXRpb24ucGF0aCgpO1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgIHBhdGggPSBgLyR7cGF0aH1gO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbFVybCA9IHVybCAmJiB0aGlzLmlzQ3VzdG9tQ2Fub25pY2FsKHVybCkgPyB1cmwgOiBgJHtnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KX0ke3BhdGh9YDtcblxuICAgIHRoaXMuY2Fub25pY2FsVGFnLnNldEF0dHJpYnV0ZSgnaHJlZicsIGNhbm9uaWNhbFVybCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgYSBVUkwgZm9ybmVjaWRhIMOpIHVtIGxpbmsgY2Fub25pY2FsIHBlcnNvbmFsaXphZG9cbiAgICogQHBhcmFtIHVybCBVUkwgZm9ybmVjaWRhXG4gICAqL1xuICBwdWJsaWMgaXNDdXN0b21DYW5vbmljYWwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHVybC5zdGFydHNXaXRoKHNpdGV1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idMOpbSB1bWEgdXJsIHbDoWxpZGEgbmEgYXBsaWNhw6fDo28gcHJvdmVuaWVudGUgZGUgdW1hIFVSTCBnZXJhZGFcbiAgICogcGVsbyBwbHVnaW4gWW9hc3QgcGFyYSBjYW5vbmljYWwgYXV0b23DoXRpY28uXG4gICAqIEV4LjogaHR0cHM6Ly93cC5yZWRlZG9yc2FvbHVpei5jb20uYnIvYnJhc2lsL2VzcGVjaWFsaWRhZGVzL2NhcmRpb2xvZ2lhL1xuICAgKiBAcGFyYW0gdXJsRnJvbVdwQXBpIFVSTCBjYW5vbmljYSBnZXJhZGEgcGVsbyBZb2FzdCBQbHVnaW4uXG4gICAqL1xuICB0b0xvY2FsQ2Fub25pY2FsKHVybEZyb21XcEFwaTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmxpYkNvbmZpZz8ud3BVcmwgPz8gJyc7XG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGNvbnN0IHVuaWRhZGVTbHVnID0gdGhpcy51bmlkYWRlU2x1ZztcbiAgICBsZXQgY29udmVydGVkID0gdXJsRnJvbVdwQXBpLnJlcGxhY2UoYXBpVXJsLCBzaXRldXJsKTtcbiAgICBpZiAodW5pZGFkZVNsdWcgIT09ICcvJyAmJiBjb252ZXJ0ZWQuaW5jbHVkZXMoYC8ke3VuaWRhZGVTbHVnfS9gKSkge1xuICAgICAgY29udmVydGVkID0gY29udmVydGVkLnJlcGxhY2UoYC8ke3VuaWRhZGVTbHVnfS9gLCBgJHt0aGlzLnVuaWRhZGVQYXRofWApO1xuICAgIH1cbiAgICByZXR1cm4gY29udmVydGVkO1xuICB9XG5cbiAgZ2V0UG9zdENvbnRlbnQocG9zdDogV3BQb3N0KTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZW50ID0gcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9jb250ZW50J10gPyBwb3N0LmFjZi5yZHNsX3Bvc3RfY29udGVudC5maW5kKChjb250ZW50OiBhbnkpID0+IGNvbnRlbnQuYWNmX2ZjX2xheW91dCA9PT0gJ3RleHRfaHRtbCcpIDogbnVsbDtcbiAgICByZXR1cm4gY29udGVudD8uY29udGVudCB8fCBwb3N0LmNvbnRlbnQucmVuZGVyZWQgfHwgJyc7XG4gIH1cblxuICBhZGRBcnRpY2xlU2NyaXB0KHBvc3Q6IFdwUG9zdCwgc2NyaXB0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcG9zdENvbnRlbnQgPSB0aGlzLmdldFBvc3RDb250ZW50KHBvc3QpO1xuICAgIGNvbnN0IHBvc3RIZWFkZXJJbWFnZSA9IHBvc3QuYWNmWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddXG4gICAgICA/IHtcbiAgICAgICAgICB1cmw6IHBvc3QuYWNmWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLnVybCxcbiAgICAgICAgICB3aWR0aDogcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10ud2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiBwb3N0LmFjZlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS5oZWlnaHQsXG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcblxuICAgIGNvbnN0IHN0cnVjdHVyZWREYXRhID0ge1xuICAgICAgJ0Bjb250ZXh0JzogJ2h0dHBzOi8vc2NoZW1hLm9yZycsXG4gICAgICAnQHR5cGUnOiAnQXJ0aWNsZScsXG4gICAgICBtYWluRW50aXR5T2ZQYWdlOiBgJHtnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KX0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWAsXG4gICAgICBoZWFkbGluZTogcG9zdC50aXRsZT8ucmVuZGVyZWQsXG4gICAgICBkYXRlUHVibGlzaGVkOiBwb3N0LmRhdGVfZ210LFxuICAgICAgcHVibGlzaGVyOiB7XG4gICAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxuICAgICAgICBuYW1lOiAnUmVkZSBE4oCZT3InLFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcbiAgICAgIGFydGljbGVCb2R5OiByZW1vdmVIdG1sVGFncyhoZS5kZWNvZGUocG9zdENvbnRlbnQpKSxcbiAgICAgIGRhdGVNb2RpZmllZDogcG9zdC5tb2RpZmllZF9nbXQsXG4gICAgICBpbWFnZToge1xuICAgICAgICAnQHR5cGUnOiAnSW1hZ2VPYmplY3QnLFxuICAgICAgICB1cmw6IHBvc3RIZWFkZXJJbWFnZT8udXJsIHx8IHBvc3QuZmVhdHVyZWRfbWVkaWFfcGF0aCB8fCAnJyxcbiAgICAgICAgaGVpZ2h0OiBwb3N0SGVhZGVySW1hZ2U/LmhlaWdodCB8fCAnJyxcbiAgICAgICAgd2lkdGg6IHBvc3RIZWFkZXJJbWFnZT8ud2lkdGggfHwgJycsXG4gICAgICB9LFxuICAgICAgYXV0aG9yOiB7XG4gICAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxuICAgICAgICBuYW1lOiAnUmVkZSBE4oCZT3InLFxuICAgICAgfSxcbiAgICAgIHdvcmRjb3VudDogcG9zdENvbnRlbnQuc3BsaXQoJyAnKS5sZW5ndGgsXG4gICAgfTtcblxuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG5cbiAgICBzY3JpcHQudHlwZSA9ICdhcHBsaWNhdGlvbi9sZCtqc29uJztcbiAgICBzY3JpcHQuaWQgPSBzY3JpcHROYW1lO1xuICAgIHNjcmlwdC5pbm5lckhUTUwgPSBKU09OLnN0cmluZ2lmeShzdHJ1Y3R1cmVkRGF0YSk7XG5cbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfVxuXG4gIHJlbW92ZUFydGljbGVTY3JpcHQoc2NyaXB0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JpcHROYW1lKTtcbiAgICBzY3JpcHQ/LnJlbW92ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFVuaWRhZGUoeyB1bmlkYWRlID0gbnVsbCwgdW5pZGFkZU5hbWUgPSAnJywgdW5pZGFkZVBhdGggPSAnJywgdW5pZGFkZVNsdWcgPSAnJyB9OiBTZW9VbmlkYWRlKSB7XG4gICAgdGhpcy51bmlkYWRlID0gdW5pZGFkZTtcbiAgICB0aGlzLnVuaWRhZGVOYW1lID0gdW5pZGFkZU5hbWU7XG4gICAgdGhpcy51bmlkYWRlUGF0aCA9IHVuaWRhZGVQYXRoO1xuICAgIHRoaXMudW5pZGFkZVNsdWcgPSB1bmlkYWRlU2x1ZztcbiAgfVxufVxuIl19
468
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXVCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFD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TSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQUUsT0FBTyxHQUFHLElBQUksRUFBRSxXQUFXLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQUUsV0FBVyxHQUFHLEVBQUUsRUFBYztRQUNwRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDOytHQXZlVSxVQUFVLG1GQTJCWCxVQUFVLGFBQ1YsUUFBUTttSEE1QlAsVUFBVSxjQUZULE1BQU07OzRGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE0QkksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgKiBhcyBoZSBmcm9tICdoZSc7XHJcblxyXG5pbXBvcnQgeyBTb2NpYWxNZXRhUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL21vZGVscy9zb2NpYWwtbWV0YS1wcm9wZXJ0aWVzLm1vZGVsJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iSnNvbkl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLWpzb24taXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlb0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VvL3Nlby1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VvVW5pZGFkZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZW8vc2VvLXVuaWRhZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBXcFBvc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3Bvc3QvcG9zdC5tb2RlbCc7XHJcbmltcG9ydCB7IGdldFNpdGVVcmwsIHJlbW92ZUh0bWxUYWdzIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IExJQl9DT05GSUcsIExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL3Rva2Vucy9MaWJDb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlb1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBzZXBhcmF0b3IgPSAnIC0gJztcclxuICBwdWJsaWMgZGVmYXVsdFRpdGxlID0gJ1JlZGUgROKAmU9yJztcclxuICBwdWJsaWMgYWN0aXZlRGVzY3JpcHRpb24hOiBzdHJpbmc7XHJcbiAgcHVibGljIHNhbWVBcyA9IFtcclxuICAgICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vcmVkZWRvci8nLFxyXG4gICAgJ2h0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vcmVkZWRvcl9vZmljaWFsLycsXHJcbiAgICAnaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvcmVkZWRvci1zYW9sdWl6JyxcclxuICAgICdodHRwczovL3R3aXR0ZXIuY29tL3JlZGVkb3InLFxyXG4gIF07XHJcbiAgcHVibGljIHR3aXR0ZXJVc2VyID0gJ0ByZWRlZG9yJztcclxuXHJcbiAgcHJpdmF0ZSBjYW5vbmljYWxUYWchOiBIVE1MTGlua0VsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBqc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBqc29uVGFnSWQgPSAnc2VvSlNPTic7XHJcbiAgcHJpdmF0ZSBicmVhZGNydW1ic0pzb25UYWchOiBIVE1MU2NyaXB0RWxlbWVudDtcclxuICBwcml2YXRlIGJyZWFkY3J1bWJzSnNvblRhZ0lkID0gJ2JyZWFkY3J1bWJzSlNPTic7XHJcblxyXG4gIHB1YmxpYyB1bmlkYWRlOiBhbnkgPSBudWxsO1xyXG4gIHB1YmxpYyB1bmlkYWRlTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHVuaWRhZGVQYXRoOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgdW5pZGFkZVNsdWc6IHN0cmluZyA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxyXG4gICAgcHJpdmF0ZSBtZXRhOiBNZXRhLFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICBASW5qZWN0KExJQl9DT05GSUcpIHByaXZhdGUgbGliQ29uZmlnOiBMaWJDb25maWcsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBzZXRGdWxsU2VvKGRhdGE6IFNlb0RhdGEpIHtcclxuICAgIHRoaXMuc2V0VGl0bGUoZGF0YS50aXRsZS50ZXh0LCAhIWRhdGEudGl0bGUuc3ViKTtcclxuICAgIHRoaXMuc2V0RGVzY3JpcHRpb24oZGF0YS5kZXNjcmlwdGlvbik7XHJcbiAgICB0aGlzLnNldENhbm9uaWNhbEhyZWYoZGF0YS5jYW5vbmljYWwpO1xyXG4gICAgdGhpcy5zZXRQYWdlSnNvbigpO1xyXG4gICAgdGhpcy5zZXRTb2NpYWxUYWdzKGRhdGEuc29jaWFsVGFncyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGFnIGRlc2NyaXB0aW9uIGRhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgZGVzY3Jpw6fDo28gPHN0cmluZz5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0RGVzY3JpcHRpb24oY29udGVudDogc3RyaW5nKTogU2VvU2VydmljZSB7XHJcbiAgICBjb25zdCBkZXNjVGFnID0gdGhpcy5tZXRhLmdldFRhZyhcIm5hbWU9J2Rlc2NyaXB0aW9uJ1wiKTtcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIGNvbnRlbnQgPSBoZS5kZWNvZGUoY29udGVudCk7XHJcbiAgICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRlbnQgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gPSBjb250ZW50O1xyXG4gICAgY29uc3QgdGFnQ29udGVudCA9IHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudCB9O1xyXG4gICAgaWYgKGRlc2NUYWcpIHtcclxuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWdDb250ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWV0YS5hZGRUYWcodGFnQ29udGVudCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gdGFnIG5vbWUgZGEgdGFnIG1ldGFcclxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgdGFnIG1ldGFcclxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXHJcbiAgICovXHJcbiAgcHVibGljIHNldE1ldGFUYWcodGFnOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZywgdHlwZSA9ICduYW1lJykge1xyXG4gICAgY29uc3QgbWV0YXRhZyA9IHRoaXMubWV0YS5nZXRUYWcoYCR7dHlwZX09JyR7dGFnfSdgKTtcclxuICAgIGNvbnRlbnQgPSBoZS5kZWNvZGUoY29udGVudCk7XHJcbiAgICBjb250ZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29udGVudCk7XHJcbiAgICBjb25zdCB0YWdDb250ZW50ID0ge1xyXG4gICAgICBbdHlwZV06IHRhZyxcclxuICAgICAgY29udGVudCxcclxuICAgIH07XHJcbiAgICBpZiAoIW1ldGF0YWcpIHtcclxuICAgICAgdGhpcy5tZXRhLmFkZFRhZyh0YWdDb250ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcodGFnQ29udGVudCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBtZXRhIHRhZ3MgZGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSB0YWcgbm9tZSBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSBhdHRyIGF0cmlidXRvIGRhIHRhZyBtZXRhXHJcbiAgICogQHBhcmFtIHR5cGUgdGlwbyBkZSB0YWcgbWV0YVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVUYWcodGFnOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZywgYXR0cjogc3RyaW5nLCB0eXBlID0gJ25hbWUnKSB7XHJcbiAgICBjb25zdCBtZXRhdGFnID0gdGhpcy5tZXRhLmdldFRhZyhgJHt0eXBlfT0nJHt0YWd9J2ApO1xyXG4gICAgaWYgKG1ldGF0YWcpIHtcclxuICAgICAgdGhpcy5tZXRhLnJlbW92ZVRhZyhgJHthdHRyfT0ke2NvbnRlbnR9YCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBGYWNlYm9va1xyXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyBmYWNlYm9va1xyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gZmFjZWJvb2tcclxuICAgKiBAcGFyYW0gdXJsIHVybCBwYXJhIGRlZmluacOnw6NvIGRvIGZhY2Vib29rXHJcbiAgICogQHBhcmFtIGltZyBpbWFnZW0gcGFyYSBkZWZpbmnDp8OjbyBubyBmYWNlYm9va1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRNZXRhRmFjZWJvb2sodGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dXJsJywgdXJsLCAncHJvcGVydHknKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dGl0bGUnLCB0aXRsZSwgJ3Byb3BlcnR5Jyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24sICdwcm9wZXJ0eScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp0eXBlJywgJ3dlYnNpdGUnLCAncHJvcGVydHknKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBpbWcgPz8gJycsICdwcm9wZXJ0eScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIG1ldGEgdGFncyBwYXJhIFR3aXR0ZXJcclxuICAgKiBAcGFyYW0gdGl0bGUgdMOtdHVsbyBwYXJhIG8gdHdpdHRlclxyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gdHdpdHRlclxyXG4gICAqIEBwYXJhbSB1cmwgdXJsIHBhcmEgbyB0d2l0dGVyXHJcbiAgICogQHBhcmFtIGltZyBpbWFnZW0gcGFyYSBkZWZpbmnDp8OjbyBubyB0d2l0dGVyXHJcbiAgICovXHJcbiAgcHVibGljIHNldE1ldGFUd2l0dGVyKHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHVybDogc3RyaW5nLCBpbWc6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6c2l0ZScsIHVybCwgJ25hbWUnKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjp0aXRsZScsIHRpdGxlLCAnbmFtZScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCd0d2l0dGVyOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24sICduYW1lJyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6aW1hZ2UnLCBpbWcgPz8gJycsICduYW1lJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGFncyBkZSByZWRlcyBzb2NpYWlzIChUd2l0dGVyIGUgT3BlbiBHcmFwaClcclxuICAgKiBAcGFyYW0gcHJvcGVydGllc1xyXG4gICAqL1xyXG4gIHNldFNvY2lhbFRhZ3MocHJvcGVydGllcz86IFNvY2lhbE1ldGFQcm9wZXJ0aWVzKSB7XHJcbiAgICBjb25zdCBwYWdlUGF0aCA9IHRoaXMubG9jYXRpb24ucGF0aCgpO1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wZXJ0aWVzOiBTb2NpYWxNZXRhUHJvcGVydGllcyA9IHtcclxuICAgICAgdHdpdHRlckNhcmQ6ICdzdW1tYXJ5JyxcclxuICAgICAgdHdpdHRlclNpdGU6IHRoaXMudHdpdHRlclVzZXIsXHJcbiAgICAgIHR5cGU6ICd3ZWJzaXRlJyxcclxuICAgICAgdGl0bGU6IHRoaXMuZ2V0VGl0bGUoKSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gfHwgJycsXHJcbiAgICAgIHVybDogYCR7c2l0ZXVybH0ke3BhZ2VQYXRofWAsXHJcbiAgICAgIGltYWdlOiB0aGlzLmxpYkNvbmZpZz8ubG9nb1BhdGggPyBgJHtzaXRldXJsfSR7dGhpcy5saWJDb25maWcubG9nb1BhdGh9YCA6ICdodHRwczovL3d3dy5yZWRlZG9yc2FvbHVpei5jb20uYnIvYXNzZXRzL2ltZ3MvbG9nby1yZWRlZG9yLWJsdWUucG5nJyxcclxuICAgIH07XHJcbiAgICBpZiAocHJvcGVydGllcykge1xyXG4gICAgICBkZWZhdWx0UHJvcGVydGllcyA9IHsgLi4uZGVmYXVsdFByb3BlcnRpZXMsIC4uLnByb3BlcnRpZXMgfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpjYXJkJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlckNhcmQgfHwgJycsICduYW1lJylcclxuICAgICAgLnNldE1ldGFUYWcoJ3R3aXR0ZXI6c2l0ZScsIGRlZmF1bHRQcm9wZXJ0aWVzLnR3aXR0ZXJTaXRlIHx8ICcnLCAnbmFtZScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp0eXBlJywgZGVmYXVsdFByb3BlcnRpZXMudHlwZSB8fCAnJywgJ3Byb3BlcnR5JylcclxuICAgICAgLnNldE1ldGFUYWcoJ29nOnRpdGxlJywgZGVmYXVsdFByb3BlcnRpZXMudGl0bGUgfHwgJycsICdwcm9wZXJ0eScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzpkZXNjcmlwdGlvbicsIGRlZmF1bHRQcm9wZXJ0aWVzLmRlc2NyaXB0aW9uIHx8ICcnLCAncHJvcGVydHknKVxyXG4gICAgICAuc2V0TWV0YVRhZygnb2c6dXJsJywgZGVmYXVsdFByb3BlcnRpZXMudXJsIHx8ICcnLCAncHJvcGVydHknKVxyXG4gICAgICAuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBkZWZhdWx0UHJvcGVydGllcy5pbWFnZSB8fCAnJywgJ3Byb3BlcnR5Jyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdMOtdHVsbyBkYSBww6FnaW5hXHJcbiAgICogQHBhcmFtIHRpdGxlIHTDrXR1bG8gZGEgcMOhZ2luYSA8c3RyaW5nPlxyXG4gICAqIEBwYXJhbSBzdWIgU2Ugw6kgc3Vic2l0ZSBhY3Jlc2NlbnRhIHVuaWRhZGUgPGJvb2xlYW4+XHJcbiAgICovXHJcbiAgcHVibGljIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcsIHN1YiA9IGZhbHNlKSB7XHJcbiAgICBpZiAodGl0bGUgJiYgdGl0bGUgIT09ICcnKSB7XHJcbiAgICAgIHRpdGxlID0gaGUuZGVjb2RlKHRpdGxlKTtcclxuICAgICAgdGl0bGUgPSByZW1vdmVIdG1sVGFncyh0aXRsZSk7XHJcbiAgICAgIGlmIChzdWIpIHtcclxuICAgICAgICB0aXRsZSA9IGhlLmRlY29kZShgJHt0aXRsZX0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIHTDrXR1bG8gYXR1YWwgZGEgcMOhZ2luYSAqL1xyXG4gIHB1YmxpYyBnZXRUaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGUuZ2V0VGl0bGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQ0MDRUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcclxuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50ICE9PSAnJykge1xyXG4gICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoY29tcG9uZW50KTtcclxuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcclxuICAgICAgaWYgKHRoaXMudW5pZGFkZU5hbWUpIHtcclxuICAgICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoYCR7Y29tcG9uZW50fSR7dGhpcy5zZXBhcmF0b3J9JHt0aGlzLnVuaWRhZGVOYW1lfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aXRsZSA9IGBFcnJvIDQwNCAtICR7Y29tcG9uZW50fSAtICR7dGhpcy5saWJDb25maWc/LnNpdGVOYW1lfSAtICR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YDtcclxuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgSlNPTiBkZSBicmVhZGNydW1icyAqL1xyXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgdGFnLmlkID0gdGhpcy5icmVhZGNydW1ic0pzb25UYWdJZDtcclxuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRhZztcclxuICAgIHJldHVybiB0YWc7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSB0YWcgcGFyYSBzY3JpcHQganNvbiBkZSBicmVhZGNydW1icyBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xyXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xyXG4gICAgbGV0IGk6IG51bWJlcjtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgICAgIGlmIChlbGVtICYmIGVsZW0uaWQgPT09IHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnSWQpIHtcclxuICAgICAgICByZXR1cm4gZWxlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRGVmaW5lIG8gSlNPTiBkZSBicmVhZGNydW1icyBkYSBww6FnaW5hICovXHJcbiAgcHVibGljIHNldEJyZWFkY3J1bWJzSnNvbihpdGVtczogQnJlYWRjcnVtYkl0ZW1bXSkge1xyXG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcgPSB0aGlzLmdldEJyZWFkY3J1bWJzSlNPTlRhZygpO1xyXG4gICAgY29uc3QganNvbiA9IHtcclxuICAgICAgJ0Bjb250ZXh0JzogJ2h0dHA6Ly9zY2hlbWEub3JnJyxcclxuICAgICAgJ0B0eXBlJzogJ0JyZWFkY3J1bWJMaXN0JyxcclxuICAgICAgaXRlbUxpc3RFbGVtZW50OiB0aGlzLmdldEpzb25CcmVhZGNydW1iSXRlbXMoaXRlbXMpLFxyXG4gICAgfTtcclxuICAgIHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnLmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQ29udmVydGUgaXRlbnMgZG8gYnJlYWRjcnVtYiBlbSBpdGVucyBkbyBKU09OICovXHJcbiAgcHJpdmF0ZSBnZXRKc29uQnJlYWRjcnVtYkl0ZW1zKGl0ZW1zOiBCcmVhZGNydW1iSXRlbVtdKTogQnJlYWRjcnVtYkpzb25JdGVtW10ge1xyXG4gICAgY29uc3QganNvbkl0ZW1zID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgJ0B0eXBlJzogJ0xpc3RJdGVtJyxcclxuICAgICAgICBwb3NpdGlvbjogMSxcclxuICAgICAgICBpdGVtOiB7ICdAaWQnOiB0aGlzLmdldEJyZWFkY3J1bWJJdGVtVXJsKFsnLyddKSwgbmFtZTogaGUuZW5jb2RlKCdQw6FnaW5hIEluaWNpYWwnKSB9LFxyXG4gICAgICB9IGFzIEJyZWFkY3J1bWJKc29uSXRlbSxcclxuICAgIF07XHJcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGpzb25JdGVtOiBCcmVhZGNydW1iSnNvbkl0ZW0gPSB7XHJcbiAgICAgICAgJ0B0eXBlJzogJ0xpc3RJdGVtJyxcclxuICAgICAgICBwb3NpdGlvbjogaSArIDIsXHJcbiAgICAgICAgaXRlbTogeyAnQGlkJzogdGhpcy5nZXRCcmVhZGNydW1iSXRlbVVybChpdGVtPy51cmwgfHwgW10pLCBuYW1lOiBoZS5lbmNvZGUoaXRlbS5sYWJlbCkgfSxcclxuICAgICAgfTtcclxuICAgICAganNvbkl0ZW1zLnB1c2goanNvbkl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4ganNvbkl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTW9udGEgYSB1cmwgZG8gaXRlbSBkZSBicmVhZGNydW1iIHByb3ZlbmllbnRlIGRvIGFycmF5IGRlIHVybHNcclxuICAgKiBvdSBkbyBjYW1pbmhvIGRhIHByw7NwcmlhIHDDoWdpbmEsIGNvbmZvcm1lIGNhc28gZG8gw7psdGltbyBpdGVtLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYkl0ZW1VcmwodXJsOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICBpZiAoIXVybCB8fCB1cmwubGVuZ3RoIDw9IDApIHtcclxuICAgICAgY29uc3QgcGFnZVBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgoKTtcclxuICAgICAgcmV0dXJuIGAke3NpdGV1cmx9JHtwYWdlUGF0aH1gO1xyXG4gICAgfVxyXG4gICAgdXJsID0gdXJsLmZpbHRlcigodSkgPT4gdSAhPT0gdGhpcy51bmlkYWRlUGF0aCk7XHJcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcclxuICAgIGNvbnN0IGZ1bGxQYXRoID0gYCR7dW5pZGFkZVBhdGh9LyR7dXJsLmpvaW4oJy8nKS5yZXBsYWNlKC9eXFwvPy8sICcnKX1gO1xyXG4gICAgcmV0dXJuIGAke3NpdGV1cmx9JHtmdWxsUGF0aH1gLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcbiAgfVxyXG5cclxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgbyBKU09OIGRlIFNFTyAqL1xyXG4gIHByaXZhdGUgY3JlYXRlSlNPTlRhZygpOiBIVE1MU2NyaXB0RWxlbWVudCB7XHJcbiAgICBjb25zdCB0YWc6IEhUTUxTY3JpcHRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIHRhZy5pZCA9IHRoaXMuanNvblRhZ0lkO1xyXG4gICAgdGFnLnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XHJcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcclxuICAgIHRoaXMuanNvblRhZyA9IHRhZztcclxuICAgIHJldHVybiB0YWc7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSB0YWcgcGFyYSBzY3JpcHQganNvbiBkZSBicmVhZGNydW1icyBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xyXG4gIHByaXZhdGUgZ2V0SlNPTlRhZygpOiBIVE1MU2NyaXB0RWxlbWVudCB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcclxuICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xyXG4gICAgICBpZiAoZWxlbSAmJiBlbGVtLmlkID09PSB0aGlzLmpzb25UYWdJZCkge1xyXG4gICAgICAgIHJldHVybiBlbGVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVKU09OVGFnKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRGVmaW5lIEpTT04gcGFyYSBTRU8gc29tZW50ZSBxdWFuZG8gbm8gc2Vydmlkb3IgKi9cclxuICBwdWJsaWMgc2V0UGFnZUpzb24oKSB7XHJcbiAgICB0aGlzLmpzb25UYWcgPSB0aGlzLmdldEpTT05UYWcoKTtcclxuICAgIGNvbnN0IGdyYXBoID0gW3RoaXMuZ2V0T3JnSnNvbigpLCB0aGlzLmdldFdlYnNpdGVKc29uKCksIHRoaXMuZ2V0V2VicGFnZUpzb24oKV07XHJcbiAgICBjb25zdCBqc29uID0geyAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLCAnQGdyYXBoJzogZ3JhcGggfTtcclxuICAgIHRoaXMuanNvblRhZy5pbm5lckhUTUwgPSBKU09OLnN0cmluZ2lmeShqc29uKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIEpTT04gZGEgT3JnYW5pemHDp8OjbyAqL1xyXG4gIHByaXZhdGUgZ2V0T3JnSnNvbigpIHtcclxuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxyXG4gICAgICAnQGlkJzogYCR7c2l0ZXVybH0jb3JnYW5pemF0aW9uYCxcclxuICAgICAgbmFtZTogdGhpcy5kZWZhdWx0VGl0bGUsXHJcbiAgICAgIGtleXdvcmRzOiB0aGlzLmxpYkNvbmZpZz8ua2V5d29yZHMsXHJcbiAgICAgIHVybDogYCR7c2l0ZXVybH1gLFxyXG4gICAgICBzYW1lQXM6IHRoaXMuc2FtZUFzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKiBPYnRlbSBKU09OIGRvIFdlYnNpdGUgKHBvcnRhbCwgdW5pZGFkZXMsIGV0YykgKi9cclxuICBwcml2YXRlIGdldFdlYnNpdGVKc29uKCkge1xyXG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnQHR5cGUnOiAnV2ViU2l0ZScsXHJcbiAgICAgICdAaWQnOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgLFxyXG4gICAgICB1cmw6IGAke3NpdGV1cmx9JHt1bmlkYWRlUGF0aH1gLFxyXG4gICAgICBuYW1lOiB0aGlzLnVuaWRhZGVOYW1lLFxyXG4gICAgICBrZXl3b3JkczogdGhpcy5saWJDb25maWc/LmtleXdvcmRzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKiBPYnRlbSBKc29uIGRhIHDDoWdpbmEgKi9cclxuICBwcml2YXRlIGdldFdlYnBhZ2VKc29uKCkge1xyXG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XHJcbiAgICBjb25zdCBzaXRlVVJMID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICBjb25zdCBwYWdlUGF0aCA9IGAke3NpdGVVUkx9JHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xyXG4gICAgY29uc3QgZGVzYyA9IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gPyB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uIDogJyc7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnQHR5cGUnOiAnV2ViUGFnZScsXHJcbiAgICAgICdAaWQnOiBgJHtwYWdlUGF0aH0jd2VicGFnZWAsXHJcbiAgICAgIHVybDogcGFnZVBhdGgsXHJcbiAgICAgIGluTGFuZ3VhZ2U6ICdwdC1CUicsXHJcbiAgICAgIG5hbWU6IHRoaXMuZ2V0VGl0bGUoKSxcclxuICAgICAgaXNQYXJ0T2Y6IHsgJ0BpZCc6IGAke3NpdGVVUkx9JHt1bmlkYWRlUGF0aH0jd2Vic2l0ZWAgfSxcclxuICAgICAgYWJvdXQ6IHsgJ0BpZCc6IGAke3NpdGVVUkx9I29yZ2FuaXphdGlvbmAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IGRlc2MsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVbmlkYWRlUGF0aCgpIHtcclxuICAgIGxldCB1bmlkYWRlUGF0aCA9ICcnO1xyXG4gICAgaWYgKHRoaXMudW5pZGFkZSAmJiB0aGlzLnVuaWRhZGVQYXRoKSB7XHJcbiAgICAgIHVuaWRhZGVQYXRoID0gdGhpcy51bmlkYWRlPy5wYXRoID09PSAnLycgPyAnJyA6IHRoaXMudW5pZGFkZVBhdGg/LnN1YnN0cmluZygwLCB0aGlzLnVuaWRhZGVQYXRoPy5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmlkYWRlUGF0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idMOpbSBhIFVSTCBjYW7DtG5pY2EgZGEgcMOhZ2luYS5cclxuICAgKiBAcmV0dXJucyBBIFVSTCBjYW7DtG5pY2EgZGEgcMOhZ2luYS5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q2Fub25pY2FsSHJlZigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmNhbm9uaWNhbFRhZykge1xyXG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jYW5vbmljYWxUYWcuaHJlZjtcclxuICB9XHJcblxyXG4gIC8qKiBDcmlhIHRhZyBwYXJhIGxpbmtzIGNhbm9uaWNhbHMgbm8gaGVhZCAqL1xyXG4gIHByaXZhdGUgY3JlYXRlQ2Fub25pY2FsVGFnKCk6IEhUTUxMaW5rRWxlbWVudCB7XHJcbiAgICBjb25zdCB0YWcgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdjYW5vbmljYWwnKTtcclxuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xyXG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnaHJlZicsIHRoaXMuZG9jdW1lbnQuVVJMKTtcclxuICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGFnO1xyXG4gICAgcmV0dXJuIHRhZztcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIGxpbmsgY2Fub25pY2FsIGV4aXN0ZSBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xyXG4gIHByaXZhdGUgZ2V0Q2Fub25pY2FsVGFnKCk6IEhUTUxMaW5rRWxlbWVudCB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcclxuICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxMaW5rRWxlbWVudDtcclxuICAgICAgaWYgKGVsZW0gJiYgZWxlbS50YWdOYW1lID09PSAnTElOSycgJiYgZWxlbS5yZWwgPT09ICdjYW5vbmljYWwnKSB7XHJcbiAgICAgICAgcmV0dXJuIGVsZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUNhbm9uaWNhbFRhZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIGxpbmsgY2Fub25pY2FsIGRhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gdXJsIHVybCBjYW5vbmljYWxcclxuICAgKi9cclxuICBwdWJsaWMgc2V0Q2Fub25pY2FsSHJlZih1cmw/OiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5jYW5vbmljYWxUYWcpIHtcclxuICAgICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0aGlzLmdldENhbm9uaWNhbFRhZygpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBwYXRoID0gdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZTtcclxuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykpIHtcclxuICAgICAgcGF0aCA9IGAvJHtwYXRofWA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2Fub25pY2FsVXJsID0gdXJsICYmIHRoaXMuaXNDdXN0b21DYW5vbmljYWwodXJsKSA/IHVybCA6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7cGF0aH1gO1xyXG5cclxuICAgIHRoaXMuY2Fub25pY2FsVGFnLnNldEF0dHJpYnV0ZSgnaHJlZicsIGNhbm9uaWNhbFVybCk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWNhIHNlIGEgVVJMIGZvcm5lY2lkYSDDqSB1bSBsaW5rIGNhbm9uaWNhbCBwZXJzb25hbGl6YWRvXHJcbiAgICogQHBhcmFtIHVybCBVUkwgZm9ybmVjaWRhXHJcbiAgICovXHJcbiAgcHVibGljIGlzQ3VzdG9tQ2Fub25pY2FsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoc2l0ZXVybCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnTDqW0gdW1hIHVybCB2w6FsaWRhIG5hIGFwbGljYcOnw6NvIHByb3ZlbmllbnRlIGRlIHVtYSBVUkwgZ2VyYWRhXHJcbiAgICogcGVsbyBwbHVnaW4gWW9hc3QgcGFyYSBjYW5vbmljYWwgYXV0b23DoXRpY28uXHJcbiAgICogRXguOiBodHRwczovL3dwLnJlZGVkb3JzYW9sdWl6LmNvbS5ici9icmFzaWwvZXNwZWNpYWxpZGFkZXMvY2FyZGlvbG9naWEvXHJcbiAgICogQHBhcmFtIHVybEZyb21XcEFwaSBVUkwgY2Fub25pY2EgZ2VyYWRhIHBlbG8gWW9hc3QgUGx1Z2luLlxyXG4gICAqL1xyXG4gIHRvTG9jYWxDYW5vbmljYWwodXJsRnJvbVdwQXBpOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5saWJDb25maWc/LndwVXJsID8/ICcnO1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgY29uc3QgdW5pZGFkZVNsdWcgPSB0aGlzLnVuaWRhZGVTbHVnO1xyXG4gICAgbGV0IGNvbnZlcnRlZCA9IHVybEZyb21XcEFwaS5yZXBsYWNlKGFwaVVybCwgc2l0ZXVybCk7XHJcbiAgICBpZiAodW5pZGFkZVNsdWcgIT09ICcvJyAmJiBjb252ZXJ0ZWQuaW5jbHVkZXMoYC8ke3VuaWRhZGVTbHVnfS9gKSkge1xyXG4gICAgICBjb252ZXJ0ZWQgPSBjb252ZXJ0ZWQucmVwbGFjZShgLyR7dW5pZGFkZVNsdWd9L2AsIGAke3RoaXMudW5pZGFkZVBhdGh9YCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udmVydGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0UG9zdENvbnRlbnQocG9zdDogV3BQb3N0KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSBwb3N0LmFjZlsncmRzbF9wb3N0X2NvbnRlbnQnXSA/IHBvc3QuYWNmLnJkc2xfcG9zdF9jb250ZW50LmZpbmQoKGNvbnRlbnQ6IGFueSkgPT4gY29udGVudC5hY2ZfZmNfbGF5b3V0ID09PSAndGV4dF9odG1sJykgOiBudWxsO1xyXG4gICAgcmV0dXJuIGNvbnRlbnQ/LmNvbnRlbnQgfHwgcG9zdC5jb250ZW50LnJlbmRlcmVkIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgYWRkQXJ0aWNsZVNjcmlwdChwb3N0OiBXcFBvc3QsIHNjcmlwdE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgcG9zdENvbnRlbnQgPSB0aGlzLmdldFBvc3RDb250ZW50KHBvc3QpO1xyXG4gICAgY29uc3QgcG9zdEhlYWRlckltYWdlID0gcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ11cclxuICAgICAgPyB7XHJcbiAgICAgICAgICB1cmw6IHBvc3QuYWNmWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLnVybCxcclxuICAgICAgICAgIHdpZHRoOiBwb3N0LmFjZlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS53aWR0aCxcclxuICAgICAgICAgIGhlaWdodDogcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10uaGVpZ2h0LFxyXG4gICAgICAgIH1cclxuICAgICAgOiBudWxsO1xyXG5cclxuICAgIGNvbnN0IHN0cnVjdHVyZWREYXRhID0ge1xyXG4gICAgICAnQGNvbnRleHQnOiAnaHR0cHM6Ly9zY2hlbWEub3JnJyxcclxuICAgICAgJ0B0eXBlJzogJ0FydGljbGUnLFxyXG4gICAgICBtYWluRW50aXR5T2ZQYWdlOiBgJHtnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KX0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWAsXHJcbiAgICAgIGhlYWRsaW5lOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcclxuICAgICAgZGF0ZVB1Ymxpc2hlZDogcG9zdC5kYXRlX2dtdCxcclxuICAgICAgcHVibGlzaGVyOiB7XHJcbiAgICAgICAgJ0B0eXBlJzogJ09yZ2FuaXphdGlvbicsXHJcbiAgICAgICAgbmFtZTogJ1JlZGUgROKAmU9yJyxcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHBvc3QudGl0bGU/LnJlbmRlcmVkLFxyXG4gICAgICBhcnRpY2xlQm9keTogcmVtb3ZlSHRtbFRhZ3MoaGUuZGVjb2RlKHBvc3RDb250ZW50KSksXHJcbiAgICAgIGRhdGVNb2RpZmllZDogcG9zdC5tb2RpZmllZF9nbXQsXHJcbiAgICAgIGltYWdlOiB7XHJcbiAgICAgICAgJ0B0eXBlJzogJ0ltYWdlT2JqZWN0JyxcclxuICAgICAgICB1cmw6IHBvc3RIZWFkZXJJbWFnZT8udXJsIHx8IHBvc3QuZmVhdHVyZWRfbWVkaWFfcGF0aCB8fCAnJyxcclxuICAgICAgICBoZWlnaHQ6IHBvc3RIZWFkZXJJbWFnZT8uaGVpZ2h0IHx8ICcnLFxyXG4gICAgICAgIHdpZHRoOiBwb3N0SGVhZGVySW1hZ2U/LndpZHRoIHx8ICcnLFxyXG4gICAgICB9LFxyXG4gICAgICBhdXRob3I6IHtcclxuICAgICAgICAnQHR5cGUnOiAnT3JnYW5pemF0aW9uJyxcclxuICAgICAgICBuYW1lOiAnUmVkZSBE4oCZT3InLFxyXG4gICAgICB9LFxyXG4gICAgICB3b3JkY291bnQ6IHBvc3RDb250ZW50LnNwbGl0KCcgJykubGVuZ3RoLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG5cclxuICAgIHNjcmlwdC50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xyXG4gICAgc2NyaXB0LmlkID0gc2NyaXB0TmFtZTtcclxuICAgIHNjcmlwdC5pbm5lckhUTUwgPSBKU09OLnN0cmluZ2lmeShzdHJ1Y3R1cmVkRGF0YSk7XHJcblxyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVBcnRpY2xlU2NyaXB0KHNjcmlwdE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JpcHROYW1lKTtcclxuICAgIHNjcmlwdD8ucmVtb3ZlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VW5pZGFkZSh7IHVuaWRhZGUgPSBudWxsLCB1bmlkYWRlTmFtZSA9ICcnLCB1bmlkYWRlUGF0aCA9ICcnLCB1bmlkYWRlU2x1ZyA9ICcnIH06IFNlb1VuaWRhZGUpIHtcclxuICAgIHRoaXMudW5pZGFkZSA9IHVuaWRhZGU7XHJcbiAgICB0aGlzLnVuaWRhZGVOYW1lID0gdW5pZGFkZU5hbWU7XHJcbiAgICB0aGlzLnVuaWRhZGVQYXRoID0gdW5pZGFkZVBhdGg7XHJcbiAgICB0aGlzLnVuaWRhZGVTbHVnID0gdW5pZGFkZVNsdWc7XHJcbiAgfVxyXG59XHJcbiJdfQ==