primeng 18.0.0-beta.4 → 18.0.0-beta.5
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/accordion/accordion.d.ts +4 -4
- package/api/public_api.d.ts +0 -4
- package/autocomplete/autocomplete.d.ts +1 -0
- package/base/style/basestyle.d.ts +1 -1
- package/basecomponent/basecomponent.d.ts +3 -2
- package/config/index.d.ts +5 -0
- package/{api → config}/primeng.d.ts +3 -3
- package/{api/provideprimengconfig.d.ts → config/provideprimeng.d.ts} +3 -3
- package/config/public_api.d.ts +3 -0
- package/{api → config}/themeprovider.d.ts +1 -1
- package/confirmpopup/confirmpopup.d.ts +2 -3
- package/dialog/dialog.d.ts +1 -0
- package/editor/editor.d.ts +5 -2
- package/esm2022/accordion/accordion.mjs +9 -9
- package/esm2022/api/public_api.mjs +1 -5
- package/esm2022/autocomplete/autocomplete.mjs +4 -2
- package/esm2022/autofocus/autofocus.mjs +2 -2
- package/esm2022/base/style/basestyle.mjs +3 -3
- package/esm2022/basecomponent/basecomponent.mjs +9 -7
- package/esm2022/cascadeselect/cascadeselect.mjs +2 -2
- package/esm2022/checkbox/checkbox.mjs +2 -2
- package/esm2022/config/primeng-config.mjs +5 -0
- package/esm2022/config/primeng.mjs +189 -0
- package/esm2022/config/provideprimeng.mjs +11 -0
- package/esm2022/config/public_api.mjs +4 -0
- package/esm2022/config/themeprovider.mjs +74 -0
- package/esm2022/confirmpopup/confirmpopup.mjs +4 -6
- package/esm2022/dialog/dialog.mjs +23 -3
- package/esm2022/dropdown/dropdown.mjs +2 -2
- package/esm2022/editor/editor.mjs +15 -14
- package/esm2022/fileupload/style/fileuploadstyle.mjs +2 -2
- package/esm2022/galleria/galleria.mjs +16 -20
- package/esm2022/iconfield/iconfield.mjs +3 -5
- package/esm2022/inputnumber/inputnumber.mjs +3 -3
- package/esm2022/inputtext/inputtext.mjs +3 -3
- package/esm2022/inputtextarea/inputtextarea.mjs +3 -3
- package/esm2022/listbox/listbox.mjs +5 -5
- package/esm2022/megamenu/megamenu.mjs +4 -7
- package/esm2022/menubar/menubar.mjs +4 -7
- package/esm2022/multiselect/multiselect.mjs +86 -83
- package/esm2022/overlay/overlay.mjs +2 -2
- package/esm2022/password/password.mjs +4 -4
- package/esm2022/radiobutton/radiobutton.mjs +3 -3
- package/esm2022/scrolltop/scrolltop.mjs +22 -16
- package/esm2022/select/select.mjs +2 -2
- package/esm2022/textarea/textarea.mjs +3 -3
- package/esm2022/tree/tree.mjs +12 -8
- package/esm2022/treetable/treetable.mjs +7 -8
- package/fesm2022/primeng-accordion.mjs +8 -8
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +3 -276
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +4 -2
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +1 -1
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-base.mjs +2 -2
- package/fesm2022/primeng-base.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +8 -6
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +1 -1
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +1 -1
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +275 -0
- package/fesm2022/primeng-config.mjs.map +1 -0
- package/fesm2022/primeng-confirmpopup.mjs +3 -5
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +22 -2
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +1 -1
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +14 -13
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +1 -1
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +15 -19
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +2 -4
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +2 -2
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +2 -2
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +2 -2
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +4 -4
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +3 -6
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +3 -6
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +85 -82
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +1 -1
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +3 -3
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +2 -2
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +21 -15
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +1 -1
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +2 -2
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +11 -7
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +6 -7
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/galleria/galleria.d.ts +4 -6
- package/megamenu/megamenu.d.ts +2 -3
- package/menubar/menubar.d.ts +2 -3
- package/multiselect/multiselect.d.ts +4 -4
- package/overlay/overlay.d.ts +1 -1
- package/package.json +145 -139
- package/scrolltop/scrolltop.d.ts +3 -1
- package/treetable/treetable.d.ts +3 -4
- package/api/primengconfig.d.ts +0 -9
- package/esm2022/api/primeng.mjs +0 -188
- package/esm2022/api/primengconfig.mjs +0 -15
- package/esm2022/api/provideprimengconfig.mjs +0 -11
- package/esm2022/api/themeprovider.mjs +0 -73
@@ -25,7 +25,7 @@ export class AutoFocus extends BaseComponent {
|
|
25
25
|
host = inject(ElementRef);
|
26
26
|
ngAfterContentChecked() {
|
27
27
|
// This sets the `attr.autofocus` which is different than the Input `autofocus` attribute.
|
28
|
-
if (this.
|
28
|
+
if (this.autofocus === false) {
|
29
29
|
this.host.nativeElement.removeAttribute('autofocus');
|
30
30
|
}
|
31
31
|
else {
|
@@ -83,4 +83,4 @@ export class AutoFocusModule {
|
|
83
83
|
}]
|
84
84
|
}], null, null); })();
|
85
85
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AutoFocusModule, { imports: [AutoFocus], exports: [AutoFocus] }); })();
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dG9mb2N1cy9hdXRvZm9jdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFekM7OztHQUdHO0FBS0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUFhO0lBQ3hDOzs7O09BSUc7SUFDcUMsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUNuRTs7O09BR0c7SUFDa0IsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUVqRCxPQUFPLEdBQVksS0FBSyxDQUFDO0lBRXpCLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakMsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxJQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLHFCQUFxQjtRQUNqQiwwRkFBMEY7UUFDMUYsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFFcEYsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQyxDQUFDO2dCQUNELElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUMvQixpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsQ0FBQztnQkFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO2lOQXZEUSxTQUFTLHlCQUFULFNBQVM7NkRBQVQsU0FBUywwRkFNRSxnQkFBZ0I7O2lGQU4zQixTQUFTO2NBSnJCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsVUFBVSxFQUFFLElBQUk7YUFDbkI7Z0JBTzJDLFNBQVM7a0JBQWhELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFLakIsVUFBVTtrQkFBOUIsS0FBSzttQkFBQyxZQUFZOztBQW1EdkIsTUFBTSxPQUFPLGVBQWU7eUdBQWYsZUFBZTs0REFBZixlQUFlOzs7aUZBQWYsZUFBZTtjQUozQixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO2dCQUNwQixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDdkI7O3dGQUNZLGVBQWUsY0E5RGYsU0FBUyxhQUFULFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBOZ01vZHVsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ3ByaW1lbmcvZG9tJztcblxuLyoqXG4gKiBBdXRvRm9jdXMgbWFuYWdlcyBmb2N1cyBvbiBmb2N1c2FibGUgZWxlbWVudCBvbiBsb2FkLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcEF1dG9Gb2N1c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0ZvY3VzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhdXRvbWF0aWNhbGx5IGdldCBmb2N1cyBvbiBsb2FkLlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBbcEF1dG9Gb2N1c109XCJ0cnVlXCJcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhdXRvbWF0aWNhbGx5IGdldCBmb2N1cyBvbiBsb2FkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgncEF1dG9Gb2N1cycpIF9hdXRvZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gICAgZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIGhvc3Q6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgICAgIC8vIFRoaXMgc2V0cyB0aGUgYGF0dHIuYXV0b2ZvY3VzYCB3aGljaCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgSW5wdXQgYGF1dG9mb2N1c2AgYXR0cmlidXRlLlxuICAgICAgICBpZiAodGhpcy5hdXRvZm9jdXMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3QubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2F1dG9mb2N1cycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdhdXRvZm9jdXMnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Gb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5hdXRvRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGF1dG9Gb2N1cygpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdGhpcy5fYXV0b2ZvY3VzKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IERvbUhhbmRsZXIuZ2V0Rm9jdXNhYmxlRWxlbWVudHModGhpcy5ob3N0Py5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudHNbMF0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0F1dG9Gb2N1c10sXG4gICAgZXhwb3J0czogW0F1dG9Gb2N1c11cbn0pXG5leHBvcnQgY2xhc3MgQXV0b0ZvY3VzTW9kdWxlIHt9XG4iXX0=
|
@@ -199,8 +199,8 @@ export class BaseStyle {
|
|
199
199
|
loadCSS = (options = {}) => {
|
200
200
|
return this.load(this.css, options);
|
201
201
|
};
|
202
|
-
loadTheme = (options = {}) => {
|
203
|
-
return this.load(this.theme, options, (computedStyle) => Theme.transformCSS(options.name || this.name, computedStyle));
|
202
|
+
loadTheme = (options = {}, style = '') => {
|
203
|
+
return this.load(this.theme, options, (computedStyle = '') => Theme.transformCSS(options.name || this.name, `${computedStyle}${style}`));
|
204
204
|
};
|
205
205
|
getCommonTheme = (params) => {
|
206
206
|
return Theme.getCommon(this.name, params);
|
@@ -251,4 +251,4 @@ export class BaseStyle {
|
|
251
251
|
type: Injectable,
|
252
252
|
args: [{ providedIn: 'root' }]
|
253
253
|
}], null, null); })();
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXN0eWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Jhc2Uvc3R5bGUvYmFzZXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTVDLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUF5RVgsRUFBRSxDQUFDLGtCQUFrQixDQUFDOzs7O2lCQUlwQixFQUFFLENBQUMsV0FBVyxDQUFDOzs7O2FBSW5CLEVBQUUsQ0FBQyxXQUFXLENBQUM7Y0FDZCxFQUFFLENBQUMsV0FBVyxDQUFDOzs7O2tCQUlYLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUMxQixFQUFFLENBQUMsWUFBWSxDQUFDOzs7Ozs7Ozs7Z0RBU21CLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzs7OztnREFJOUIsRUFBRSxDQUFDLDBCQUEwQixDQUFDOzs7Ozs7OztzQkFReEQsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzs7OztzQkFLckIsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7Q0FZMUMsQ0FBQztBQUVGLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBbUJILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7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QUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2lCQUMvQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO2lCQUMzRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFZixHQUFHLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sVUFBVSxDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUM7bUdBL0VPLFNBQVM7Z0VBQVQsU0FBUyxXQUFULFNBQVMsbUJBREksTUFBTTs7aUZBQ25CLFNBQVM7Y0FEckIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZHQsIFRoZW1lIH0gZnJvbSAnQHByaW1ldWl4L3N0eWxlZCc7XG5pbXBvcnQgeyBtaW5pZnlDU1MsIHJlc29sdmUgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgVXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL3VzZXN0eWxlJztcblxuY29uc3QgdGhlbWUgPSAoeyBkdCB9KSA9PiBgXG4qIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiBOb24gdnVlIG92ZXJsYXkgYW5pbWF0aW9ucyAqL1xuLnAtY29ubmVjdGVkLW92ZXJsYXkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMC44KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksXG4gICAgICAgIG9wYWNpdHkgMC4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG59XG5cbi5wLWNvbm5lY3RlZC1vdmVybGF5LXZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG59XG5cbi5wLWNvbm5lY3RlZC1vdmVybGF5LWhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgbGluZWFyO1xufVxuXG4vKiBWdWUgYmFzZWQgb3ZlcmxheSBhbmltYXRpb25zICovXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1lbnRlci1mcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDAuOCk7XG59XG5cbi5wLWNvbm5lY3RlZC1vdmVybGF5LWxlYXZlLXRvIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1lbnRlci1hY3RpdmUge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSxcbiAgICAgICAgb3BhY2l0eSAwLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbn1cblxuLnAtY29ubmVjdGVkLW92ZXJsYXktbGVhdmUtYWN0aXZlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgbGluZWFyO1xufVxuXG4vKiBUb2dnbGVhYmxlIENvbnRlbnQgKi9cbi5wLXRvZ2dsZWFibGUtY29udGVudC1lbnRlci1mcm9tLFxuLnAtdG9nZ2xlYWJsZS1jb250ZW50LWxlYXZlLXRvIHtcbiAgICBtYXgtaGVpZ2h0OiAwO1xufVxuXG4ucC10b2dnbGVhYmxlLWNvbnRlbnQtZW50ZXItdG8sXG4ucC10b2dnbGVhYmxlLWNvbnRlbnQtbGVhdmUtZnJvbSB7XG4gICAgbWF4LWhlaWdodDogMTAwMHB4O1xufVxuXG4ucC10b2dnbGVhYmxlLWNvbnRlbnQtbGVhdmUtYWN0aXZlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC40NXMgY3ViaWMtYmV6aWVyKDAsIDEsIDAsIDEpO1xufVxuXG4ucC10b2dnbGVhYmxlLWNvbnRlbnQtZW50ZXItYWN0aXZlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5wLWRpc2FibGVkLFxuLnAtZGlzYWJsZWQgKiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucC1kaXNhYmxlZCxcbi5wLWNvbXBvbmVudDpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogJHtkdCgnZGlzYWJsZWQub3BhY2l0eScpfTtcbn1cblxuLnBpIHtcbiAgICBmb250LXNpemU6ICR7ZHQoJ2ljb24uc2l6ZScpfTtcbn1cblxuLnAtaWNvbiB7XG4gICAgd2lkdGg6ICR7ZHQoJ2ljb24uc2l6ZScpfTtcbiAgICBoZWlnaHQ6ICR7ZHQoJ2ljb24uc2l6ZScpfTtcbn1cblxuLnAtb3ZlcmxheS1tYXNrIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtYXNrLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ21hc2suY29sb3InKX07XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnAtb3ZlcmxheS1tYXNrLWVudGVyIHtcbiAgICBhbmltYXRpb246IHAtb3ZlcmxheS1tYXNrLWVudGVyLWFuaW1hdGlvbiAke2R0KCdtYXNrLnRyYW5zaXRpb24uZHVyYXRpb24nKX0gZm9yd2FyZHM7XG59XG5cbi5wLW92ZXJsYXktbWFzay1sZWF2ZSB7XG4gICAgYW5pbWF0aW9uOiBwLW92ZXJsYXktbWFzay1sZWF2ZS1hbmltYXRpb24gJHtkdCgnbWFzay50cmFuc2l0aW9uLmR1cmF0aW9uJyl9IGZvcndhcmRzO1xufVxuLyogVGVtcG9yYXJpbHkgZGlzYWJsZWQsIGRpc3RydXB0cyBQcmltZU5HIG92ZXJsYXkgYW5pbWF0aW9ucyAqL1xuLyogQGtleWZyYW1lcyBwLW92ZXJsYXktbWFzay1lbnRlci1hbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2R0KCdtYXNrLmJhY2tncm91bmQnKX07XG4gICAgfVxufVxuQGtleWZyYW1lcyBwLW92ZXJsYXktbWFzay1sZWF2ZS1hbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2R0KCdtYXNrLmJhY2tncm91bmQnKX07XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufSovXG5cbi5wLWljb253cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuYDtcblxuY29uc3QgY3NzID0gKHsgZHQgfSkgPT4gYFxuLnAtaGlkZGVuLWFjY2Vzc2libGUge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi5wLWhpZGRlbi1hY2Nlc3NpYmxlIGlucHV0LFxuLnAtaGlkZGVuLWFjY2Vzc2libGUgc2VsZWN0IHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuXG4ucC1vdmVyZmxvdy1oaWRkZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1yaWdodDogJHtkdCgnc2Nyb2xsYmFyLndpZHRoJyl9O1xufVxuXG4vKiBAdG9kbyBtb3ZlIHRvIGJhc2VpY29uc3R5bGUudHMgKi9cblxuLnAtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLnAtaWNvbi1zcGluIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogcC1pY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICAgIGFuaW1hdGlvbjogcC1pY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcC1pY29uLXNwaW4ge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHAtaWNvbi1zcGluIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIH1cbn1cbmA7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQmFzZVN0eWxlIHtcbiAgICBuYW1lID0gJ2Jhc2UnO1xuXG4gICAgdXNlU3R5bGU6IFVzZVN0eWxlID0gaW5qZWN0KFVzZVN0eWxlKTtcblxuICAgIHRoZW1lID0gdGhlbWU7XG5cbiAgICBjc3MgPSBjc3M7XG5cbiAgICBjbGFzc2VzID0ge307XG5cbiAgICBpbmxpbmVTdHlsZXMgPSB7fTtcblxuICAgIGxvYWQgPSAoc3R5bGUsIG9wdGlvbnMgPSB7fSwgdHJhbnNmb3JtID0gKGNzKSA9PiBjcykgPT4ge1xuICAgICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gdHJhbnNmb3JtKHJlc29sdmUoc3R5bGUsIHsgZHQgfSkpO1xuICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZSA/IHRoaXMudXNlU3R5bGUudXNlKG1pbmlmeUNTUyhjb21wdXRlZFN0eWxlKSwgeyBuYW1lOiB0aGlzLm5hbWUsIC4uLm9wdGlvbnMgfSkgOiB7fTtcbiAgICB9O1xuXG4gICAgbG9hZENTUyA9IChvcHRpb25zID0ge30pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZCh0aGlzLmNzcywgb3B0aW9ucyk7XG4gICAgfTtcblxuICAgIGxvYWRUaGVtZSA9IChvcHRpb25zOiBhbnkgPSB7fSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkKHRoaXMudGhlbWUsIG9wdGlvbnMsIChjb21wdXRlZFN0eWxlKSA9PiBUaGVtZS50cmFuc2Zvcm1DU1Mob3B0aW9ucy5uYW1lIHx8IHRoaXMubmFtZSwgY29tcHV0ZWRTdHlsZSkpO1xuICAgIH07XG5cbiAgICBnZXRDb21tb25UaGVtZSA9IChwYXJhbXM/KSA9PiB7XG4gICAgICAgIHJldHVybiBUaGVtZS5nZXRDb21tb24odGhpcy5uYW1lLCBwYXJhbXMpO1xuICAgIH07XG5cbiAgICBnZXRDb21wb25lbnRUaGVtZSA9IChwYXJhbXMpID0+IHtcbiAgICAgICAgcmV0dXJuIFRoZW1lLmdldENvbXBvbmVudCh0aGlzLm5hbWUsIHBhcmFtcyk7XG4gICAgfTtcblxuICAgIGdldERpcmVjdGl2ZVRoZW1lID0gKHBhcmFtcykgPT4ge1xuICAgICAgICByZXR1cm4gVGhlbWUuZ2V0RGlyZWN0aXZlKHRoaXMubmFtZSwgcGFyYW1zKTtcbiAgICB9O1xuXG4gICAgZ2V0UHJlc2V0VGhlbWUgPSAocHJlc2V0LCBzZWxlY3RvciwgcGFyYW1zKSA9PiB7XG4gICAgICAgIHJldHVybiBUaGVtZS5nZXRDdXN0b21QcmVzZXQodGhpcy5uYW1lLCBwcmVzZXQsIHNlbGVjdG9yLCBwYXJhbXMpO1xuICAgIH07XG5cbiAgICBnZXRMYXllck9yZGVyVGhlbWVDU1MgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBUaGVtZS5nZXRMYXllck9yZGVyQ1NTKHRoaXMubmFtZSk7XG4gICAgfTtcblxuICAgIGdldFN0eWxlU2hlZXQgPSAoZXh0ZW5kZWRDU1MgPSAnJywgcHJvcHMgPSB7fSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jc3MpIHtcbiAgICAgICAgICAgIGNvbnN0IF9jc3MgPSByZXNvbHZlKHRoaXMuY3NzLCB7IGR0IH0pO1xuICAgICAgICAgICAgY29uc3QgX3N0eWxlID0gbWluaWZ5Q1NTKGAke19jc3N9JHtleHRlbmRlZENTU31gKTtcbiAgICAgICAgICAgIGNvbnN0IF9wcm9wcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiBhY2MucHVzaChgJHtrfT1cIiR7dn1cImApICYmIGFjYywgW10pXG4gICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcblxuICAgICAgICAgICAgcmV0dXJuIGA8c3R5bGUgdHlwZT1cInRleHQvY3NzXCIgZGF0YS1wcmltZW5nLXN0eWxlLWlkPVwiJHt0aGlzLm5hbWV9XCIgJHtfcHJvcHN9PiR7X3N0eWxlfTwvc3R5bGU+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9O1xuXG4gICAgZ2V0Q29tbW9uVGhlbWVTdHlsZVNoZWV0ID0gKHBhcmFtcywgcHJvcHMgPSB7fSkgPT4ge1xuICAgICAgICByZXR1cm4gVGhlbWUuZ2V0Q29tbW9uU3R5bGVTaGVldCh0aGlzLm5hbWUsIHBhcmFtcywgcHJvcHMpO1xuICAgIH07XG5cbiAgICBnZXRUaGVtZVN0eWxlU2hlZXQgPSAocGFyYW1zLCBwcm9wcyA9IHt9KSA9PiB7XG4gICAgICAgIGxldCBjc3MgPSBbVGhlbWUuZ2V0U3R5bGVTaGVldCh0aGlzLm5hbWUsIHBhcmFtcywgcHJvcHMpXTtcblxuICAgICAgICBpZiAodGhpcy50aGVtZSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZSA9PT0gJ2Jhc2UnID8gJ2dsb2JhbC1zdHlsZScgOiBgJHt0aGlzLm5hbWV9LXN0eWxlYDtcbiAgICAgICAgICAgIGNvbnN0IF9jc3MgPSByZXNvbHZlKHRoaXMudGhlbWUsIHsgZHQgfSk7XG4gICAgICAgICAgICBjb25zdCBfc3R5bGUgPSBtaW5pZnlDU1MoVGhlbWUudHJhbnNmb3JtQ1NTKG5hbWUsIF9jc3MpKTtcbiAgICAgICAgICAgIGNvbnN0IF9wcm9wcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiBhY2MucHVzaChgJHtrfT1cIiR7dn1cImApICYmIGFjYywgW10pXG4gICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcblxuICAgICAgICAgICAgY3NzLnB1c2goYDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBkYXRhLXByaW1lbmctc3R5bGUtaWQ9XCIke25hbWV9XCIgJHtfcHJvcHN9PiR7X3N0eWxlfTwvc3R5bGU+YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY3NzLmpvaW4oJycpO1xuICAgIH07XG59XG4iXX0=
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXN0eWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Jhc2Uvc3R5bGUvYmFzZXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTVDLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUF5RVgsRUFBRSxDQUFDLGtCQUFrQixDQUFDOzs7O2lCQUlwQixFQUFFLENBQUMsV0FBVyxDQUFDOzs7O2FBSW5CLEVBQUUsQ0FBQyxXQUFXLENBQUM7Y0FDZCxFQUFFLENBQUMsV0FBVyxDQUFDOzs7O2tCQUlYLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUMxQixFQUFFLENBQUMsWUFBWSxDQUFDOzs7Ozs7Ozs7Z0RBU21CLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzs7OztnREFJOUIsRUFBRSxDQUFDLDBCQUEwQixDQUFDOzs7Ozs7OztzQkFReEQsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzs7OztzQkFLckIsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7Q0FZMUMsQ0FBQztBQUVGLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBbUJILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBb0N6QyxDQUFDO0FBR0YsTUFBTSxPQUFPLFNBQVM7SUFDbEIsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUVkLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFFVixPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRWIsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUVsQixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ25ELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM3RyxDQUFDLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsU0FBUyxHQUFHLENBQUMsVUFBZSxFQUFFLEVBQUUsUUFBZ0IsRUFBRSxFQUFFLEVBQUU7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsYUFBYSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxhQUFhLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdJLENBQUMsQ0FBQztJQUVGLGNBQWMsR0FBRyxDQUFDLE1BQU8sRUFBRSxFQUFFO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUVGLGlCQUFpQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDO0lBRUYsaUJBQWlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUMzQixPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUM7SUFFRixjQUFjLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzFDLE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDO0lBRUYscUJBQXFCLEdBQUcsR0FBRyxFQUFFO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUM7SUFFRixhQUFhLEdBQUcsQ0FBQyxXQUFXLEdBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUM3QyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNsRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDL0IsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWYsT0FBTyxpREFBaUQsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksTUFBTSxVQUFVLENBQUM7UUFDckcsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsd0JBQXdCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQzlDLE9BQU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQztJQUVGLGtCQUFrQixHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUN4QyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDO1lBQzFFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDL0IsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWYsR0FBRyxDQUFDLElBQUksQ0FBQyxpREFBaUQsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLFVBQVUsQ0FBQyxDQUFDO1FBQ25HLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO21HQS9FTyxTQUFTO2dFQUFULFNBQVMsV0FBVCxTQUFTLG1CQURJLE1BQU07O2lGQUNuQixTQUFTO2NBRHJCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGR0LCBUaGVtZSB9IGZyb20gJ0BwcmltZXVpeC9zdHlsZWQnO1xuaW1wb3J0IHsgbWluaWZ5Q1NTLCByZXNvbHZlIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFVzZVN0eWxlIH0gZnJvbSAncHJpbWVuZy91c2VzdHlsZSc7XG5cbmNvbnN0IHRoZW1lID0gKHsgZHQgfSkgPT4gYFxuKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogTm9uIHZ1ZSBvdmVybGF5IGFuaW1hdGlvbnMgKi9cbi5wLWNvbm5lY3RlZC1vdmVybGF5IHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDAuOCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLFxuICAgICAgICBvcGFjaXR5IDAuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGxpbmVhcjtcbn1cblxuLyogVnVlIGJhc2VkIG92ZXJsYXkgYW5pbWF0aW9ucyAqL1xuLnAtY29ubmVjdGVkLW92ZXJsYXktZW50ZXItZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjgpO1xufVxuXG4ucC1jb25uZWN0ZWQtb3ZlcmxheS1sZWF2ZS10byB7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLnAtY29ubmVjdGVkLW92ZXJsYXktZW50ZXItYWN0aXZlIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksXG4gICAgICAgIG9wYWNpdHkgMC4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG59XG5cbi5wLWNvbm5lY3RlZC1vdmVybGF5LWxlYXZlLWFjdGl2ZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGxpbmVhcjtcbn1cblxuLyogVG9nZ2xlYWJsZSBDb250ZW50ICovXG4ucC10b2dnbGVhYmxlLWNvbnRlbnQtZW50ZXItZnJvbSxcbi5wLXRvZ2dsZWFibGUtY29udGVudC1sZWF2ZS10byB7XG4gICAgbWF4LWhlaWdodDogMDtcbn1cblxuLnAtdG9nZ2xlYWJsZS1jb250ZW50LWVudGVyLXRvLFxuLnAtdG9nZ2xlYWJsZS1jb250ZW50LWxlYXZlLWZyb20ge1xuICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcbn1cblxuLnAtdG9nZ2xlYWJsZS1jb250ZW50LWxlYXZlLWFjdGl2ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNDVzIGN1YmljLWJlemllcigwLCAxLCAwLCAxKTtcbn1cblxuLnAtdG9nZ2xlYWJsZS1jb250ZW50LWVudGVyLWFjdGl2ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDFzIGVhc2UtaW4tb3V0O1xufVxuXG4ucC1kaXNhYmxlZCxcbi5wLWRpc2FibGVkICoge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnAtZGlzYWJsZWQsXG4ucC1jb21wb25lbnQ6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6ICR7ZHQoJ2Rpc2FibGVkLm9wYWNpdHknKX07XG59XG5cbi5waSB7XG4gICAgZm9udC1zaXplOiAke2R0KCdpY29uLnNpemUnKX07XG59XG5cbi5wLWljb24ge1xuICAgIHdpZHRoOiAke2R0KCdpY29uLnNpemUnKX07XG4gICAgaGVpZ2h0OiAke2R0KCdpY29uLnNpemUnKX07XG59XG5cbi5wLW92ZXJsYXktbWFzayB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnbWFzay5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdtYXNrLmNvbG9yJyl9O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5wLW92ZXJsYXktbWFzay1lbnRlciB7XG4gICAgYW5pbWF0aW9uOiBwLW92ZXJsYXktbWFzay1lbnRlci1hbmltYXRpb24gJHtkdCgnbWFzay50cmFuc2l0aW9uLmR1cmF0aW9uJyl9IGZvcndhcmRzO1xufVxuXG4ucC1vdmVybGF5LW1hc2stbGVhdmUge1xuICAgIGFuaW1hdGlvbjogcC1vdmVybGF5LW1hc2stbGVhdmUtYW5pbWF0aW9uICR7ZHQoJ21hc2sudHJhbnNpdGlvbi5kdXJhdGlvbicpfSBmb3J3YXJkcztcbn1cbi8qIFRlbXBvcmFyaWx5IGRpc2FibGVkLCBkaXN0cnVwdHMgUHJpbWVORyBvdmVybGF5IGFuaW1hdGlvbnMgKi9cbi8qIEBrZXlmcmFtZXMgcC1vdmVybGF5LW1hc2stZW50ZXItYW5pbWF0aW9uIHtcbiAgICBmcm9tIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtkdCgnbWFzay5iYWNrZ3JvdW5kJyl9O1xuICAgIH1cbn1cbkBrZXlmcmFtZXMgcC1vdmVybGF5LW1hc2stbGVhdmUtYW5pbWF0aW9uIHtcbiAgICBmcm9tIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtkdCgnbWFzay5iYWNrZ3JvdW5kJyl9O1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbn0qL1xuXG4ucC1pY29ud3JhcHBlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbmA7XG5cbmNvbnN0IGNzcyA9ICh7IGR0IH0pID0+IGBcbi5wLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xufVxuXG4ucC1oaWRkZW4tYWNjZXNzaWJsZSBpbnB1dCxcbi5wLWhpZGRlbi1hY2Nlc3NpYmxlIHNlbGVjdCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbn1cblxuLnAtb3ZlcmZsb3ctaGlkZGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7ZHQoJ3Njcm9sbGJhci53aWR0aCcpfTtcbn1cblxuLyogQHRvZG8gbW92ZSB0byBiYXNlaWNvbnN0eWxlLnRzICovXG5cbi5wLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5wLWljb24tc3BpbiB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IHAtaWNvbi1zcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICBhbmltYXRpb246IHAtaWNvbi1zcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHAtaWNvbi1zcGluIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBwLWljb24tc3BpbiB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgICB9XG59XG5gO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJhc2VTdHlsZSB7XG4gICAgbmFtZSA9ICdiYXNlJztcblxuICAgIHVzZVN0eWxlOiBVc2VTdHlsZSA9IGluamVjdChVc2VTdHlsZSk7XG5cbiAgICB0aGVtZSA9IHRoZW1lO1xuXG4gICAgY3NzID0gY3NzO1xuXG4gICAgY2xhc3NlcyA9IHt9O1xuXG4gICAgaW5saW5lU3R5bGVzID0ge307XG5cbiAgICBsb2FkID0gKHN0eWxlLCBvcHRpb25zID0ge30sIHRyYW5zZm9ybSA9IChjcykgPT4gY3MpID0+IHtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHRyYW5zZm9ybShyZXNvbHZlKHN0eWxlLCB7IGR0IH0pKTtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUgPyB0aGlzLnVzZVN0eWxlLnVzZShtaW5pZnlDU1MoY29tcHV0ZWRTdHlsZSksIHsgbmFtZTogdGhpcy5uYW1lLCAuLi5vcHRpb25zIH0pIDoge307XG4gICAgfTtcblxuICAgIGxvYWRDU1MgPSAob3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWQodGhpcy5jc3MsIG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBsb2FkVGhlbWUgPSAob3B0aW9uczogYW55ID0ge30sIHN0eWxlOiBzdHJpbmcgPSAnJykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkKHRoaXMudGhlbWUsIG9wdGlvbnMsIChjb21wdXRlZFN0eWxlID0gJycpID0+IFRoZW1lLnRyYW5zZm9ybUNTUyhvcHRpb25zLm5hbWUgfHwgdGhpcy5uYW1lLCBgJHtjb21wdXRlZFN0eWxlfSR7c3R5bGV9YCkpO1xuICAgIH07XG5cbiAgICBnZXRDb21tb25UaGVtZSA9IChwYXJhbXM/KSA9PiB7XG4gICAgICAgIHJldHVybiBUaGVtZS5nZXRDb21tb24odGhpcy5uYW1lLCBwYXJhbXMpO1xuICAgIH07XG5cbiAgICBnZXRDb21wb25lbnRUaGVtZSA9IChwYXJhbXMpID0+IHtcbiAgICAgICAgcmV0dXJuIFRoZW1lLmdldENvbXBvbmVudCh0aGlzLm5hbWUsIHBhcmFtcyk7XG4gICAgfTtcblxuICAgIGdldERpcmVjdGl2ZVRoZW1lID0gKHBhcmFtcykgPT4ge1xuICAgICAgICByZXR1cm4gVGhlbWUuZ2V0RGlyZWN0aXZlKHRoaXMubmFtZSwgcGFyYW1zKTtcbiAgICB9O1xuXG4gICAgZ2V0UHJlc2V0VGhlbWUgPSAocHJlc2V0LCBzZWxlY3RvciwgcGFyYW1zKSA9PiB7XG4gICAgICAgIHJldHVybiBUaGVtZS5nZXRDdXN0b21QcmVzZXQodGhpcy5uYW1lLCBwcmVzZXQsIHNlbGVjdG9yLCBwYXJhbXMpO1xuICAgIH07XG5cbiAgICBnZXRMYXllck9yZGVyVGhlbWVDU1MgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBUaGVtZS5nZXRMYXllck9yZGVyQ1NTKHRoaXMubmFtZSk7XG4gICAgfTtcblxuICAgIGdldFN0eWxlU2hlZXQgPSAoZXh0ZW5kZWRDU1MgPSAnJywgcHJvcHMgPSB7fSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jc3MpIHtcbiAgICAgICAgICAgIGNvbnN0IF9jc3MgPSByZXNvbHZlKHRoaXMuY3NzLCB7IGR0IH0pO1xuICAgICAgICAgICAgY29uc3QgX3N0eWxlID0gbWluaWZ5Q1NTKGAke19jc3N9JHtleHRlbmRlZENTU31gKTtcbiAgICAgICAgICAgIGNvbnN0IF9wcm9wcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiBhY2MucHVzaChgJHtrfT1cIiR7dn1cImApICYmIGFjYywgW10pXG4gICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcblxuICAgICAgICAgICAgcmV0dXJuIGA8c3R5bGUgdHlwZT1cInRleHQvY3NzXCIgZGF0YS1wcmltZW5nLXN0eWxlLWlkPVwiJHt0aGlzLm5hbWV9XCIgJHtfcHJvcHN9PiR7X3N0eWxlfTwvc3R5bGU+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9O1xuXG4gICAgZ2V0Q29tbW9uVGhlbWVTdHlsZVNoZWV0ID0gKHBhcmFtcywgcHJvcHMgPSB7fSkgPT4ge1xuICAgICAgICByZXR1cm4gVGhlbWUuZ2V0Q29tbW9uU3R5bGVTaGVldCh0aGlzLm5hbWUsIHBhcmFtcywgcHJvcHMpO1xuICAgIH07XG5cbiAgICBnZXRUaGVtZVN0eWxlU2hlZXQgPSAocGFyYW1zLCBwcm9wcyA9IHt9KSA9PiB7XG4gICAgICAgIGxldCBjc3MgPSBbVGhlbWUuZ2V0U3R5bGVTaGVldCh0aGlzLm5hbWUsIHBhcmFtcywgcHJvcHMpXTtcblxuICAgICAgICBpZiAodGhpcy50aGVtZSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZSA9PT0gJ2Jhc2UnID8gJ2dsb2JhbC1zdHlsZScgOiBgJHt0aGlzLm5hbWV9LXN0eWxlYDtcbiAgICAgICAgICAgIGNvbnN0IF9jc3MgPSByZXNvbHZlKHRoaXMudGhlbWUsIHsgZHQgfSk7XG4gICAgICAgICAgICBjb25zdCBfc3R5bGUgPSBtaW5pZnlDU1MoVGhlbWUudHJhbnNmb3JtQ1NTKG5hbWUsIF9jc3MpKTtcbiAgICAgICAgICAgIGNvbnN0IF9wcm9wcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgW2ssIHZdKSA9PiBhY2MucHVzaChgJHtrfT1cIiR7dn1cImApICYmIGFjYywgW10pXG4gICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcblxuICAgICAgICAgICAgY3NzLnB1c2goYDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBkYXRhLXByaW1lbmctc3R5bGUtaWQ9XCIke25hbWV9XCIgJHtfcHJvcHN9PiR7X3N0eWxlfTwvc3R5bGU+YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY3NzLmpvaW4oJycpO1xuICAgIH07XG59XG4iXX0=
|
@@ -2,8 +2,9 @@ import { DOCUMENT, isPlatformServer } from '@angular/common';
|
|
2
2
|
import { ChangeDetectorRef, ContentChildren, Directive, ElementRef, inject, Injector, Input, PLATFORM_ID, Renderer2 } from '@angular/core';
|
3
3
|
import { Theme, ThemeService } from '@primeuix/styled';
|
4
4
|
import { getKeyValue, uuid } from '@primeuix/utils';
|
5
|
-
import {
|
5
|
+
import { PrimeTemplate } from 'primeng/api';
|
6
6
|
import { Base, BaseStyle } from 'primeng/base';
|
7
|
+
import { PrimeNG } from 'primeng/config';
|
7
8
|
import { BaseComponentStyle } from './style/basecomponentstyle';
|
8
9
|
import * as i0 from "@angular/core";
|
9
10
|
export class BaseComponent {
|
@@ -13,7 +14,7 @@ export class BaseComponent {
|
|
13
14
|
injector = inject(Injector);
|
14
15
|
cd = inject(ChangeDetectorRef);
|
15
16
|
renderer = inject(Renderer2);
|
16
|
-
config = inject(
|
17
|
+
config = inject(PrimeNG);
|
17
18
|
baseComponentStyle = inject(BaseComponentStyle);
|
18
19
|
baseStyle = inject(BaseStyle);
|
19
20
|
scopedStyleEl;
|
@@ -90,17 +91,18 @@ export class BaseComponent {
|
|
90
91
|
_loadThemeStyles() {
|
91
92
|
// common
|
92
93
|
if (!Theme.isStyleNameLoaded('common')) {
|
93
|
-
const { primitive, semantic } = this.componentStyle?.getCommonTheme?.() || {};
|
94
|
+
const { primitive, semantic, global, style } = this.componentStyle?.getCommonTheme?.() || {};
|
94
95
|
this.baseStyle.load(primitive?.css, { name: 'primitive-variables', ...this.styleOptions });
|
95
96
|
this.baseStyle.load(semantic?.css, { name: 'semantic-variables', ...this.styleOptions });
|
96
|
-
this.baseStyle.
|
97
|
+
this.baseStyle.load(global?.css, { name: 'global-variables', ...this.styleOptions });
|
98
|
+
this.baseStyle.loadTheme({ name: 'global-style', ...this.styleOptions }, style);
|
97
99
|
Theme.setLoadedStyleName('common');
|
98
100
|
}
|
99
101
|
// component
|
100
102
|
if (!Theme.isStyleNameLoaded(this.componentStyle?.name) && this.componentStyle?.name) {
|
101
|
-
const { css } = this.componentStyle?.getComponentTheme?.() || {};
|
103
|
+
const { css, style } = this.componentStyle?.getComponentTheme?.() || {};
|
102
104
|
this.componentStyle?.load(css, { name: `${this.componentStyle?.name}-variables`, ...this.styleOptions });
|
103
|
-
this.componentStyle?.loadTheme({ name: `${this.componentStyle?.name}-style`, ...this.styleOptions });
|
105
|
+
this.componentStyle?.loadTheme({ name: `${this.componentStyle?.name}-style`, ...this.styleOptions }, style);
|
104
106
|
Theme.setLoadedStyleName(this.componentStyle?.name);
|
105
107
|
}
|
106
108
|
// layer order
|
@@ -172,4 +174,4 @@ export class BaseComponent {
|
|
172
174
|
type: ContentChildren,
|
173
175
|
args: [PrimeTemplate]
|
174
176
|
}] }); })();
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlY29tcG9uZW50L2Jhc2Vjb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQWEsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNySyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxhQUFhO0lBQ2YsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxVQUFVLEdBQVEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXRDLEVBQUUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0IsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxFQUFFLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELFFBQVEsR0FBYyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsTUFBTSxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFOUMsa0JBQWtCLEdBQXVCLE1B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QUNKLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLHdHQUF3RztJQUN4RywyR0FBMkc7SUFDM0csSUFBSTtJQUVKLElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEMsQ0FBQzt1R0E5TFEsYUFBYTs2REFBYixhQUFhO3dDQThETCxhQUFhOzs7O3NGQS9EUSxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQzs7aUZBQzVELGFBQWE7Y0FEekIsU0FBUztlQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkF3QjlELEVBQUU7a0JBQVYsS0FBSztZQXVDMEIsU0FBUztrQkFBeEMsZUFBZTttQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCwgUExBVEZPUk1fSUQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZSwgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHByaW1ldWl4L3N0eWxlZCc7XG5pbXBvcnQgeyBnZXRLZXlWYWx1ZSwgdXVpZCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBQcmltZU5HQ29uZmlnLCBQcmltZVRlbXBsYXRlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZSwgQmFzZVN0eWxlIH0gZnJvbSAncHJpbWVuZy9iYXNlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRTdHlsZSB9IGZyb20gJy4vc3R5bGUvYmFzZWNvbXBvbmVudHN0eWxlJztcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHByb3ZpZGVyczogW0Jhc2VDb21wb25lbnRTdHlsZSwgQmFzZVN0eWxlXSB9KVxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQge1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgcHVibGljIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIHB1YmxpYyBjb25maWc6IFByaW1lTkdDb25maWcgPSBpbmplY3QoUHJpbWVOR0NvbmZpZyk7XG5cbiAgICBwdWJsaWMgYmFzZUNvbXBvbmVudFN0eWxlOiBCYXNlQ29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmFzZUNvbXBvbmVudFN0eWxlKTtcblxuICAgIHB1YmxpYyBiYXNlU3R5bGU6IEJhc2VTdHlsZSA9IGluamVjdChCYXNlU3R5bGUpO1xuXG4gICAgcHVibGljIHNjb3BlZFN0eWxlRWw6IGFueTtcblxuICAgIHB1YmxpYyByb290RWw6IGFueTtcblxuICAgIEBJbnB1dCgpIGR0OiBPYmplY3QgfCB1bmRlZmluZWQ7XG5cbiAgICBnZXQgc3R5bGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4geyBub25jZTogdGhpcy5jb25maWc/LmNzcCgpLm5vbmNlIH07XG4gICAgfVxuXG4gICAgZ2V0IF9uYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoL15fLywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1snX2NvbXBvbmVudFN0eWxlJ107XG4gICAgfVxuXG4gICAgYXR0clNlbGVjdG9yID0gdXVpZCgncGMnKTtcblxuICAgIF9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UgPyAodGhpc1snaG9zdE5hbWUnXSA/IChpbnN0YW5jZVsnbmFtZSddID09PSB0aGlzWydob3N0TmFtZSddID8gaW5zdGFuY2UgOiB0aGlzLl9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UucGFyZW50SW5zdGFuY2UpKSA6IGluc3RhbmNlLnBhcmVudEluc3RhbmNlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9nZXRPcHRpb25WYWx1ZShvcHRpb25zLCBrZXkgPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGdldEtleVZhbHVlKG9wdGlvbnMsIGtleSwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb290RWwgPSB0aGlzLmVsPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5yb290RWwpIHtcbiAgICAgICAgICAgIHRoaXMucm9vdEVsPy5zZXRBdHRyaWJ1dGUodGhpcy5hdHRyU2VsZWN0b3IsICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gaXRlbS5nZXRUeXBlKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IGAke3R5cGV9VGVtcGxhdGVgO1xuICAgICAgICAgICAgdGhpc1t0ZW1wbGF0ZV0gPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50ICYmICFpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHQgfSA9IGNoYW5nZXM7XG4gICAgICAgICAgICBpZiAoZHQgJiYgZHQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZFNjb3BlZFRoZW1lU3R5bGVzKGR0LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXMoZHQuY3VycmVudFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fdW5sb2FkU2NvcGVkVGhlbWVTdHlsZXMoKTtcbiAgICB9XG5cbiAgICBfbG9hZFN0eWxlcygpIHtcbiAgICAgICAgY29uc3QgX2xvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIUJhc2UuaXNTdHlsZU5hbWVMb2FkZWQoJ2Jhc2UnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIEJhc2Uuc2V0TG9hZGVkU3R5bGVOYW1lKCdiYXNlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2xvYWRUaGVtZVN0eWxlcygpO1xuICAgICAgICAgICAgLy8gQHRvZG8gdXBkYXRlIGNvbmZpZy50aGVtZSgpXG4gICAgICAgIH07XG5cbiAgICAgICAgX2xvYWQoKTtcbiAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiBfbG9hZCgpKTtcbiAgICB9XG5cbiAgICBfbG9hZENvcmVTdHlsZXMoKSB7XG4gICAgICAgIGlmICghQmFzZS5pc1N0eWxlTmFtZUxvYWRlZCgnYmFzZScpICYmIHRoaXMuX25hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuYmFzZUNvbXBvbmVudFN0eWxlLmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdHlsZSAmJiB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkQ1NTKHRoaXMuc3R5bGVPcHRpb25zKTtcbiAgICAgICAgICAgIEJhc2Uuc2V0TG9hZGVkU3R5bGVOYW1lKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2xvYWRUaGVtZVN0eWxlcygpIHtcbiAgICAgICAgLy8gY29tbW9uXG4gICAgICAgIGlmICghVGhlbWUuaXNTdHlsZU5hbWVMb2FkZWQoJ2NvbW1vbicpKSB7XG4gICAgICAgICAgICBjb25zdCB7IHByaW1pdGl2ZSwgc2VtYW50aWMgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldENvbW1vblRoZW1lPy4oKSB8fCB7fTtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWQocHJpbWl0aXZlPy5jc3MsIHsgbmFtZTogJ3ByaW1pdGl2ZS12YXJpYWJsZXMnLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWQoc2VtYW50aWM/LmNzcywgeyBuYW1lOiAnc2VtYW50aWMtdmFyaWFibGVzJywgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkVGhlbWUoeyBuYW1lOiAnZ2xvYmFsLXN0eWxlJywgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICBUaGVtZS5zZXRMb2FkZWRTdHlsZU5hbWUoJ2NvbW1vbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgIGlmICghVGhlbWUuaXNTdHlsZU5hbWVMb2FkZWQodGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSkgJiYgdGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSkge1xuICAgICAgICAgICAgY29uc3QgeyBjc3MgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldENvbXBvbmVudFRoZW1lPy4oKSB8fCB7fTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWQoY3NzLCB7IG5hbWU6IGAke3RoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWV9LXZhcmlhYmxlc2AsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdHlsZT8ubG9hZFRoZW1lKHsgbmFtZTogYCR7dGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZX0tc3R5bGVgLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIFRoZW1lLnNldExvYWRlZFN0eWxlTmFtZSh0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGxheWVyIG9yZGVyXG4gICAgICAgIGlmICghVGhlbWUuaXNTdHlsZU5hbWVMb2FkZWQoJ2xheWVyLW9yZGVyJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGxheWVyT3JkZXIgPSB0aGlzLmNvbXBvbmVudFN0eWxlPy5nZXRMYXllck9yZGVyVGhlbWVDU1M/LigpO1xuXG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkKGxheWVyT3JkZXIsIHsgbmFtZTogJ2xheWVyLW9yZGVyJywgZmlyc3Q6IHRydWUsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgVGhlbWUuc2V0TG9hZGVkU3R5bGVOYW1lKCdsYXllci1vcmRlcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZHQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTY29wZWRUaGVtZVN0eWxlcyh0aGlzLmR0KTtcbiAgICAgICAgICAgIHRoaXMuX3RoZW1lQ2hhbmdlTGlzdGVuZXIoKCkgPT4gdGhpcy5fbG9hZFNjb3BlZFRoZW1lU3R5bGVzKHRoaXMuZHQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9sb2FkU2NvcGVkVGhlbWVTdHlsZXMocHJlc2V0KSB7XG4gICAgICAgIGNvbnN0IHsgY3NzIH0gPSB0aGlzLmNvbXBvbmVudFN0eWxlPy5nZXRQcmVzZXRUaGVtZT8uKHByZXNldCwgYFske3RoaXMuYXR0clNlbGVjdG9yfV1gKSB8fCB7fTtcbiAgICAgICAgY29uc3Qgc2NvcGVkU3R5bGUgPSB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkKGNzcywge1xuICAgICAgICAgICAgbmFtZTogYCR7dGhpcy5hdHRyU2VsZWN0b3J9LSR7dGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZX1gLFxuICAgICAgICAgICAgLi4udGhpcy5zdHlsZU9wdGlvbnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zY29wZWRTdHlsZUVsID0gc2NvcGVkU3R5bGU/LmVsO1xuICAgIH1cblxuICAgIF91bmxvYWRTY29wZWRUaGVtZVN0eWxlcygpIHtcbiAgICAgICAgdGhpcy5zY29wZWRTdHlsZUVsPy5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBfdGhlbWVDaGFuZ2VMaXN0ZW5lcihjYWxsYmFjayA9ICgpID0+IHt9KSB7XG4gICAgICAgIEJhc2UuY2xlYXJMb2FkZWRTdHlsZU5hbWVzKCk7XG4gICAgICAgIFRoZW1lU2VydmljZS5vbigndGhlbWU6Y2hhbmdlJywgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGN4KGFyZzogc3RyaW5nLCByZXN0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnQuY29tcG9uZW50U3R5bGU/LmNsYXNzZXM/LlthcmddIDogdGhpcy5jb21wb25lbnRTdHlsZT8uY2xhc3Nlcz8uW2FyZ107XG5cbiAgICAgICAgaWYgKHR5cGVvZiBjbGFzc2VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xhc3Nlcyh7IGluc3RhbmNlOiB0aGlzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVvZiBjbGFzc2VzID09PSAnc3RyaW5nJyA/IGNsYXNzZXMgOiBhcmc7XG4gICAgfVxuXG4gICAgc3goYXJnOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzdHlsZXMgPSB0aGlzLmNvbXBvbmVudFN0eWxlPy5pbmxpbmVTdHlsZXM/LlthcmddO1xuICAgICAgICBpZiAodHlwZW9mIHN0eWxlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlcyh7IGluc3RhbmNlOiB0aGlzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBzdHlsZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3R5bGVzIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjeChrZXkgPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICAvLyAgICAgY29uc3QgY2xhc3NlcyA9IHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnQuY29tcG9uZW50U3R5bGU/LmNsYXNzZXMgOiB0aGlzLmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzO1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uVmFsdWUoY2xhc3Nlcyh7IGluc3RhbmNlOiB0aGlzLl9nZXRIb3N0SW5zdGFuY2UodGhpcykgfSksIGtleSwgeyAuLi5wYXJhbXMgfSk7XG4gICAgLy8gfVxuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbJ3BhcmVudEluc3RhbmNlJ107XG4gICAgfVxufVxuIl19
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlY29tcG9uZW50L2Jhc2Vjb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQWEsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNySyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxhQUFhO0lBQ2YsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxVQUFVLEdBQVEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXRDLEVBQUUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0IsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxFQUFFLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELFFBQVEsR0FBYyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsTUFBTSxHQUFZLE1BQU0sQ0FBQyxPQUFP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QUFDLENBQUM7UUFDeEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsd0dBQXdHO0lBQ3hHLDJHQUEyRztJQUMzRyxJQUFJO0lBRUosSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxDQUFDO3VHQW5NUSxhQUFhOzZEQUFiLGFBQWE7d0NBOERMLGFBQWE7Ozs7c0ZBL0RRLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDOztpRkFDNUQsYUFBYTtjQUR6QixTQUFTO2VBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQXdCOUQsRUFBRTtrQkFBVixLQUFLO1lBdUMwQixTQUFTO2tCQUF4QyxlQUFlO21CQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBQTEFURk9STV9JRCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lLCBUaGVtZVNlcnZpY2UgfSBmcm9tICdAcHJpbWV1aXgvc3R5bGVkJztcbmltcG9ydCB7IGdldEtleVZhbHVlLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlLCBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuaW1wb3J0IHsgUHJpbWVORyB9IGZyb20gJ3ByaW1lbmcvY29uZmlnJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRTdHlsZSB9IGZyb20gJy4vc3R5bGUvYmFzZWNvbXBvbmVudHN0eWxlJztcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHByb3ZpZGVyczogW0Jhc2VDb21wb25lbnRTdHlsZSwgQmFzZVN0eWxlXSB9KVxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQge1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgcHVibGljIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIHB1YmxpYyBjb25maWc6IFByaW1lTkcgPSBpbmplY3QoUHJpbWVORyk7XG5cbiAgICBwdWJsaWMgYmFzZUNvbXBvbmVudFN0eWxlOiBCYXNlQ29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmFzZUNvbXBvbmVudFN0eWxlKTtcblxuICAgIHB1YmxpYyBiYXNlU3R5bGU6IEJhc2VTdHlsZSA9IGluamVjdChCYXNlU3R5bGUpO1xuXG4gICAgcHVibGljIHNjb3BlZFN0eWxlRWw6IGFueTtcblxuICAgIHB1YmxpYyByb290RWw6IGFueTtcblxuICAgIEBJbnB1dCgpIGR0OiBPYmplY3QgfCB1bmRlZmluZWQ7XG5cbiAgICBnZXQgc3R5bGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4geyBub25jZTogdGhpcy5jb25maWc/LmNzcCgpLm5vbmNlIH07XG4gICAgfVxuXG4gICAgZ2V0IF9uYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoL15fLywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1snX2NvbXBvbmVudFN0eWxlJ107XG4gICAgfVxuXG4gICAgYXR0clNlbGVjdG9yID0gdXVpZCgncGMnKTtcblxuICAgIF9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UgPyAodGhpc1snaG9zdE5hbWUnXSA/IChpbnN0YW5jZVsnbmFtZSddID09PSB0aGlzWydob3N0TmFtZSddID8gaW5zdGFuY2UgOiB0aGlzLl9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UucGFyZW50SW5zdGFuY2UpKSA6IGluc3RhbmNlLnBhcmVudEluc3RhbmNlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9nZXRPcHRpb25WYWx1ZShvcHRpb25zLCBrZXkgPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGdldEtleVZhbHVlKG9wdGlvbnMsIGtleSwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb290RWwgPSB0aGlzLmVsPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5yb290RWwpIHtcbiAgICAgICAgICAgIHRoaXMucm9vdEVsPy5zZXRBdHRyaWJ1dGUodGhpcy5hdHRyU2VsZWN0b3IsICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gaXRlbS5nZXRUeXBlKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IGAke3R5cGV9VGVtcGxhdGVgO1xuICAgICAgICAgICAgdGhpc1t0ZW1wbGF0ZV0gPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50ICYmICFpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHQgfSA9IGNoYW5nZXM7XG4gICAgICAgICAgICBpZiAoZHQgJiYgZHQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZFNjb3BlZFRoZW1lU3R5bGVzKGR0LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXMoZHQuY3VycmVudFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fdW5sb2FkU2NvcGVkVGhlbWVTdHlsZXMoKTtcbiAgICB9XG5cbiAgICBfbG9hZFN0eWxlcygpIHtcbiAgICAgICAgY29uc3QgX2xvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIUJhc2UuaXNTdHlsZU5hbWVMb2FkZWQoJ2Jhc2UnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIEJhc2Uuc2V0TG9hZGVkU3R5bGVOYW1lKCdiYXNlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2xvYWRUaGVtZVN0eWxlcygpO1xuICAgICAgICAgICAgLy8gQHRvZG8gdXBkYXRlIGNvbmZpZy50aGVtZSgpXG4gICAgICAgIH07XG5cbiAgICAgICAgX2xvYWQoKTtcbiAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiBfbG9hZCgpKTtcbiAgICB9XG5cbiAgICBfbG9hZENvcmVTdHlsZXMoKSB7XG4gICAgICAgIGlmICghQmFzZS5pc1N0eWxlTmFtZUxvYWRlZCgnYmFzZScpICYmIHRoaXMuX25hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuYmFzZUNvbXBvbmVudFN0eWxlLmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdHlsZSAmJiB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkQ1NTKHRoaXMuc3R5bGVPcHRpb25zKTtcbiAgICAgICAgICAgIEJhc2Uuc2V0TG9hZGVkU3R5bGVOYW1lKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2xvYWRUaGVtZVN0eWxlcygpIHtcbiAgICAgICAgLy8gY29tbW9uXG4gICAgICAgIGlmICghVGhlbWUuaXNTdHlsZU5hbWVMb2FkZWQoJ2NvbW1vbicpKSB7XG4gICAgICAgICAgICBjb25zdCB7IHByaW1pdGl2ZSwgc2VtYW50aWMsIGdsb2JhbCwgc3R5bGUgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldENvbW1vblRoZW1lPy4oKSB8fCB7fTtcblxuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChwcmltaXRpdmU/LmNzcywgeyBuYW1lOiAncHJpbWl0aXZlLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChzZW1hbnRpYz8uY3NzLCB7IG5hbWU6ICdzZW1hbnRpYy12YXJpYWJsZXMnLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWQoZ2xvYmFsPy5jc3MsIHsgbmFtZTogJ2dsb2JhbC12YXJpYWJsZXMnLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWRUaGVtZSh7IG5hbWU6ICdnbG9iYWwtc3R5bGUnLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9LCBzdHlsZSk7XG5cbiAgICAgICAgICAgIFRoZW1lLnNldExvYWRlZFN0eWxlTmFtZSgnY29tbW9uJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb21wb25lbnRcbiAgICAgICAgaWYgKCFUaGVtZS5pc1N0eWxlTmFtZUxvYWRlZCh0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lKSAmJiB0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNzcywgc3R5bGUgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldENvbXBvbmVudFRoZW1lPy4oKSB8fCB7fTtcblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdHlsZT8ubG9hZChjc3MsIHsgbmFtZTogYCR7dGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZX0tdmFyaWFibGVzYCwgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkVGhlbWUoeyBuYW1lOiBgJHt0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lfS1zdHlsZWAsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0sIHN0eWxlKTtcblxuICAgICAgICAgICAgVGhlbWUuc2V0TG9hZGVkU3R5bGVOYW1lKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbGF5ZXIgb3JkZXJcbiAgICAgICAgaWYgKCFUaGVtZS5pc1N0eWxlTmFtZUxvYWRlZCgnbGF5ZXItb3JkZXInKSkge1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJPcmRlciA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldExheWVyT3JkZXJUaGVtZUNTUz8uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYmFzZVN0eWxlLmxvYWQobGF5ZXJPcmRlciwgeyBuYW1lOiAnbGF5ZXItb3JkZXInLCBmaXJzdDogdHJ1ZSwgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICBUaGVtZS5zZXRMb2FkZWRTdHlsZU5hbWUoJ2xheWVyLW9yZGVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kdCkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZFNjb3BlZFRoZW1lU3R5bGVzKHRoaXMuZHQpO1xuICAgICAgICAgICAgdGhpcy5fdGhlbWVDaGFuZ2VMaXN0ZW5lcigoKSA9PiB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXModGhpcy5kdCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2xvYWRTY29wZWRUaGVtZVN0eWxlcyhwcmVzZXQpIHtcbiAgICAgICAgY29uc3QgeyBjc3MgfSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmdldFByZXNldFRoZW1lPy4ocHJlc2V0LCBgWyR7dGhpcy5hdHRyU2VsZWN0b3J9XWApIHx8IHt9O1xuICAgICAgICBjb25zdCBzY29wZWRTdHlsZSA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWQoY3NzLCB7XG4gICAgICAgICAgICBuYW1lOiBgJHt0aGlzLmF0dHJTZWxlY3Rvcn0tJHt0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lfWAsXG4gICAgICAgICAgICAuLi50aGlzLnN0eWxlT3B0aW9uc1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNjb3BlZFN0eWxlRWwgPSBzY29wZWRTdHlsZT8uZWw7XG4gICAgfVxuXG4gICAgX3VubG9hZFNjb3BlZFRoZW1lU3R5bGVzKCkge1xuICAgICAgICB0aGlzLnNjb3BlZFN0eWxlRWw/LnJlbW92ZSgpO1xuICAgIH1cblxuICAgIF90aGVtZUNoYW5nZUxpc3RlbmVyKGNhbGxiYWNrID0gKCkgPT4ge30pIHtcbiAgICAgICAgQmFzZS5jbGVhckxvYWRlZFN0eWxlTmFtZXMoKTtcbiAgICAgICAgVGhlbWVTZXJ2aWNlLm9uKCd0aGVtZTpjaGFuZ2UnLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgY3goYXJnOiBzdHJpbmcsIHJlc3Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5jb21wb25lbnRTdHlsZT8uY2xhc3Nlcz8uW2FyZ10gOiB0aGlzLmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzPy5bYXJnXTtcblxuICAgICAgICBpZiAodHlwZW9mIGNsYXNzZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBjbGFzc2VzKHsgaW5zdGFuY2U6IHRoaXMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZW9mIGNsYXNzZXMgPT09ICdzdHJpbmcnID8gY2xhc3NlcyA6IGFyZztcbiAgICB9XG5cbiAgICBzeChhcmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IHRoaXMuY29tcG9uZW50U3R5bGU/LmlubGluZVN0eWxlcz8uW2FyZ107XG4gICAgICAgIGlmICh0eXBlb2Ygc3R5bGVzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVzKHsgaW5zdGFuY2U6IHRoaXMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHN0eWxlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdHlsZXMgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGN4KGtleSA9ICcnLCBwYXJhbXMgPSB7fSkge1xuICAgIC8vICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5jb21wb25lbnRTdHlsZT8uY2xhc3NlcyA6IHRoaXMuY29tcG9uZW50U3R5bGU/LmNsYXNzZXM7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb25WYWx1ZShjbGFzc2VzKHsgaW5zdGFuY2U6IHRoaXMuX2dldEhvc3RJbnN0YW5jZSh0aGlzKSB9KSwga2V5LCB7IC4uLnBhcmFtcyB9KTtcbiAgICAvLyB9XG5cbiAgICBnZXQgcGFyZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpc1sncGFyZW50SW5zdGFuY2UnXTtcbiAgICB9XG59XG4iXX0=
|