@acorex/components 16.18.13 → 16.18.15
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/base/element.class.mjs +8 -2
- package/esm2022/lib/button/button.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +9 -3
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +1 -1
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/color-picker/color-box/color-box.component.mjs +1 -1
- package/esm2022/lib/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/lib/context-menu/context-menu.component.mjs +9 -3
- package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +1 -1
- package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +1 -1
- package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +1 -1
- package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +1 -1
- package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +9 -3
- package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +1 -1
- package/esm2022/lib/data-list/list/list.component.mjs +3 -3
- package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/lib/fieldset/fieldset.component.mjs +10 -3
- package/esm2022/lib/form-group/form-group.component.mjs +3 -3
- package/esm2022/lib/label/label.component.mjs +4 -3
- package/esm2022/lib/loading/loading-indicator.component.mjs +9 -3
- package/esm2022/lib/loading/loading-panel.component.mjs +9 -3
- package/esm2022/lib/menu/menu.component.mjs +9 -3
- package/esm2022/lib/number-box/number-box.component.mjs +3 -3
- package/esm2022/lib/panel-box/panel-box.component.mjs +9 -3
- package/esm2022/lib/password-box/password-box.component.mjs +3 -3
- package/esm2022/lib/popover/popover.component.mjs +10 -3
- package/esm2022/lib/popup/popup.component.mjs +11 -7
- package/esm2022/lib/popup/popup.service.mjs +6 -2
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +9 -3
- package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +1 -1
- package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +1 -1
- package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +1 -1
- package/esm2022/lib/query-builder/query-builder-rule.component.mjs +1 -1
- package/esm2022/lib/search-bar/search-bar.component.mjs +9 -3
- package/esm2022/lib/searchbox/searchbox.component.mjs +9 -3
- package/esm2022/lib/selectbox/selectbox.component.mjs +10 -4
- package/esm2022/lib/selectbox/selectbox2.component.mjs +1 -1
- package/esm2022/lib/selection-list/selection-list.component.mjs +9 -3
- package/esm2022/lib/switch/switch.component.mjs +14 -7
- package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +3 -1
- package/esm2022/lib/tab-page/tab-page-host.component.mjs +7 -6
- package/esm2022/lib/tab-page/tab-page.service.mjs +7 -3
- package/esm2022/lib/tab-strip/tab-strip.component.mjs +9 -3
- package/esm2022/lib/tab-view/tab-view.component.mjs +10 -4
- package/esm2022/lib/tab-view/tab.component.mjs +9 -3
- package/esm2022/lib/textarea/textarea.component.mjs +15 -5
- package/esm2022/lib/textbox/textbox.component.mjs +15 -5
- package/esm2022/lib/time-picker/time-picker.component.mjs +10 -4
- package/esm2022/lib/toast/toast-message/toast-message.component.mjs +9 -3
- package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +27 -18
- package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +9 -3
- package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +9 -3
- package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +23 -8
- package/esm2022/lib/toolbar/toolbar.component.mjs +11 -5
- package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +9 -3
- package/esm2022/lib/tree-view/tree-view.component.mjs +9 -3
- package/esm2022/lib/upload-file/upload-file.component.mjs +9 -3
- package/fesm2022/acorex-components.mjs +357 -137
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/lib/base/element.class.d.ts +3 -1
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +3 -1
- package/lib/context-menu/context-menu.component.d.ts +3 -1
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +3 -1
- package/lib/fieldset/fieldset.component.d.ts +3 -1
- package/lib/loading/loading-indicator.component.d.ts +3 -1
- package/lib/loading/loading-panel.component.d.ts +3 -1
- package/lib/menu/menu.component.d.ts +3 -1
- package/lib/panel-box/panel-box.component.d.ts +3 -1
- package/lib/popover/popover.component.d.ts +3 -1
- package/lib/popup/popup.component.d.ts +2 -0
- package/lib/popup/popup.service.d.ts +2 -0
- package/lib/progress-bar/progress-bar.component.d.ts +3 -1
- package/lib/search-bar/search-bar.component.d.ts +3 -1
- package/lib/searchbox/searchbox.component.d.ts +3 -1
- package/lib/selectbox/selectbox.component.d.ts +3 -1
- package/lib/selection-list/selection-list.component.d.ts +3 -1
- package/lib/switch/switch.component.d.ts +3 -1
- package/lib/tab-page/tab-page.service.d.ts +2 -0
- package/lib/tab-strip/tab-strip.component.d.ts +3 -1
- package/lib/tab-view/tab-view.component.d.ts +3 -1
- package/lib/tab-view/tab.component.d.ts +3 -1
- package/lib/textarea/textarea.component.d.ts +3 -1
- package/lib/textbox/textbox.component.d.ts +3 -1
- package/lib/time-picker/time-picker.component.d.ts +3 -1
- package/lib/toast/toast-message/toast-message.component.d.ts +3 -1
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +6 -4
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +3 -1
- package/lib/toolbar/search/toolbar-search.component.d.ts +3 -1
- package/lib/toolbar/title/toolbar-title.component.d.ts +3 -2
- package/lib/toolbar/toolbar.component.d.ts +3 -1
- package/lib/tree-side-menu/tree-side-menu.component.d.ts +3 -1
- package/lib/tree-view/tree-view.component.d.ts +3 -1
- package/lib/upload-file/upload-file.component.d.ts +3 -1
- package/package.json +1 -1
@@ -29,6 +29,8 @@ export class AXUploadFileComponent extends AXBaseComponent {
|
|
29
29
|
onLoad = new EventEmitter();
|
30
30
|
onProgress = new EventEmitter();
|
31
31
|
onRemove = new EventEmitter();
|
32
|
+
axId = '';
|
33
|
+
axClass = '';
|
32
34
|
fileTypes = [
|
33
35
|
{
|
34
36
|
type: 'image',
|
@@ -265,11 +267,11 @@ export class AXUploadFileComponent extends AXBaseComponent {
|
|
265
267
|
this.dropRef.classList.add('ax-upload-drop-over');
|
266
268
|
}
|
267
269
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXUploadFileComponent, deps: [{ token: i0.ElementRef }, { token: i1.AXRenderService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i2.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
|
268
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXUploadFileComponent, selector: "ax-upload-file", inputs: { contentType: "contentType", dropRef: "dropRef", progressRef: "progressRef", label: "label", size: "size", type: "type", template: "template", disabled: "disabled" }, outputs: { onLoad: "onLoad", onProgress: "onProgress", onRemove: "onRemove" }, host: { styleAttribute: "display: block; width:100%; position: relative" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input\n #fileInput\n type=\"file\"\n [accept]=\"accessTypes.join(',')\"\n style=\"display: none\"\n (change)=\"onFileChange($event)\"\n/>\n\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\n <ax-form-group size=\"{{ size }}\">\n <ax-text-box\n [value]=\"fileName\"\n readonly=\"true\"\n [disabled]=\"disabled\"\n ></ax-text-box>\n <ax-button\n type=\"blank light\"\n icon=\"far fa-times\"\n (click)=\"remove()\"\n *ngIf=\"fileName\"\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ax-button\n type=\"primary blank\"\n icon=\"far fa-upload\"\n (click)=\"open()\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n >\n </ax-button>\n </ax-form-group>\n</ng-container>\n\n<ng-template #elseTemplate>\n <div
|
270
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXUploadFileComponent, selector: "ax-upload-file", inputs: { contentType: "contentType", dropRef: "dropRef", progressRef: "progressRef", label: "label", size: "size", type: "type", template: "template", disabled: "disabled", axId: "axId", axClass: "axClass" }, outputs: { onLoad: "onLoad", onProgress: "onProgress", onRemove: "onRemove" }, host: { styleAttribute: "display: block; width:100%; position: relative" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input\n #fileInput\n type=\"file\"\n [accept]=\"accessTypes.join(',')\"\n [attr.id]=\"axId\"\n [attr.class]=\"axClass\"\n style=\"display: none\"\n (change)=\"onFileChange($event)\"\n/>\n\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\n <ax-form-group size=\"{{ size }}\">\n <ax-text-box\n [value]=\"fileName\"\n readonly=\"true\"\n [disabled]=\"disabled\"\n [attr.id]=\"axId ? axId + '-textbox' : null\"\n [attr.class]=\"axClass\"\n ></ax-text-box>\n <ax-button\n type=\"blank light\"\n icon=\"far fa-times\"\n (click)=\"remove()\"\n *ngIf=\"fileName\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId ? axId + '-remove-button' : null\"\n [attr.class]=\"axClass\"\n >\n </ax-button>\n <ax-button\n type=\"primary blank\"\n icon=\"far fa-upload\"\n (click)=\"open()\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId ? axId + '-upload-button' : null\"\n [attr.class]=\"axClass\"\n >\n </ax-button>\n </ax-form-group>\n</ng-container>\n\n<ng-template #elseTemplate>\n <div\n class=\"ax upload-file-box\"\n (click)=\"open()\"\n #dropRef\n [attr.id]=\"axId ? axId + '-drop-area' : null\"\n [attr.class]=\"axClass\"\n ></div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions", "axId", "axClass"] }, { kind: "component", type: i6.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }], encapsulation: i0.ViewEncapsulation.None });
|
269
271
|
}
|
270
272
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXUploadFileComponent, decorators: [{
|
271
273
|
type: Component,
|
272
|
-
args: [{ selector: 'ax-upload-file', encapsulation: ViewEncapsulation.None, host: { style: 'display: block; width:100%; position: relative' }, template: "<input\n #fileInput\n type=\"file\"\n [accept]=\"accessTypes.join(',')\"\n style=\"display: none\"\n (change)=\"onFileChange($event)\"\n/>\n\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\n <ax-form-group size=\"{{ size }}\">\n <ax-text-box\n [value]=\"fileName\"\n readonly=\"true\"\n [disabled]=\"disabled\"\n ></ax-text-box>\n <ax-button\n type=\"blank light\"\n icon=\"far fa-times\"\n (click)=\"remove()\"\n *ngIf=\"fileName\"\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ax-button\n type=\"primary blank\"\n icon=\"far fa-upload\"\n (click)=\"open()\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n >\n </ax-button>\n </ax-form-group>\n</ng-container>\n\n<ng-template #elseTemplate>\n <div
|
274
|
+
args: [{ selector: 'ax-upload-file', encapsulation: ViewEncapsulation.None, host: { style: 'display: block; width:100%; position: relative' }, template: "<input\n #fileInput\n type=\"file\"\n [accept]=\"accessTypes.join(',')\"\n [attr.id]=\"axId\"\n [attr.class]=\"axClass\"\n style=\"display: none\"\n (change)=\"onFileChange($event)\"\n/>\n\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\n <ax-form-group size=\"{{ size }}\">\n <ax-text-box\n [value]=\"fileName\"\n readonly=\"true\"\n [disabled]=\"disabled\"\n [attr.id]=\"axId ? axId + '-textbox' : null\"\n [attr.class]=\"axClass\"\n ></ax-text-box>\n <ax-button\n type=\"blank light\"\n icon=\"far fa-times\"\n (click)=\"remove()\"\n *ngIf=\"fileName\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId ? axId + '-remove-button' : null\"\n [attr.class]=\"axClass\"\n >\n </ax-button>\n <ax-button\n type=\"primary blank\"\n icon=\"far fa-upload\"\n (click)=\"open()\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId ? axId + '-upload-button' : null\"\n [attr.class]=\"axClass\"\n >\n </ax-button>\n </ax-form-group>\n</ng-container>\n\n<ng-template #elseTemplate>\n <div\n class=\"ax upload-file-box\"\n (click)=\"open()\"\n #dropRef\n [attr.id]=\"axId ? axId + '-drop-area' : null\"\n [attr.class]=\"axClass\"\n ></div>\n</ng-template>\n" }]
|
273
275
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AXRenderService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i2.AXToastService }], propDecorators: { contentType: [{
|
274
276
|
type: Input
|
275
277
|
}], dropRef: [{
|
@@ -295,5 +297,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
|
|
295
297
|
type: Output
|
296
298
|
}], onRemove: [{
|
297
299
|
type: Output
|
300
|
+
}], axId: [{
|
301
|
+
type: Input
|
302
|
+
}], axClass: [{
|
303
|
+
type: Input
|
298
304
|
}] } });
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLHFCQUNYLFNBQVEsZUFBZTtJQXFHYjtJQUNBO0lBQ0E7SUFDRTtJQUNGO0lBdEdGLFVBQVUsQ0FBYztJQUdoQyxXQUFXLEdBT0UsS0FBSyxDQUFDO0lBR25CLE9BQU8sQ0FBYztJQUdyQixXQUFXLENBQWM7SUFHekIsS0FBSyxDQUFTO0lBR2QsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFFSCxTQUFTLENBQWE7SUFHOUMsSUFBSSxHQUFnQyxRQUFRLENBQUM7SUFHdEMsUUFBUSxDQUFtQjtJQUV6QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRW5DLE1BQU0sR0FDSixJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUc1QyxVQUFVLEdBQ1Is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LGdCQUFnQixpQkFFWCxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLGdEQUFnRCxFQUFFO2tNQVNqRSxXQUFXO3NCQURWLEtBQUs7Z0JBV04sT0FBTztzQkFETixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUdrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBR3RCLElBQUk7c0JBREgsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFFTixNQUFNO3NCQURMLE1BQU07Z0JBS1AsVUFBVTtzQkFEVCxNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUmVuZGVyU2VydmljZSwgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWEJhc2VDb21wb25lbnQsXG4gIEFYQmFzZVNpemFibGVDb21wb25lbnQsXG4gIEFYRWxlbWVudFNpemUsXG59IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XG5pbXBvcnQgeyBBWFByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFYVXBsb2FkRmlsZUxvYWRFdmVudCxcbiAgQVhVcGxvYWRGaWxlUHJvZ3Jlc3NFdmVudCxcbn0gZnJvbSAnLi91cGxvYWQtZmlsZS5ldmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC11cGxvYWQtZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgc3R5bGU6ICdkaXNwbGF5OiBibG9jazsgd2lkdGg6MTAwJTsgcG9zaXRpb246IHJlbGF0aXZlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFVwbG9hZEZpbGVDb21wb25lbnRcbiAgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50XG57XG4gIHByaXZhdGUgb3ZlcmxheURpdjogSFRNTEVsZW1lbnQ7XG5cbiAgQElucHV0KClcbiAgY29udGVudFR5cGU6XG4gICAgfCAnaW1hZ2UnXG4gICAgfCAnZXhjZWwnXG4gICAgfCAnYXVkaW8nXG4gICAgfCAndmlkZW8nXG4gICAgfCAndmlkZW8vaW1hZ2UnXG4gICAgfCAnYW55J1xuICAgIHwgJ2pzb24nID0gJ2FueSc7XG5cbiAgQElucHV0KClcbiAgZHJvcFJlZjogSFRNTEVsZW1lbnQ7XG5cbiAgQElucHV0KClcbiAgcHJvZ3Jlc3NSZWY6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6ICdib3gnIHwgJ2lubGluZScgfCAnaGlkZGVuJyA9ICdpbmxpbmUnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KClcbiAgb25Mb2FkOiBFdmVudEVtaXR0ZXI8QVhVcGxvYWRGaWxlTG9hZEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWFVwbG9hZEZpbGVMb2FkRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uUHJvZ3Jlc3M6IEV2ZW50RW1pdHRlcjxBWFVwbG9hZEZpbGVQcm9ncmVzc0V2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWFVwbG9hZEZpbGVQcm9ncmVzc0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblJlbW92ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZmlsZVR5cGVzOiBhbnlbXSA9IFtcbiAgICB7XG4gICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgYWNjZXB0OiBbJ2ltYWdlL2dpZicsICdpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZyddLFxuICAgICAgbWVzc2FnZTogJ9i52qnYsycsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnYXVkaW8nLFxuICAgICAgYWNjZXB0OiBbJ2F1ZGlvL21wMyddLFxuICAgICAgbWVzc2FnZTogJ2F1ZGlvJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdlYm9vaycsXG4gICAgICBhY2NlcHQ6IFsnYXBwbGljYXRpb24vcGRmJ10sXG4gICAgICBtZXNzYWdlOiAncGRmJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdleGNlbCcsXG4gICAgICBhY2NlcHQ6IFtcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9FbmFibGVkLjEyJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnLFxuICAgICAgICAndGV4dC9jc3YnLFxuICAgICAgXSxcbiAgICAgIG1lc3NhZ2U6ICfYp9qp2LPZhCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAndmlkZW8nLFxuICAgICAgYWNjZXB0OiBbJ3ZpZGVvLyonXSxcbiAgICAgIG1lc3NhZ2U6ICd2aWRlbycsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAndmlkZW8vaW1hZ2UnLFxuICAgICAgYWNjZXB0OiBbJ2ltYWdlL2dpZicsICdpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICd2aWRlby8qJ10sXG4gICAgICBtZXNzYWdlOiAndmlkZW8vaW1hZ2UnLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2pzb24nLFxuICAgICAgYWNjZXB0OiBbJ2FwcGxpY2F0aW9uL2pzb24nXSxcbiAgICAgIG1lc3NhZ2U6ICdqc29uJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdhbnknLFxuICAgICAgYWNjZXB0OiBbJyovKiddLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgfSxcbiAgXTtcblxuICBmaWxlczogRmlsZVtdID0gW107XG4gIGZvY3VzKCkge31cblxuICBmaWxlTmFtZTogc3RyaW5nID0gJyc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgaW5qZWN0aW9uU2VydmljZTogQVhSZW5kZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZHJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBBWFRvYXN0U2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb25EZWxldGVDbGljayhlKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uRmlsZUNoYW5nZShlKSB7XG4gICAgY29uc3QgZmlsZXMgPSBlLnRhcmdldC5maWxlcztcbiAgICB0aGlzLmFkZEZpbGUoZmlsZXNbMF0pO1xuICAgICh0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljayh7IGFjY2VwdDogdGhpcy5hY2Nlc3NUeXBlcyB9KTtcbiAgfVxuICByZW1vdmUoKSB7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICB0aGlzLmZpbGVOYW1lID0gbnVsbDtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdib3gnKSB7XG4gICAgICB0aGlzLnJlbmRyZXIucmVtb3ZlQ2hpbGQodGhpcy5kcm9wUmVmLCB0aGlzLm92ZXJsYXlEaXYpO1xuICAgICAgdGhpcy5oYW5kbGVTaG93RW1wdHlGaWxlKCk7XG4gICAgfVxuICAgIHRoaXMub25SZW1vdmUuZW1pdCgpO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wUmVmICE9IG51bGwpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcm9wUmVmID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy51cGxvYWQtZmlsZS1ib3gnKTtcbiAgICB9XG4gICAgLy9cbiAgICBpZiAodGhpcy5wcm9ncmVzc1JlZiAhPSBudWxsKSB7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvZ3Jlc3NSZWYgPVxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnVwbG9hZC1maWxlLWJveCcpO1xuICAgIH1cbiAgICAvL1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdoaWRkZW4nIHx8IHRoaXMudHlwZSA9PT0gJ2JveCcpIHtcbiAgICAgIHRoaXMuaGFuZGxlU2hvd0VtcHR5RmlsZSgpO1xuICAgICAgdGhpcy5vdmVybGF5RGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWcnLCB0aGlzLmhhbmRsZU92ZXJsYXlEcmFnT3Zlcik7XG4gICAgICB0aGlzLm92ZXJsYXlEaXYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmhhbmRsZU92ZXJsYXlEcmFnT3Zlcik7XG4gICAgICB0aGlzLm92ZXJsYXlEaXYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5oYW5kbGVPdmVybGF5RHJhZ092ZXIpO1xuICAgIH1cbiAgICAvL1xuICAgIC8vIHRoaXMuZHJvcFJlZi5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWQtZHJvcC1vdmVyJyk7XG4gICAgaWYgKHRoaXMuZHJvcFJlZikge1xuICAgICAgdGhpcy5kcm9wUmVmLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlci5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMuZHJvcFJlZi5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnZHJhZ2xlYXZlJyxcbiAgICAgICAgdGhpcy5oYW5kbGVEcmFnTGVhdmUuYmluZCh0aGlzKVxuICAgICAgKTtcbiAgICAgIHRoaXMuZHJvcFJlZi5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVEcm9wLmJpbmQodGhpcykpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT3ZlcmxheURyYWdPdmVyKGU6IERyYWdFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRHJhZ092ZXIoZTogRHJhZ0V2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vdmVybGF5RGl2LmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURyYWdMZWF2ZShlOiBEcmFnRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm92ZXJsYXlEaXYuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGhhbmRsZURyb3AoZTogRHJhZ0V2ZW50KSB7XG4gICAgdGhpcy5oYW5kbGVEcmFnTGVhdmUoZSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlLmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZmlsZSA9IGUuZGF0YVRyYW5zZmVyLmZpbGVzW2ldO1xuICAgICAgdGhpcy5hZGRGaWxlKGZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlsZShmaWxlOiBGaWxlKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb250ZW50VHlwZSAmJlxuICAgICAgdGhpcy5jb250ZW50VHlwZSAhPT0gJ2FueScgJiZcbiAgICAgICF0aGlzLmZpbGVUeXBlc1xuICAgICAgICAuZmluZCgoeCkgPT4geC50eXBlID09PSB0aGlzLmNvbnRlbnRUeXBlKVxuICAgICAgICAuYWNjZXB0LmluY2x1ZGVzKGZpbGUudHlwZSlcbiAgICApIHtcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmluZm8oXG4gICAgICAgIGDZgdin24zZhCDYqNin2LHar9iw2KfYsduMINio2KfbjNivINin2LIg2YbZiNi5ICR7XG4gICAgICAgICAgdGhpcy5maWxlVHlwZXMuZmluZCgoeCkgPT4geC50eXBlID09PSB0aGlzLmNvbnRlbnRUeXBlKS5tZXNzYWdlXG4gICAgICAgIH0g2KjYp9i02K9gXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2dyZXNzRGl2ID0gdGhpcy5yZW5kcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpIGFzIEhUTUxFbGVtZW50O1xuICAgIHByb2dyZXNzRGl2LmNsYXNzTGlzdC5hZGQoJ2F4LXVwbG9hZC1wcm9ncmVzcy1wYW5lbCcpO1xuICAgIGNvbnN0IHByb2dyZXNzTGFiZWwgPSB0aGlzLnJlbmRyZXIuY3JlYXRlRWxlbWVudCgnc21hbGwnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBwcm9ncmVzc0xhYmVsLmlubmVyVGV4dCA9IGZpbGUubmFtZTtcbiAgICB0aGlzLmZpbGVOYW1lID0gZmlsZS5uYW1lO1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdib3gnKSB7XG4gICAgICB0aGlzLnJlbmRyZXIuYXBwZW5kQ2hpbGQodGhpcy5wcm9ncmVzc1JlZiwgcHJvZ3Jlc3NEaXYpO1xuICAgIH1cbiAgICBjb25zdCBjb20gPSB0aGlzLmluamVjdGlvblNlcnZpY2UuYXBwZW5kQ29tcG9uZW50KFxuICAgICAgQVhQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICAgIHsgcHJvZ3Jlc3M6IDAgfSxcbiAgICAgIHByb2dyZXNzRGl2XG4gICAgKS5pbnN0YW5jZSBhcyBBWFByb2dyZXNzQmFyQ29tcG9uZW50O1xuICAgIHRoaXMucmVuZHJlci5hcHBlbmRDaGlsZChwcm9ncmVzc0RpdiwgcHJvZ3Jlc3NMYWJlbCk7XG5cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGUpID0+IHtcbiAgICAgIHRoaXMub25Mb2FkLmVtaXQoe1xuICAgICAgICBmaWxlLFxuICAgICAgICBkYXRhOiAoZSBhcyBhbnkpLnRhcmdldC5yZXN1bHQsXG4gICAgICB9KTtcbiAgICAgIC8vXG4gICAgICAvLyBGYWtlIFVwbG9hZFxuICAgICAgbGV0IHB2ID0gMDtcbiAgICAgIGxldCB1cGxvYWRlZCA9IDA7XG4gICAgICBjb25zdCBpbnR2ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICB1cGxvYWRlZCArPSAxMDI0ICogMTAwMDtcbiAgICAgICAgaWYgKHVwbG9hZGVkID4gZS50b3RhbCkge1xuICAgICAgICAgIHVwbG9hZGVkID0gZS50b3RhbDtcbiAgICAgICAgfVxuICAgICAgICBwdiA9IE1hdGguY2VpbCgodXBsb2FkZWQgLyBlLnRvdGFsKSAqIDEwMCk7XG4gICAgICAgIGNvbS5wcm9ncmVzcyA9IHB2O1xuICAgICAgICB0aGlzLm9uUHJvZ3Jlc3MuZW1pdCh7XG4gICAgICAgICAgZmlsZSxcbiAgICAgICAgICB0b3RhbDogZS50b3RhbCxcbiAgICAgICAgICB1cGxvYWRlZCxcbiAgICAgICAgICB2YWx1ZTogcHYsXG4gICAgICAgIH0pO1xuICAgICAgICAvL1xuICAgICAgICBpZiAoY29tLnByb2dyZXNzID49IDEwMCkge1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50dik7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRyZXIucmVtb3ZlQ2hpbGQodGhpcy5wcm9ncmVzc1JlZiwgcHJvZ3Jlc3NEaXYpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZmlsZU5hbWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kcmVyLnJlbW92ZUNoaWxkKHRoaXMuZHJvcFJlZiwgdGhpcy5vdmVybGF5RGl2KTtcbiAgICAgICAgICAgICAgdGhpcy5vdmVybGF5RGl2ID0gdGhpcy5yZW5kcmVyLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdidcbiAgICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgdGhpcy5vdmVybGF5RGl2LmNsYXNzTGlzdC5hZGQoJ292ZXJsYXknKTtcbiAgICAgICAgICAgICAgdGhpcy5vdmVybGF5RGl2LmlubmVySFRNTCA9IGBcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGkgc3R5bGU9XCJjb2xvcjogdmFyKC0tYXgtZGFuZ2VyLWNvbG9yKVwiIGNsYXNzPVwiZmFyIGZhLXRpbWVzIGZhLTN4XCI+PC9pPlxuICAgICAgICAgICAgICA8c3Bhbj4ke3RoaXMuZmlsZU5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgICAgIGNvbnN0IGNsb3NlSWNvbiA9IHRoaXMub3ZlcmxheURpdi5xdWVyeVNlbGVjdG9yKCcuZmFyLmZhLXRpbWVzJyk7XG4gICAgICAgICAgICAgIHRoaXMucmVuZHJlci5saXN0ZW4oY2xvc2VJY29uLCAnY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kcmVyLnJlbW92ZUNoaWxkKHRoaXMuZHJvcFJlZiwgdGhpcy5vdmVybGF5RGl2KTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNob3dFbXB0eUZpbGUoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kcmVyLmFwcGVuZENoaWxkKHRoaXMuZHJvcFJlZiwgdGhpcy5vdmVybGF5RGl2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICB0aGlzLmZpbGVzLnB1c2goZmlsZSk7XG4gIH1cblxuICBnZXQgYWNjZXNzVHlwZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVUeXBlcy5maW5kKChpdGVtKSA9PiBpdGVtLnR5cGUgPT0gdGhpcy5jb250ZW50VHlwZSkuYWNjZXB0O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTaG93RW1wdHlGaWxlKCkge1xuICAgIHRoaXMub3ZlcmxheURpdiA9IHRoaXMucmVuZHJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLm92ZXJsYXlEaXYuY2xhc3NMaXN0LmFkZCgnb3ZlcmxheScpO1xuICAgIHRoaXMub3ZlcmxheURpdi5pbm5lckhUTUwgPSBgXG4gICAgICA8ZGl2ICBzdHlsZT1cIlxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBnYXA6IDhweDtcbiAgICBcIj5cbiAgICA8aSBjbGFzcz1cImZhciBmYS1jbG91ZC11cGxvYWQtYWx0IGZhLTN4XCI+PC9pPlxuICAgIDxzcGFuPiR7QVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLnVwbG9hZCcpfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gICAgdGhpcy5yZW5kcmVyLmFwcGVuZENoaWxkKHRoaXMuZHJvcFJlZiwgdGhpcy5vdmVybGF5RGl2KTtcbiAgICB0aGlzLmRyb3BSZWYuY2xhc3NMaXN0LmFkZCgnYXgtdXBsb2FkLWRyb3Atb3ZlcicpO1xuICB9XG59XG4iLCI8aW5wdXRcbiAgI2ZpbGVJbnB1dFxuICB0eXBlPVwiZmlsZVwiXG4gIFthY2NlcHRdPVwiYWNjZXNzVHlwZXMuam9pbignLCcpXCJcbiAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4vPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PSAnaW5saW5lJzsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgPGF4LWZvcm0tZ3JvdXAgc2l6ZT1cInt7IHNpemUgfX1cIj5cbiAgICA8YXgtdGV4dC1ib3hcbiAgICAgIFt2YWx1ZV09XCJmaWxlTmFtZVwiXG4gICAgICByZWFkb25seT1cInRydWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+PC9heC10ZXh0LWJveD5cbiAgICA8YXgtYnV0dG9uXG4gICAgICB0eXBlPVwiYmxhbmsgbGlnaHRcIlxuICAgICAgaWNvbj1cImZhciBmYS10aW1lc1wiXG4gICAgICAoY2xpY2spPVwicmVtb3ZlKClcIlxuICAgICAgKm5nSWY9XCJmaWxlTmFtZVwiXG4gICAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgID5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICA8YXgtYnV0dG9uXG4gICAgICB0eXBlPVwicHJpbWFyeSBibGFua1wiXG4gICAgICBpY29uPVwiZmFyIGZhLXVwbG9hZFwiXG4gICAgICAoY2xpY2spPVwib3BlbigpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgID5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgPC9heC1mb3JtLWdyb3VwPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYXggdXBsb2FkLWZpbGUtYm94XCIgKGNsaWNrKT1cIm9wZW4oKVwiICNkcm9wUmVmPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLHFCQUNYLFNBQVEsZUFBZTtJQXlHYjtJQUNBO0lBQ0E7SUFDRTtJQUNGO0lBMUdGLFVBQVUsQ0FBYztJQUdoQyxXQUFXLEdBT0UsS0FBSyxDQUFDO0lBR25CLE9BQU8sQ0FBYztJQUdyQixXQUFXLENBQWM7SUFHekIsS0FBSyxDQUFTO0lBR2QsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFFSCxTQUFTLENBQWE7SUFHOUMsSUFBSSxHQUFnQyxRQUFRLENBQUM7SUFHdEMsUUFBUSxDQUFtQjtJQUV6QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRW5DLE1BQU0sR0FDSixJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUc1QyxVQUFVLEdBQ1Is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QXFCLGtpQkMvQmxDLDR4Q0FtREE7OzJGRHBCYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUVYLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsZ0RBQWdELEVBQUU7a01BU2pFLFdBQVc7c0JBRFYsS0FBSztnQkFXTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBR2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFHdEIsSUFBSTtzQkFESCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVOLE1BQU07c0JBREwsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxNQUFNO2dCQUdFLElBQUk7c0JBQVosS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFJlbmRlclNlcnZpY2UsIEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhCYXNlQ29tcG9uZW50LFxuICBBWEJhc2VTaXphYmxlQ29tcG9uZW50LFxuICBBWEVsZW1lbnRTaXplLFxufSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQge1xuICBBWFVwbG9hZEZpbGVMb2FkRXZlbnQsXG4gIEFYVXBsb2FkRmlsZVByb2dyZXNzRXZlbnQsXG59IGZyb20gJy4vdXBsb2FkLWZpbGUuZXZlbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdXBsb2FkLWZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IHN0eWxlOiAnZGlzcGxheTogYmxvY2s7IHdpZHRoOjEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZScgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRGaWxlQ29tcG9uZW50XG4gIGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudFxue1xuICBwcml2YXRlIG92ZXJsYXlEaXY6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnRUeXBlOlxuICAgIHwgJ2ltYWdlJ1xuICAgIHwgJ2V4Y2VsJ1xuICAgIHwgJ2F1ZGlvJ1xuICAgIHwgJ3ZpZGVvJ1xuICAgIHwgJ3ZpZGVvL2ltYWdlJ1xuICAgIHwgJ2FueSdcbiAgICB8ICdqc29uJyA9ICdhbnknO1xuXG4gIEBJbnB1dCgpXG4gIGRyb3BSZWY6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHByb2dyZXNzUmVmOiBIVE1MRWxlbWVudDtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICB0eXBlOiAnYm94JyB8ICdpbmxpbmUnIHwgJ2hpZGRlbicgPSAnaW5saW5lJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIG9uTG9hZDogRXZlbnRFbWl0dGVyPEFYVXBsb2FkRmlsZUxvYWRFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhVcGxvYWRGaWxlTG9hZEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblByb2dyZXNzOiBFdmVudEVtaXR0ZXI8QVhVcGxvYWRGaWxlUHJvZ3Jlc3NFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhVcGxvYWRGaWxlUHJvZ3Jlc3NFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIGF4SWQ6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIGF4Q2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gIGZpbGVUeXBlczogYW55W10gPSBbXG4gICAge1xuICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgIGFjY2VwdDogWydpbWFnZS9naWYnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9wbmcnXSxcbiAgICAgIG1lc3NhZ2U6ICfYudqp2LMnLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2F1ZGlvJyxcbiAgICAgIGFjY2VwdDogWydhdWRpby9tcDMnXSxcbiAgICAgIG1lc3NhZ2U6ICdhdWRpbycsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnZWJvb2snLFxuICAgICAgYWNjZXB0OiBbJ2FwcGxpY2F0aW9uL3BkZiddLFxuICAgICAgbWVzc2FnZTogJ3BkZicsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnZXhjZWwnLFxuICAgICAgYWNjZXB0OiBbXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvRW5hYmxlZC4xMicsXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0JyxcbiAgICAgICAgJ3RleHQvY3N2JyxcbiAgICAgIF0sXG4gICAgICBtZXNzYWdlOiAn2Kfaqdiz2YQnLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ3ZpZGVvJyxcbiAgICAgIGFjY2VwdDogWyd2aWRlby8qJ10sXG4gICAgICBtZXNzYWdlOiAndmlkZW8nLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ3ZpZGVvL2ltYWdlJyxcbiAgICAgIGFjY2VwdDogWydpbWFnZS9naWYnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9wbmcnLCAndmlkZW8vKiddLFxuICAgICAgbWVzc2FnZTogJ3ZpZGVvL2ltYWdlJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdqc29uJyxcbiAgICAgIGFjY2VwdDogWydhcHBsaWNhdGlvbi9qc29uJ10sXG4gICAgICBtZXNzYWdlOiAnanNvbicsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnYW55JyxcbiAgICAgIGFjY2VwdDogWycqLyonXSxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgIH0sXG4gIF07XG5cbiAgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICBmb2N1cygpIHt9XG5cbiAgZmlsZU5hbWU6IHN0cmluZyA9ICcnO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGluamVjdGlvblNlcnZpY2U6IEFYUmVuZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRyZXI6IFJlbmRlcmVyMixcbiAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogQVhUb2FzdFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG9uRGVsZXRlQ2xpY2soZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbkZpbGVDaGFuZ2UoZSkge1xuICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXM7XG4gICAgdGhpcy5hZGRGaWxlKGZpbGVzWzBdKTtcbiAgICAodGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9IG51bGw7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soeyBhY2NlcHQ6IHRoaXMuYWNjZXNzVHlwZXMgfSk7XG4gIH1cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmZpbGVzID0gW107XG4gICAgdGhpcy5maWxlTmFtZSA9IG51bGw7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnYm94Jykge1xuICAgICAgdGhpcy5yZW5kcmVyLnJlbW92ZUNoaWxkKHRoaXMuZHJvcFJlZiwgdGhpcy5vdmVybGF5RGl2KTtcbiAgICAgIHRoaXMuaGFuZGxlU2hvd0VtcHR5RmlsZSgpO1xuICAgIH1cbiAgICB0aGlzLm9uUmVtb3ZlLmVtaXQoKTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJvcFJlZiAhPSBudWxsKSB7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcFJlZiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudXBsb2FkLWZpbGUtYm94Jyk7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKHRoaXMucHJvZ3Jlc3NSZWYgIT0gbnVsbCkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2dyZXNzUmVmID1cbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy51cGxvYWQtZmlsZS1ib3gnKTtcbiAgICB9XG4gICAgLy9cbiAgICBpZiAodGhpcy50eXBlID09PSAnaGlkZGVuJyB8fCB0aGlzLnR5cGUgPT09ICdib3gnKSB7XG4gICAgICB0aGlzLmhhbmRsZVNob3dFbXB0eUZpbGUoKTtcbiAgICAgIHRoaXMub3ZlcmxheURpdi5hZGRFdmVudExpc3RlbmVyKCdkcmFnJywgdGhpcy5oYW5kbGVPdmVybGF5RHJhZ092ZXIpO1xuICAgICAgdGhpcy5vdmVybGF5RGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVPdmVybGF5RHJhZ092ZXIpO1xuICAgICAgdGhpcy5vdmVybGF5RGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIHRoaXMuaGFuZGxlT3ZlcmxheURyYWdPdmVyKTtcbiAgICB9XG4gICAgLy9cbiAgICAvLyB0aGlzLmRyb3BSZWYuY2xhc3NMaXN0LmFkZCgnYXgtdXBsb2FkLWRyb3Atb3ZlcicpO1xuICAgIGlmICh0aGlzLmRyb3BSZWYpIHtcbiAgICAgIHRoaXMuZHJvcFJlZi5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlRHJhZ092ZXIuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLmRyb3BSZWYuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2RyYWdsZWF2ZScsXG4gICAgICAgIHRoaXMuaGFuZGxlRHJhZ0xlYXZlLmJpbmQodGhpcylcbiAgICAgICk7XG4gICAgICB0aGlzLmRyb3BSZWYuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMuaGFuZGxlRHJvcC5iaW5kKHRoaXMpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU92ZXJsYXlEcmFnT3ZlcihlOiBEcmFnRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURyYWdPdmVyKGU6IERyYWdFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnTGVhdmUoZTogRHJhZ0V2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vdmVybGF5RGl2LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBoYW5kbGVEcm9wKGU6IERyYWdFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlRHJhZ0xlYXZlKGUpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZS5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBlLmRhdGFUcmFuc2Zlci5maWxlc1tpXTtcbiAgICAgIHRoaXMuYWRkRmlsZShmaWxlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZEZpbGUoZmlsZTogRmlsZSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29udGVudFR5cGUgJiZcbiAgICAgIHRoaXMuY29udGVudFR5cGUgIT09ICdhbnknICYmXG4gICAgICAhdGhpcy5maWxlVHlwZXNcbiAgICAgICAgLmZpbmQoKHgpID0+IHgudHlwZSA9PT0gdGhpcy5jb250ZW50VHlwZSlcbiAgICAgICAgLmFjY2VwdC5pbmNsdWRlcyhmaWxlLnR5cGUpXG4gICAgKSB7XG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5pbmZvKFxuICAgICAgICBg2YHYp9uM2YQg2KjYp9ix2q/YsNin2LHbjCDYqNin24zYryDYp9iyINmG2YjYuSAke1xuICAgICAgICAgIHRoaXMuZmlsZVR5cGVzLmZpbmQoKHgpID0+IHgudHlwZSA9PT0gdGhpcy5jb250ZW50VHlwZSkubWVzc2FnZVxuICAgICAgICB9INio2KfYtNivYFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ncmVzc0RpdiA9IHRoaXMucmVuZHJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBwcm9ncmVzc0Rpdi5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWQtcHJvZ3Jlc3MtcGFuZWwnKTtcbiAgICBjb25zdCBwcm9ncmVzc0xhYmVsID0gdGhpcy5yZW5kcmVyLmNyZWF0ZUVsZW1lbnQoJ3NtYWxsJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgcHJvZ3Jlc3NMYWJlbC5pbm5lclRleHQgPSBmaWxlLm5hbWU7XG4gICAgdGhpcy5maWxlTmFtZSA9IGZpbGUubmFtZTtcbiAgICBpZiAodGhpcy50eXBlID09PSAnYm94Jykge1xuICAgICAgdGhpcy5yZW5kcmVyLmFwcGVuZENoaWxkKHRoaXMucHJvZ3Jlc3NSZWYsIHByb2dyZXNzRGl2KTtcbiAgICB9XG4gICAgY29uc3QgY29tID0gdGhpcy5pbmplY3Rpb25TZXJ2aWNlLmFwcGVuZENvbXBvbmVudChcbiAgICAgIEFYUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgICB7IHByb2dyZXNzOiAwIH0sXG4gICAgICBwcm9ncmVzc0RpdlxuICAgICkuaW5zdGFuY2UgYXMgQVhQcm9ncmVzc0JhckNvbXBvbmVudDtcbiAgICB0aGlzLnJlbmRyZXIuYXBwZW5kQ2hpbGQocHJvZ3Jlc3NEaXYsIHByb2dyZXNzTGFiZWwpO1xuXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChlKSA9PiB7XG4gICAgICB0aGlzLm9uTG9hZC5lbWl0KHtcbiAgICAgICAgZmlsZSxcbiAgICAgICAgZGF0YTogKGUgYXMgYW55KS50YXJnZXQucmVzdWx0LFxuICAgICAgfSk7XG4gICAgICAvL1xuICAgICAgLy8gRmFrZSBVcGxvYWRcbiAgICAgIGxldCBwdiA9IDA7XG4gICAgICBsZXQgdXBsb2FkZWQgPSAwO1xuICAgICAgY29uc3QgaW50diA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdXBsb2FkZWQgKz0gMTAyNCAqIDEwMDA7XG4gICAgICAgIGlmICh1cGxvYWRlZCA+IGUudG90YWwpIHtcbiAgICAgICAgICB1cGxvYWRlZCA9IGUudG90YWw7XG4gICAgICAgIH1cbiAgICAgICAgcHYgPSBNYXRoLmNlaWwoKHVwbG9hZGVkIC8gZS50b3RhbCkgKiAxMDApO1xuICAgICAgICBjb20ucHJvZ3Jlc3MgPSBwdjtcbiAgICAgICAgdGhpcy5vblByb2dyZXNzLmVtaXQoe1xuICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgdG90YWw6IGUudG90YWwsXG4gICAgICAgICAgdXBsb2FkZWQsXG4gICAgICAgICAgdmFsdWU6IHB2LFxuICAgICAgICB9KTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKGNvbS5wcm9ncmVzcyA+PSAxMDApIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKGludHYpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kcmVyLnJlbW92ZUNoaWxkKHRoaXMucHJvZ3Jlc3NSZWYsIHByb2dyZXNzRGl2KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGVOYW1lKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVuZHJlci5yZW1vdmVDaGlsZCh0aGlzLmRyb3BSZWYsIHRoaXMub3ZlcmxheURpdik7XG4gICAgICAgICAgICAgIHRoaXMub3ZlcmxheURpdiA9IHRoaXMucmVuZHJlci5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnXG4gICAgICAgICAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgIHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCdvdmVybGF5Jyk7XG4gICAgICAgICAgICAgIHRoaXMub3ZlcmxheURpdi5pbm5lckhUTUwgPSBgXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIHN0eWxlPVwiY29sb3I6IHZhcigtLWF4LWRhbmdlci1jb2xvcilcIiBjbGFzcz1cImZhciBmYS10aW1lcyBmYS0zeFwiPjwvaT5cbiAgICAgICAgICAgICAgPHNwYW4+JHt0aGlzLmZpbGVOYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgICBjb25zdCBjbG9zZUljb24gPSB0aGlzLm92ZXJsYXlEaXYucXVlcnlTZWxlY3RvcignLmZhci5mYS10aW1lcycpO1xuICAgICAgICAgICAgICB0aGlzLnJlbmRyZXIubGlzdGVuKGNsb3NlSWNvbiwgJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZHJlci5yZW1vdmVDaGlsZCh0aGlzLmRyb3BSZWYsIHRoaXMub3ZlcmxheURpdik7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTaG93RW1wdHlGaWxlKCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMucmVuZHJlci5hcHBlbmRDaGlsZCh0aGlzLmRyb3BSZWYsIHRoaXMub3ZlcmxheURpdik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgdGhpcy5maWxlcy5wdXNoKGZpbGUpO1xuICB9XG5cbiAgZ2V0IGFjY2Vzc1R5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5maWxlVHlwZXMuZmluZCgoaXRlbSkgPT4gaXRlbS50eXBlID09IHRoaXMuY29udGVudFR5cGUpLmFjY2VwdDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2hvd0VtcHR5RmlsZSgpIHtcbiAgICB0aGlzLm92ZXJsYXlEaXYgPSB0aGlzLnJlbmRyZXIuY3JlYXRlRWxlbWVudCgnZGl2JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5vdmVybGF5RGl2LmNsYXNzTGlzdC5hZGQoJ292ZXJsYXknKTtcbiAgICB0aGlzLm92ZXJsYXlEaXYuaW5uZXJIVE1MID0gYFxuICAgICAgPGRpdiAgc3R5bGU9XCJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgXCI+XG4gICAgPGkgY2xhc3M9XCJmYXIgZmEtY2xvdWQtdXBsb2FkLWFsdCBmYS0zeFwiPjwvaT5cbiAgICA8c3Bhbj4ke0FYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi51cGxvYWQnKX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICAgIHRoaXMucmVuZHJlci5hcHBlbmRDaGlsZCh0aGlzLmRyb3BSZWYsIHRoaXMub3ZlcmxheURpdik7XG4gICAgdGhpcy5kcm9wUmVmLmNsYXNzTGlzdC5hZGQoJ2F4LXVwbG9hZC1kcm9wLW92ZXInKTtcbiAgfVxufVxuIiwiPGlucHV0XG4gICNmaWxlSW5wdXRcbiAgdHlwZT1cImZpbGVcIlxuICBbYWNjZXB0XT1cImFjY2Vzc1R5cGVzLmpvaW4oJywnKVwiXG4gIFthdHRyLmlkXT1cImF4SWRcIlxuICBbYXR0ci5jbGFzc109XCJheENsYXNzXCJcbiAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4vPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PSAnaW5saW5lJzsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgPGF4LWZvcm0tZ3JvdXAgc2l6ZT1cInt7IHNpemUgfX1cIj5cbiAgICA8YXgtdGV4dC1ib3hcbiAgICAgIFt2YWx1ZV09XCJmaWxlTmFtZVwiXG4gICAgICByZWFkb25seT1cInRydWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthdHRyLmlkXT1cImF4SWQgPyBheElkICsgJy10ZXh0Ym94JyA6IG51bGxcIlxuICAgICAgW2F0dHIuY2xhc3NdPVwiYXhDbGFzc1wiXG4gICAgPjwvYXgtdGV4dC1ib3g+XG4gICAgPGF4LWJ1dHRvblxuICAgICAgdHlwZT1cImJsYW5rIGxpZ2h0XCJcbiAgICAgIGljb249XCJmYXIgZmEtdGltZXNcIlxuICAgICAgKGNsaWNrKT1cInJlbW92ZSgpXCJcbiAgICAgICpuZ0lmPVwiZmlsZU5hbWVcIlxuICAgICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICAgIFthdHRyLmlkXT1cImF4SWQgPyBheElkICsgJy1yZW1vdmUtYnV0dG9uJyA6IG51bGxcIlxuICAgICAgW2F0dHIuY2xhc3NdPVwiYXhDbGFzc1wiXG4gICAgPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxheC1idXR0b25cbiAgICAgIHR5cGU9XCJwcmltYXJ5IGJsYW5rXCJcbiAgICAgIGljb249XCJmYXIgZmEtdXBsb2FkXCJcbiAgICAgIChjbGljayk9XCJvcGVuKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICBbYXR0ci5pZF09XCJheElkID8gYXhJZCArICctdXBsb2FkLWJ1dHRvbicgOiBudWxsXCJcbiAgICAgIFthdHRyLmNsYXNzXT1cImF4Q2xhc3NcIlxuICAgID5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgPC9heC1mb3JtLWdyb3VwPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJheCB1cGxvYWQtZmlsZS1ib3hcIlxuICAgIChjbGljayk9XCJvcGVuKClcIlxuICAgICNkcm9wUmVmXG4gICAgW2F0dHIuaWRdPVwiYXhJZCA/IGF4SWQgKyAnLWRyb3AtYXJlYScgOiBudWxsXCJcbiAgICBbYXR0ci5jbGFzc109XCJheENsYXNzXCJcbiAgPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|