@ng-nest/ui 16.0.2 → 16.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auto-complete/auto-complete.component.d.ts +4 -1
- package/cascade/cascade.component.d.ts +4 -1
- package/color-picker/color-picker.component.d.ts +4 -1
- package/core/functions/parent-path.d.ts +1 -0
- package/date-picker/date-picker.component.d.ts +4 -1
- package/date-picker/date-range.component.d.ts +2 -0
- package/esm2022/auto-complete/auto-complete.component.mjs +35 -7
- package/esm2022/cascade/cascade.component.mjs +36 -8
- package/esm2022/color-picker/color-picker.component.mjs +36 -8
- package/esm2022/core/functions/parent-path.mjs +10 -1
- package/esm2022/date-picker/date-picker.component.mjs +36 -9
- package/esm2022/date-picker/date-range.component.mjs +31 -6
- package/esm2022/form/control.component.mjs +2 -2
- package/esm2022/form/form.property.mjs +1 -1
- package/esm2022/select/select.component.mjs +37 -9
- package/esm2022/time-picker/time-picker.component.mjs +32 -6
- package/esm2022/tree-select/tree-select.component.mjs +36 -8
- package/fesm2022/ng-nest-ui-auto-complete.mjs +34 -7
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +35 -8
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +34 -7
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +10 -1
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +60 -8
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +1 -1
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +37 -10
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +31 -5
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +35 -8
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/form/form.property.d.ts +10 -0
- package/package.json +7 -7
- package/select/select.component.d.ts +4 -1
- package/time-picker/time-picker.component.d.ts +2 -0
- package/tree-select/tree-select.component.d.ts +4 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { XPortalConnectedPosition } from '@ng-nest/ui/portal';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild } from '@angular/core';
|
|
2
|
+
import { Subject, fromEvent } from 'rxjs';
|
|
3
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, inject } from '@angular/core';
|
|
4
4
|
import { XDateRangePrefix, XDateRangeProperty } from './date-picker.property';
|
|
5
|
-
import { XIsEmpty, XIsDate, XIsNumber, XIsChange, XClearClass, XIsString, XIsNull, XDateYearWeek, XDateYearQuarter } from '@ng-nest/ui/core';
|
|
6
|
-
import { DatePipe } from '@angular/common';
|
|
7
|
-
import { map, takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { XIsEmpty, XIsDate, XIsNumber, XIsChange, XClearClass, XIsString, XIsNull, XDateYearWeek, XDateYearQuarter, XParents } from '@ng-nest/ui/core';
|
|
6
|
+
import { DOCUMENT, DatePipe } from '@angular/common';
|
|
7
|
+
import { filter, map, takeUntil } from 'rxjs/operators';
|
|
8
8
|
import { XValueAccessor } from '@ng-nest/ui/base-form';
|
|
9
9
|
import { XDateRangePortalComponent } from './date-range-portal.component';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
@@ -113,6 +113,7 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
113
113
|
this.flexClass = [];
|
|
114
114
|
this.locale = {};
|
|
115
115
|
this._unSubject = new Subject();
|
|
116
|
+
this.document = inject(DOCUMENT);
|
|
116
117
|
}
|
|
117
118
|
ngOnInit() {
|
|
118
119
|
this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);
|
|
@@ -159,6 +160,30 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
159
160
|
setHostTypeClass() {
|
|
160
161
|
this.renderer.addClass(this.elementRef.nativeElement, `x-date-range-${this.type}`);
|
|
161
162
|
}
|
|
163
|
+
setParantScroll() {
|
|
164
|
+
if (!this.document)
|
|
165
|
+
return;
|
|
166
|
+
const parents = XParents(this.elementRef.nativeElement);
|
|
167
|
+
let firstScroll = null;
|
|
168
|
+
for (let item of parents) {
|
|
169
|
+
if (item.clientHeight < item.scrollHeight) {
|
|
170
|
+
firstScroll = item;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (firstScroll && firstScroll.tagName !== 'BODY') {
|
|
175
|
+
fromEvent(firstScroll, 'scroll')
|
|
176
|
+
.pipe(filter(() => this.portalAttached()), takeUntil(this._unSubject))
|
|
177
|
+
.subscribe(() => {
|
|
178
|
+
this.portal?.overlayRef?.updatePosition();
|
|
179
|
+
const eract = this.elementRef.nativeElement.getBoundingClientRect();
|
|
180
|
+
const frect = firstScroll.getBoundingClientRect();
|
|
181
|
+
if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {
|
|
182
|
+
this.closeSubject.next();
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
162
187
|
setFormat() {
|
|
163
188
|
if (this.format !== 'yyyy-MM-dd')
|
|
164
189
|
return;
|
|
@@ -448,4 +473,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
448
473
|
type: ViewChild,
|
|
449
474
|
args: ['inputEndCom', { static: true }]
|
|
450
475
|
}] } });
|
|
451
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEcsT0FBTyxFQUNMLFFBQVEsRUFDUixPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUVULE9BQU8sRUFDUCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFHMUUsTUFRYSxtQkFBb0IsU0FBUSxrQkFBa0I7SUFXekQsSUFBSSxtQkFBbUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPLElB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LElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7aUlBbmJVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLHVDQUZuQixDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQywrZkMzQzVELDZ6RUF3REE7O1NEWGEsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsR0FBRyxnQkFBZ0IsRUFBRSxpQkFHaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMscUJBQXFCLEVBQUUsUUFBUSxDQUFDOzBUQUdoQixTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNLLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYUG9ydGFsU2VydmljZSwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhEYXRlUGlja2VyTW9kZWxUeXBlLCBYRGF0ZVJhbmdlUHJlZml4LCBYRGF0ZVJhbmdlUHJvcGVydHkgfSBmcm9tICcuL2RhdGUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICBYSXNFbXB0eSxcclxuICBYSXNEYXRlLFxyXG4gIFhJc051bWJlcixcclxuICBYSXNDaGFuZ2UsXHJcbiAgWENvcm5lcixcclxuICBYQ2xlYXJDbGFzcyxcclxuICBYSXNTdHJpbmcsXHJcbiAgWENvbmZpZ1NlcnZpY2UsXHJcbiAgWElzTnVsbCxcclxuICBYRGF0ZVllYXJXZWVrLFxyXG4gIFhEYXRlWWVhclF1YXJ0ZXJcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50LCBYSW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWERhdGVSYW5nZVBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEkxOG5EYXRlUGlja2VyLCBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRGF0ZVJhbmdlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhEYXRlUmFuZ2VDb21wb25lbnQpLCBEYXRlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUmFuZ2VDb21wb25lbnQgZXh0ZW5kcyBYRGF0ZVJhbmdlUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVJhbmdlJywgeyBzdGF0aWM6IHRydWUgfSkgZGF0ZVJhbmdlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRHcm91cCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0R3JvdXAhOiBYSW5wdXRHcm91cENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdpbnB1dFN0YXJ0Q29tJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRTdGFydENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdpbnB1dEVuZENvbScsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RW5kQ29tITogWElucHV0Q29tcG9uZW50O1xyXG5cclxuICBtb2RlbFR5cGU6IFhEYXRlUGlja2VyTW9kZWxUeXBlID0gJ2RhdGUnO1xyXG4gIG51bWJlclZhbHVlITogKG51bWJlciB8IG51bGwpW107XHJcbiAgaXNJbnB1dCA9IGZhbHNlO1xyXG4gIHNob3dDbGVhcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGdldFN0YXJ0UGxhY2Vob2xkZXIoKSB7XHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlciAmJiB0aGlzLnBsYWNlaG9sZGVyLmxlbmd0aCA+IDApIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyWzBdO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuc3RhcnRNb250aDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncXVhcnRlcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLnN0YXJ0UXVhcnRlcjtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAneWVhcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLnN0YXJ0WWVhcjtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnd2VlaycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLnN0YXJ0V2VlaztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5zdGFydERhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0RW5kUGxhY2Vob2xkZXIoKSB7XHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlciAmJiB0aGlzLnBsYWNlaG9sZGVyLmxlbmd0aCA+IDEpIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyWzFdO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuZW5kTW9udGg7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3F1YXJ0ZXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5lbmRRdWFydGVyO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuZW5kWWVhcjtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnd2VlaycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLmVuZFdlZWs7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuZW5kRGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGdldCByZXF1aXJlZElzRW1wdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3IgJiYgdGhpcy5yZXF1aXJlZCAmJiBYSXNFbXB0eSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHZhbHVlKSkge1xyXG4gICAgICB2YWx1ZSA9IFtdO1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gW107XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoWElzRGF0ZSh2YWx1ZVswXSkpIHtcclxuICAgICAgICB0aGlzLm1vZGVsVHlwZSA9ICdkYXRlJztcclxuICAgICAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWUubWFwKCh4OiBEYXRlKSA9PiB4LmdldFRpbWUoKSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzTnVtYmVyKHZhbHVlWzBdKSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxUeXBlID0gJ251bWJlcic7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc1N0cmluZyh2YWx1ZVswXSkpIHtcclxuICAgICAgICB0aGlzLm1vZGVsVHlwZSA9ICdzdHJpbmcnO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlVGltZSA9IHZhbHVlLm1hcCgoeDogc3RyaW5nKSA9PiBuZXcgRGF0ZSh4KS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSAhaXNOYU4odmFsdWVUaW1lWzBdKSA/IHZhbHVlVGltZSA6IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGVudGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5wdXRDbGVhcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IHN0cmluZ1tdID0gW107XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WERhdGVSYW5nZVBvcnRhbENvbXBvbmVudD47XHJcbiAgaWNvbjogc3RyaW5nID0gJ2Z0by1jYWxlbmRhcic7XHJcbiAgYm94ITogRE9NUmVjdDtcclxuICBwcm90YWxIZWlnaHQhOiBudW1iZXI7XHJcbiAgbWF4Tm9kZXM6IG51bWJlciA9IDY7XHJcbiAgcHJvdGFsVG9ib3R0b206IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHZhbHVlQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGRhdGFDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcG9zaXRpb25DaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY2xvc2VTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBhY3RpdmVUeXBlQ2hhbmdlID0gbmV3IFN1YmplY3Q8J3N0YXJ0JyB8ICdlbmQnPigpO1xyXG4gIHN0YXJ0RGlzcGxheTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgZW5kRGlzcGxheTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgYWN0aXZlVHlwZT86ICdzdGFydCcgfCAnZW5kJztcclxuICBmbGV4Q2xhc3M6IHN0cmluZ1tdID0gW107XHJcbiAgbG9jYWxlOiBYSTE4bkRhdGVQaWNrZXIgPSB7fTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcG9ydGFsU2VydmljZTogWFBvcnRhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgaTE4bjogWEkxOG5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5kYXRlUmFuZ2UubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldEhvc3RUeXBlQ2xhc3MoKTtcclxuICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUsIGp1c3RpZnksIGFsaWduLCBkaXJlY3Rpb24sIHNpemUsIGxhYmVsQWxpZ24gfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2Uoc2l6ZSwgbGFiZWxBbGlnbikgJiYgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgWElzQ2hhbmdlKGp1c3RpZnksIGFsaWduLCBkaXJlY3Rpb24pICYmIHRoaXMuc2V0RmxleENsYXNzKCk7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlciksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEZsZXhDbGFzcygpIHtcclxuICAgIGlmICh0aGlzLmZsZXhDbGFzcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGNscyBvZiB0aGlzLmZsZXhDbGFzcykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kYXRlUmFuZ2UubmF0aXZlRWxlbWVudCwgY2xzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5mbGV4Q2xhc3MgPSB0aGlzLnNldEZsZXgodGhpcy5kYXRlUmFuZ2UubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZXRIb3N0VHlwZUNsYXNzKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYHgtZGF0ZS1yYW5nZS0ke3RoaXMudHlwZX1gKTtcclxuICB9XHJcblxyXG4gIHNldEZvcm1hdCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm1hdCAhPT0gJ3l5eXktTU0tZGQnKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXknO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtdGltZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbTpzcyc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtbWludXRlJykge1xyXG4gICAgICB0aGlzLmZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lbnRlcigpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmNsZWFyYWJsZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IHRydWU7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMubnVtYmVyVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLnNob3dDbGVhcmFibGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtbGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5jbGVhcmFibGUpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmNsZWFyYWJsZSkge1xyXG4gICAgICB0aGlzLmljb24gPSAnZnRvLWNhbGVuZGFyJztcclxuICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUgPSBbXTtcclxuICAgIHRoaXMubnVtYmVyVmFsdWUgPSBbXTtcclxuICAgIHRoaXMuc3RhcnREaXNwbGF5ID0gJyc7XHJcbiAgICB0aGlzLmVuZERpc3BsYXkgPSAnJztcclxuICAgIHRoaXMubWxlYXZlKCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlKCk7XHJcbiAgICB0aGlzLmlucHV0U3RhcnRDb20uaW5wdXRGb2N1cygpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25JY29uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pY29uID09PSAnZnRvLXgnKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJFbWl0KCk7XHJcbiAgICB9XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbFR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICA/IHRoaXMubnVtYmVyVmFsdWUubWFwKCh4KSA9PiBuZXcgRGF0ZSh4ISkpXHJcbiAgICAgIDogdGhpcy5tb2RlbFR5cGUgPT09ICdzdHJpbmcnXHJcbiAgICAgID8gdGhpcy5udW1iZXJWYWx1ZS5tYXAoKHgpID0+IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHgsIHRoaXMuZm9ybWF0KSlcclxuICAgICAgOiB0aGlzLm51bWJlclZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0TnVtYmVyVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbFR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICA/IHRoaXMudmFsdWUubWFwKCh4OiBEYXRlKSA9PiB4LmdldFRpbWUoKSlcclxuICAgICAgOiB0aGlzLm1vZGVsVHlwZSA9PT0gJ3N0cmluZydcclxuICAgICAgPyB0aGlzLnZhbHVlLm1hcCgoeDogc3RyaW5nKSA9PiBuZXcgRGF0ZSh4KS5nZXRUaW1lKCkpXHJcbiAgICAgIDogdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jbG9zZVJlZHVjdGlvbigpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VSZWR1Y3Rpb24oKSB7XHJcbiAgICBpZiAoIXRoaXMubnVtYmVyVmFsdWUgfHwgdGhpcy5udW1iZXJWYWx1ZS5sZW5ndGggPT09IDAgfHwgdGhpcy5udW1iZXJWYWx1ZS5pbmNsdWRlcyhudWxsKSkge1xyXG4gICAgICBpZiAoIXRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLnN0YXJ0RGlzcGxheSA9ICcnO1xyXG4gICAgICAgIHRoaXMuZW5kRGlzcGxheSA9ICcnO1xyXG4gICAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm51bWJlclZhbHVlID0gdGhpcy5nZXROdW1iZXJWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMubnVtYmVyVmFsdWUuaW5jbHVkZXMobnVsbCkgJiYgdGhpcy52YWx1ZSAmJiAhdGhpcy52YWx1ZS5pbmNsdWRlcyhudWxsKSkge1xyXG4gICAgICBsZXQgbnVtYmVyVmFsdWUgPSB0aGlzLmdldE51bWJlclZhbHVlKCk7XHJcbiAgICAgIGlmICh0aGlzLm51bWJlclZhbHVlWzBdICE9PSBudW1iZXJWYWx1ZVswXSB8fCB0aGlzLm51bWJlclZhbHVlWzFdICE9PSBudW1iZXJWYWx1ZVsxXSkge1xyXG4gICAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSBudW1iZXJWYWx1ZTtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCRldmVudDogRXZlbnQsIHR5cGU/OiAnc3RhcnQnIHwgJ2VuZCcpIHtcclxuICAgIHR5cGUgJiYgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5hbmltYXRpbmcpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlVHlwZSA9IHR5cGUgfHwgJ3N0YXJ0JztcclxuICAgIHRoaXMuYWN0aXZlVHlwZUNoYW5nZS5uZXh0KHRoaXMuYWN0aXZlVHlwZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYRGF0ZVJhbmdlUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBjbGlja1RhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAoY2xpY2tUYXJnZXQgIT09IHRoaXMuaW5wdXRTdGFydENvbS5pbnB1dFJlZi5uYXRpdmVFbGVtZW50ICYmIGNsaWNrVGFyZ2V0ICE9PSB0aGlzLmlucHV0RW5kQ29tLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZXRJbnN0YW5jZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oY29uZmlnOiBPdmVybGF5Q29uZmlnKSB7XHJcbiAgICBsZXQgcG9zaXRpb24gPSBjb25maWcucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XHJcbiAgICBwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKChwb3M6IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSkgPT4ge1xyXG4gICAgICBjb25zdCBwbGFjZSA9IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbi5nZXQocG9zLmNvbm5lY3Rpb25QYWlyKSBhcyBYQ29ybmVyO1xyXG4gICAgICBwbGFjZSAhPT0gdGhpcy5wbGFjZW1lbnQgJiYgdGhpcy5wb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWw/LmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXHJcbiAgICAgIHZhbHVlOiB0aGlzLm51bWJlclZhbHVlLFxyXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxyXG4gICAgICB2YWx1ZUNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIGFjdGl2ZVR5cGU6IHRoaXMuYWN0aXZlVHlwZSxcclxuICAgICAgZXh0cmFGb290ZXI6IHRoaXMuZXh0cmFGb290ZXIsXHJcbiAgICAgIHByZXNldDogdGhpcy5wcmVzZXQsXHJcbiAgICAgIGFjdGl2ZVR5cGVDaGFuZ2U6IHRoaXMuYWN0aXZlVHlwZUNoYW5nZSxcclxuICAgICAgZGlzYWJsZWREYXRlOiB0aGlzLmRpc2FibGVkRGF0ZSxcclxuICAgICAgZGlzYWJsZWRUaW1lOiB0aGlzLmRpc2FibGVkVGltZSxcclxuICAgICAgY2xvc2VQb3J0YWw6ICgpID0+IHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIG5vZGVFbWl0OiAoZGF0ZXM6IERhdGVbXSwgY2xvc2UgPSB0cnVlKSA9PiB0aGlzLm9uTm9kZUNsaWNrKGRhdGVzLCBjbG9zZSksXHJcbiAgICAgIHN0YXJ0Tm9kZUVtaXQ6IChub2RlOiBEYXRlLCBjbG9zZSA9IGZhbHNlLCBpc0RhdGVQaWNrZXI6IGJvb2xlYW4gPSB0cnVlKSA9PiB0aGlzLnN0YXJ0Tm9kZUNsaWNrKG5vZGUsIGNsb3NlLCBpc0RhdGVQaWNrZXIpLFxyXG4gICAgICBlbmROb2RlRW1pdDogKG5vZGU6IERhdGUsIGNsb3NlID0gZmFsc2UsIGlzRGF0ZVBpY2tlcjogYm9vbGVhbiA9IHRydWUpID0+IHRoaXMuZW5kTm9kZUNsaWNrKG5vZGUsIGNsb3NlLCBpc0RhdGVQaWNrZXIpLFxyXG4gICAgICBhbmltYXRpbmc6IChpbmc6IGJvb2xlYW4pID0+ICh0aGlzLmFuaW1hdGluZyA9IGluZylcclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0Tm9kZUNsaWNrKG5vZGU/OiBEYXRlLCBjbG9zZSA9IGZhbHNlLCBpc0RhdGVQaWNrZXI6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0aGlzLnN0YXJ0RGlzcGxheSA9ICFub2RlXHJcbiAgICAgID8gJydcclxuICAgICAgOiB0aGlzLnR5cGUgPT09ICd3ZWVrJ1xyXG4gICAgICA/IFhEYXRlWWVhcldlZWsobm9kZSkhXHJcbiAgICAgIDogdGhpcy50eXBlID09PSAncXVhcnRlcidcclxuICAgICAgPyBYRGF0ZVllYXJRdWFydGVyKG5vZGUpIVxyXG4gICAgICA6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5vZGUsIHRoaXMuZm9ybWF0KSE7XHJcbiAgICBpZiAoIWNsb3NlICYmIGlzRGF0ZVBpY2tlcikge1xyXG4gICAgICB0aGlzLmlucHV0RW5kQ29tLmlucHV0Rm9jdXMoJ2FmdGVyJyk7XHJcbiAgICAgIHRoaXMuYWN0aXZlVHlwZUNoYW5nZS5uZXh0KCdlbmQnKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGVuZE5vZGVDbGljayhub2RlPzogRGF0ZSwgY2xvc2UgPSBmYWxzZSwgaXNEYXRlUGlja2VyOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5lbmREaXNwbGF5ID0gIW5vZGVcclxuICAgICAgPyAnJ1xyXG4gICAgICA6IHRoaXMudHlwZSA9PT0gJ3dlZWsnXHJcbiAgICAgID8gWERhdGVZZWFyV2Vlayhub2RlKSFcclxuICAgICAgOiB0aGlzLnR5cGUgPT09ICdxdWFydGVyJ1xyXG4gICAgICA/IFhEYXRlWWVhclF1YXJ0ZXIobm9kZSkhXHJcbiAgICAgIDogdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obm9kZSwgdGhpcy5mb3JtYXQpITtcclxuICAgIGlmICghY2xvc2UgJiYgaXNEYXRlUGlja2VyKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRTdGFydENvbS5pbnB1dEZvY3VzKCdhZnRlcicpO1xyXG4gICAgICB0aGlzLmFjdGl2ZVR5cGVDaGFuZ2UubmV4dCgnc3RhcnQnKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKGRhdGVzOiBEYXRlW10sIGNsb3NlID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5pc0lucHV0ID0gZmFsc2U7XHJcbiAgICB0aGlzLm51bWJlclZhbHVlID0gZGF0ZXMubWFwKCh4KSA9PiB4LmdldFRpbWUoKSk7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICBpZiAoY2xvc2UpIHtcclxuICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dCgpIHtcclxuICAgIHRoaXMuaXNJbnB1dCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKHR5cGU6ICdzdGFydCcgfCAnZW5kJykge1xyXG4gICAgdGhpcy5hY3RpdmVUeXBlID0gdHlwZTtcclxuICAgIHRoaXMuYWN0aXZlQ2hhbmdlLm5leHQodGhpcy5hY3RpdmVUeXBlKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXlWYWx1ZShkYXRlTnVtYmVyOiAobnVtYmVyIHwgbnVsbClbXSkge1xyXG4gICAgaWYgKCFkYXRlTnVtYmVyKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwoZGF0ZU51bWJlclswXSkpIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERpc3BsYXkgPSBYRGF0ZVllYXJXZWVrKGRhdGVOdW1iZXJbMF0hKSE7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncXVhcnRlcicpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0RGlzcGxheSA9IFhEYXRlWWVhclF1YXJ0ZXIoZGF0ZU51bWJlclswXSEpITtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN0YXJ0RGlzcGxheSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGVOdW1iZXJbMF0sIHRoaXMuZm9ybWF0KSBhcyBzdHJpbmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghWElzTnVsbChkYXRlTnVtYmVyWzFdKSkge1xyXG4gICAgICBpZiAodGhpcy50eXBlID09PSAnd2VlaycpIHtcclxuICAgICAgICB0aGlzLmVuZERpc3BsYXkgPSBYRGF0ZVllYXJXZWVrKGRhdGVOdW1iZXJbMV0hKSE7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncXVhcnRlcicpIHtcclxuICAgICAgICB0aGlzLmVuZERpc3BsYXkgPSBYRGF0ZVllYXJRdWFydGVyKGRhdGVOdW1iZXJbMV0hKSE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lbmREaXNwbGF5ID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZU51bWJlclsxXSwgdGhpcy5mb3JtYXQpIGFzIHN0cmluZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZW1lbnQoe1xyXG4gICAgICBlbGVtZW50UmVmOiB0aGlzLmlucHV0R3JvdXAuZWxlbWVudFJlZixcclxuICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQgYXMgWENvcm5lciwgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1kYXRlLXJhbmdlLXBvcnRhbCdcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWxBdHRhY2hlZCgpICYmIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuc2V0UGxhY2VtZW50KCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmNsYXNzTWFwLCB0aGlzLmxhYmVsTWFwKTtcclxuICAgIHRoaXMuY2xhc3NNYXBbYCR7WERhdGVSYW5nZVByZWZpeH0tJHt0aGlzLnNpemV9YF0gPSB0aGlzLnNpemUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjZGF0ZVJhbmdlXHJcbiAgY2xhc3M9XCJ4LWRhdGUtcmFuZ2VcIlxyXG4gIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkgfHwgYWxpZ24gfHwgZGlyZWN0aW9uXCJcclxuICBbY2xhc3MueC1jaGVja2VkXT1cInZhbHVlXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5XCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtjbGFzcy54LWRhdGUtcmFuZ2UtYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gIFtjbGFzcy54LWRhdGUtcmFuZ2UtYWN0aXZlXT1cImFjdGl2ZVwiXHJcbiAgW2NsYXNzLngtZGF0ZS1yYW5nZS1hY3RpdmUtc3RhcnRdPVwiYWN0aXZlVHlwZSA9PT0gJ3N0YXJ0J1wiXHJcbiAgW2NsYXNzLngtZGF0ZS1yYW5nZS1hY3RpdmUtZW5kXT1cImFjdGl2ZVR5cGUgPT09ICdlbmQnXCJcclxuPlxyXG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2NsYXNzLngtZGF0ZS1yYW5nZS1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1yb3dcIj5cclxuICAgIDx4LWlucHV0LWdyb3VwICNpbnB1dEdyb3VwIGNsYXNzPVwieC1kYXRlLXJhbmdlLWdyb3VwXCIgKG1vdXNlZW50ZXIpPVwibWVudGVyKClcIiAobW91c2VsZWF2ZSk9XCJtbGVhdmUoKVwiIChjbGljayk9XCJzaG93UG9ydGFsKCRldmVudClcIj5cclxuICAgICAgPHgtaW5wdXRcclxuICAgICAgICAjaW5wdXRTdGFydENvbVxyXG4gICAgICAgIGNsYXNzPVwieC1kYXRhLXJhbmdlLWlucHV0IHgtZGF0YS1yYW5nZS1pbnB1dC1zdGFydFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIGJvcmRlcmVkPVwiZmFsc2VcIlxyXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFN0YXJ0UGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICh4Rm9jdXMpPVwib25Gb2N1cygnc3RhcnQnKVwiXHJcbiAgICAgICAgKHhDbGljayk9XCJzaG93UG9ydGFsKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwic3RhcnREaXNwbGF5XCJcclxuICAgICAgICBpY29uPVwiZnRvLWFycm93LXJpZ2h0XCJcclxuICAgICAgPjwveC1pbnB1dD5cclxuICAgICAgPHgtaW5wdXRcclxuICAgICAgICAjaW5wdXRFbmRDb21cclxuICAgICAgICBjbGFzcz1cIngtZGF0YS1yYW5nZS1pbnB1dCB4LWRhdGEtcmFuZ2UtaW5wdXQtZW5kXCJcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgYm9yZGVyZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0RW5kUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICh4Rm9jdXMpPVwib25Gb2N1cygnZW5kJylcIlxyXG4gICAgICAgICh4Q2xpY2spPVwic2hvd1BvcnRhbCgkZXZlbnQsICdlbmQnKVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlbmREaXNwbGF5XCJcclxuICAgICAgICBbaWNvbl09XCJpY29uXCJcclxuICAgICAgICAoY2xlYXJFbWl0KT1cImNsZWFyRW1pdCgpXCJcclxuICAgICAgICBbY2xlYXJhYmxlXT1cInNob3dDbGVhcmFibGVcIlxyXG4gICAgICA+PC94LWlucHV0PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlXCIgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtYWN0aXZlLWJhclwiPjwvZGl2PlxyXG4gICAgPC94LWlucHV0LWdyb3VwPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiaW52YWxpZFwiPnt7IGludmFsaWRNZXNzYWdlIH19PC9zcGFuPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlcXVpcmVkSXNFbXB0eSB8fCBpbnZhbGlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LXRvcC1sZWZ0XCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LXRvcC1yaWdodFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC1ib3R0b20tbGVmdFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC1ib3R0b20tcmlnaHRcIj48L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
476
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQU12QixTQUFTLEVBRVQsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRyxPQUFPLEVBQ0wsUUFBUSxFQUNSLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBRVQsT0FBTyxFQUNQLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNULE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7OztBQUcxRSxNQVFhLG1CQUFvQixTQUFRLGtCQUFrQjtJQVd6RCxJQUFJLG1CQUFtQjtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLElB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QUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztpSUEvY1UsbUJBQW1CO3FIQUFuQixtQkFBbUIsdUNBRm5CLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsUUFBUSxDQUFDLCtmQzdDNUQsNnpFQXdEQTs7U0RUYSxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxHQUFHLGdCQUFnQixFQUFFLGlCQUdoQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxxQkFBcUIsRUFBRSxRQUFRLENBQUM7MFRBR2hCLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0ssYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNBLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWERhdGVQaWNrZXJNb2RlbFR5cGUsIFhEYXRlUmFuZ2VQcmVmaXgsIFhEYXRlUmFuZ2VQcm9wZXJ0eSB9IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0VtcHR5LFxyXG4gIFhJc0RhdGUsXHJcbiAgWElzTnVtYmVyLFxyXG4gIFhJc0NoYW5nZSxcclxuICBYQ29ybmVyLFxyXG4gIFhDbGVhckNsYXNzLFxyXG4gIFhJc1N0cmluZyxcclxuICBYQ29uZmlnU2VydmljZSxcclxuICBYSXNOdWxsLFxyXG4gIFhEYXRlWWVhcldlZWssXHJcbiAgWERhdGVZZWFyUXVhcnRlcixcclxuICBYUGFyZW50c1xyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQsIFhJbnB1dEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYRGF0ZVJhbmdlUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXJhbmdlLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYSTE4bkRhdGVQaWNrZXIsIFhJMThuU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUmFuZ2VQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWERhdGVSYW5nZUNvbXBvbmVudCksIERhdGVQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERhdGVSYW5nZUNvbXBvbmVudCBleHRlbmRzIFhEYXRlUmFuZ2VQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdkYXRlUmFuZ2UnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkYXRlUmFuZ2UhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEdyb3VwJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRHcm91cCE6IFhJbnB1dEdyb3VwQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0U3RhcnRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFN0YXJ0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RW5kQ29tJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbmRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcblxyXG4gIG1vZGVsVHlwZTogWERhdGVQaWNrZXJNb2RlbFR5cGUgPSAnZGF0ZSc7XHJcbiAgbnVtYmVyVmFsdWUhOiAobnVtYmVyIHwgbnVsbClbXTtcclxuICBpc0lucHV0ID0gZmFsc2U7XHJcbiAgc2hvd0NsZWFyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXQgZ2V0U3RhcnRQbGFjZWhvbGRlcigpIHtcclxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyICYmIHRoaXMucGxhY2Vob2xkZXIubGVuZ3RoID4gMCkgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXJbMF07XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5zdGFydE1vbnRoO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdxdWFydGVyJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuc3RhcnRRdWFydGVyO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuc3RhcnRZZWFyO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd3ZWVrJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuc3RhcnRXZWVrO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLnN0YXJ0RGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBnZXRFbmRQbGFjZWhvbGRlcigpIHtcclxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyICYmIHRoaXMucGxhY2Vob2xkZXIubGVuZ3RoID4gMSkgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXJbMV07XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5lbmRNb250aDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncXVhcnRlcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLmVuZFF1YXJ0ZXI7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5lbmRZZWFyO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd3ZWVrJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuZW5kV2VlaztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5lbmREYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgZ2V0IHJlcXVpcmVkSXNFbXB0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRvciAmJiB0aGlzLnJlcXVpcmVkICYmIFhJc0VtcHR5KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoWElzRW1wdHkodmFsdWUpKSB7XHJcbiAgICAgIHZhbHVlID0gW107XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSBbXTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChYSXNEYXRlKHZhbHVlWzBdKSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxUeXBlID0gJ2RhdGUnO1xyXG4gICAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSB2YWx1ZS5tYXAoKHg6IERhdGUpID0+IHguZ2V0VGltZSgpKTtcclxuICAgICAgfSBlbHNlIGlmIChYSXNOdW1iZXIodmFsdWVbMF0pKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbFR5cGUgPSAnbnVtYmVyJztcclxuICAgICAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzU3RyaW5nKHZhbHVlWzBdKSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxUeXBlID0gJ3N0cmluZyc7XHJcbiAgICAgICAgY29uc3QgdmFsdWVUaW1lID0gdmFsdWUubWFwKCh4OiBzdHJpbmcpID0+IG5ldyBEYXRlKHgpLmdldFRpbWUoKSk7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9ICFpc05hTih2YWx1ZVRpbWVbMF0pID8gdmFsdWVUaW1lIDogW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbnB1dENsZWFyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFuaW1hdGluZyA9IGZhbHNlO1xyXG4gIGRpc3BsYXlWYWx1ZTogc3RyaW5nW10gPSBbXTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYRGF0ZVJhbmdlUG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uOiBzdHJpbmcgPSAnZnRvLWNhbGVuZGFyJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGFjdGl2ZVR5cGVDaGFuZ2UgPSBuZXcgU3ViamVjdDwnc3RhcnQnIHwgJ2VuZCc+KCk7XHJcbiAgc3RhcnREaXNwbGF5OiBzdHJpbmcgfCBudW1iZXIgPSAnJztcclxuICBlbmREaXNwbGF5OiBzdHJpbmcgfCBudW1iZXIgPSAnJztcclxuICBhY3RpdmVUeXBlPzogJ3N0YXJ0JyB8ICdlbmQnO1xyXG4gIGZsZXhDbGFzczogc3RyaW5nW10gPSBbXTtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcG9ydGFsU2VydmljZTogWFBvcnRhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgaTE4bjogWEkxOG5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5kYXRlUmFuZ2UubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldEhvc3RUeXBlQ2xhc3MoKTtcclxuICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUsIGp1c3RpZnksIGFsaWduLCBkaXJlY3Rpb24sIHNpemUsIGxhYmVsQWxpZ24gfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2Uoc2l6ZSwgbGFiZWxBbGlnbikgJiYgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgWElzQ2hhbmdlKGp1c3RpZnksIGFsaWduLCBkaXJlY3Rpb24pICYmIHRoaXMuc2V0RmxleENsYXNzKCk7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlciksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEZsZXhDbGFzcygpIHtcclxuICAgIGlmICh0aGlzLmZsZXhDbGFzcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGNscyBvZiB0aGlzLmZsZXhDbGFzcykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kYXRlUmFuZ2UubmF0aXZlRWxlbWVudCwgY2xzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5mbGV4Q2xhc3MgPSB0aGlzLnNldEZsZXgodGhpcy5kYXRlUmFuZ2UubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZXRIb3N0VHlwZUNsYXNzKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYHgtZGF0ZS1yYW5nZS0ke3RoaXMudHlwZX1gKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmFudFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy5kb2N1bWVudCkgcmV0dXJuO1xyXG4gICAgY29uc3QgcGFyZW50cyA9IFhQYXJlbnRzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBmaXJzdFNjcm9sbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgcGFyZW50cykge1xyXG4gICAgICBpZiAoaXRlbS5jbGllbnRIZWlnaHQgPCBpdGVtLnNjcm9sbEhlaWdodCkge1xyXG4gICAgICAgIGZpcnN0U2Nyb2xsID0gaXRlbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGZpcnN0U2Nyb2xsICYmIGZpcnN0U2Nyb2xsLnRhZ05hbWUgIT09ICdCT0RZJykge1xyXG4gICAgICBmcm9tRXZlbnQoZmlyc3RTY3JvbGwsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMucG9ydGFsQXR0YWNoZWQoKSEpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICAgICAgICAgIGNvbnN0IGVyYWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBjb25zdCBmcmVjdCA9IGZpcnN0U2Nyb2xsIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGlmIChlcmFjdC50b3AgKyBlcmFjdC5oZWlnaHQgLSBmcmVjdC50b3AgPCAwIHx8IGVyYWN0LmJvdHRvbSA+IGZyZWN0LmJvdHRvbSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtYXQoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtYXQgIT09ICd5eXl5LU1NLWRkJykgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLmZvcm1hdCA9ICd5eXl5JztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0nO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLWhvdXInKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEgnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLW1pbnV0ZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5jbGVhcmFibGUpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSB0cnVlO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLm51bWJlclZhbHVlKSkge1xyXG4gICAgICB0aGlzLmljb24gPSAnJztcclxuICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWxlYXZlKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuY2xlYXJhYmxlKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jbGVhcmFibGUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1jYWxlbmRhcic7XHJcbiAgICAgIHRoaXMuc2hvd0NsZWFyYWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckVtaXQoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gW107XHJcbiAgICB0aGlzLm51bWJlclZhbHVlID0gW107XHJcbiAgICB0aGlzLnN0YXJ0RGlzcGxheSA9ICcnO1xyXG4gICAgdGhpcy5lbmREaXNwbGF5ID0gJyc7XHJcbiAgICB0aGlzLm1sZWF2ZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgdGhpcy5pbnB1dFN0YXJ0Q29tLmlucHV0Rm9jdXMoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uSWNvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuaWNvbiA9PT0gJ2Z0by14Jykge1xyXG4gICAgICB0aGlzLmNsZWFyRW1pdCgpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBtb2RlbENoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWxUeXBlID09PSAnZGF0ZSdcclxuICAgICAgPyB0aGlzLm51bWJlclZhbHVlLm1hcCgoeCkgPT4gbmV3IERhdGUoeCEpKVxyXG4gICAgICA6IHRoaXMubW9kZWxUeXBlID09PSAnc3RyaW5nJ1xyXG4gICAgICA/IHRoaXMubnVtYmVyVmFsdWUubWFwKCh4KSA9PiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh4LCB0aGlzLmZvcm1hdCkpXHJcbiAgICAgIDogdGhpcy5udW1iZXJWYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldE51bWJlclZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWxUeXBlID09PSAnZGF0ZSdcclxuICAgICAgPyB0aGlzLnZhbHVlLm1hcCgoeDogRGF0ZSkgPT4geC5nZXRUaW1lKCkpXHJcbiAgICAgIDogdGhpcy5tb2RlbFR5cGUgPT09ICdzdHJpbmcnXHJcbiAgICAgID8gdGhpcy52YWx1ZS5tYXAoKHg6IHN0cmluZykgPT4gbmV3IERhdGUoeCkuZ2V0VGltZSgpKVxyXG4gICAgICA6IHRoaXMudmFsdWU7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2xvc2VSZWR1Y3Rpb24oKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsb3NlUmVkdWN0aW9uKCkge1xyXG4gICAgaWYgKCF0aGlzLm51bWJlclZhbHVlIHx8IHRoaXMubnVtYmVyVmFsdWUubGVuZ3RoID09PSAwIHx8IHRoaXMubnVtYmVyVmFsdWUuaW5jbHVkZXMobnVsbCkpIHtcclxuICAgICAgaWYgKCF0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERpc3BsYXkgPSAnJztcclxuICAgICAgICB0aGlzLmVuZERpc3BsYXkgPSAnJztcclxuICAgICAgICB0aGlzLm51bWJlclZhbHVlID0gW107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IHRoaXMuZ2V0TnVtYmVyVmFsdWUoKTtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLm51bWJlclZhbHVlLmluY2x1ZGVzKG51bGwpICYmIHRoaXMudmFsdWUgJiYgIXRoaXMudmFsdWUuaW5jbHVkZXMobnVsbCkpIHtcclxuICAgICAgbGV0IG51bWJlclZhbHVlID0gdGhpcy5nZXROdW1iZXJWYWx1ZSgpO1xyXG4gICAgICBpZiAodGhpcy5udW1iZXJWYWx1ZVswXSAhPT0gbnVtYmVyVmFsdWVbMF0gfHwgdGhpcy5udW1iZXJWYWx1ZVsxXSAhPT0gbnVtYmVyVmFsdWVbMV0pIHtcclxuICAgICAgICB0aGlzLm51bWJlclZhbHVlID0gbnVtYmVyVmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1BvcnRhbCgkZXZlbnQ6IEV2ZW50LCB0eXBlPzogJ3N0YXJ0JyB8ICdlbmQnKSB7XHJcbiAgICB0eXBlICYmICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuYW5pbWF0aW5nKSByZXR1cm47XHJcbiAgICB0aGlzLmFjdGl2ZVR5cGUgPSB0eXBlIHx8ICdzdGFydCc7XHJcbiAgICB0aGlzLmFjdGl2ZVR5cGVDaGFuZ2UubmV4dCh0aGlzLmFjdGl2ZVR5cGUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlKSByZXR1cm47XHJcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcbiAgICBjb25zdCBjb25maWc6IE92ZXJsYXlDb25maWcgPSB7XHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnNldFBsYWNlbWVudCgpLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWERhdGVSYW5nZVBvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiBjb25maWdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2xpY2tUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKGNsaWNrVGFyZ2V0ICE9PSB0aGlzLmlucHV0U3RhcnRDb20uaW5wdXRSZWYubmF0aXZlRWxlbWVudCAmJiBjbGlja1RhcmdldCAhPT0gdGhpcy5pbnB1dEVuZENvbS5pbnB1dFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWENvcm5lcjtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICB2YWx1ZTogdGhpcy5udW1iZXJWYWx1ZSxcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgdmFsdWVDaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UsXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBhY3RpdmVUeXBlOiB0aGlzLmFjdGl2ZVR5cGUsXHJcbiAgICAgIGV4dHJhRm9vdGVyOiB0aGlzLmV4dHJhRm9vdGVyLFxyXG4gICAgICBwcmVzZXQ6IHRoaXMucHJlc2V0LFxyXG4gICAgICBhY3RpdmVUeXBlQ2hhbmdlOiB0aGlzLmFjdGl2ZVR5cGVDaGFuZ2UsXHJcbiAgICAgIGRpc2FibGVkRGF0ZTogdGhpcy5kaXNhYmxlZERhdGUsXHJcbiAgICAgIGRpc2FibGVkVGltZTogdGhpcy5kaXNhYmxlZFRpbWUsXHJcbiAgICAgIGNsb3NlUG9ydGFsOiAoKSA9PiB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCksXHJcbiAgICAgIGRlc3Ryb3lQb3J0YWw6ICgpID0+IHRoaXMuZGVzdHJveVBvcnRhbCgpLFxyXG4gICAgICBub2RlRW1pdDogKGRhdGVzOiBEYXRlW10sIGNsb3NlID0gdHJ1ZSkgPT4gdGhpcy5vbk5vZGVDbGljayhkYXRlcywgY2xvc2UpLFxyXG4gICAgICBzdGFydE5vZGVFbWl0OiAobm9kZTogRGF0ZSwgY2xvc2UgPSBmYWxzZSwgaXNEYXRlUGlja2VyOiBib29sZWFuID0gdHJ1ZSkgPT4gdGhpcy5zdGFydE5vZGVDbGljayhub2RlLCBjbG9zZSwgaXNEYXRlUGlja2VyKSxcclxuICAgICAgZW5kTm9kZUVtaXQ6IChub2RlOiBEYXRlLCBjbG9zZSA9IGZhbHNlLCBpc0RhdGVQaWNrZXI6IGJvb2xlYW4gPSB0cnVlKSA9PiB0aGlzLmVuZE5vZGVDbGljayhub2RlLCBjbG9zZSwgaXNEYXRlUGlja2VyKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzdGFydE5vZGVDbGljayhub2RlPzogRGF0ZSwgY2xvc2UgPSBmYWxzZSwgaXNEYXRlUGlja2VyOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zdGFydERpc3BsYXkgPSAhbm9kZVxyXG4gICAgICA/ICcnXHJcbiAgICAgIDogdGhpcy50eXBlID09PSAnd2VlaydcclxuICAgICAgPyBYRGF0ZVllYXJXZWVrKG5vZGUpIVxyXG4gICAgICA6IHRoaXMudHlwZSA9PT0gJ3F1YXJ0ZXInXHJcbiAgICAgID8gWERhdGVZZWFyUXVhcnRlcihub2RlKSFcclxuICAgICAgOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShub2RlLCB0aGlzLmZvcm1hdCkhO1xyXG4gICAgaWYgKCFjbG9zZSAmJiBpc0RhdGVQaWNrZXIpIHtcclxuICAgICAgdGhpcy5pbnB1dEVuZENvbS5pbnB1dEZvY3VzKCdhZnRlcicpO1xyXG4gICAgICB0aGlzLmFjdGl2ZVR5cGVDaGFuZ2UubmV4dCgnZW5kJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBlbmROb2RlQ2xpY2sobm9kZT86IERhdGUsIGNsb3NlID0gZmFsc2UsIGlzRGF0ZVBpY2tlcjogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHRoaXMuZW5kRGlzcGxheSA9ICFub2RlXHJcbiAgICAgID8gJydcclxuICAgICAgOiB0aGlzLnR5cGUgPT09ICd3ZWVrJ1xyXG4gICAgICA/IFhEYXRlWWVhcldlZWsobm9kZSkhXHJcbiAgICAgIDogdGhpcy50eXBlID09PSAncXVhcnRlcidcclxuICAgICAgPyBYRGF0ZVllYXJRdWFydGVyKG5vZGUpIVxyXG4gICAgICA6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5vZGUsIHRoaXMuZm9ybWF0KSE7XHJcbiAgICBpZiAoIWNsb3NlICYmIGlzRGF0ZVBpY2tlcikge1xyXG4gICAgICB0aGlzLmlucHV0U3RhcnRDb20uaW5wdXRGb2N1cygnYWZ0ZXInKTtcclxuICAgICAgdGhpcy5hY3RpdmVUeXBlQ2hhbmdlLm5leHQoJ3N0YXJ0Jyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhkYXRlczogRGF0ZVtdLCBjbG9zZSA9IHRydWUpIHtcclxuICAgIHRoaXMuaXNJbnB1dCA9IGZhbHNlO1xyXG4gICAgdGhpcy5udW1iZXJWYWx1ZSA9IGRhdGVzLm1hcCgoeCkgPT4geC5nZXRUaW1lKCkpO1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgaWYgKGNsb3NlKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXQoKSB7XHJcbiAgICB0aGlzLmlzSW5wdXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyh0eXBlOiAnc3RhcnQnIHwgJ2VuZCcpIHtcclxuICAgIHRoaXMuYWN0aXZlVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmFjdGl2ZUNoYW5nZS5uZXh0KHRoaXMuYWN0aXZlVHlwZSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoZGF0ZU51bWJlcjogKG51bWJlciB8IG51bGwpW10pIHtcclxuICAgIGlmICghZGF0ZU51bWJlcikgcmV0dXJuO1xyXG4gICAgaWYgKCFYSXNOdWxsKGRhdGVOdW1iZXJbMF0pKSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd3ZWVrJykge1xyXG4gICAgICAgIHRoaXMuc3RhcnREaXNwbGF5ID0gWERhdGVZZWFyV2VlayhkYXRlTnVtYmVyWzBdISkhO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3F1YXJ0ZXInKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERpc3BsYXkgPSBYRGF0ZVllYXJRdWFydGVyKGRhdGVOdW1iZXJbMF0hKSE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdGFydERpc3BsYXkgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlTnVtYmVyWzBdLCB0aGlzLmZvcm1hdCkgYXMgc3RyaW5nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIVhJc051bGwoZGF0ZU51bWJlclsxXSkpIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgICAgdGhpcy5lbmREaXNwbGF5ID0gWERhdGVZZWFyV2VlayhkYXRlTnVtYmVyWzFdISkhO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3F1YXJ0ZXInKSB7XHJcbiAgICAgICAgdGhpcy5lbmREaXNwbGF5ID0gWERhdGVZZWFyUXVhcnRlcihkYXRlTnVtYmVyWzFdISkhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZW5kRGlzcGxheSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGVOdW1iZXJbMV0sIHRoaXMuZm9ybWF0KSBhcyBzdHJpbmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dEdyb3VwLmVsZW1lbnRSZWYsXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50IGFzIFhDb3JuZXIsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wLWVuZCddLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW5PbjogJ3gtZGF0ZS1yYW5nZS1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5jbGFzc01hcCwgdGhpcy5sYWJlbE1hcCk7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2Ake1hEYXRlUmFuZ2VQcmVmaXh9LSR7dGhpcy5zaXplfWBdID0gdGhpcy5zaXplID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2RhdGVSYW5nZVxyXG4gIGNsYXNzPVwieC1kYXRlLXJhbmdlXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW2NsYXNzLngtZmxleF09XCJqdXN0aWZ5IHx8IGFsaWduIHx8IGRpcmVjdGlvblwiXHJcbiAgW2NsYXNzLngtY2hlY2tlZF09XCJ2YWx1ZVwiXHJcbiAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy54LXJlcXVpcmVkXT1cInJlcXVpcmVkSXNFbXB0eVwiXHJcbiAgW2NsYXNzLngtaW52YWxpZF09XCJpbnZhbGlkXCJcclxuICBbY2xhc3MueC1kYXRlLXJhbmdlLWJvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICBbY2xhc3MueC1kYXRlLXJhbmdlLWFjdGl2ZV09XCJhY3RpdmVcIlxyXG4gIFtjbGFzcy54LWRhdGUtcmFuZ2UtYWN0aXZlLXN0YXJ0XT1cImFjdGl2ZVR5cGUgPT09ICdzdGFydCdcIlxyXG4gIFtjbGFzcy54LWRhdGUtcmFuZ2UtYWN0aXZlLWVuZF09XCJhY3RpdmVUeXBlID09PSAnZW5kJ1wiXHJcbj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtjbGFzcy54LWRhdGUtcmFuZ2UtbGFiZWwtcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbc3R5bGUud2lkdGhdPVwibGFiZWxXaWR0aFwiIFtuZ0NsYXNzXT1cImxhYmVsTWFwXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2Utcm93XCI+XHJcbiAgICA8eC1pbnB1dC1ncm91cCAjaW5wdXRHcm91cCBjbGFzcz1cIngtZGF0ZS1yYW5nZS1ncm91cFwiIChtb3VzZWVudGVyKT1cIm1lbnRlcigpXCIgKG1vdXNlbGVhdmUpPVwibWxlYXZlKClcIiAoY2xpY2spPVwic2hvd1BvcnRhbCgkZXZlbnQpXCI+XHJcbiAgICAgIDx4LWlucHV0XHJcbiAgICAgICAgI2lucHV0U3RhcnRDb21cclxuICAgICAgICBjbGFzcz1cIngtZGF0YS1yYW5nZS1pbnB1dCB4LWRhdGEtcmFuZ2UtaW5wdXQtc3RhcnRcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBib3JkZXJlZD1cImZhbHNlXCJcclxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRTdGFydFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAoeEZvY3VzKT1cIm9uRm9jdXMoJ3N0YXJ0JylcIlxyXG4gICAgICAgICh4Q2xpY2spPVwic2hvd1BvcnRhbCgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0RGlzcGxheVwiXHJcbiAgICAgICAgaWNvbj1cImZ0by1hcnJvdy1yaWdodFwiXHJcbiAgICAgID48L3gtaW5wdXQ+XHJcbiAgICAgIDx4LWlucHV0XHJcbiAgICAgICAgI2lucHV0RW5kQ29tXHJcbiAgICAgICAgY2xhc3M9XCJ4LWRhdGEtcmFuZ2UtaW5wdXQgeC1kYXRhLXJhbmdlLWlucHV0LWVuZFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIGJvcmRlcmVkPVwiZmFsc2VcIlxyXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldEVuZFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAoeEZvY3VzKT1cIm9uRm9jdXMoJ2VuZCcpXCJcclxuICAgICAgICAoeENsaWNrKT1cInNob3dQb3J0YWwoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZW5kRGlzcGxheVwiXHJcbiAgICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgICAgKGNsZWFyRW1pdCk9XCJjbGVhckVtaXQoKVwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJzaG93Q2xlYXJhYmxlXCJcclxuICAgICAgPjwveC1pbnB1dD5cclxuICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZVwiIGNsYXNzPVwieC1kYXRlLXJhbmdlLWFjdGl2ZS1iYXJcIj48L2Rpdj5cclxuICAgIDwveC1pbnB1dC1ncm91cD5cclxuICAgIDxzcGFuIGNsYXNzPVwieC1kYXRlLXJhbmdlLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImludmFsaWRcIj57eyBpbnZhbGlkTWVzc2FnZSB9fTwvc3Bhbj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXF1aXJlZElzRW1wdHkgfHwgaW52YWxpZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC10b3AtbGVmdFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC10b3AtcmlnaHRcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtYm90dG9tLWxlZnRcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtYm90dG9tLXJpZ2h0XCI+PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -46,7 +46,7 @@ class XControlComponent extends XControlProperty {
|
|
|
46
46
|
this.option.label = '';
|
|
47
47
|
this.option.label = `${this.option.label}${this.form.labelSuffix}`;
|
|
48
48
|
this._control = this.createControl(this.option);
|
|
49
|
-
this._formControl = new UntypedFormControl(this._control.value);
|
|
49
|
+
this._formControl = new UntypedFormControl(this._control.value, { nonNullable: this._control.nonNullable });
|
|
50
50
|
this.setValidators();
|
|
51
51
|
this._formControl.statusChanges.pipe(takeUntil(this._unSubject)).subscribe((x) => {
|
|
52
52
|
this.setMessages(x);
|
|
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
195
195
|
type: ViewChild,
|
|
196
196
|
args: [FormControlName]
|
|
197
197
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9mb3JtL2NvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZm9ybS9jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsU0FBUyxFQUtWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFJaEIsZUFBZSxFQUVmLGFBQWEsRUFFYixjQUFjLEVBRWQsZ0JBQWdCLEVBRWhCLGFBQWEsRUFHYixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBRW5CLGNBQWMsRUFFZCxZQUFZLEVBRVosb0JBQW9CLEVBRXBCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFHbkIsWUFBWSxFQUdaLGdCQUFnQixFQUNoQixvQkFBb0IsRUFFckIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBd0QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2SSxPQUFPLEVBQUUsUUFBUSxFQUFrQixXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RCxNQU9hLGlCQUFrQixTQUFRLGdCQUFnQjtJQVlyRDtJQUNFLG1EQUFtRDtJQUM1QyxHQUFzQixFQUN0QixhQUE2QixFQUM3QixJQUFrQjtRQUV6QixLQUFLLEVBQUUsQ0FB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LENBQUMsQ0FBQztZQUN0RSxLQUFLLGVBQWU7Z0JBQ2xCLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxNQUFvQyxDQUFDLENBQUM7WUFDeEUsS0FBSyxTQUFTO2dCQUNaLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBK0IsQ0FBQyxDQUFDO1lBQzlELEtBQUssY0FBYztnQkFDakIsT0FBTyxJQUFJLG1CQUFtQixDQUFDLE1BQW1DLENBQUMsQ0FBQztZQUN0RSxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQWdDLENBQUMsQ0FBQztZQUNoRSxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUE0QixDQUFDLENBQUM7WUFDeEQsS0FBSyxlQUFlO2dCQUNsQixPQUFPLElBQUksb0JBQW9CLENBQUMsTUFBb0MsQ0FBQyxDQUFDO1lBQ3hFO2dCQUNFLE9BQU8sSUFBSSxhQUFhLENBQUMsTUFBNkIsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztpSUFwS1UsaUJBQWlCO3FIQUFqQixpQkFBaUIsc0lBR2pCLGVBQWUsdUVDakU1QixtaEZBaURBOztTRGFhLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLFdBQVcsaUJBR04saUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtnS0FHN0IsTUFBTTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3NCLE9BQU87c0JBQWxDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBYQ29udHJvbFByb3BlcnR5LFxyXG4gIFhGb3JtQ29udHJvbE9wdGlvbixcclxuICBYRm9ybUNvbnRyb2xDb21wb25lbnQsXHJcbiAgWEZvcm1Db250cm9sVHlwZSxcclxuICBYQ2FzY2FkZUNvbnRyb2wsXHJcbiAgWENhc2NhZGVDb250cm9sT3B0aW9uLFxyXG4gIFhJbnB1dENvbnRyb2wsXHJcbiAgWElucHV0Q29udHJvbE9wdGlvbixcclxuICBYU2VsZWN0Q29udHJvbCxcclxuICBYU2VsZWN0Q29udHJvbE9wdGlvbixcclxuICBYQ2hlY2tib3hDb250cm9sLFxyXG4gIFhDaGVja2JveENvbnRyb2xPcHRpb24sXHJcbiAgWFJhZGlvQ29udHJvbCxcclxuICBYUmFkaW9Db250cm9sT3B0aW9uLFxyXG4gIFhEYXRlUGlja2VyQ29udHJvbE9wdGlvbixcclxuICBYRGF0ZVBpY2tlckNvbnRyb2wsXHJcbiAgWElucHV0TnVtYmVyQ29udHJvbCxcclxuICBYSW5wdXROdW1iZXJDb250cm9sT3B0aW9uLFxyXG4gIFhTd2l0Y2hDb250cm9sLFxyXG4gIFhTd2l0Y2hDb250cm9sT3B0aW9uLFxyXG4gIFhSYXRlQ29udHJvbCxcclxuICBYUmF0ZUNvbnRyb2xPcHRpb24sXHJcbiAgWFNsaWRlclNlbGVjdENvbnRyb2wsXHJcbiAgWFNsaWRlclNlbGVjdENvbnRyb2xPcHRpb24sXHJcbiAgWFRpbWVQaWNrZXJDb250cm9sLFxyXG4gIFhUaW1lUGlja2VyQ29udHJvbE9wdGlvbixcclxuICBYQ29sb3JQaWNrZXJDb250cm9sLFxyXG4gIFhDb2xvclBpY2tlckNvbnRyb2xPcHRpb24sXHJcbiAgWEZvcm1Db250cm9sLFxyXG4gIFhGaW5kQ29udHJvbCxcclxuICBYRmluZENvbnRyb2xPcHRpb24sXHJcbiAgWFRleHRhcmVhQ29udHJvbE9wdGlvbixcclxuICBYVGV4dGFyZWFDb250cm9sLFxyXG4gIFhBdXRvQ29tcGxldGVDb250cm9sLFxyXG4gIFhBdXRvQ29tcGxldGVDb250cm9sT3B0aW9uXHJcbn0gZnJvbSAnLi9mb3JtLnByb3BlcnR5JztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xOYW1lLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2xTdGF0dXMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29uZmlnU2VydmljZSwgWElzRnVuY3Rpb24gfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWEkxOG5Gb3JtLCBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWEZvcm1JbnB1dFZhbGlkYXRvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3gtY29udHJvbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29udHJvbENvbXBvbmVudCBleHRlbmRzIFhDb250cm9sUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgb3B0aW9uITogWEZvcm1Db250cm9sT3B0aW9uO1xyXG4gIEBJbnB1dCgpIGZvcm06IGFueTtcclxuICBAVmlld0NoaWxkKEZvcm1Db250cm9sTmFtZSkgY29udHJvbCE6IEZvcm1Db250cm9sTmFtZTtcclxuICBsb2NhbGU6IFhJMThuRm9ybSA9IHt9O1xyXG4gIHByaXZhdGUgX3NoYXJlZFByb3BzID0gWydzcGFuJywgJ2RpcmVjdGlvbicsICdqdXN0aWZ5JywgJ2FsaWduJywgJ2xhYmVsV2lkdGgnLCAnbGFiZWxBbGlnbiddO1xyXG4gIHByaXZhdGUgX2NoYW5nZVByb3BzID0gWydsYWJlbCcsIC4uLnRoaXMuX3NoYXJlZFByb3BzXTtcclxuICBwcml2YXRlIF9jb250cm9sITogWEZvcm1Db250cm9sVHlwZTtcclxuICBwcml2YXRlIF92YWxpZGF0b3JGbnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sITogVW50eXBlZEZvcm1Db250cm9sO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBIb3N0KCkgQE9wdGlvbmFsKCkgcHVibGljIGZvcm06IFhGb3JtQ29tcG9uZW50LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgaTE4bjogWEkxOG5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm9wdGlvbiA9IHsgLi4udGhpcy5vcHRpb24gfTtcclxuICAgIHRoaXMuc2V0UHJvcHMoKTtcclxuICAgIGlmIChYSXNFbXB0eSh0aGlzLm9wdGlvbi5sYWJlbCkpIHRoaXMub3B0aW9uLmxhYmVsID0gJyc7XHJcbiAgICB0aGlzLm9wdGlvbi5sYWJlbCA9IGAke3RoaXMub3B0aW9uLmxhYmVsfSR7dGhpcy5mb3JtLmxhYmVsU3VmZml4fWA7XHJcbiAgICB0aGlzLl9jb250cm9sID0gdGhpcy5jcmVhdGVDb250cm9sKHRoaXMub3B0aW9uKTtcclxuICAgIHRoaXMuX2Zvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLl9jb250cm9sLnZhbHVlKTtcclxuICAgIHRoaXMuc2V0VmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5fZm9ybUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5zZXRNZXNzYWdlcyh4KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fY29udHJvbC5zZXRWYWxpZGF0b3JzID0gKCkgPT4gdGhpcy5zZXRWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm0uZm9ybUdyb3VwLmFkZENvbnRyb2wodGhpcy5fY29udHJvbC5pZCwgdGhpcy5fZm9ybUNvbnRyb2wpO1xyXG4gICAgdGhpcy5vcHRpb24uY2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLl9jaGFuZ2VQcm9wcy5mb3JFYWNoKCh4OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgJiYgdGhpcy5vcHRpb25beF0pIHtcclxuICAgICAgICAgICh0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciBhcyBhbnkpW3hdID0gdGhpcy5vcHRpb25beF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xDb21wb25lbnRzW3RoaXMuX2NvbnRyb2wuaWRdLmZvcm1Db250cm9sQ2hhbmdlcygpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LmZvcm0gYXMgWEkxOG5Gb3JtKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciEsIHRoaXMuX2NvbnRyb2wgYXMgQ29udHJvbFZhbHVlQWNjZXNzb3IpO1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xUeXBlc1t0aGlzLl9jb250cm9sLmlkXSA9IHRoaXMuX2NvbnRyb2w7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbENvbXBvbmVudHNbdGhpcy5fY29udHJvbC5pZF0gPSB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciBhcyBYRm9ybUNvbnRyb2xDb21wb25lbnQ7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbENvbXBvbmVudHNbdGhpcy5fY29udHJvbC5pZF0uZm9ybUNvbnRyb2xDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldFZhbGlkYXRvcnMoKSB7XHJcbiAgICB0aGlzLl92YWxpZGF0b3JGbnMgPSBbXTtcclxuICAgIGlmICh0aGlzLl9jb250cm9sLmRpc2FibGVkIHx8IHRoaXMuZm9ybS5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLl9mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9jb250cm9sLnJlcXVpcmVkICYmICF0aGlzLmZvcm0uZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5fdmFsaWRhdG9yRm5zID0gWy4uLnRoaXMuX3ZhbGlkYXRvckZucywgVmFsaWRhdG9ycy5yZXF1aXJlZF07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fY29udHJvbC5wYXR0ZXJuKSB7XHJcbiAgICAgIHRoaXMuc2V0UGF0dGVybigpO1xyXG4gICAgfVxyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuX2NvbnRyb2wuaW5wdXRWYWxpZGF0b3IpKSB7XHJcbiAgICAgIHRoaXMuX3ZhbGlkYXRvckZucyA9IFsuLi50aGlzLl92YWxpZGF0b3JGbnMsIFhGb3JtSW5wdXRWYWxpZGF0b3IodGhpcy5fY29udHJvbC5pbnB1dFZhbGlkYXRvciEpXTtcclxuICAgIH1cclxuICAgIHRoaXMuX2Zvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5fdmFsaWRhdG9yRm5zKTtcclxuICAgIHRoaXMuX2Zvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHNldFByb3BzKCkge1xyXG4gICAgZm9yIChsZXQgcHJvcCBvZiB0aGlzLl9zaGFyZWRQcm9wcykge1xyXG4gICAgICBpZiAoWElzRW1wdHkodGhpcy5vcHRpb25bcHJvcF0pKSB0aGlzLm9wdGlvbltwcm9wXSA9ICh0aGlzLmZvcm0gYXMgYW55KVtwcm9wXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhdHRlcm4oKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9jb250cm9sLnBhdHRlcm4pKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcHQgb2YgdGhpcy5fY29udHJvbC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsaWRhdG9yRm5zID0gWy4uLnRoaXMuX3ZhbGlkYXRvckZucywgVmFsaWRhdG9ycy5wYXR0ZXJuKHB0KV07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3ZhbGlkYXRvckZucyA9IFsuLi50aGlzLl92YWxpZGF0b3JGbnMsIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLl9jb250cm9sLnBhdHRlcm4gYXMgUmVnRXhwKV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQYXR0ZXJuTXNnKHBhdHRlcm46IHN0cmluZykge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fY29udHJvbC5wYXR0ZXJuKSkge1xyXG4gICAgICByZXR1cm4gKHRoaXMuX2NvbnRyb2wubWVzc2FnZSBhcyBBcnJheTxhbnk+KVt0aGlzLl9jb250cm9sLnBhdHRlcm4uZmluZEluZGV4KCh4KSA9PiBTdHJpbmcoeCkgPT09IHBhdHRlcm4pXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9jb250cm9sLm1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNZXNzYWdlcyhzdGF0ZTogRm9ybUNvbnRyb2xTdGF0dXMpIHtcclxuICAgIGxldCBjb250cm9sOiBYRm9ybUNvbnRyb2wgPSB0aGlzLl9mb3JtQ29udHJvbDtcclxuICAgIGlmIChzdGF0ZSA9PT0gJ0lOVkFMSUQnICYmIHRoaXMuX2Zvcm1Db250cm9sLmVycm9ycyAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLl9jb250cm9sLmxhYmVsIHx8IHRoaXMuX2NvbnRyb2wuaWQ7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xyXG4gICAgICAgICAgbWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMsIGAke2xhYmVsfSAke3RoaXMubG9jYWxlPy5yZXF1aXJlZCB8fCAncmVxdWlyZWQnfWBdO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncGF0dGVybicpIHtcclxuICAgICAgICAgIG1lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLCBgJHtsYWJlbH0gJHt0aGlzLmdldFBhdHRlcm5Nc2coY29udHJvbC5lcnJvcnNba2V5XS5yZXF1aXJlZFBhdHRlcm4pfWBdO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaW5wdXRWYWxpZGF0b3InKSB7XHJcbiAgICAgICAgICBtZXNzYWdlcyA9IFsuLi5tZXNzYWdlcywgYCR7bGFiZWx9ICR7dGhpcy5fY29udHJvbC5tZXNzYWdlfWBdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250cm9sLm1lc3NhZ2VzID0gbWVzc2FnZXM7XHJcbiAgICB9IGVsc2UgaWYgKHN0YXRlID09PSAnVkFMSUQnKSB7XHJcbiAgICAgIGNvbnRyb2wubWVzc2FnZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZUNvbnRyb2wob3B0aW9uOiBYRm9ybUNvbnRyb2xPcHRpb24pIHtcclxuICAgIHN3aXRjaCAob3B0aW9uLmNvbnRyb2wpIHtcclxuICAgICAgY2FzZSAnaW5wdXQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWElucHV0Q29udHJvbChvcHRpb24gYXMgWElucHV0Q29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYU2VsZWN0Q29udHJvbChvcHRpb24gYXMgWFNlbGVjdENvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdjaGVja2JveCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYQ2hlY2tib3hDb250cm9sKG9wdGlvbiBhcyBYQ2hlY2tib3hDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAncmFkaW8nOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFJhZGlvQ29udHJvbChvcHRpb24gYXMgWFJhZGlvQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ3N3aXRjaCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYU3dpdGNoQ29udHJvbChvcHRpb24gYXMgWFN3aXRjaENvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdyYXRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhSYXRlQ29udHJvbChvcHRpb24gYXMgWFJhdGVDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnZGF0ZS1waWNrZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgWERhdGVQaWNrZXJDb250cm9sKG9wdGlvbiBhcyBYRGF0ZVBpY2tlckNvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICd0aW1lLXBpY2tlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYVGltZVBpY2tlckNvbnRyb2wob3B0aW9uIGFzIFhUaW1lUGlja2VyQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2lucHV0LW51bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYSW5wdXROdW1iZXJDb250cm9sKG9wdGlvbiBhcyBYSW5wdXROdW1iZXJDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnc2xpZGVyLXNlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYU2xpZGVyU2VsZWN0Q29udHJvbChvcHRpb24gYXMgWFNsaWRlclNlbGVjdENvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdjYXNjYWRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhDYXNjYWRlQ29udHJvbChvcHRpb24gYXMgWENhc2NhZGVDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnY29sb3ItcGlja2VyJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhDb2xvclBpY2tlckNvbnRyb2wob3B0aW9uIGFzIFhDb2xvclBpY2tlckNvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICd0ZXh0YXJlYSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYVGV4dGFyZWFDb250cm9sKG9wdGlvbiBhcyBYVGV4dGFyZWFDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnZmluZCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYRmluZENvbnRyb2wob3B0aW9uIGFzIFhGaW5kQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2F1dG8tY29tcGxldGUnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWEF1dG9Db21wbGV0ZUNvbnRyb2wob3B0aW9uIGFzIFhBdXRvQ29tcGxldGVDb250cm9sT3B0aW9uKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbmV3IFhJbnB1dENvbnRyb2wob3B0aW9uIGFzIFhJbnB1dENvbnRyb2xPcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb250cm9sXCIgW2Zvcm1Hcm91cF09XCJmb3JtLmZvcm1Hcm91cFwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIm9wdGlvbi5jb250cm9sXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5wdXQnXCI+XHJcbiAgICAgIDx4LWlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCIgKGNsZWFyRW1pdCk9XCJvcHRpb24uY2xlYXJDbGljayAmJiBvcHRpb24uY2xlYXJDbGljaygkZXZlbnQpXCI+PC94LWlucHV0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiPlxyXG4gICAgICA8eC1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtc2VsZWN0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2FzY2FkZSdcIj5cclxuICAgICAgPHgtY2FzY2FkZSBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiIChub2RlRW1pdCk9XCJvcHRpb24ubm9kZUNsaWNrICYmIG9wdGlvbi5ub2RlQ2xpY2soJGV2ZW50KVwiPjwveC1jYXNjYWRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDx4LWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LWNoZWNrYm94PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sb3ItcGlja2VyJ1wiPlxyXG4gICAgICA8eC1jb2xvci1waWNrZXIgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtY29sb3ItcGlja2VyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZS1waWNrZXInXCI+XHJcbiAgICAgIDx4LWRhdGUtcGlja2VyIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCIgKG5vZGVFbWl0KT1cIm9wdGlvbi5ub2RlQ2xpY2sgJiYgb3B0aW9uLm5vZGVDbGljaygkZXZlbnQpXCI+PC94LWRhdGUtcGlja2VyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5wdXQtbnVtYmVyJ1wiPlxyXG4gICAgICA8eC1pbnB1dC1udW1iZXIgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtaW5wdXQtbnVtYmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCI+XHJcbiAgICAgIDx4LXJhZGlvIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LXJhZGlvPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmF0ZSdcIj5cclxuICAgICAgPHgtcmF0ZSBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiPjwveC1yYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2xpZGVyLXNlbGVjdCdcIj5cclxuICAgICAgPHgtc2xpZGVyLXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3dpdGNoJ1wiPlxyXG4gICAgICA8eC1zd2l0Y2ggW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtc3dpdGNoPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGltZS1waWNrZXInXCI+XHJcbiAgICAgIDx4LXRpbWUtcGlja2VyIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LXRpbWUtcGlja2VyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dGFyZWEnXCI+XHJcbiAgICAgIDx4LXRleHRhcmVhIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCIgKGNsZWFyRW1pdCk9XCJvcHRpb24uY2xlYXJDbGljayAmJiBvcHRpb24uY2xlYXJDbGljaygkZXZlbnQpXCI+PC94LXRleHRhcmVhPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYXV0by1jb21wbGV0ZSdcIj5cclxuICAgICAgPHgtYXV0by1jb21wbGV0ZSBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiIChub2RlRW1pdCk9XCJvcHRpb24ubm9kZUNsaWNrICYmIG9wdGlvbi5ub2RlQ2xpY2soJGV2ZW50KVwiPjwveC1hdXRvLWNvbXBsZXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmluZCdcIj5cclxuICAgICAgPHgtZmluZCBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiPjwveC1maW5kPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9mb3JtL2NvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZm9ybS9jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsU0FBUyxFQUtWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFJaEIsZUFBZSxFQUVmLGFBQWEsRUFFYixjQUFjLEVBRWQsZ0JBQWdCLEVBRWhCLGFBQWEsRUFHYixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBRW5CLGNBQWMsRUFFZCxZQUFZLEVBRVosb0JBQW9CLEVBRXBCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFHbkIsWUFBWSxFQUdaLGdCQUFnQixFQUNoQixvQkFBb0IsRUFFckIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBd0QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2SSxPQUFPLEVBQUUsUUFBUSxFQUFrQixXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RCxNQU9hLGlCQUFrQixTQUFRLGdCQUFnQjtJQVlyRDtJQUNFLG1EQUFtRDtJQUM1QyxHQUFzQixFQUN0QixhQUE2QixFQUM3QixJQUFrQjtRQUV6QixLQUFLLEVBQUUsQ0FB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WUFDcEUsS0FBSyxjQUFjO2dCQUNqQixPQUFPLElBQUksbUJBQW1CLENBQUMsTUFBbUMsQ0FBQyxDQUFDO1lBQ3RFLEtBQUssZUFBZTtnQkFDbEIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLE1BQW9DLENBQUMsQ0FBQztZQUN4RSxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUErQixDQUFDLENBQUM7WUFDOUQsS0FBSyxjQUFjO2dCQUNqQixPQUFPLElBQUksbUJBQW1CLENBQUMsTUFBbUMsQ0FBQyxDQUFDO1lBQ3RFLEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUksZ0JBQWdCLENBQUMsTUFBZ0MsQ0FBQyxDQUFDO1lBQ2hFLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksWUFBWSxDQUFDLE1BQTRCLENBQUMsQ0FBQztZQUN4RCxLQUFLLGVBQWU7Z0JBQ2xCLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxNQUFvQyxDQUFDLENBQUM7WUFDeEU7Z0JBQ0UsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUE2QixDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO2lJQXBLVSxpQkFBaUI7cUhBQWpCLGlCQUFpQixzSUFHakIsZUFBZSx1RUNqRTVCLG1oRkFpREE7O1NEYWEsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsV0FBVyxpQkFHTixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2dLQUc3QixNQUFNO3NCQUF2QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDc0IsT0FBTztzQkFBbEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFhDb250cm9sUHJvcGVydHksXHJcbiAgWEZvcm1Db250cm9sT3B0aW9uLFxyXG4gIFhGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICBYRm9ybUNvbnRyb2xUeXBlLFxyXG4gIFhDYXNjYWRlQ29udHJvbCxcclxuICBYQ2FzY2FkZUNvbnRyb2xPcHRpb24sXHJcbiAgWElucHV0Q29udHJvbCxcclxuICBYSW5wdXRDb250cm9sT3B0aW9uLFxyXG4gIFhTZWxlY3RDb250cm9sLFxyXG4gIFhTZWxlY3RDb250cm9sT3B0aW9uLFxyXG4gIFhDaGVja2JveENvbnRyb2wsXHJcbiAgWENoZWNrYm94Q29udHJvbE9wdGlvbixcclxuICBYUmFkaW9Db250cm9sLFxyXG4gIFhSYWRpb0NvbnRyb2xPcHRpb24sXHJcbiAgWERhdGVQaWNrZXJDb250cm9sT3B0aW9uLFxyXG4gIFhEYXRlUGlja2VyQ29udHJvbCxcclxuICBYSW5wdXROdW1iZXJDb250cm9sLFxyXG4gIFhJbnB1dE51bWJlckNvbnRyb2xPcHRpb24sXHJcbiAgWFN3aXRjaENvbnRyb2wsXHJcbiAgWFN3aXRjaENvbnRyb2xPcHRpb24sXHJcbiAgWFJhdGVDb250cm9sLFxyXG4gIFhSYXRlQ29udHJvbE9wdGlvbixcclxuICBYU2xpZGVyU2VsZWN0Q29udHJvbCxcclxuICBYU2xpZGVyU2VsZWN0Q29udHJvbE9wdGlvbixcclxuICBYVGltZVBpY2tlckNvbnRyb2wsXHJcbiAgWFRpbWVQaWNrZXJDb250cm9sT3B0aW9uLFxyXG4gIFhDb2xvclBpY2tlckNvbnRyb2wsXHJcbiAgWENvbG9yUGlja2VyQ29udHJvbE9wdGlvbixcclxuICBYRm9ybUNvbnRyb2wsXHJcbiAgWEZpbmRDb250cm9sLFxyXG4gIFhGaW5kQ29udHJvbE9wdGlvbixcclxuICBYVGV4dGFyZWFDb250cm9sT3B0aW9uLFxyXG4gIFhUZXh0YXJlYUNvbnRyb2wsXHJcbiAgWEF1dG9Db21wbGV0ZUNvbnRyb2wsXHJcbiAgWEF1dG9Db21wbGV0ZUNvbnRyb2xPcHRpb25cclxufSBmcm9tICcuL2Zvcm0ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbE5hbWUsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbFN0YXR1cyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhDb25maWdTZXJ2aWNlLCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYSTE4bkZvcm0sIFhJMThuU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYRm9ybUlucHV0VmFsaWRhdG9yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneC1jb250cm9sJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udHJvbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhDb250cm9sQ29tcG9uZW50IGV4dGVuZHMgWENvbnRyb2xQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBvdmVycmlkZSBvcHRpb24hOiBYRm9ybUNvbnRyb2xPcHRpb247XHJcbiAgQElucHV0KCkgZm9ybTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoRm9ybUNvbnRyb2xOYW1lKSBjb250cm9sITogRm9ybUNvbnRyb2xOYW1lO1xyXG4gIGxvY2FsZTogWEkxOG5Gb3JtID0ge307XHJcbiAgcHJpdmF0ZSBfc2hhcmVkUHJvcHMgPSBbJ3NwYW4nLCAnZGlyZWN0aW9uJywgJ2p1c3RpZnknLCAnYWxpZ24nLCAnbGFiZWxXaWR0aCcsICdsYWJlbEFsaWduJ107XHJcbiAgcHJpdmF0ZSBfY2hhbmdlUHJvcHMgPSBbJ2xhYmVsJywgLi4udGhpcy5fc2hhcmVkUHJvcHNdO1xyXG4gIHByaXZhdGUgX2NvbnRyb2whOiBYRm9ybUNvbnRyb2xUeXBlO1xyXG4gIHByaXZhdGUgX3ZhbGlkYXRvckZuczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfZm9ybUNvbnRyb2whOiBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gQEhvc3QoKSBAT3B0aW9uYWwoKSBwdWJsaWMgZm9ybTogWEZvcm1Db21wb25lbnQsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiB9O1xyXG4gICAgdGhpcy5zZXRQcm9wcygpO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMub3B0aW9uLmxhYmVsKSkgdGhpcy5vcHRpb24ubGFiZWwgPSAnJztcclxuICAgIHRoaXMub3B0aW9uLmxhYmVsID0gYCR7dGhpcy5vcHRpb24ubGFiZWx9JHt0aGlzLmZvcm0ubGFiZWxTdWZmaXh9YDtcclxuICAgIHRoaXMuX2NvbnRyb2wgPSB0aGlzLmNyZWF0ZUNvbnRyb2wodGhpcy5vcHRpb24pO1xyXG4gICAgdGhpcy5fZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuX2NvbnRyb2wudmFsdWUsIHsgbm9uTnVsbGFibGU6IHRoaXMuX2NvbnRyb2wubm9uTnVsbGFibGUgfSk7XHJcbiAgICB0aGlzLnNldFZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuX2Zvcm1Db250cm9sLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0TWVzc2FnZXMoeCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsaWRhdG9ycyA9ICgpID0+IHRoaXMuc2V0VmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuX2NvbnRyb2wuaWQsIHRoaXMuX2Zvcm1Db250cm9sKTtcclxuICAgIHRoaXMub3B0aW9uLmNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlUHJvcHMuZm9yRWFjaCgoeDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yICYmIHRoaXMub3B0aW9uW3hdKSB7XHJcbiAgICAgICAgICAodGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgYXMgYW55KVt4XSA9IHRoaXMub3B0aW9uW3hdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sQ29tcG9uZW50c1t0aGlzLl9jb250cm9sLmlkXS5mb3JtQ29udHJvbENoYW5nZXMoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5mb3JtIGFzIFhJMThuRm9ybSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IhLCB0aGlzLl9jb250cm9sIGFzIENvbnRyb2xWYWx1ZUFjY2Vzc29yKTtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sVHlwZXNbdGhpcy5fY29udHJvbC5pZF0gPSB0aGlzLl9jb250cm9sO1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xDb21wb25lbnRzW3RoaXMuX2NvbnRyb2wuaWRdID0gdGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgYXMgWEZvcm1Db250cm9sQ29tcG9uZW50O1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xDb21wb25lbnRzW3RoaXMuX2NvbnRyb2wuaWRdLmZvcm1Db250cm9sQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWxpZGF0b3JzKCkge1xyXG4gICAgdGhpcy5fdmFsaWRhdG9yRm5zID0gW107XHJcbiAgICBpZiAodGhpcy5fY29udHJvbC5kaXNhYmxlZCB8fCB0aGlzLmZvcm0uZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5fZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fY29udHJvbC5yZXF1aXJlZCAmJiAhdGhpcy5mb3JtLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuX3ZhbGlkYXRvckZucyA9IFsuLi50aGlzLl92YWxpZGF0b3JGbnMsIFZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2wucGF0dGVybikge1xyXG4gICAgICB0aGlzLnNldFBhdHRlcm4oKTtcclxuICAgIH1cclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLl9jb250cm9sLmlucHV0VmFsaWRhdG9yKSkge1xyXG4gICAgICB0aGlzLl92YWxpZGF0b3JGbnMgPSBbLi4udGhpcy5fdmFsaWRhdG9yRm5zLCBYRm9ybUlucHV0VmFsaWRhdG9yKHRoaXMuX2NvbnRyb2wuaW5wdXRWYWxpZGF0b3IhKV07XHJcbiAgICB9XHJcbiAgICB0aGlzLl9mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuX3ZhbGlkYXRvckZucyk7XHJcbiAgICB0aGlzLl9mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBzZXRQcm9wcygpIHtcclxuICAgIGZvciAobGV0IHByb3Agb2YgdGhpcy5fc2hhcmVkUHJvcHMpIHtcclxuICAgICAgaWYgKFhJc0VtcHR5KHRoaXMub3B0aW9uW3Byb3BdKSkgdGhpcy5vcHRpb25bcHJvcF0gPSAodGhpcy5mb3JtIGFzIGFueSlbcHJvcF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQYXR0ZXJuKCkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fY29udHJvbC5wYXR0ZXJuKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IHB0IG9mIHRoaXMuX2NvbnRyb2wucGF0dGVybikge1xyXG4gICAgICAgIHRoaXMuX3ZhbGlkYXRvckZucyA9IFsuLi50aGlzLl92YWxpZGF0b3JGbnMsIFZhbGlkYXRvcnMucGF0dGVybihwdCldO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWxpZGF0b3JGbnMgPSBbLi4udGhpcy5fdmFsaWRhdG9yRm5zLCBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5fY29udHJvbC5wYXR0ZXJuIGFzIFJlZ0V4cCldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGF0dGVybk1zZyhwYXR0ZXJuOiBzdHJpbmcpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2NvbnRyb2wucGF0dGVybikpIHtcclxuICAgICAgcmV0dXJuICh0aGlzLl9jb250cm9sLm1lc3NhZ2UgYXMgQXJyYXk8YW55PilbdGhpcy5fY29udHJvbC5wYXR0ZXJuLmZpbmRJbmRleCgoeCkgPT4gU3RyaW5nKHgpID09PSBwYXR0ZXJuKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5fY29udHJvbC5tZXNzYWdlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TWVzc2FnZXMoc3RhdGU6IEZvcm1Db250cm9sU3RhdHVzKSB7XHJcbiAgICBsZXQgY29udHJvbDogWEZvcm1Db250cm9sID0gdGhpcy5fZm9ybUNvbnRyb2w7XHJcbiAgICBpZiAoc3RhdGUgPT09ICdJTlZBTElEJyAmJiB0aGlzLl9mb3JtQ29udHJvbC5lcnJvcnMgIT09IG51bGwpIHtcclxuICAgICAgbGV0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBjb250cm9sLmVycm9ycykge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5fY29udHJvbC5sYWJlbCB8fCB0aGlzLl9jb250cm9sLmlkO1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcclxuICAgICAgICAgIG1lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLCBgJHtsYWJlbH0gJHt0aGlzLmxvY2FsZT8ucmVxdWlyZWQgfHwgJ3JlcXVpcmVkJ31gXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhdHRlcm4nKSB7XHJcbiAgICAgICAgICBtZXNzYWdlcyA9IFsuLi5tZXNzYWdlcywgYCR7bGFiZWx9ICR7dGhpcy5nZXRQYXR0ZXJuTXNnKGNvbnRyb2wuZXJyb3JzW2tleV0ucmVxdWlyZWRQYXR0ZXJuKX1gXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2lucHV0VmFsaWRhdG9yJykge1xyXG4gICAgICAgICAgbWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMsIGAke2xhYmVsfSAke3RoaXMuX2NvbnRyb2wubWVzc2FnZX1gXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbC5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG4gICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gJ1ZBTElEJykge1xyXG4gICAgICBjb250cm9sLm1lc3NhZ2VzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVDb250cm9sKG9wdGlvbjogWEZvcm1Db250cm9sT3B0aW9uKSB7XHJcbiAgICBzd2l0Y2ggKG9wdGlvbi5jb250cm9sKSB7XHJcbiAgICAgIGNhc2UgJ2lucHV0JzpcclxuICAgICAgICByZXR1cm4gbmV3IFhJbnB1dENvbnRyb2wob3B0aW9uIGFzIFhJbnB1dENvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFNlbGVjdENvbnRyb2wob3B0aW9uIGFzIFhTZWxlY3RDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnY2hlY2tib3gnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWENoZWNrYm94Q29udHJvbChvcHRpb24gYXMgWENoZWNrYm94Q29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ3JhZGlvJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhSYWRpb0NvbnRyb2wob3B0aW9uIGFzIFhSYWRpb0NvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdzd2l0Y2gnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFN3aXRjaENvbnRyb2wob3B0aW9uIGFzIFhTd2l0Y2hDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAncmF0ZSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYUmF0ZUNvbnRyb2wob3B0aW9uIGFzIFhSYXRlQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2RhdGUtcGlja2VyJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhEYXRlUGlja2VyQ29udHJvbChvcHRpb24gYXMgWERhdGVQaWNrZXJDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAndGltZS1waWNrZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFRpbWVQaWNrZXJDb250cm9sKG9wdGlvbiBhcyBYVGltZVBpY2tlckNvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdpbnB1dC1udW1iZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgWElucHV0TnVtYmVyQ29udHJvbChvcHRpb24gYXMgWElucHV0TnVtYmVyQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ3NsaWRlci1zZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFNsaWRlclNlbGVjdENvbnRyb2wob3B0aW9uIGFzIFhTbGlkZXJTZWxlY3RDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnY2FzY2FkZSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYQ2FzY2FkZUNvbnRyb2wob3B0aW9uIGFzIFhDYXNjYWRlQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2NvbG9yLXBpY2tlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYQ29sb3JQaWNrZXJDb250cm9sKG9wdGlvbiBhcyBYQ29sb3JQaWNrZXJDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAndGV4dGFyZWEnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFRleHRhcmVhQ29udHJvbChvcHRpb24gYXMgWFRleHRhcmVhQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2ZpbmQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWEZpbmRDb250cm9sKG9wdGlvbiBhcyBYRmluZENvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdhdXRvLWNvbXBsZXRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhBdXRvQ29tcGxldGVDb250cm9sKG9wdGlvbiBhcyBYQXV0b0NvbXBsZXRlQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYSW5wdXRDb250cm9sKG9wdGlvbiBhcyBYSW5wdXRDb250cm9sT3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtY29udHJvbFwiIFtmb3JtR3JvdXBdPVwiZm9ybS5mb3JtR3JvdXBcIj5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJvcHRpb24uY29udHJvbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2lucHV0J1wiPlxyXG4gICAgICA8eC1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiIChjbGVhckVtaXQpPVwib3B0aW9uLmNsZWFyQ2xpY2sgJiYgb3B0aW9uLmNsZWFyQ2xpY2soJGV2ZW50KVwiPjwveC1pbnB1dD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIj5cclxuICAgICAgPHgtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LXNlbGVjdD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Nhc2NhZGUnXCI+XHJcbiAgICAgIDx4LWNhc2NhZGUgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIiAobm9kZUVtaXQpPVwib3B0aW9uLm5vZGVDbGljayAmJiBvcHRpb24ubm9kZUNsaWNrKCRldmVudClcIj48L3gtY2FzY2FkZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICA8eC1jaGVja2JveCBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiPjwveC1jaGVja2JveD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbG9yLXBpY2tlcidcIj5cclxuICAgICAgPHgtY29sb3ItcGlja2VyIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LWNvbG9yLXBpY2tlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUtcGlja2VyJ1wiPlxyXG4gICAgICA8eC1kYXRlLXBpY2tlciBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiIChub2RlRW1pdCk9XCJvcHRpb24ubm9kZUNsaWNrICYmIG9wdGlvbi5ub2RlQ2xpY2soJGV2ZW50KVwiPjwveC1kYXRlLXBpY2tlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2lucHV0LW51bWJlcidcIj5cclxuICAgICAgPHgtaW5wdXQtbnVtYmVyIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LWlucHV0LW51bWJlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiPlxyXG4gICAgICA8eC1yYWRpbyBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiPjwveC1yYWRpbz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhdGUnXCI+XHJcbiAgICAgIDx4LXJhdGUgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtcmF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NsaWRlci1zZWxlY3QnXCI+XHJcbiAgICAgIDx4LXNsaWRlci1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtc2xpZGVyLXNlbGVjdD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N3aXRjaCdcIj5cclxuICAgICAgPHgtc3dpdGNoIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LXN3aXRjaD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RpbWUtcGlja2VyJ1wiPlxyXG4gICAgICA8eC10aW1lLXBpY2tlciBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiPjwveC10aW1lLXBpY2tlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRhcmVhJ1wiPlxyXG4gICAgICA8eC10ZXh0YXJlYSBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiIChjbGVhckVtaXQpPVwib3B0aW9uLmNsZWFyQ2xpY2sgJiYgb3B0aW9uLmNsZWFyQ2xpY2soJGV2ZW50KVwiPjwveC10ZXh0YXJlYT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2F1dG8tY29tcGxldGUnXCI+XHJcbiAgICAgIDx4LWF1dG8tY29tcGxldGUgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIiAobm9kZUVtaXQpPVwib3B0aW9uLm5vZGVDbGljayAmJiBvcHRpb24ubm9kZUNsaWNrKCRldmVudClcIj48L3gtYXV0by1jb21wbGV0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbmQnXCI+XHJcbiAgICAgIDx4LWZpbmQgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtZmluZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -199,4 +199,4 @@ export class XAutoCompleteControl extends XControl {
|
|
|
199
199
|
super(option);
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2Zvcm0vZm9ybS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBK0IsUUFBUSxFQUFXLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZXRFLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHL0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFDcEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0FBTzdCOztHQUVHO0FBQ0gsTUFDYSxhQUFjLFNBQVEsU0FBUztJQUQ1Qzs7UUFFRTs7O1dBR0c7UUFDTSxjQUFTLEdBQXFCLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFxQmhFOzs7V0FHRztRQUNNLGFBQVEsR0FBc0MsRUFBRSxDQUFDO1FBQzFEOzs7V0FHRztRQUNrRCxVQUFLLEdBQVcsTUFBTSxDQUFDO1FBQzVFOzs7V0FHRztRQUNNLGVBQVUsR0FBa0IsRUFBRSxDQUFDO1FBQ3hDOzs7V0FHRztRQUNPLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0tBQ3JEO2lJQTlDWSxhQUFhO3FIQUFiLGFBQWEsNlJBRGtDLEVBQUU7O0FBZ0JLO0lBQXZELFdBQVcsQ0FBVSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQUUsWUFBWSxFQUFFOzRDQUFpQjtBQUt4RDtJQUFmLFlBQVksRUFBRTsyQ0FBZ0I7QUFLVTtJQUF4QyxXQUFXLENBQVUs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QixFQUFFO1FBQ3pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsUUFBUTtJQUNoRCxZQUFZLFNBQXFDLEVBQUU7UUFDakQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxjQUFlLFNBQVEsUUFBUTtJQUMxQyxZQUFZLFNBQStCLEVBQUU7UUFDM0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxRQUFRO0lBQzlDLFlBQVksU0FBbUMsRUFBRTtRQUMvQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBTUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7SUFDNUMsWUFBWSxTQUFpQyxFQUFFO1FBQzdDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sWUFBYSxTQUFRLFFBQVE7SUFDeEMsWUFBWSxTQUE2QixFQUFFO1FBQ3pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsUUFBUTtJQUNoRCxZQUFZLFNBQXFDLEVBQUU7UUFDakQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhJZGVudGl0eSwgWElkZW50aXR5UHJvcGVydHksIFhCb29sZWFuLCBYSXNFbXB0eSwgWE51bWJlciwgWElucHV0TnVtYmVyLCBYV2l0aENvbmZpZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSW5wdXRPcHRpb24sIFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWFNlbGVjdE9wdGlvbiwgWFNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NlbGVjdCc7XHJcbmltcG9ydCB7IFhDYXNjYWRlT3B0aW9uLCBYQ2FzY2FkZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2Nhc2NhZGUnO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hPcHRpb24sIFhDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NoZWNrYm94JztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyT3B0aW9uLCBYQ29sb3JQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9jb2xvci1waWNrZXInO1xyXG5pbXBvcnQgeyBYRGF0ZVBpY2tlck9wdGlvbiwgWERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IFhJbnB1dE51bWJlck9wdGlvbiwgWElucHV0TnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQtbnVtYmVyJztcclxuaW1wb3J0IHsgWFJhZGlvT3B0aW9uLCBYUmFkaW9Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9yYWRpbyc7XHJcbmltcG9ydCB7IFhSYXRlT3B0aW9uLCBYUmF0ZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3JhdGUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyU2VsZWN0T3B0aW9uLCBYU2xpZGVyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdCc7XHJcbmltcG9ydCB7IFhTd2l0Y2hPcHRpb24sIFhTd2l0Y2hDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9zd2l0Y2gnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlck9wdGlvbiwgWFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90aW1lLXBpY2tlcic7XHJcbmltcG9ydCB7IFhUZXh0YXJlYU9wdGlvbiwgWFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGV4dGFyZWEnO1xyXG5pbXBvcnQgeyBYRmluZE9wdGlvbiwgWEZpbmRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9maW5kJztcclxuaW1wb3J0IHsgWEZvcm1PcHRpb24sIFhGb3JtUHJvcCB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhBdXRvQ29tcGxldGVPcHRpb24sIFhBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9hdXRvLWNvbXBsZXRlJztcclxuXHJcbi8qKlxyXG4gKiBGb3JtXHJcbiAqIEBzZWxlY3RvciB4LWZvcm1cclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRm9ybVByZWZpeCA9ICd4LWZvcm0nO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ2Zvcm0nO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmqKHmnb9cclxuICogQGVuX1VTIFRlbXBsYXRlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRm9ybVRlbXBsYXRlID0geyBbcHJvcGVydHk6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfTtcclxuLyoqXHJcbiAqIEZvcm0gUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WEZvcm1QcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRm9ybVByb3BlcnR5IGV4dGVuZHMgWEZvcm1Qcm9wIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2VIEZvcm1Hcm91cFxyXG4gICAqIEBlbl9VUyBGb3JtIEZvcm1Hcm91cFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2V5ZCN56ewXHJcbiAgICogQGVuX1VTIEZvcm0gbmFtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjqfku7bpl7Tot53vvIzljZXkvY1yZW1cclxuICAgKiBAZW5fVVMgQ29udHJvbCBzcGFjaW5nLCB1bml0IHJlbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAxKSBAWElucHV0TnVtYmVyKCkgc3BhY2U/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjqfku7blrr3luqbvvIwyNOagheagvFxyXG4gICAqIEBlbl9VUyBDb250cm9sIHdpZHRoLCAyNCBncmlkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIHNwYW4/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfnrb7lkI7nvIBcclxuICAgKiBAZW5fVVMgTGFiZWwgc3VmZml4XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsICcnKSBsYWJlbFN1ZmZpeD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2V5o6n5Lu2XHJcbiAgICogQGVuX1VTIEZvcm0gY29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xzOiBYRm9ybUNvbnRyb2xPcHRpb25bXSB8IFhGb3JtUm93W10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2V5a695bqmXHJcbiAgICogQGVuX1VTIEZvcm0gd2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19OQU1FLCAnMTAwJScpIHdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBjb250cm9sVHBsOiBYRm9ybVRlbXBsYXRlID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIFN1Ym1pdFxyXG4gICAqIEBlbl9VUyBTdWJtaXRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgeFN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VibWl0RXZlbnQ+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5o6n5Lu25a+56LGhXHJcbiAqIEBlbl9VUyBDb250cm9sIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYQ29udHJvbE9wdGlvbiBleHRlbmRzIFhJZGVudGl0eVByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YC8XHJcbiAgICogQGVuX1VTIFZhbHVlXHJcbiAgICovXHJcbiAgdmFsdWU/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOp+S7tuexu+Wei1xyXG4gICAqIEBlbl9VUyBDb250cm9sIHR5cGVcclxuICAgKi9cclxuICBjb250cm9sPzogWENvbnRyb2xUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnpoHnlKhcclxuICAgKiBAZW5fVVMgRGlzYWJsZWRcclxuICAgKi9cclxuICBkaXNhYmxlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlj6ror7tcclxuICAgKiBAZW5fVVMgUmVhZCBvbmx5XHJcbiAgICovXHJcbiAgcmVhZG9ubHk/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b+F5aGrXHJcbiAgICogQGVuX1VTIFJlcXVpcmVkXHJcbiAgICovXHJcbiAgcmVxdWlyZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6ZqQ6JePXHJcbiAgICogQGVuX1VTIEhpZGVcclxuICAgKi9cclxuICBoaWRkZW4/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5a69XHJcbiAgICogQGVuX1VTIENvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIHNwYW4/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WImemqjOivgeinhOWImVxyXG4gICAqIEBlbl9VUyBSZWd1bGFyIHZhbGlkYXRpb24gcnVsZXNcclxuICAgKi9cclxuICBwYXR0ZXJuPzogUmVnRXhwIHwgUmVnRXhwW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmqjOivgeS4jemAmui/h+aPkOekuuaWh+Wtl1xyXG4gICAqIEBlbl9VUyBWZXJpZmljYXRpb24gZmFpbGVkIHByb21wdCB0ZXh0XHJcbiAgICovXHJcbiAgbWVzc2FnZT86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDovpPlhaXmoYbnmoTpqozor4Hlh73mlbBcclxuICAgKiBAZW5fVVMgVmFsaWRhdGlvbiBmdW5jdGlvbiBvZiBpbnB1dCBib3hcclxuICAgKi9cclxuICBpbnB1dFZhbGlkYXRvcj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpJbpg6jmlLnlj5jkuovku7ZcclxuICAgKiBAZW5fVVMgRXh0ZXJuYWwgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgY2hhbmdlPzogKCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGe5oCnXHJcbiAgICogQGVuX1VTIEN1c3RvbSBhdHRyaWJ1dGVzXHJcbiAgICovXHJcbiAgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5o6n5Lu25a+56LGhXHJcbiAqIEBlbl9VUyBDb250cm9sIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFhDb250cm9sIGV4dGVuZHMgWElkZW50aXR5IGltcGxlbWVudHMgWENvbnRyb2xPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlgLxcclxuICAgKiBAZW5fVVMgVmFsdWVcclxuICAgKi9cclxuICB2YWx1ZT86IGFueTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6n5Lu257G75Z6LXHJcbiAgICogQGVuX1VTIENvbnRyb2wgdHlwZVxyXG4gICAqL1xyXG4gIGNvbnRyb2w/OiBYQ29udHJvbFR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqFxyXG4gICAqIEBlbl9VUyBEaXNhYmxlZFxyXG4gICAqL1xyXG4gIGRpc2FibGVkPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWPquivu1xyXG4gICAqIEBlbl9VUyBSZWFkIG9ubHlcclxuICAgKi9cclxuICByZWFkb25seT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv4XloatcclxuICAgKiBAZW5fVVMgUmVxdWlyZWRcclxuICAgKi9cclxuICByZXF1aXJlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol49cclxuICAgKiBAZW5fVVMgSGlkZVxyXG4gICAqL1xyXG4gIGhpZGRlbj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflrr1cclxuICAgKiBAZW5fVVMgQ29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgc3Bhbj86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q2j5YiZ6aqM6K+B6KeE5YiZXHJcbiAgICogQGVuX1VTIFJlZ3VsYXIgdmFsaWRhdGlvbiBydWxlc1xyXG4gICAqL1xyXG4gIHBhdHRlcm4/OiBSZWdFeHAgfCBSZWdFeHBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6aqM6K+B5LiN6YCa6L+H5o+Q56S65paH5a2XXHJcbiAgICogQGVuX1VTIFZlcmlmaWNhdGlvbiBmYWlsZWQgcHJvbXB0IHRleHRcclxuICAgKi9cclxuICBtZXNzYWdlPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpeahhueahOmqjOivgeWHveaVsFxyXG4gICAqIEBlbl9VUyBWYWxpZGF0aW9uIGZ1bmN0aW9uIG9mIGlucHV0IGJveFxyXG4gICAqL1xyXG4gIGlucHV0VmFsaWRhdG9yPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWklumDqOaUueWPmOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFeHRlcm5hbCBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBjaGFuZ2U/OiAoKSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDorr7nva7pqozor4FcclxuICAgKiBAZW5fVVMgU2V0IHZlcmlmaWNhdGlvblxyXG4gICAqL1xyXG4gIHNldFZhbGlkYXRvcnM/OiAoKSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudmFsdWUpKSB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOihqOWNleihjOWvueixoVxyXG4gKiBAZW5fVVMgRm9ybSByb3cgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhGb3JtUm93IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5qCH6aKYXHJcbiAgICogQGVuX1VTIFJvdyBoZWFkZXJcclxuICAgKi9cclxuICB0aXRsZT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5Zu+5qCHXHJcbiAgICogQGVuX1VTIFJvdyBpY29uXHJcbiAgICovXHJcbiAgaWNvbj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5Lit55qE5o6n5Lu2XHJcbiAgICogQGVuX1VTIENvbnRyb2wgaW4gcm93XHJcbiAgICovXHJcbiAgY29udHJvbHM6IFhGb3JtQ29udHJvbE9wdGlvbltdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol49cclxuICAgKiBAZW5fVVMgSGlkZGVuXHJcbiAgICovXHJcbiAgaGlkZGVuPzogWEJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb250cm9sXHJcbiAqIEBzZWxlY3RvciB4LWNvbnRyb2xcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYQ29udHJvbFByZWZpeCA9ICd4LWNvbnRyb2wnO1xyXG5cclxuLyoqXHJcbiAqIENvbnRyb2wgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WENvbnRyb2xQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYQ29udHJvbFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6n5Lu25a+56LGhXHJcbiAgICogQGVuX1VTIENvbnRyb2wgb2JqZWN0XHJcbiAgICovXHJcbiAgQElucHV0KCkgb3B0aW9uPzogWENvbnRyb2xPcHRpb247XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYRm9ybUNvbnRyb2wgZXh0ZW5kcyBVbnR5cGVkRm9ybUNvbnRyb2wge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmj5DnpLrkv6Hmga9cclxuICAgKiBAZW5fVVMgUHJvbXB0IGluZm9ybWF0aW9uXHJcbiAgICovXHJcbiAgbWVzc2FnZXM/OiBzdHJpbmdbXSA9IFtdO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBYRm9ybUNvbnRyb2xPcHRpb24gPVxyXG4gIHwgWElucHV0Q29udHJvbE9wdGlvblxyXG4gIHwgWFNlbGVjdENvbnRyb2xPcHRpb25cclxuICB8IFhDYXNjYWRlQ29udHJvbE9wdGlvblxyXG4gIHwgWENoZWNrYm94Q29udHJvbE9wdGlvblxyXG4gIHwgWENvbG9yUGlja2VyQ29udHJvbE9wdGlvblxyXG4gIHwgWERhdGVQaWNrZXJDb250cm9sT3B0aW9uXHJcbiAgfCBYSW5wdXROdW1iZXJDb250cm9sT3B0aW9uXHJcbiAgfCBYUmFkaW9Db250cm9sT3B0aW9uXHJcbiAgfCBYUmF0ZUNvbnRyb2xPcHRpb25cclxuICB8IFhTbGlkZXJTZWxlY3RDb250cm9sT3B0aW9uXHJcbiAgfCBYU3dpdGNoQ29udHJvbE9wdGlvblxyXG4gIHwgWFRpbWVQaWNrZXJDb250cm9sT3B0aW9uXHJcbiAgfCBYRmluZENvbnRyb2xPcHRpb25cclxuICB8IFhUZW1wbGF0ZUNvbnRyb2xPcHRpb247XHJcblxyXG5leHBvcnQgdHlwZSBYRm9ybUNvbnRyb2xDb21wb25lbnQgPVxyXG4gIHwgWElucHV0Q29tcG9uZW50XHJcbiAgfCBYU2VsZWN0Q29tcG9uZW50XHJcbiAgfCBYQ2FzY2FkZUNvbXBvbmVudFxyXG4gIHwgWENoZWNrYm94Q29tcG9uZW50XHJcbiAgfCBYQ29sb3JQaWNrZXJDb21wb25lbnRcclxuICB8IFhEYXRlUGlja2VyQ29tcG9uZW50XHJcbiAgfCBYSW5wdXROdW1iZXJDb21wb25lbnRcclxuICB8IFhSYWRpb0NvbXBvbmVudFxyXG4gIHwgWFJhdGVDb21wb25lbnRcclxuICB8IFhTbGlkZXJTZWxlY3RDb21wb25lbnRcclxuICB8IFhTd2l0Y2hDb21wb25lbnRcclxuICB8IFhUaW1lUGlja2VyQ29tcG9uZW50XHJcbiAgfCBYVGV4dGFyZWFDb21wb25lbnRcclxuICB8IFhGaW5kQ29tcG9uZW50XHJcbiAgfCBYQXV0b0NvbXBsZXRlQ29tcG9uZW50O1xyXG5cclxuZXhwb3J0IHR5cGUgWEZvcm1Db250cm9sVHlwZSA9XHJcbiAgfCBYSW5wdXRDb250cm9sXHJcbiAgfCBYU2VsZWN0Q29udHJvbFxyXG4gIHwgWENhc2NhZGVDb250cm9sXHJcbiAgfCBYQ2hlY2tib3hDb250cm9sXHJcbiAgfCBYQ29sb3JQaWNrZXJDb250cm9sXHJcbiAgfCBYRGF0ZVBpY2tlckNvbnRyb2xcclxuICB8IFhJbnB1dE51bWJlckNvbnRyb2xcclxuICB8IFhSYWRpb0NvbnRyb2xcclxuICB8IFhSYXRlQ29udHJvbFxyXG4gIHwgWFNsaWRlclNlbGVjdENvbnRyb2xcclxuICB8IFhTd2l0Y2hDb250cm9sXHJcbiAgfCBYVGltZVBpY2tlckNvbnRyb2xcclxuICB8IFhUZXh0YXJlYUNvbnRyb2xcclxuICB8IFhGaW5kQ29udHJvbFxyXG4gIHwgWEF1dG9Db21wbGV0ZUNvbnRyb2w7XHJcblxyXG5leHBvcnQgdHlwZSBYQ29udHJvbFR5cGUgPVxyXG4gIHwgJ2lucHV0J1xyXG4gIHwgJ3NlbGVjdCdcclxuICB8ICdjYXNjYWRlJ1xyXG4gIHwgJ2NoZWNrYm94J1xyXG4gIHwgJ2NvbG9yLXBpY2tlcidcclxuICB8ICdkYXRlLXBpY2tlcidcclxuICB8ICdpbnB1dC1udW1iZXInXHJcbiAgfCAncmFkaW8nXHJcbiAgfCAncmF0ZSdcclxuICB8ICdzbGlkZXItc2VsZWN0J1xyXG4gIHwgJ3N3aXRjaCdcclxuICB8ICd0aW1lLXBpY2tlcidcclxuICB8ICd0ZXh0YXJlYSdcclxuICB8ICdmaW5kJ1xyXG4gIHwgJ2F1dG8tY29tcGxldGUnXHJcbiAgfCAndGVtcGxhdGUnO1xyXG5cclxuLyoqXHJcbiAqIElucHV0IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWElucHV0Q29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYSW5wdXRPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhJbnB1dENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYSW5wdXRDb250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU2VsZWN0IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFNlbGVjdENvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWFNlbGVjdE9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWFNlbGVjdENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYU2VsZWN0Q29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENhc2NhZGUgQ29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYQ2FzY2FkZUNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWENhc2NhZGVPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhDYXNjYWRlQ29udHJvbCBleHRlbmRzIFhDb250cm9sIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb246IFhDYXNjYWRlQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrYm94IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWENoZWNrYm94Q29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYQ2hlY2tib3hPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhDaGVja2JveENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYQ2hlY2tib3hDb250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQ29sb3JQaWNrZXIgQ29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYQ29sb3JQaWNrZXJDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhDb2xvclBpY2tlck9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyQ29udHJvbCBleHRlbmRzIFhDb250cm9sIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb246IFhDb2xvclBpY2tlckNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhEYXRlUGlja2VyT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlckNvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYRGF0ZVBpY2tlckNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnB1dE51bWJlciBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhJbnB1dE51bWJlckNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWElucHV0TnVtYmVyT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYSW5wdXROdW1iZXJDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWElucHV0TnVtYmVyQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJhZGlvIENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFJhZGlvQ29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYUmFkaW9PcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhSYWRpb0NvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYUmFkaW9Db250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmF0ZSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhSYXRlQ29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYUmF0ZU9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWFJhdGVDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWFJhdGVDb250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU2xpZGVyU2VsZWN0IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFNsaWRlclNlbGVjdENvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWFNsaWRlclNlbGVjdE9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWFNsaWRlclNlbGVjdENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYU2xpZGVyU2VsZWN0Q29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFN3aXRjaCBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhTd2l0Y2hDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhTd2l0Y2hPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhTd2l0Y2hDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWFN3aXRjaENvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaW1lUGlja2VyIENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRpbWVQaWNrZXJDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhUaW1lUGlja2VyT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYVGltZVBpY2tlckNvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYVGltZVBpY2tlckNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZXh0YXJlYSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUZXh0YXJlYUNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWFRleHRhcmVhT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYVGV4dGFyZWFDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWFRleHRhcmVhQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEZpbmQgQ29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRmluZENvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWEZpbmRPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhGaW5kQ29udHJvbCBleHRlbmRzIFhDb250cm9sIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb246IFhGaW5kQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEF1dG9Db21wbGV0ZSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhBdXRvQ29tcGxldGVDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhBdXRvQ29tcGxldGVPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhBdXRvQ29tcGxldGVDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWEF1dG9Db21wbGV0ZUNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZW1wbGF0ZSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUZW1wbGF0ZUNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWEZvcm1PcHRpb24ge31cclxuIl19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2Zvcm0vZm9ybS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBK0IsUUFBUSxFQUFXLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZXRFLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHL0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFDcEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0FBTzdCOztHQUVHO0FBQ0gsTUFDYSxhQUFjLFNBQVEsU0FBUztJQUQ1Qzs7UUFFRTs7O1dBR0c7UUFDTSxjQUFTLEdBQXFCLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFxQmhFOzs7V0FHRztRQUNNLGFBQVEsR0FBc0MsRUFBRSxDQUFDO1FBQzFEOzs7V0FHRztRQUNrRCxVQUFLLEdBQVcsTUFBTSxDQUFDO1FBQzVFOzs7V0FHRztRQUNNLGVBQVUsR0FBa0IsRUFBRSxDQUFDO1FBQ3hDOzs7V0FHRztRQUNPLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0tBQ3JEO2lJQTlDWSxhQUFhO3FIQUFiLGFBQWEsNlJBRGtDLEVBQUU7O0FBZ0JLO0lBQXZELFdBQVcsQ0FBVSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQUUsWUFBWSxFQUFFOzRDQUFpQjtBQUt4RDtJQUFmLFlBQVksRUFBRTsyQ0FBZ0I7QUFLVTtJQUF4QyxXQUFXLENBQVUs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QixFQUFFO1FBQ3pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsUUFBUTtJQUNoRCxZQUFZLFNBQXFDLEVBQUU7UUFDakQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxjQUFlLFNBQVEsUUFBUTtJQUMxQyxZQUFZLFNBQStCLEVBQUU7UUFDM0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxRQUFRO0lBQzlDLFlBQVksU0FBbUMsRUFBRTtRQUMvQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBTUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7SUFDNUMsWUFBWSxTQUFpQyxFQUFFO1FBQzdDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sWUFBYSxTQUFRLFFBQVE7SUFDeEMsWUFBWSxTQUE2QixFQUFFO1FBQ3pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsUUFBUTtJQUNoRCxZQUFZLFNBQXFDLEVBQUU7UUFDakQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhJZGVudGl0eSwgWElkZW50aXR5UHJvcGVydHksIFhCb29sZWFuLCBYSXNFbXB0eSwgWE51bWJlciwgWElucHV0TnVtYmVyLCBYV2l0aENvbmZpZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSW5wdXRPcHRpb24sIFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWFNlbGVjdE9wdGlvbiwgWFNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NlbGVjdCc7XHJcbmltcG9ydCB7IFhDYXNjYWRlT3B0aW9uLCBYQ2FzY2FkZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2Nhc2NhZGUnO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hPcHRpb24sIFhDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NoZWNrYm94JztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyT3B0aW9uLCBYQ29sb3JQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9jb2xvci1waWNrZXInO1xyXG5pbXBvcnQgeyBYRGF0ZVBpY2tlck9wdGlvbiwgWERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IFhJbnB1dE51bWJlck9wdGlvbiwgWElucHV0TnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQtbnVtYmVyJztcclxuaW1wb3J0IHsgWFJhZGlvT3B0aW9uLCBYUmFkaW9Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9yYWRpbyc7XHJcbmltcG9ydCB7IFhSYXRlT3B0aW9uLCBYUmF0ZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3JhdGUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyU2VsZWN0T3B0aW9uLCBYU2xpZGVyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdCc7XHJcbmltcG9ydCB7IFhTd2l0Y2hPcHRpb24sIFhTd2l0Y2hDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9zd2l0Y2gnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlck9wdGlvbiwgWFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90aW1lLXBpY2tlcic7XHJcbmltcG9ydCB7IFhUZXh0YXJlYU9wdGlvbiwgWFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGV4dGFyZWEnO1xyXG5pbXBvcnQgeyBYRmluZE9wdGlvbiwgWEZpbmRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9maW5kJztcclxuaW1wb3J0IHsgWEZvcm1PcHRpb24sIFhGb3JtUHJvcCB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhBdXRvQ29tcGxldGVPcHRpb24sIFhBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9hdXRvLWNvbXBsZXRlJztcclxuXHJcbi8qKlxyXG4gKiBGb3JtXHJcbiAqIEBzZWxlY3RvciB4LWZvcm1cclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRm9ybVByZWZpeCA9ICd4LWZvcm0nO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ2Zvcm0nO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmqKHmnb9cclxuICogQGVuX1VTIFRlbXBsYXRlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRm9ybVRlbXBsYXRlID0geyBbcHJvcGVydHk6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfTtcclxuLyoqXHJcbiAqIEZvcm0gUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WEZvcm1QcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRm9ybVByb3BlcnR5IGV4dGVuZHMgWEZvcm1Qcm9wIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2VIEZvcm1Hcm91cFxyXG4gICAqIEBlbl9VUyBGb3JtIEZvcm1Hcm91cFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2V5ZCN56ewXHJcbiAgICogQGVuX1VTIEZvcm0gbmFtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjqfku7bpl7Tot53vvIzljZXkvY1yZW1cclxuICAgKiBAZW5fVVMgQ29udHJvbCBzcGFjaW5nLCB1bml0IHJlbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAxKSBAWElucHV0TnVtYmVyKCkgc3BhY2U/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjqfku7blrr3luqbvvIwyNOagheagvFxyXG4gICAqIEBlbl9VUyBDb250cm9sIHdpZHRoLCAyNCBncmlkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIHNwYW4/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfnrb7lkI7nvIBcclxuICAgKiBAZW5fVVMgTGFiZWwgc3VmZml4XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsICcnKSBsYWJlbFN1ZmZpeD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2V5o6n5Lu2XHJcbiAgICogQGVuX1VTIEZvcm0gY29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xzOiBYRm9ybUNvbnRyb2xPcHRpb25bXSB8IFhGb3JtUm93W10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5Y2V5a695bqmXHJcbiAgICogQGVuX1VTIEZvcm0gd2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19OQU1FLCAnMTAwJScpIHdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBjb250cm9sVHBsOiBYRm9ybVRlbXBsYXRlID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIFN1Ym1pdFxyXG4gICAqIEBlbl9VUyBTdWJtaXRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgeFN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VibWl0RXZlbnQ+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5o6n5Lu25a+56LGhXHJcbiAqIEBlbl9VUyBDb250cm9sIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYQ29udHJvbE9wdGlvbiBleHRlbmRzIFhJZGVudGl0eVByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YC8XHJcbiAgICogQGVuX1VTIFZhbHVlXHJcbiAgICovXHJcbiAgdmFsdWU/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIneWni+m7mOiupOWAvFxyXG4gICAqIEBlbl9VUyBEZWZhdWx0IHZhbHVlXHJcbiAgICovXHJcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjqfku7bnsbvlnotcclxuICAgKiBAZW5fVVMgQ29udHJvbCB0eXBlXHJcbiAgICovXHJcbiAgY29udHJvbD86IFhDb250cm9sVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55SoXHJcbiAgICogQGVuX1VTIERpc2FibGVkXHJcbiAgICovXHJcbiAgZGlzYWJsZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+q6K+7XHJcbiAgICogQGVuX1VTIFJlYWQgb25seVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5PzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW/heWhq1xyXG4gICAqIEBlbl9VUyBSZXF1aXJlZFxyXG4gICAqL1xyXG4gIHJlcXVpcmVkPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmakOiXj1xyXG4gICAqIEBlbl9VUyBIaWRlXHJcbiAgICovXHJcbiAgaGlkZGVuPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WuvVxyXG4gICAqIEBlbl9VUyBDb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBzcGFuPzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPliJnpqozor4Hop4TliJlcclxuICAgKiBAZW5fVVMgUmVndWxhciB2YWxpZGF0aW9uIHJ1bGVzXHJcbiAgICovXHJcbiAgcGF0dGVybj86IFJlZ0V4cCB8IFJlZ0V4cFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpqozor4HkuI3pgJrov4fmj5DnpLrmloflrZdcclxuICAgKiBAZW5fVVMgVmVyaWZpY2F0aW9uIGZhaWxlZCBwcm9tcHQgdGV4dFxyXG4gICAqL1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6L6T5YWl5qGG55qE6aqM6K+B5Ye95pWwXHJcbiAgICogQGVuX1VTIFZhbGlkYXRpb24gZnVuY3Rpb24gb2YgaW5wdXQgYm94XHJcbiAgICovXHJcbiAgaW5wdXRWYWxpZGF0b3I/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSW6YOo5pS55Y+Y5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV4dGVybmFsIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIGNoYW5nZT86ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaOp+S7tuWvueixoVxyXG4gKiBAZW5fVVMgQ29udHJvbCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBjbGFzcyBYQ29udHJvbCBleHRlbmRzIFhJZGVudGl0eSBpbXBsZW1lbnRzIFhDb250cm9sT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YC8XHJcbiAgICogQGVuX1VTIFZhbHVlXHJcbiAgICovXHJcbiAgdmFsdWU/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWQr+i/meS4qu+8jOaJp+ihjCByZXNldCDnmoTml7blgJnliJ3lp4vkuLrorr7nva7nmoQgdmFsdWXvvIzpu5jorqTkuLogbnVsbFxyXG4gICAqIEBlbl9VUyBFbmFibGUgdGhpcy4gV2hlbiBwZXJmb3JtaW5nIGEgcmVzZXQsIHRoZSBpbml0aWFsIHZhbHVlIGlzIHRoZSBzZXQgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIG51bGxcclxuICAgKi9cclxuICBub25OdWxsYWJsZT86IGFueTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6n5Lu257G75Z6LXHJcbiAgICogQGVuX1VTIENvbnRyb2wgdHlwZVxyXG4gICAqL1xyXG4gIGNvbnRyb2w/OiBYQ29udHJvbFR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqFxyXG4gICAqIEBlbl9VUyBEaXNhYmxlZFxyXG4gICAqL1xyXG4gIGRpc2FibGVkPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWPquivu1xyXG4gICAqIEBlbl9VUyBSZWFkIG9ubHlcclxuICAgKi9cclxuICByZWFkb25seT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv4XloatcclxuICAgKiBAZW5fVVMgUmVxdWlyZWRcclxuICAgKi9cclxuICByZXF1aXJlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol49cclxuICAgKiBAZW5fVVMgSGlkZVxyXG4gICAqL1xyXG4gIGhpZGRlbj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflrr1cclxuICAgKiBAZW5fVVMgQ29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgc3Bhbj86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q2j5YiZ6aqM6K+B6KeE5YiZXHJcbiAgICogQGVuX1VTIFJlZ3VsYXIgdmFsaWRhdGlvbiBydWxlc1xyXG4gICAqL1xyXG4gIHBhdHRlcm4/OiBSZWdFeHAgfCBSZWdFeHBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6aqM6K+B5LiN6YCa6L+H5o+Q56S65paH5a2XXHJcbiAgICogQGVuX1VTIFZlcmlmaWNhdGlvbiBmYWlsZWQgcHJvbXB0IHRleHRcclxuICAgKi9cclxuICBtZXNzYWdlPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi+k+WFpeahhueahOmqjOivgeWHveaVsFxyXG4gICAqIEBlbl9VUyBWYWxpZGF0aW9uIGZ1bmN0aW9uIG9mIGlucHV0IGJveFxyXG4gICAqL1xyXG4gIGlucHV0VmFsaWRhdG9yPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWklumDqOaUueWPmOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFeHRlcm5hbCBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBjaGFuZ2U/OiAoKSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDorr7nva7pqozor4FcclxuICAgKiBAZW5fVVMgU2V0IHZlcmlmaWNhdGlvblxyXG4gICAqL1xyXG4gIHNldFZhbGlkYXRvcnM/OiAoKSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudmFsdWUpKSB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOihqOWNleihjOWvueixoVxyXG4gKiBAZW5fVVMgRm9ybSByb3cgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhGb3JtUm93IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5qCH6aKYXHJcbiAgICogQGVuX1VTIFJvdyBoZWFkZXJcclxuICAgKi9cclxuICB0aXRsZT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5Zu+5qCHXHJcbiAgICogQGVuX1VTIFJvdyBpY29uXHJcbiAgICovXHJcbiAgaWNvbj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5Lit55qE5o6n5Lu2XHJcbiAgICogQGVuX1VTIENvbnRyb2wgaW4gcm93XHJcbiAgICovXHJcbiAgY29udHJvbHM6IFhGb3JtQ29udHJvbE9wdGlvbltdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol49cclxuICAgKiBAZW5fVVMgSGlkZGVuXHJcbiAgICovXHJcbiAgaGlkZGVuPzogWEJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb250cm9sXHJcbiAqIEBzZWxlY3RvciB4LWNvbnRyb2xcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYQ29udHJvbFByZWZpeCA9ICd4LWNvbnRyb2wnO1xyXG5cclxuLyoqXHJcbiAqIENvbnRyb2wgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WENvbnRyb2xQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYQ29udHJvbFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6n5Lu25a+56LGhXHJcbiAgICogQGVuX1VTIENvbnRyb2wgb2JqZWN0XHJcbiAgICovXHJcbiAgQElucHV0KCkgb3B0aW9uPzogWENvbnRyb2xPcHRpb247XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYRm9ybUNvbnRyb2wgZXh0ZW5kcyBVbnR5cGVkRm9ybUNvbnRyb2wge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmj5DnpLrkv6Hmga9cclxuICAgKiBAZW5fVVMgUHJvbXB0IGluZm9ybWF0aW9uXHJcbiAgICovXHJcbiAgbWVzc2FnZXM/OiBzdHJpbmdbXSA9IFtdO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBYRm9ybUNvbnRyb2xPcHRpb24gPVxyXG4gIHwgWElucHV0Q29udHJvbE9wdGlvblxyXG4gIHwgWFNlbGVjdENvbnRyb2xPcHRpb25cclxuICB8IFhDYXNjYWRlQ29udHJvbE9wdGlvblxyXG4gIHwgWENoZWNrYm94Q29udHJvbE9wdGlvblxyXG4gIHwgWENvbG9yUGlja2VyQ29udHJvbE9wdGlvblxyXG4gIHwgWERhdGVQaWNrZXJDb250cm9sT3B0aW9uXHJcbiAgfCBYSW5wdXROdW1iZXJDb250cm9sT3B0aW9uXHJcbiAgfCBYUmFkaW9Db250cm9sT3B0aW9uXHJcbiAgfCBYUmF0ZUNvbnRyb2xPcHRpb25cclxuICB8IFhTbGlkZXJTZWxlY3RDb250cm9sT3B0aW9uXHJcbiAgfCBYU3dpdGNoQ29udHJvbE9wdGlvblxyXG4gIHwgWFRpbWVQaWNrZXJDb250cm9sT3B0aW9uXHJcbiAgfCBYRmluZENvbnRyb2xPcHRpb25cclxuICB8IFhUZW1wbGF0ZUNvbnRyb2xPcHRpb247XHJcblxyXG5leHBvcnQgdHlwZSBYRm9ybUNvbnRyb2xDb21wb25lbnQgPVxyXG4gIHwgWElucHV0Q29tcG9uZW50XHJcbiAgfCBYU2VsZWN0Q29tcG9uZW50XHJcbiAgfCBYQ2FzY2FkZUNvbXBvbmVudFxyXG4gIHwgWENoZWNrYm94Q29tcG9uZW50XHJcbiAgfCBYQ29sb3JQaWNrZXJDb21wb25lbnRcclxuICB8IFhEYXRlUGlja2VyQ29tcG9uZW50XHJcbiAgfCBYSW5wdXROdW1iZXJDb21wb25lbnRcclxuICB8IFhSYWRpb0NvbXBvbmVudFxyXG4gIHwgWFJhdGVDb21wb25lbnRcclxuICB8IFhTbGlkZXJTZWxlY3RDb21wb25lbnRcclxuICB8IFhTd2l0Y2hDb21wb25lbnRcclxuICB8IFhUaW1lUGlja2VyQ29tcG9uZW50XHJcbiAgfCBYVGV4dGFyZWFDb21wb25lbnRcclxuICB8IFhGaW5kQ29tcG9uZW50XHJcbiAgfCBYQXV0b0NvbXBsZXRlQ29tcG9uZW50O1xyXG5cclxuZXhwb3J0IHR5cGUgWEZvcm1Db250cm9sVHlwZSA9XHJcbiAgfCBYSW5wdXRDb250cm9sXHJcbiAgfCBYU2VsZWN0Q29udHJvbFxyXG4gIHwgWENhc2NhZGVDb250cm9sXHJcbiAgfCBYQ2hlY2tib3hDb250cm9sXHJcbiAgfCBYQ29sb3JQaWNrZXJDb250cm9sXHJcbiAgfCBYRGF0ZVBpY2tlckNvbnRyb2xcclxuICB8IFhJbnB1dE51bWJlckNvbnRyb2xcclxuICB8IFhSYWRpb0NvbnRyb2xcclxuICB8IFhSYXRlQ29udHJvbFxyXG4gIHwgWFNsaWRlclNlbGVjdENvbnRyb2xcclxuICB8IFhTd2l0Y2hDb250cm9sXHJcbiAgfCBYVGltZVBpY2tlckNvbnRyb2xcclxuICB8IFhUZXh0YXJlYUNvbnRyb2xcclxuICB8IFhGaW5kQ29udHJvbFxyXG4gIHwgWEF1dG9Db21wbGV0ZUNvbnRyb2w7XHJcblxyXG5leHBvcnQgdHlwZSBYQ29udHJvbFR5cGUgPVxyXG4gIHwgJ2lucHV0J1xyXG4gIHwgJ3NlbGVjdCdcclxuICB8ICdjYXNjYWRlJ1xyXG4gIHwgJ2NoZWNrYm94J1xyXG4gIHwgJ2NvbG9yLXBpY2tlcidcclxuICB8ICdkYXRlLXBpY2tlcidcclxuICB8ICdpbnB1dC1udW1iZXInXHJcbiAgfCAncmFkaW8nXHJcbiAgfCAncmF0ZSdcclxuICB8ICdzbGlkZXItc2VsZWN0J1xyXG4gIHwgJ3N3aXRjaCdcclxuICB8ICd0aW1lLXBpY2tlcidcclxuICB8ICd0ZXh0YXJlYSdcclxuICB8ICdmaW5kJ1xyXG4gIHwgJ2F1dG8tY29tcGxldGUnXHJcbiAgfCAndGVtcGxhdGUnO1xyXG5cclxuLyoqXHJcbiAqIElucHV0IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWElucHV0Q29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYSW5wdXRPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhJbnB1dENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYSW5wdXRDb250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU2VsZWN0IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFNlbGVjdENvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWFNlbGVjdE9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWFNlbGVjdENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYU2VsZWN0Q29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENhc2NhZGUgQ29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYQ2FzY2FkZUNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWENhc2NhZGVPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhDYXNjYWRlQ29udHJvbCBleHRlbmRzIFhDb250cm9sIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb246IFhDYXNjYWRlQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrYm94IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWENoZWNrYm94Q29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYQ2hlY2tib3hPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhDaGVja2JveENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYQ2hlY2tib3hDb250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQ29sb3JQaWNrZXIgQ29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYQ29sb3JQaWNrZXJDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhDb2xvclBpY2tlck9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyQ29udHJvbCBleHRlbmRzIFhDb250cm9sIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb246IFhDb2xvclBpY2tlckNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhEYXRlUGlja2VyT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlckNvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYRGF0ZVBpY2tlckNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnB1dE51bWJlciBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhJbnB1dE51bWJlckNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWElucHV0TnVtYmVyT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYSW5wdXROdW1iZXJDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWElucHV0TnVtYmVyQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJhZGlvIENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFJhZGlvQ29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYUmFkaW9PcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhSYWRpb0NvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYUmFkaW9Db250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmF0ZSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhSYXRlQ29udHJvbE9wdGlvbiBleHRlbmRzIFhDb250cm9sT3B0aW9uLCBYUmF0ZU9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWFJhdGVDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWFJhdGVDb250cm9sT3B0aW9uID0ge30pIHtcclxuICAgIHN1cGVyKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU2xpZGVyU2VsZWN0IENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFNsaWRlclNlbGVjdENvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWFNsaWRlclNlbGVjdE9wdGlvbiB7fVxyXG5leHBvcnQgY2xhc3MgWFNsaWRlclNlbGVjdENvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYU2xpZGVyU2VsZWN0Q29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFN3aXRjaCBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhTd2l0Y2hDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhTd2l0Y2hPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhTd2l0Y2hDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWFN3aXRjaENvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaW1lUGlja2VyIENvbnRyb2xcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRpbWVQaWNrZXJDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhUaW1lUGlja2VyT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYVGltZVBpY2tlckNvbnRyb2wgZXh0ZW5kcyBYQ29udHJvbCB7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9uOiBYVGltZVBpY2tlckNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZXh0YXJlYSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUZXh0YXJlYUNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWFRleHRhcmVhT3B0aW9uIHt9XHJcbmV4cG9ydCBjbGFzcyBYVGV4dGFyZWFDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWFRleHRhcmVhQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEZpbmQgQ29udHJvbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRmluZENvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWEZpbmRPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhGaW5kQ29udHJvbCBleHRlbmRzIFhDb250cm9sIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb246IFhGaW5kQ29udHJvbE9wdGlvbiA9IHt9KSB7XHJcbiAgICBzdXBlcihvcHRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEF1dG9Db21wbGV0ZSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhBdXRvQ29tcGxldGVDb250cm9sT3B0aW9uIGV4dGVuZHMgWENvbnRyb2xPcHRpb24sIFhBdXRvQ29tcGxldGVPcHRpb24ge31cclxuZXhwb3J0IGNsYXNzIFhBdXRvQ29tcGxldGVDb250cm9sIGV4dGVuZHMgWENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbjogWEF1dG9Db21wbGV0ZUNvbnRyb2xPcHRpb24gPSB7fSkge1xyXG4gICAgc3VwZXIob3B0aW9uKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZW1wbGF0ZSBDb250cm9sXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUZW1wbGF0ZUNvbnRyb2xPcHRpb24gZXh0ZW5kcyBYQ29udHJvbE9wdGlvbiwgWEZvcm1PcHRpb24ge31cclxuIl19
|