@eqproject/eqp-dynamic-module 2.11.4 → 2.11.6
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/README.md +4 -0
- package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +143 -13
- package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +76 -3
- package/esm2020/lib/components/private/add-formula-field/add-formula-field.component.mjs +74 -13
- package/esm2020/lib/components/private/dynamic-module-field-extra-fix/dynamic-module-field-extra-fix.component.mjs +16 -4
- package/esm2020/lib/components/private/field-graphics-editor/field-graphics-editor.component.mjs +735 -0
- package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +4 -4
- package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +3 -3
- package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +3 -3
- package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +3 -3
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +3 -3
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +3 -3
- package/esm2020/lib/directives/speech-to-text/speech-to-text.directive.mjs +7 -2
- package/esm2020/lib/eqp-dynamic-module.module.mjs +4 -1
- package/esm2020/lib/utils/css-color.mjs +101 -0
- package/esm2020/lib/utils/css-declarations.mjs +119 -0
- package/esm2020/lib/utils/css-property-catalog.mjs +134 -0
- package/esm2020/lib/utils/field-style-catalog.mjs +491 -0
- package/esm2020/public-api.mjs +6 -1
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +1947 -75
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +1912 -82
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +39 -0
- package/lib/components/private/add-form-field/add-form-field.component.d.ts +19 -0
- package/lib/components/private/add-formula-field/add-formula-field.component.d.ts +5 -1
- package/lib/components/private/field-graphics-editor/field-graphics-editor.component.d.ts +192 -0
- package/lib/directives/speech-to-text/speech-to-text.directive.d.ts +3 -1
- package/lib/eqp-dynamic-module.module.d.ts +66 -65
- package/lib/utils/css-color.d.ts +15 -0
- package/lib/utils/css-declarations.d.ts +23 -0
- package/lib/utils/css-property-catalog.d.ts +36 -0
- package/lib/utils/field-style-catalog.d.ts +130 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -19,6 +19,10 @@ import * as i0 from "@angular/core";
|
|
|
19
19
|
|
|
20
20
|
*/
|
|
21
21
|
export class SpeechToTextDirective {
|
|
22
|
+
/** True mentre QUESTA icona è quella in ascolto — usato dal template per mostrare tmw-icon in variante 'filled' */
|
|
23
|
+
get isListening() {
|
|
24
|
+
return GlobalService.speechDirective === this;
|
|
25
|
+
}
|
|
22
26
|
SpeechToggle() {
|
|
23
27
|
this.SpeechToTextToggler();
|
|
24
28
|
}
|
|
@@ -168,11 +172,12 @@ export class SpeechToTextDirective {
|
|
|
168
172
|
}
|
|
169
173
|
}
|
|
170
174
|
SpeechToTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpeechToTextDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
171
|
-
SpeechToTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpeechToTextDirective, selector: "[SpeechToText]", inputs: { bindedText: "bindedText" }, outputs: { bindedTextChange: "bindedTextChange" }, host: { listeners: { "click": "SpeechToggle()" } }, ngImport: i0 });
|
|
175
|
+
SpeechToTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpeechToTextDirective, selector: "[SpeechToText]", inputs: { bindedText: "bindedText" }, outputs: { bindedTextChange: "bindedTextChange" }, host: { listeners: { "click": "SpeechToggle()" } }, exportAs: ["speechToText"], ngImport: i0 });
|
|
172
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpeechToTextDirective, decorators: [{
|
|
173
177
|
type: Directive,
|
|
174
178
|
args: [{
|
|
175
179
|
selector: "[SpeechToText]",
|
|
180
|
+
exportAs: "speechToText",
|
|
176
181
|
}]
|
|
177
182
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { bindedText: [{
|
|
178
183
|
type: Input,
|
|
@@ -183,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
183
188
|
type: HostListener,
|
|
184
189
|
args: ["click"]
|
|
185
190
|
}] } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXRvLXRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvZGlyZWN0aXZlcy9zcGVlY2gtdG8tdGV4dC9zcGVlY2gtdG8tdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUk5RDs7Ozs7Ozs7Ozs7Ozs7O0VBZUU7QUFLRixNQUFNLE9BQU8scUJBQXFCO0lBeUJULFlBQVk7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTVCaEMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVPLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDbkMscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUUsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFJM0IsZ0JBQVcsR0FBVyxpQkFBaUIsQ0FBQztRQUN4QyxrQkFBYSxHQUFXLG1CQUFtQixDQUFDO1FBSTVDLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLDBFQUEwRTtRQUMxRSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLENBQUMsK0RBQStEO1FBRTlGLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBVzFCLElBQUksQ0FBQyxVQUFVLEdBQUcs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QkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNULGdCQUFnQjtzQkFBekIsTUFBTTtnQkFvQmdCLFlBQVk7c0JBQWxDLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPdXRwdXQsXHJcbiAgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG4gIGltcG9ydCB7IGludGVydmFsLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG4gIGltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2VcIjtcclxuICBcclxuICBkZWNsYXJlIHZhciB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbjogYW55O1xyXG4gIFxyXG4gIC8qIEVTRU1QSU8gRCdVU09cclxuICBcclxuICAgIDx0ZXh0YXJlYVxyXG4gICAgICBbKG5nTW9kZWwpXT1cInRleHRcIlxyXG4gICAgPjwvdGV4dGFyZWE+XHJcbiAgXHJcbiAgICA8bWF0LWljb25cclxuICAgICAgKm5nSWY9XCJ0cnVlXCIgPCEtLSBTZW56YSBOR0lGIG5vbiBmdW56aW9uYSAtLT5cclxuICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1yYWRpdXM6IDgwcHg7IHBhZGRpbmc6IDVweDtcIlxyXG4gICAgICBbU3BlZWNoVG9UZXh0XVxyXG4gICAgICBbKGJpbmRlZFRleHQpXT1cInRleHRcIlxyXG4gICAgPlxyXG4gICAgICBrZXlib2FyZF92b2ljZVxyXG4gICAgPC9tYXQtaWNvbj5cclxuICBcclxuICAqL1xyXG4gIFxyXG4gIEBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW1NwZWVjaFRvVGV4dF1cIixcclxuICB9KVxyXG4gIGV4cG9ydCBjbGFzcyBTcGVlY2hUb1RleHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3l7XHJcbiAgXHJcbiAgICBkZWJ1ZyA9IGZhbHNlO1xyXG4gIFxyXG4gICAgQElucHV0KFwiYmluZGVkVGV4dFwiKSBiaW5kZWRUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQE91dHB1dCgpIGJpbmRlZFRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBiZWdpblNlbnRlbmNlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgLy8gYmluZGVkVGV4dCA9IFwiXCI7XHJcbiAgICBwcml2YXRlIGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIFxyXG4gICAgcGF1c2VkQ2xhc3M6IHN0cmluZyA9IFwia2V5Ym9hcmRfcGF1c2VkXCI7XHJcbiAgICBzcGVha2luZ0NsYXNzOiBzdHJpbmcgPSBcImtleWJvYXJkX3NwZWFraW5nXCI7XHJcbiAgXHJcbiAgICByZWNvZ25pdGlvbjtcclxuICAgIHRlbXBXb3JkczogYW55O1xyXG4gICAgdHJhbnNjcmlwdF9hcnIgPSBbXTtcclxuICAgIGNvbmZpZGVuY2VfYXJyID0gW107XHJcbiAgXHJcbiAgICAvLyBpc1N0YXJ0ZWQgPSBmYWxzZTsgLy88PCB0aGlzIEZsYWcgdG8gY2hlY2sgaWYgdGhlIHVzZXIgc3RvcCB0aGUgc2VydmljZVxyXG4gICAgaXNTdG9wcGVkU3BlZWNoUmVjb2cgPSBmYWxzZTtcclxuICAgIGlzU3RvcHBlZEF1dG9tYXRpY2FsbHkgPSB0cnVlOyAvLzw8IHRoaXMgRmxhZyB0byBjaGVjayBpZiB0aGUgc2VydmljZSBzdG9wcGVkIGF1dG9tYXRpY2ljYWxseS5cclxuICBcclxuICAgIHRpbWVJbnRlcnZhbCA9IGludGVydmFsKDUwKTtcclxuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIFxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpIFNwZWVjaFRvZ2dsZSgpIHtcclxuICAgICAgdGhpcy5TcGVlY2hUb1RleHRUb2dnbGVyKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgICAgICkge1xyXG4gIFxyXG4gICAgICB0aGlzLmRvbUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIFxyXG4gICAgICB0aGlzLnByaW50RGVidWcod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gIFxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIC8vIHF1ZXN0YSBvcGVyYXppb25lIGZhbGxpc2NlIHNlIG5vbiBjJ8OoIHdlYmtpdFxyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb24oKTtcclxuICBcclxuICAgICAgICB0aGlzLnByaW50RGVidWcodGhpcy5yZWNvZ25pdGlvbik7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLmludGVyaW1SZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLmxhbmcgPSBcIml0LUlUXCI7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5hZGRFdmVudExpc3RlbmVyKFwicmVzdWx0XCIsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRyYW5zY3JpcHQgPSBBcnJheS5mcm9tKGUucmVzdWx0cylcclxuICAgICAgICAgICAgLm1hcCgocmVzdWx0OiBhbnkpID0+IHJlc3VsdFswXSlcclxuICAgICAgICAgICAgLm1hcCgocmVzdWx0KSA9PiByZXN1bHQudHJhbnNjcmlwdClcclxuICAgICAgICAgICAgLmpvaW4oXCJcIik7XHJcbiAgXHJcbiAgICAgICAgICB0aGlzLnByaW50RGVidWcoXCJjb25zdHJ1Y29yIHRyYW5zY3JpcHQ6IFwiICsgdHJhbnNjcmlwdCk7XHJcbiAgXHJcbiAgXHJcbiAgICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyLnB1c2godHJhbnNjcmlwdCk7XHJcbiAgICAgICAgICB0aGlzLnRlbXBXb3JkcyA9IHRyYW5zY3JpcHQ7XHJcbiAgXHJcbiAgICAgICAgICBjb25zdCBjb25maWRlbmNlID0gQXJyYXkuZnJvbShlLnJlc3VsdHMpXHJcbiAgICAgICAgICAgIC5tYXAoKHJlc3VsdDogYW55KSA9PiByZXN1bHRbMF0pXHJcbiAgICAgICAgICAgIC5tYXAoKHJlc3VsdCkgPT4gcmVzdWx0LmNvbmZpZGVuY2UpXHJcbiAgICAgICAgICAgIC5qb2luKFwiXCIpO1xyXG4gICAgICAgICAgdGhpcy5jb25maWRlbmNlX2Fyci5wdXNoKGNvbmZpZGVuY2UpO1xyXG4gICAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcImVuZFwiLCAoY29uZGl0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vdGhpcy53b3JkQ29uY2F0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWRBdXRvbWF0aWNhbGx5KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkQXV0b21hdGljYWxseSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5wcmludERlYnVnKGVycm9yKTtcclxuICBcclxuICAgICAgICB0aGlzLmRvbUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICB9XHJcbiAgXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5wcmludERlYnVnKFwic3BlZWNoIG9uRGVzdHJveVwiKTtcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMucmVjb2duaXRpb24pe1xyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24uYWJvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgU3BlZWNoVG9UZXh0VG9nZ2xlcigpIHtcclxuICAgICAgaWYgKCFHbG9iYWxTZXJ2aWNlLmlzU3BlZWNoVG9UZXh0U3RhcnRlZCkge1xyXG4gIFxyXG4gICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcInN0YXJ0XCIpO1xyXG4gIFxyXG4gICAgICAgIHRoaXMuYmVnaW5TZW50ZW5jZSA9IHRoaXMuYmluZGVkVGV4dDtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmJpbmRlZFRleHQgPT0gbnVsbCB8fFxyXG4gICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID09IFwiXCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuYmVnaW5TZW50ZW5jZSA9IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLmJpbmRlZFRleHQgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgICAgdGhpcy5jb25maWRlbmNlX2FyciA9IFtdO1xyXG4gIFxyXG4gICAgICAgIGxldCBuZXd0ZXh0ID0gXCJcIjtcclxuICAgICAgICB0aGlzLnN0YXJ0KCk7XHJcbiAgICAgICAgLy90aGlzLmlzU3RpbGxSZWNvZ2luemUgPSB0aGlzLnN0YXJ0KCkgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRpbWVJbnRlcnZhbC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYmluZGVkVGV4dCA9PSBudWxsIHx8IHRoaXMuYmluZGVkVGV4dCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID1cclxuICAgICAgICAgICAgICB0aGlzLmJlZ2luU2VudGVuY2UgK1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnJbdGhpcy50cmFuc2NyaXB0X2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgdGhpcy5iaW5kZWRUZXh0Q2hhbmdlLmVtaXQodGhpcy5iaW5kZWRUZXh0KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG5ld3RleHQgPSB0aGlzLnRyYW5zY3JpcHRfYXJyW3RoaXMudHJhbnNjcmlwdF9hcnIubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIGlmIChuZXd0ZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYmluZGVkVGV4dENoYW5nZS5lbWl0KHRoaXMuYmVnaW5TZW50ZW5jZSArIG5ld3RleHQpO1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnJbdGhpcy50cmFuc2NyaXB0X2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJpbmRlZFRleHRDaGFuZ2UuZW1pdCh0aGlzLmJpbmRlZFRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYoR2xvYmFsU2VydmljZS5zcGVlY2hEaXJlY3RpdmUgPT09IHRoaXMpe1xyXG4gICAgICAgICAgdGhpcy5wcmludERlYnVnKFwic3RvcFwiKTtcclxuICAgICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcImJpbmRlZDogXCIgKyB0aGlzLmJpbmRlZFRleHQpO1xyXG4gICAgXHJcbiAgICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgICAgICB0aGlzLnN0b3AoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcInN0b3Agb3RoZXJcIik7XHJcbiAgICAgICAgICBHbG9iYWxTZXJ2aWNlLnNwZWVjaERpcmVjdGl2ZS5TcGVlY2hUb1RleHRUb2dnbGVyKCk7XHJcbiAgICAgICAgICBsZXQgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKEdsb2JhbFNlcnZpY2Uuc3BlZWNoRGlyZWN0aXZlID09IG51bGwpe1xyXG4gICAgICAgICAgICAgIHRoaXMuU3BlZWNoVG9UZXh0VG9nZ2xlcigpO1xyXG4gICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICBwcml2YXRlIHN0YXJ0KCkge1xyXG4gICAgICBpZiAoIUdsb2JhbFNlcnZpY2UuaXNTcGVlY2hUb1RleHRTdGFydGVkKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLnBhdXNlZENsYXNzKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuc3BlYWtpbmdDbGFzcyk7XHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xyXG4gICAgICAgIEdsb2JhbFNlcnZpY2UuaXNTcGVlY2hUb1RleHRTdGFydGVkID0gdHJ1ZTtcclxuICAgICAgICBHbG9iYWxTZXJ2aWNlLnNwZWVjaERpcmVjdGl2ZSA9IHRoaXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHN0b3AoKSB7ICAgIFxyXG4gICAgICBpZiAoR2xvYmFsU2VydmljZS5pc1NwZWVjaFRvVGV4dFN0YXJ0ZWQpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuc3BlYWtpbmdDbGFzcyk7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLnBhdXNlZENsYXNzKTtcclxuICAgICAgICB0aGlzLmlzU3RvcHBlZEF1dG9tYXRpY2FsbHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmRDb25jYXQoKTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcclxuICAgICAgICBHbG9iYWxTZXJ2aWNlLmlzU3BlZWNoVG9UZXh0U3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgICAgIEdsb2JhbFNlcnZpY2Uuc3BlZWNoRGlyZWN0aXZlID0gbnVsbDtcclxuICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcHJpdmF0ZSB3b3JkQ29uY2F0KCkge1xyXG4gICAgICB0aGlzLmJpbmRlZFRleHQgPSB0aGlzLmJpbmRlZFRleHQgKyBcIi4gXCI7XHJcbiAgICAgIC8vIHRoaXMuYmluZGVkVGV4dCA9IHRoaXMuYmluZGVkVGV4dCArIFwiIFwiICsgdGhpcy50ZW1wV29yZHMgKyBcIi5cIjtcclxuICAgICAgLy8gdGhpcy50ZW1wV29yZHMgPSBcIlwiO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcHJpdmF0ZSBwcmludERlYnVnKG1lc3NhZ2Upe1xyXG4gICAgICBpZih0aGlzLmRlYnVnKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAiXX0=
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXRvLXRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvZGlyZWN0aXZlcy9zcGVlY2gtdG8tdGV4dC9zcGVlY2gtdG8tdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUk5RDs7Ozs7Ozs7Ozs7Ozs7O0VBZUU7QUFNRixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLG1IQUFtSDtJQUNuSCxJQUFJLFdBQVc7UUFDYixPQUFPLGFBQWEsQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO0lBQ2hELENBQUM7SUF5QnNCLFlBQVk7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTVCaEMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVPLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDbkMscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUUsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFJM0IsZ0JBQVcsR0FBVyxpQkFBaUIsQ0FBQztRQUN4QyxrQkFBYSxHQUFXLG1CQUFtQixDQUFDO1FBSTVDLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLDBFQUEwRTtRQUMxRSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsMkJBQXNCLEdBQUcsSUFBSSxDQUFD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QkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsY0FBYztpQkFDekI7aUdBVXNCLFVBQVU7c0JBQTlCLEtBQUs7dUJBQUMsWUFBWTtnQkFDVCxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBb0JnQixZQUFZO3NCQUFsQyxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT3V0cHV0LFxyXG4gIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuICBpbXBvcnQgeyBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuICBpbXBvcnQgeyBHbG9iYWxTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlXCI7XHJcbiAgXHJcbiAgZGVjbGFyZSB2YXIgd2Via2l0U3BlZWNoUmVjb2duaXRpb246IGFueTtcclxuICBcclxuICAvKiBFU0VNUElPIEQnVVNPXHJcbiAgXHJcbiAgICA8dGV4dGFyZWFcclxuICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0XCJcclxuICAgID48L3RleHRhcmVhPlxyXG4gIFxyXG4gICAgPG1hdC1pY29uXHJcbiAgICAgICpuZ0lmPVwidHJ1ZVwiIDwhLS0gU2VuemEgTkdJRiBub24gZnVuemlvbmEgLS0+XHJcbiAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyOyBib3JkZXItcmFkaXVzOiA4MHB4OyBwYWRkaW5nOiA1cHg7XCJcclxuICAgICAgW1NwZWVjaFRvVGV4dF1cclxuICAgICAgWyhiaW5kZWRUZXh0KV09XCJ0ZXh0XCJcclxuICAgID5cclxuICAgICAga2V5Ym9hcmRfdm9pY2VcclxuICAgIDwvbWF0LWljb24+XHJcbiAgXHJcbiAgKi9cclxuICBcclxuICBARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltTcGVlY2hUb1RleHRdXCIsXHJcbiAgICBleHBvcnRBczogXCJzcGVlY2hUb1RleHRcIixcclxuICB9KVxyXG4gIGV4cG9ydCBjbGFzcyBTcGVlY2hUb1RleHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3l7XHJcblxyXG4gICAgLyoqIFRydWUgbWVudHJlIFFVRVNUQSBpY29uYSDDqCBxdWVsbGEgaW4gYXNjb2x0byDigJQgdXNhdG8gZGFsIHRlbXBsYXRlIHBlciBtb3N0cmFyZSB0bXctaWNvbiBpbiB2YXJpYW50ZSAnZmlsbGVkJyAqL1xyXG4gICAgZ2V0IGlzTGlzdGVuaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gR2xvYmFsU2VydmljZS5zcGVlY2hEaXJlY3RpdmUgPT09IHRoaXM7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBkZWJ1ZyA9IGZhbHNlO1xyXG4gIFxyXG4gICAgQElucHV0KFwiYmluZGVkVGV4dFwiKSBiaW5kZWRUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQE91dHB1dCgpIGJpbmRlZFRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBiZWdpblNlbnRlbmNlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgLy8gYmluZGVkVGV4dCA9IFwiXCI7XHJcbiAgICBwcml2YXRlIGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIFxyXG4gICAgcGF1c2VkQ2xhc3M6IHN0cmluZyA9IFwia2V5Ym9hcmRfcGF1c2VkXCI7XHJcbiAgICBzcGVha2luZ0NsYXNzOiBzdHJpbmcgPSBcImtleWJvYXJkX3NwZWFraW5nXCI7XHJcbiAgXHJcbiAgICByZWNvZ25pdGlvbjtcclxuICAgIHRlbXBXb3JkczogYW55O1xyXG4gICAgdHJhbnNjcmlwdF9hcnIgPSBbXTtcclxuICAgIGNvbmZpZGVuY2VfYXJyID0gW107XHJcbiAgXHJcbiAgICAvLyBpc1N0YXJ0ZWQgPSBmYWxzZTsgLy88PCB0aGlzIEZsYWcgdG8gY2hlY2sgaWYgdGhlIHVzZXIgc3RvcCB0aGUgc2VydmljZVxyXG4gICAgaXNTdG9wcGVkU3BlZWNoUmVjb2cgPSBmYWxzZTtcclxuICAgIGlzU3RvcHBlZEF1dG9tYXRpY2FsbHkgPSB0cnVlOyAvLzw8IHRoaXMgRmxhZyB0byBjaGVjayBpZiB0aGUgc2VydmljZSBzdG9wcGVkIGF1dG9tYXRpY2ljYWxseS5cclxuICBcclxuICAgIHRpbWVJbnRlcnZhbCA9IGludGVydmFsKDUwKTtcclxuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIFxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpIFNwZWVjaFRvZ2dsZSgpIHtcclxuICAgICAgdGhpcy5TcGVlY2hUb1RleHRUb2dnbGVyKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgICAgICkge1xyXG4gIFxyXG4gICAgICB0aGlzLmRvbUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIFxyXG4gICAgICB0aGlzLnByaW50RGVidWcod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gIFxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIC8vIHF1ZXN0YSBvcGVyYXppb25lIGZhbGxpc2NlIHNlIG5vbiBjJ8OoIHdlYmtpdFxyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb24oKTtcclxuICBcclxuICAgICAgICB0aGlzLnByaW50RGVidWcodGhpcy5yZWNvZ25pdGlvbik7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLmludGVyaW1SZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLmxhbmcgPSBcIml0LUlUXCI7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5hZGRFdmVudExpc3RlbmVyKFwicmVzdWx0XCIsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRyYW5zY3JpcHQgPSBBcnJheS5mcm9tKGUucmVzdWx0cylcclxuICAgICAgICAgICAgLm1hcCgocmVzdWx0OiBhbnkpID0+IHJlc3VsdFswXSlcclxuICAgICAgICAgICAgLm1hcCgocmVzdWx0KSA9PiByZXN1bHQudHJhbnNjcmlwdClcclxuICAgICAgICAgICAgLmpvaW4oXCJcIik7XHJcbiAgXHJcbiAgICAgICAgICB0aGlzLnByaW50RGVidWcoXCJjb25zdHJ1Y29yIHRyYW5zY3JpcHQ6IFwiICsgdHJhbnNjcmlwdCk7XHJcbiAgXHJcbiAgXHJcbiAgICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyLnB1c2godHJhbnNjcmlwdCk7XHJcbiAgICAgICAgICB0aGlzLnRlbXBXb3JkcyA9IHRyYW5zY3JpcHQ7XHJcbiAgXHJcbiAgICAgICAgICBjb25zdCBjb25maWRlbmNlID0gQXJyYXkuZnJvbShlLnJlc3VsdHMpXHJcbiAgICAgICAgICAgIC5tYXAoKHJlc3VsdDogYW55KSA9PiByZXN1bHRbMF0pXHJcbiAgICAgICAgICAgIC5tYXAoKHJlc3VsdCkgPT4gcmVzdWx0LmNvbmZpZGVuY2UpXHJcbiAgICAgICAgICAgIC5qb2luKFwiXCIpO1xyXG4gICAgICAgICAgdGhpcy5jb25maWRlbmNlX2Fyci5wdXNoKGNvbmZpZGVuY2UpO1xyXG4gICAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcImVuZFwiLCAoY29uZGl0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vdGhpcy53b3JkQ29uY2F0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWRBdXRvbWF0aWNhbGx5KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkQXV0b21hdGljYWxseSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5wcmludERlYnVnKGVycm9yKTtcclxuICBcclxuICAgICAgICB0aGlzLmRvbUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICB9XHJcbiAgXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5wcmludERlYnVnKFwic3BlZWNoIG9uRGVzdHJveVwiKTtcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMucmVjb2duaXRpb24pe1xyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24uYWJvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgU3BlZWNoVG9UZXh0VG9nZ2xlcigpIHtcclxuICAgICAgaWYgKCFHbG9iYWxTZXJ2aWNlLmlzU3BlZWNoVG9UZXh0U3RhcnRlZCkge1xyXG4gIFxyXG4gICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcInN0YXJ0XCIpO1xyXG4gIFxyXG4gICAgICAgIHRoaXMuYmVnaW5TZW50ZW5jZSA9IHRoaXMuYmluZGVkVGV4dDtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmJpbmRlZFRleHQgPT0gbnVsbCB8fFxyXG4gICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID09IFwiXCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuYmVnaW5TZW50ZW5jZSA9IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLmJpbmRlZFRleHQgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgICAgdGhpcy5jb25maWRlbmNlX2FyciA9IFtdO1xyXG4gIFxyXG4gICAgICAgIGxldCBuZXd0ZXh0ID0gXCJcIjtcclxuICAgICAgICB0aGlzLnN0YXJ0KCk7XHJcbiAgICAgICAgLy90aGlzLmlzU3RpbGxSZWNvZ2luemUgPSB0aGlzLnN0YXJ0KCkgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRpbWVJbnRlcnZhbC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYmluZGVkVGV4dCA9PSBudWxsIHx8IHRoaXMuYmluZGVkVGV4dCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID1cclxuICAgICAgICAgICAgICB0aGlzLmJlZ2luU2VudGVuY2UgK1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnJbdGhpcy50cmFuc2NyaXB0X2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgdGhpcy5iaW5kZWRUZXh0Q2hhbmdlLmVtaXQodGhpcy5iaW5kZWRUZXh0KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG5ld3RleHQgPSB0aGlzLnRyYW5zY3JpcHRfYXJyW3RoaXMudHJhbnNjcmlwdF9hcnIubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIGlmIChuZXd0ZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYmluZGVkVGV4dENoYW5nZS5lbWl0KHRoaXMuYmVnaW5TZW50ZW5jZSArIG5ld3RleHQpO1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnJbdGhpcy50cmFuc2NyaXB0X2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJpbmRlZFRleHRDaGFuZ2UuZW1pdCh0aGlzLmJpbmRlZFRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYoR2xvYmFsU2VydmljZS5zcGVlY2hEaXJlY3RpdmUgPT09IHRoaXMpe1xyXG4gICAgICAgICAgdGhpcy5wcmludERlYnVnKFwic3RvcFwiKTtcclxuICAgICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcImJpbmRlZDogXCIgKyB0aGlzLmJpbmRlZFRleHQpO1xyXG4gICAgXHJcbiAgICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgICAgICB0aGlzLnN0b3AoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcInN0b3Agb3RoZXJcIik7XHJcbiAgICAgICAgICBHbG9iYWxTZXJ2aWNlLnNwZWVjaERpcmVjdGl2ZS5TcGVlY2hUb1RleHRUb2dnbGVyKCk7XHJcbiAgICAgICAgICBsZXQgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKEdsb2JhbFNlcnZpY2Uuc3BlZWNoRGlyZWN0aXZlID09IG51bGwpe1xyXG4gICAgICAgICAgICAgIHRoaXMuU3BlZWNoVG9UZXh0VG9nZ2xlcigpO1xyXG4gICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICBwcml2YXRlIHN0YXJ0KCkge1xyXG4gICAgICBpZiAoIUdsb2JhbFNlcnZpY2UuaXNTcGVlY2hUb1RleHRTdGFydGVkKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLnBhdXNlZENsYXNzKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuc3BlYWtpbmdDbGFzcyk7XHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xyXG4gICAgICAgIEdsb2JhbFNlcnZpY2UuaXNTcGVlY2hUb1RleHRTdGFydGVkID0gdHJ1ZTtcclxuICAgICAgICBHbG9iYWxTZXJ2aWNlLnNwZWVjaERpcmVjdGl2ZSA9IHRoaXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHN0b3AoKSB7ICAgIFxyXG4gICAgICBpZiAoR2xvYmFsU2VydmljZS5pc1NwZWVjaFRvVGV4dFN0YXJ0ZWQpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuc3BlYWtpbmdDbGFzcyk7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLnBhdXNlZENsYXNzKTtcclxuICAgICAgICB0aGlzLmlzU3RvcHBlZEF1dG9tYXRpY2FsbHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmRDb25jYXQoKTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcclxuICAgICAgICBHbG9iYWxTZXJ2aWNlLmlzU3BlZWNoVG9UZXh0U3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgICAgIEdsb2JhbFNlcnZpY2Uuc3BlZWNoRGlyZWN0aXZlID0gbnVsbDtcclxuICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcHJpdmF0ZSB3b3JkQ29uY2F0KCkge1xyXG4gICAgICB0aGlzLmJpbmRlZFRleHQgPSB0aGlzLmJpbmRlZFRleHQgKyBcIi4gXCI7XHJcbiAgICAgIC8vIHRoaXMuYmluZGVkVGV4dCA9IHRoaXMuYmluZGVkVGV4dCArIFwiIFwiICsgdGhpcy50ZW1wV29yZHMgKyBcIi5cIjtcclxuICAgICAgLy8gdGhpcy50ZW1wV29yZHMgPSBcIlwiO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcHJpdmF0ZSBwcmludERlYnVnKG1lc3NhZ2Upe1xyXG4gICAgICBpZih0aGlzLmRlYnVnKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAiXX0=
|
|
@@ -10,6 +10,7 @@ import { TmwNumericMaskDirective } from 'tmw-numeric';
|
|
|
10
10
|
import { TmwIconComponent } from 'tmw-icons';
|
|
11
11
|
import { EqpDynamicModuleConfiguratorComponent } from './components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component';
|
|
12
12
|
import { AddFormFieldComponent } from './components/private/add-form-field/add-form-field.component';
|
|
13
|
+
import { FieldGraphicsEditorComponent } from './components/private/field-graphics-editor/field-graphics-editor.component';
|
|
13
14
|
import { TextFieldTemplateComponent } from './components/private/field-templates/text-field-template/text-field-template.component';
|
|
14
15
|
import { BooleanFieldTemplateComponent } from './components/private/field-templates/boolean-field-template/boolean-field-template.component';
|
|
15
16
|
import { DateFieldTemplateComponent } from './components/private/field-templates/date-field-template/date-field-template.component';
|
|
@@ -73,6 +74,7 @@ EqpDynamicModuleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
|
|
|
73
74
|
EqpDynamicModuleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: EqpDynamicModuleModule, declarations: [EqpDynamicModuleComponent,
|
|
74
75
|
EqpDynamicModuleConfiguratorComponent,
|
|
75
76
|
AddFormFieldComponent,
|
|
77
|
+
FieldGraphicsEditorComponent,
|
|
76
78
|
TextFieldTemplateComponent,
|
|
77
79
|
BooleanFieldTemplateComponent,
|
|
78
80
|
DateFieldTemplateComponent,
|
|
@@ -168,6 +170,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
168
170
|
EqpDynamicModuleComponent,
|
|
169
171
|
EqpDynamicModuleConfiguratorComponent,
|
|
170
172
|
AddFormFieldComponent,
|
|
173
|
+
FieldGraphicsEditorComponent,
|
|
171
174
|
TextFieldTemplateComponent,
|
|
172
175
|
BooleanFieldTemplateComponent,
|
|
173
176
|
DateFieldTemplateComponent,
|
|
@@ -252,4 +255,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
252
255
|
]
|
|
253
256
|
}]
|
|
254
257
|
}] });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2VxcC1keW5hbWljLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUdBQWlHLENBQUM7QUFDeEosT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDckcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDcEksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOEZBQThGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDcEksT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0dBQWdHLENBQUM7QUFDaEos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O3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZ0NBQWdDO3dCQUNoQywwQkFBMEI7d0JBQzFCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QixxQ0FBcUM7d0JBQ3JDLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLDJCQUEyQjtxQkFDNUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXFwRHluYW1pY01vZHVsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9leHBvcnRlZC9lcXAtZHluYW1pYy1tb2R1bGUvZXFwLWR5bmFtaWMtbW9kdWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRtd1RhYmxlQ29tcG9uZW50IH0gZnJvbSAndG13LXRhYmxlJztcclxuaW1wb3J0IHsgVG13QXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICd0bXctYXR0YWNobWVudHMnO1xyXG5pbXBvcnQgeyBUbXdTZWxlY3RDb21wb25lbnQgfSBmcm9tICd0bXctc2VsZWN0JztcclxuaW1wb3J0IHsgVG13TnVtZXJpY01hc2tEaXJlY3RpdmUgfSBmcm9tICd0bXctbnVtZXJpYyc7XHJcbmltcG9ydCB7IFRtd0ljb25Db21wb25lbnQgfSBmcm9tICd0bXctaWNvbnMnO1xyXG5pbXBvcnQgeyBFcXBEeW5hbWljTW9kdWxlQ29uZmlndXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2V4cG9ydGVkL2VxcC1keW5hbWljLW1vZHVsZS1jb25maWd1cmF0b3IvZXFwLWR5bmFtaWMtbW9kdWxlLWNvbmZpZ3VyYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9hZGQtZm9ybS1maWVsZC9hZGQtZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0RmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy90ZXh0LWZpZWxkLXRlbXBsYXRlL3RleHQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm9vbGVhbkZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS9ib29sZWFuLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvdGV4dGFyZWEtZmllbGQtdGVtcGxhdGUvdGV4dGFyZWEtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnVtZXJpY0ZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvbnVtZXJpYy1maWVsZC10ZW1wbGF0ZS9udW1lcmljLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZUZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvbGlzdC12YWx1ZS1maWVsZC10ZW1wbGF0ZS9saXN0LXZhbHVlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZUZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvaW1hZ2UtZmllbGQtdGVtcGxhdGUvaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvbGlzdC1mb3JtLXJlY29yZC9saXN0LWZvcm0tcmVjb3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkZEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvYWRkLWZvcm0tcmVjb3JkL2FkZC1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVGaWVsZEZpeENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2R5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeC9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGb3JtdWxhQ29tcG9uZW50LERpYWxvZ0RhdGFFeGFtcGxlRGlhbG9nIH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvYWRkLWZvcm11bGEtZmllbGQvYWRkLWZvcm11bGEtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwYWlyRm9ybUZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tcmVjb3Jkcy9yZXBhaXItZm9ybS1maWVsZHMvcmVwYWlyLWZvcm0tZmllbGRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3Rm9ybVJlY29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tcmVjb3Jkcy9saXN0LXZpZXctZm9ybS1yZWNvcmQvbGlzdC12aWV3LWZvcm0tcmVjb3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpZXdGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL3ZpZXctZm9ybS1yZWNvcmQvdmlldy1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaW5nbGVSZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvbGlzdC12aWV3LWZvcm0tcmVjb3JkL3NpbmdsZS1yZWNvcmQvc2luZ2xlLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJGb3JtU3RhdGlzdGljQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci1mb3JtLXN0YXRpc3RpYy9maWx0ZXItZm9ybS1zdGF0aXN0aWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUZpbHRlckZpeENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9keW5hbWljLW1vZHVsZS1maWx0ZXItZml4L2R5bmFtaWMtbW9kdWxlLWZpbHRlci1maXguY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dEZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvdGV4dC1maWx0ZXItdGVtcGxhdGUvdGV4dC1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnVtZXJpY0ZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvbnVtZXJpYy1maWx0ZXItdGVtcGxhdGUvbnVtZXJpYy1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm9vbGVhbkZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvYm9vbGVhbi1maWx0ZXItdGVtcGxhdGUvYm9vbGVhbi1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvZGF0ZS1maWx0ZXItdGVtcGxhdGUvZGF0ZS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdFZhbHVlRmlsdGVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXN0YXRpc3RpY3MvZmlsdGVyLXRlbXBsYXRlcy9saXN0LXZhbHVlLWZpbHRlci10ZW1wbGF0ZS9saXN0LXZhbHVlLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvdGV4dGFyZWEtZmlsdGVyLXRlbXBsYXRlL3RleHRhcmVhLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsdGVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXN0YXRpc3RpY3MvZmlsdGVyLXRlbXBsYXRlcy9hdHRhY2htZW50LWZpbHRlci10ZW1wbGF0ZS9hdHRhY2htZW50LWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvaW1hZ2UtZmlsdGVyLXRlbXBsYXRlL2ltYWdlLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Rm9ybVJlY29yZEZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvbGlzdC1mb3JtLXJlY29yZC1maWx0ZXItdGVtcGxhdGUvbGlzdC1mb3JtLXJlY29yZC1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JhcGhzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZ3JhcGhzL2dyYXBocy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcmFwaENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaC9ncmFwaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYW52YXNKU0FuZ3VsYXJTdG9ja0NoYXJ0c01vZHVsZSwgQ2FudmFzSlNDaGFydCwgQ2FudmFzSlNTdG9ja0NoYXJ0IH0gZnJvbSAnQGNhbnZhc2pzL2FuZ3VsYXItc3RvY2tjaGFydHMnO1xyXG5pbXBvcnQgeyBJbWFnZUZpZWxkU2VsZWN0b3JUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYWJlbEZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvbGFiZWwtZmllbGQtdGVtcGxhdGUvbGFiZWwtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VTZWxlY3RvckZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvaW1hZ2Utc2VsZWN0b3ItZmlsdGVyLXRlbXBsYXRlL2ltYWdlLXNlbGVjdG9yLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbXdJbWFnZURyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3Rtdy1pbWFnZS1kcmF3ZXIvdG13LWltYWdlLWRyYXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZVdpdGhNYXJrZXJzRmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS13aXRoLW1hcmtlcnMtZmllbGQtdGVtcGxhdGUvaW1hZ2Utd2l0aC1tYXJrZXJzLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRtd0ltYWdlTWFya2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdG13LWltYWdlLW1hcmtlci90bXctaW1hZ2UtbWFya2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IER5bmFtaWNMb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHluYW1pYy1sb2FkZXIvZHluYW1pYy1sb2FkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGJnZXR0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9kYmdldHRlci9kYmdldHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbXdEYXRlVGltZVBpY2tlckNvbXBvbmVudCwgVG13UGlja2VyQ29tcG9uZW50LCBUbXdEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwidG13LXBpY2tlclwiO1xyXG5pbXBvcnQgeyBUcmlnZ2VyQ3JlYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLWNyZWF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZVRyaWdnZXJGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvZHluYW1pYy1tb2R1bGUtdHJpZ2dlci1maXgvZHluYW1pYy1tb2R1bGUtdHJpZ2dlci1maXguY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dFRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy90ZXh0LXRyaWdnZXItdGVtcGxhdGUvdGV4dC10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWVyaWNUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci10ZW1wbGF0ZXMvbnVtZXJpYy10cmlnZ2VyLXRlbXBsYXRlL251bWVyaWMtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCb29sZWFuVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2Jvb2xlYW4tdHJpZ2dlci10ZW1wbGF0ZS9ib29sZWFuLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9kYXRlLXRyaWdnZXItdGVtcGxhdGUvZGF0ZS10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9saXN0LXZhbHVlLXRyaWdnZXItdGVtcGxhdGUvbGlzdC12YWx1ZS10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRhcmVhVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Rm9ybVJlY29yZFRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9saXN0LWZvcm0tcmVjb3JkLXRyaWdnZXItdGVtcGxhdGUvbGlzdC1mb3JtLXJlY29yZC10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWVjaFRvVGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zcGVlY2gtdG8tdGV4dC9zcGVlY2gtdG8tdGV4dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBITGlzdEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvaGxpc3QtZm9ybS1yZWNvcmQvaGxpc3QtZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uQnV0dG9uQ3JlYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2FjdGlvbi1idXR0b24tY3JlYXRvci9hY3Rpb24tYnV0dG9uLWNyZWF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uQnV0dG9uRmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9hY3Rpb24tYnV0dG9uLWZpZWxkLXRlbXBsYXRlL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUZpZWxkRXh0cmFGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC1leHRyYS1maXgvZHluYW1pYy1tb2R1bGUtZmllbGQtZXh0cmEtZml4LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZURiZ1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZGJnLXRlbXBsYXRlcy9saXN0LXZhbHVlLWRiZy10ZW1wbGF0ZS9saXN0LXZhbHVlLWRiZy10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEVxcER5bmFtaWNNb2R1bGVDb21wb25lbnQsXHJcbiAgICBFcXBEeW5hbWljTW9kdWxlQ29uZmlndXJhdG9yQ29tcG9uZW50LFxyXG4gICAgQWRkRm9ybUZpZWxkQ29tcG9uZW50LFxyXG4gICAgVGV4dEZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBCb29sZWFuRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIERhdGVGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgVGV4dGFyZWFGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTnVtZXJpY0ZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0VmFsdWVGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQXR0YWNobWVudEZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBJbWFnZUZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0Rm9ybVJlY29yZENvbXBvbmVudCxcclxuICAgIEhMaXN0Rm9ybVJlY29yZENvbXBvbmVudCxcclxuICAgIExpc3RWaWV3Rm9ybVJlY29yZENvbXBvbmVudCxcclxuICAgIEFkZEZvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBWaWV3Rm9ybVJlY29yZENvbXBvbmVudCxcclxuICAgIER5bmFtaWNNb2R1bGVGaWVsZEZpeENvbXBvbmVudCxcclxuICAgIFNwaW5uZXJDb21wb25lbnQsXHJcbiAgICBBZGRGb3JtdWxhQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nRGF0YUV4YW1wbGVEaWFsb2csXHJcbiAgICBSZXBhaXJGb3JtRmllbGRzQ29tcG9uZW50LFxyXG4gICAgU2luZ2xlUmVjb3JkQ29tcG9uZW50LFxyXG4gICAgRmlsdGVyRm9ybVN0YXRpc3RpY0NvbXBvbmVudCxcclxuICAgIER5bmFtaWNNb2R1bGVGaWx0ZXJGaXhDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTW9kdWxlVHJpZ2dlckZpeENvbXBvbmVudCxcclxuICAgIFRleHRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIE51bWVyaWNGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEJvb2xlYW5GaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIERhdGVGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExpc3RWYWx1ZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgVGV4dGFyZWFGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEF0dGFjaG1lbnRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEltYWdlRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0Rm9ybVJlY29yZEZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgR3JhcGhzQ29tcG9uZW50LFxyXG4gICAgR3JhcGhDb21wb25lbnQsXHJcbiAgICBJbWFnZUZpZWxkU2VsZWN0b3JUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExhYmVsRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEltYWdlU2VsZWN0b3JGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRtd0ltYWdlRHJhd2VyQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VXaXRoTWFya2Vyc0ZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBUbXdJbWFnZU1hcmtlckNvbXBvbmVudCxcclxuICAgIER5bmFtaWNMb2FkZXJEaXJlY3RpdmUsXHJcbiAgICBEYmdldHRlckNvbXBvbmVudCxcclxuICAgIFRyaWdnZXJDcmVhdG9yQ29tcG9uZW50LFxyXG4gICAgVGV4dFRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIE51bWVyaWNUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBCb29sZWFuVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgRGF0ZVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExpc3RWYWx1ZVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRleHRhcmVhVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdEZvcm1SZWNvcmRUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBTcGVlY2hUb1RleHREaXJlY3RpdmUsXHJcbiAgICBBY3Rpb25CdXR0b25DcmVhdG9yQ29tcG9uZW50LFxyXG4gICAgQWN0aW9uQnV0dG9uRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNNb2R1bGVGaWVsZEV4dHJhRml4Q29tcG9uZW50LFxyXG4gICAgTGlzdFZhbHVlRGJnVGVtcGxhdGVDb21wb25lbnRcclxuXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFRtd1RhYmxlQ29tcG9uZW50LFxyXG4gICAgVG13QXR0YWNobWVudHNDb21wb25lbnQsXHJcbiAgICBUbXdTZWxlY3RDb21wb25lbnQsXHJcbiAgICBUbXdOdW1lcmljTWFza0RpcmVjdGl2ZSxcclxuICAgIFRtd0ljb25Db21wb25lbnQsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIENhbnZhc0pTQW5ndWxhclN0b2NrQ2hhcnRzTW9kdWxlLFxyXG4gICAgVG13RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBUbXdQaWNrZXJDb21wb25lbnQsXHJcbiAgICBUbXdEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEVxcER5bmFtaWNNb2R1bGVDb21wb25lbnQsXHJcbiAgICBFcXBEeW5hbWljTW9kdWxlQ29uZmlndXJhdG9yQ29tcG9uZW50LFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBDYW52YXNKU0NoYXJ0LFxyXG4gICAgQ2FudmFzSlNTdG9ja0NoYXJ0LFxyXG4gICAgRHluYW1pY0xvYWRlckRpcmVjdGl2ZSxcclxuICAgIFRtd0RhdGVUaW1lUGlja2VyQ29tcG9uZW50LFxyXG4gICAgVG13UGlja2VyQ29tcG9uZW50LFxyXG4gICAgVG13RGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXFwRHluYW1pY01vZHVsZU1vZHVsZSB7IH1cclxuIl19
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2VxcC1keW5hbWljLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUdBQWlHLENBQUM7QUFDeEosT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDcEksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOEZBQThGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDcEksT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0dBQWdHLENBQUM7QUFDaEosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOEZBQThGLENBQUM7QUFDN0ksT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0dBQW9HLENBQUM7QUFDckosT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0dBQW9HLENBQUM7QUFDdEosT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFDdkksT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDeEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDckgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDOUgsT0FBTyxFQUFFLG1CQUFtQixFQUFDLHVCQUF1QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDakksT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDOUgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUZBQXlGLENBQUM7QUFDdEksT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDeEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0ZBQStGLENBQUM7QUFDdEksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDMUksT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0dBQW9HLENBQUM7QUFDckosT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkdBQTJHLENBQUM7QUFDeEosT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUhBQWlILENBQUM7QUFDakssT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUhBQWlILENBQUM7QUFDakssT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkdBQTJHLENBQUM7QUFDeEosT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdUhBQXVILENBQUM7QUFDekssT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUhBQW1ILENBQUM7QUFDcEssT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUhBQXVILENBQUM7QUFDMUssT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkdBQTZHLENBQUM7QUFDM0osT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUlBQW1JLENBQUM7QUFDMUwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEgsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNEdBQTRHLENBQUM7QUFDakssT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFDdkksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sK0hBQStILENBQUM7QUFDckwsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDM0csT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sb0hBQW9ILENBQUM7QUFDNUssT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDM0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxzR0FBc0csQ0FBQztBQUN4SixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4R0FBOEcsQ0FBQztBQUM1SixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvSEFBb0gsQ0FBQztBQUNySyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvSEFBb0gsQ0FBQztBQUNySyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4R0FBOEcsQ0FBQztBQUM1SixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwwSEFBMEgsQ0FBQztBQUM3SyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxzSEFBc0gsQ0FBQztBQUN4SyxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxzSUFBc0ksQ0FBQztBQUM5TCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRkFBaUYsQ0FBQztBQUMzSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwR0FBMEcsQ0FBQztBQUM5SixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4RkFBOEYsQ0FBQztBQUNuSixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4RkFBOEYsQ0FBQzs7QUE0RjdJLE1BQU0sT0FBTyxzQkFBc0I7O29IQUF0QixzQkFBc0I7cUhBQXRCLHNCQUFzQixpQkF4Ri9CLHlCQUF5QjtRQUN6QixxQ0FBcUM7UUFDckMscUJBQXFCO1FBQ3JCLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIsNkJBQTZCO1FBQzdCLDBCQUEwQjtRQUMxQiw4QkFBOEI7UUFDOUIsNkJBQTZCO1FBQzdCLCtCQUErQjtRQUMvQixnQ0FBZ0M7UUFDaEMsMkJBQTJCO1FBQzNCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIsMkJBQTJCO1FBQzNCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsOEJBQThCO1FBQzlCLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixxQkFBcUI7UUFDckIsNEJBQTRCO1FBQzVCLCtCQUErQjtRQUMvQixnQ0FBZ0M7UUFDaEMsMkJBQTJCO1FBQzNCLDhCQUE4QjtRQUM5Qiw4QkFBOEI7UUFDOUIsMkJBQTJCO1FBQzNCLGdDQUFnQztRQUNoQywrQkFBK0I7UUFDL0IsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1QixxQ0FBcUM7UUFDckMsZUFBZTtRQUNmLGNBQWM7UUFDZCxtQ0FBbUM7UUFDbkMsMkJBQTJCO1FBQzNCLG9DQUFvQztRQUNwQyx1QkFBdUI7UUFDdkIsc0NBQXNDO1FBQ3RDLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsK0JBQStCO1FBQy9CLCtCQUErQjtRQUMvQiw0QkFBNEI7UUFDNUIsaUNBQWlDO1FBQ2pDLGdDQUFnQztRQUNoQyxzQ0FBc0M7UUFDdEMscUJBQXFCO1FBQ3JCLDRCQUE0QjtRQUM1QixrQ0FBa0M7UUFDbEMsbUNBQW1DO1FBQ25DLDZCQUE2QixhQUk3QixjQUFjO1FBQ2QsV0FBVztRQUNYLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsZ0NBQWdDO1FBQ2hDLDBCQUEwQjtRQUMxQixrQkFBa0I7UUFDbEIsMkJBQTJCLGFBRzNCLHlCQUF5QjtRQUN6QixxQ0FBcUM7UUFDckMsY0FBYztRQUNkLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsc0JBQXNCO1FBQ3RCLDBCQUEwQjtRQUMxQixrQkFBa0I7UUFDbEIsMkJBQTJCO3FIQUdsQixzQkFBc0IsWUEzQi9CLGNBQWM7UUFDZCxXQUFXO1FBQ1gsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUVsQixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLGdDQUFnQztRQUNoQywwQkFBMEI7UUFDMUIsa0JBQWtCO1FBQ2xCLDJCQUEyQixFQUszQixjQUFjOzRGQVNMLHNCQUFzQjtrQkExRmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHlCQUF5Qjt3QkFDekIscUNBQXFDO3dCQUNyQyxxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLCtCQUErQjt3QkFDL0IsZ0NBQWdDO3dCQUNoQywyQkFBMkI7d0JBQzNCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2Qiw4QkFBOEI7d0JBQzlCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQiw0QkFBNEI7d0JBQzVCLCtCQUErQjt3QkFDL0IsZ0NBQWdDO3dCQUNoQywyQkFBMkI7d0JBQzNCLDhCQUE4Qjt3QkFDOUIsOEJBQThCO3dCQUM5QiwyQkFBMkI7d0JBQzNCLGdDQUFnQzt3QkFDaEMsK0JBQStCO3dCQUMvQixpQ0FBaUM7d0JBQ2pDLDRCQUE0Qjt3QkFDNUIscUNBQXFDO3dCQUNyQyxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsbUNBQW1DO3dCQUNuQywyQkFBMkI7d0JBQzNCLG9DQUFvQzt3QkFDcEMsdUJBQXVCO3dCQUN2QixzQ0FBc0M7d0JBQ3RDLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1QiwrQkFBK0I7d0JBQy9CLCtCQUErQjt3QkFDL0IsNEJBQTRCO3dCQUM1QixpQ0FBaUM7d0JBQ2pDLGdDQUFnQzt3QkFDaEMsc0NBQXNDO3dCQUN0QyxxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsa0NBQWtDO3dCQUNsQyxtQ0FBbUM7d0JBQ25DLDZCQUE2QjtxQkFFOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZ0NBQWdDO3dCQUNoQywwQkFBMEI7d0JBQzFCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QixxQ0FBcUM7d0JBQ3JDLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLDJCQUEyQjtxQkFDNUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXFwRHluYW1pY01vZHVsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9leHBvcnRlZC9lcXAtZHluYW1pYy1tb2R1bGUvZXFwLWR5bmFtaWMtbW9kdWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRtd1RhYmxlQ29tcG9uZW50IH0gZnJvbSAndG13LXRhYmxlJztcclxuaW1wb3J0IHsgVG13QXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICd0bXctYXR0YWNobWVudHMnO1xyXG5pbXBvcnQgeyBUbXdTZWxlY3RDb21wb25lbnQgfSBmcm9tICd0bXctc2VsZWN0JztcclxuaW1wb3J0IHsgVG13TnVtZXJpY01hc2tEaXJlY3RpdmUgfSBmcm9tICd0bXctbnVtZXJpYyc7XHJcbmltcG9ydCB7IFRtd0ljb25Db21wb25lbnQgfSBmcm9tICd0bXctaWNvbnMnO1xyXG5pbXBvcnQgeyBFcXBEeW5hbWljTW9kdWxlQ29uZmlndXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2V4cG9ydGVkL2VxcC1keW5hbWljLW1vZHVsZS1jb25maWd1cmF0b3IvZXFwLWR5bmFtaWMtbW9kdWxlLWNvbmZpZ3VyYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9hZGQtZm9ybS1maWVsZC9hZGQtZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWVsZEdyYXBoaWNzRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtZ3JhcGhpY3MtZWRpdG9yL2ZpZWxkLWdyYXBoaWNzLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0RmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy90ZXh0LWZpZWxkLXRlbXBsYXRlL3RleHQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm9vbGVhbkZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS9ib29sZWFuLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvdGV4dGFyZWEtZmllbGQtdGVtcGxhdGUvdGV4dGFyZWEtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnVtZXJpY0ZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvbnVtZXJpYy1maWVsZC10ZW1wbGF0ZS9udW1lcmljLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZUZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvbGlzdC12YWx1ZS1maWVsZC10ZW1wbGF0ZS9saXN0LXZhbHVlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZUZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvaW1hZ2UtZmllbGQtdGVtcGxhdGUvaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvbGlzdC1mb3JtLXJlY29yZC9saXN0LWZvcm0tcmVjb3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkZEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvYWRkLWZvcm0tcmVjb3JkL2FkZC1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVGaWVsZEZpeENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2R5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeC9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGb3JtdWxhQ29tcG9uZW50LERpYWxvZ0RhdGFFeGFtcGxlRGlhbG9nIH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvYWRkLWZvcm11bGEtZmllbGQvYWRkLWZvcm11bGEtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwYWlyRm9ybUZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tcmVjb3Jkcy9yZXBhaXItZm9ybS1maWVsZHMvcmVwYWlyLWZvcm0tZmllbGRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWaWV3Rm9ybVJlY29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tcmVjb3Jkcy9saXN0LXZpZXctZm9ybS1yZWNvcmQvbGlzdC12aWV3LWZvcm0tcmVjb3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpZXdGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL3ZpZXctZm9ybS1yZWNvcmQvdmlldy1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaW5nbGVSZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvbGlzdC12aWV3LWZvcm0tcmVjb3JkL3NpbmdsZS1yZWNvcmQvc2luZ2xlLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJGb3JtU3RhdGlzdGljQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci1mb3JtLXN0YXRpc3RpYy9maWx0ZXItZm9ybS1zdGF0aXN0aWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUZpbHRlckZpeENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9keW5hbWljLW1vZHVsZS1maWx0ZXItZml4L2R5bmFtaWMtbW9kdWxlLWZpbHRlci1maXguY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dEZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvdGV4dC1maWx0ZXItdGVtcGxhdGUvdGV4dC1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnVtZXJpY0ZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvbnVtZXJpYy1maWx0ZXItdGVtcGxhdGUvbnVtZXJpYy1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm9vbGVhbkZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvYm9vbGVhbi1maWx0ZXItdGVtcGxhdGUvYm9vbGVhbi1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvZGF0ZS1maWx0ZXItdGVtcGxhdGUvZGF0ZS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdFZhbHVlRmlsdGVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXN0YXRpc3RpY3MvZmlsdGVyLXRlbXBsYXRlcy9saXN0LXZhbHVlLWZpbHRlci10ZW1wbGF0ZS9saXN0LXZhbHVlLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvdGV4dGFyZWEtZmlsdGVyLXRlbXBsYXRlL3RleHRhcmVhLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsdGVyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXN0YXRpc3RpY3MvZmlsdGVyLXRlbXBsYXRlcy9hdHRhY2htZW50LWZpbHRlci10ZW1wbGF0ZS9hdHRhY2htZW50LWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvaW1hZ2UtZmlsdGVyLXRlbXBsYXRlL2ltYWdlLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Rm9ybVJlY29yZEZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvbGlzdC1mb3JtLXJlY29yZC1maWx0ZXItdGVtcGxhdGUvbGlzdC1mb3JtLXJlY29yZC1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JhcGhzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZ3JhcGhzL2dyYXBocy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcmFwaENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaC9ncmFwaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYW52YXNKU0FuZ3VsYXJTdG9ja0NoYXJ0c01vZHVsZSwgQ2FudmFzSlNDaGFydCwgQ2FudmFzSlNTdG9ja0NoYXJ0IH0gZnJvbSAnQGNhbnZhc2pzL2FuZ3VsYXItc3RvY2tjaGFydHMnO1xyXG5pbXBvcnQgeyBJbWFnZUZpZWxkU2VsZWN0b3JUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYWJlbEZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvbGFiZWwtZmllbGQtdGVtcGxhdGUvbGFiZWwtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VTZWxlY3RvckZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvaW1hZ2Utc2VsZWN0b3ItZmlsdGVyLXRlbXBsYXRlL2ltYWdlLXNlbGVjdG9yLWZpbHRlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbXdJbWFnZURyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3Rtdy1pbWFnZS1kcmF3ZXIvdG13LWltYWdlLWRyYXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZVdpdGhNYXJrZXJzRmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS13aXRoLW1hcmtlcnMtZmllbGQtdGVtcGxhdGUvaW1hZ2Utd2l0aC1tYXJrZXJzLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRtd0ltYWdlTWFya2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdG13LWltYWdlLW1hcmtlci90bXctaW1hZ2UtbWFya2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IER5bmFtaWNMb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHluYW1pYy1sb2FkZXIvZHluYW1pYy1sb2FkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGJnZXR0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9kYmdldHRlci9kYmdldHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbXdEYXRlVGltZVBpY2tlckNvbXBvbmVudCwgVG13UGlja2VyQ29tcG9uZW50LCBUbXdEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwidG13LXBpY2tlclwiO1xyXG5pbXBvcnQgeyBUcmlnZ2VyQ3JlYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLWNyZWF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZVRyaWdnZXJGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvZHluYW1pYy1tb2R1bGUtdHJpZ2dlci1maXgvZHluYW1pYy1tb2R1bGUtdHJpZ2dlci1maXguY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dFRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy90ZXh0LXRyaWdnZXItdGVtcGxhdGUvdGV4dC10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWVyaWNUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci10ZW1wbGF0ZXMvbnVtZXJpYy10cmlnZ2VyLXRlbXBsYXRlL251bWVyaWMtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCb29sZWFuVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2Jvb2xlYW4tdHJpZ2dlci10ZW1wbGF0ZS9ib29sZWFuLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9kYXRlLXRyaWdnZXItdGVtcGxhdGUvZGF0ZS10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9saXN0LXZhbHVlLXRyaWdnZXItdGVtcGxhdGUvbGlzdC12YWx1ZS10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRhcmVhVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Rm9ybVJlY29yZFRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9saXN0LWZvcm0tcmVjb3JkLXRyaWdnZXItdGVtcGxhdGUvbGlzdC1mb3JtLXJlY29yZC10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWVjaFRvVGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zcGVlY2gtdG8tdGV4dC9zcGVlY2gtdG8tdGV4dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBITGlzdEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvaGxpc3QtZm9ybS1yZWNvcmQvaGxpc3QtZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uQnV0dG9uQ3JlYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2FjdGlvbi1idXR0b24tY3JlYXRvci9hY3Rpb24tYnV0dG9uLWNyZWF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uQnV0dG9uRmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9hY3Rpb24tYnV0dG9uLWZpZWxkLXRlbXBsYXRlL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUZpZWxkRXh0cmFGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC1leHRyYS1maXgvZHluYW1pYy1tb2R1bGUtZmllbGQtZXh0cmEtZml4LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZURiZ1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZGJnLXRlbXBsYXRlcy9saXN0LXZhbHVlLWRiZy10ZW1wbGF0ZS9saXN0LXZhbHVlLWRiZy10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEVxcER5bmFtaWNNb2R1bGVDb21wb25lbnQsXHJcbiAgICBFcXBEeW5hbWljTW9kdWxlQ29uZmlndXJhdG9yQ29tcG9uZW50LFxyXG4gICAgQWRkRm9ybUZpZWxkQ29tcG9uZW50LFxyXG4gICAgRmllbGRHcmFwaGljc0VkaXRvckNvbXBvbmVudCxcclxuICAgIFRleHRGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhbkZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBEYXRlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRleHRhcmVhRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIE51bWVyaWNGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdFZhbHVlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBITGlzdEZvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBMaXN0Vmlld0Zvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBBZGRGb3JtUmVjb3JkQ29tcG9uZW50LFxyXG4gICAgVmlld0Zvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgQWRkRm9ybXVsYUNvbXBvbmVudCxcclxuICAgIERpYWxvZ0RhdGFFeGFtcGxlRGlhbG9nLFxyXG4gICAgUmVwYWlyRm9ybUZpZWxkc0NvbXBvbmVudCxcclxuICAgIFNpbmdsZVJlY29yZENvbXBvbmVudCxcclxuICAgIEZpbHRlckZvcm1TdGF0aXN0aWNDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTW9kdWxlRmlsdGVyRml4Q29tcG9uZW50LFxyXG4gICAgRHluYW1pY01vZHVsZVRyaWdnZXJGaXhDb21wb25lbnQsXHJcbiAgICBUZXh0RmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBOdW1lcmljRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBCb29sZWFuRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBEYXRlRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0VmFsdWVGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRleHRhcmVhRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBBdHRhY2htZW50RmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBJbWFnZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdEZvcm1SZWNvcmRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEdyYXBoc0NvbXBvbmVudCxcclxuICAgIEdyYXBoQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VGaWVsZFNlbGVjdG9yVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMYWJlbEZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBJbWFnZVNlbGVjdG9yRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBUbXdJbWFnZURyYXdlckNvbXBvbmVudCxcclxuICAgIEltYWdlV2l0aE1hcmtlcnNGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgVG13SW1hZ2VNYXJrZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTG9hZGVyRGlyZWN0aXZlLFxyXG4gICAgRGJnZXR0ZXJDb21wb25lbnQsXHJcbiAgICBUcmlnZ2VyQ3JlYXRvckNvbXBvbmVudCxcclxuICAgIFRleHRUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBOdW1lcmljVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhblRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIERhdGVUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0VmFsdWVUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExpc3RGb3JtUmVjb3JkVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgU3BlZWNoVG9UZXh0RGlyZWN0aXZlLFxyXG4gICAgQWN0aW9uQnV0dG9uQ3JlYXRvckNvbXBvbmVudCxcclxuICAgIEFjdGlvbkJ1dHRvbkZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTW9kdWxlRmllbGRFeHRyYUZpeENvbXBvbmVudCxcclxuICAgIExpc3RWYWx1ZURiZ1RlbXBsYXRlQ29tcG9uZW50XHJcblxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBUbXdUYWJsZUNvbXBvbmVudCxcclxuICAgIFRtd0F0dGFjaG1lbnRzQ29tcG9uZW50LFxyXG4gICAgVG13U2VsZWN0Q29tcG9uZW50LFxyXG4gICAgVG13TnVtZXJpY01hc2tEaXJlY3RpdmUsXHJcbiAgICBUbXdJY29uQ29tcG9uZW50LFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBDYW52YXNKU0FuZ3VsYXJTdG9ja0NoYXJ0c01vZHVsZSxcclxuICAgIFRtd0RhdGVUaW1lUGlja2VyQ29tcG9uZW50LFxyXG4gICAgVG13UGlja2VyQ29tcG9uZW50LFxyXG4gICAgVG13RGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBFcXBEeW5hbWljTW9kdWxlQ29tcG9uZW50LFxyXG4gICAgRXFwRHluYW1pY01vZHVsZUNvbmZpZ3VyYXRvckNvbXBvbmVudCxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgQ2FudmFzSlNDaGFydCxcclxuICAgIENhbnZhc0pTU3RvY2tDaGFydCxcclxuICAgIER5bmFtaWNMb2FkZXJEaXJlY3RpdmUsXHJcbiAgICBUbXdEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcclxuICAgIFRtd1BpY2tlckNvbXBvbmVudCxcclxuICAgIFRtd0RhdGVSYW5nZVBpY2tlckNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVxcER5bmFtaWNNb2R1bGVNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversioni fra i valori colore CSS (nomi, #hex, rgb(), rgba(), hsl()) e la coppia
|
|
3
|
+
* "hex + opacità" richiesta dai controlli <input type="color"> + slider dell'editor grafico.
|
|
4
|
+
*
|
|
5
|
+
* La normalizzazione sfrutta il parser colori del browser attraverso un canvas: assegnando
|
|
6
|
+
* un valore a fillStyle si ottiene indietro "#rrggbb" oppure "rgba(r, g, b, a)".
|
|
7
|
+
*/
|
|
8
|
+
let sharedContext;
|
|
9
|
+
function getContext() {
|
|
10
|
+
if (sharedContext !== undefined) {
|
|
11
|
+
return sharedContext;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
sharedContext = document.createElement('canvas').getContext('2d');
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
sharedContext = null;
|
|
18
|
+
}
|
|
19
|
+
return sharedContext;
|
|
20
|
+
}
|
|
21
|
+
/** Normalizza un colore CSS in "#rrggbb" o "rgba(r, g, b, a)". Null se non interpretabile. */
|
|
22
|
+
function normalizeColor(value) {
|
|
23
|
+
const input = (value || '').trim();
|
|
24
|
+
if (!input) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const ctx = getContext();
|
|
28
|
+
if (!ctx) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
// Doppio tentativo con due valori di partenza diversi: se il valore non è un colore
|
|
33
|
+
// valido fillStyle resta invariato, e i due risultati differiscono.
|
|
34
|
+
ctx.fillStyle = '#000000';
|
|
35
|
+
ctx.fillStyle = input;
|
|
36
|
+
const first = ctx.fillStyle;
|
|
37
|
+
ctx.fillStyle = '#ffffff';
|
|
38
|
+
ctx.fillStyle = input;
|
|
39
|
+
const second = ctx.fillStyle;
|
|
40
|
+
return first === second ? first : null;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Componente hex del colore, da usare come valore di <input type="color"> */
|
|
47
|
+
export function cssColorToHex(value, fallback = '#000000') {
|
|
48
|
+
const normalized = normalizeColor(value);
|
|
49
|
+
if (!normalized) {
|
|
50
|
+
return fallback;
|
|
51
|
+
}
|
|
52
|
+
if (normalized.startsWith('#')) {
|
|
53
|
+
return normalized.slice(0, 7);
|
|
54
|
+
}
|
|
55
|
+
const parts = normalized.replace(/^rgba?\(/, '').replace(/\)$/, '').split(',');
|
|
56
|
+
if (parts.length < 3) {
|
|
57
|
+
return fallback;
|
|
58
|
+
}
|
|
59
|
+
const toHex = (n) => Math.max(0, Math.min(255, Math.round(Number(n))))
|
|
60
|
+
.toString(16).padStart(2, '0');
|
|
61
|
+
return `#${toHex(parts[0])}${toHex(parts[1])}${toHex(parts[2])}`;
|
|
62
|
+
}
|
|
63
|
+
/** Opacità del colore in percentuale (0-100); 100 se il colore è opaco o non interpretabile */
|
|
64
|
+
export function cssColorToAlphaPercent(value) {
|
|
65
|
+
const normalized = normalizeColor(value);
|
|
66
|
+
if (!normalized || !normalized.startsWith('rgba')) {
|
|
67
|
+
return 100;
|
|
68
|
+
}
|
|
69
|
+
const parts = normalized.replace(/^rgba\(/, '').replace(/\)$/, '').split(',');
|
|
70
|
+
if (parts.length < 4) {
|
|
71
|
+
return 100;
|
|
72
|
+
}
|
|
73
|
+
const alpha = Number(parts[3]);
|
|
74
|
+
if (isNaN(alpha)) {
|
|
75
|
+
return 100;
|
|
76
|
+
}
|
|
77
|
+
return Math.round(Math.max(0, Math.min(1, alpha)) * 100);
|
|
78
|
+
}
|
|
79
|
+
/** Ricompone un valore CSS da hex + opacità: "#rrggbb" se opaco, altrimenti "rgba(...)" */
|
|
80
|
+
export function buildCssColor(hex, alphaPercent) {
|
|
81
|
+
const clean = (hex || '#000000').trim();
|
|
82
|
+
const percent = Math.max(0, Math.min(100, Math.round(alphaPercent ?? 100)));
|
|
83
|
+
if (percent >= 100) {
|
|
84
|
+
return clean;
|
|
85
|
+
}
|
|
86
|
+
const match = /^#?([0-9a-f]{6})$/i.exec(clean);
|
|
87
|
+
if (!match) {
|
|
88
|
+
return clean;
|
|
89
|
+
}
|
|
90
|
+
const int = parseInt(match[1], 16);
|
|
91
|
+
const r = (int >> 16) & 255;
|
|
92
|
+
const g = (int >> 8) & 255;
|
|
93
|
+
const b = int & 255;
|
|
94
|
+
const alpha = Number((percent / 100).toFixed(2));
|
|
95
|
+
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
|
|
96
|
+
}
|
|
97
|
+
/** True se il valore è interpretabile come colore (serve a decidere se abilitare la pastiglia) */
|
|
98
|
+
export function isCssColor(value) {
|
|
99
|
+
return normalizeColor(value) != null;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLWNvbG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvdXRpbHMvY3NzLWNvbG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILElBQUksYUFBMEQsQ0FBQztBQUUvRCxTQUFTLFVBQVU7SUFDZixJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLGFBQWEsQ0FBQztLQUFFO0lBQzFELElBQUk7UUFDQSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDckU7SUFBQyxNQUFNO1FBQ0osYUFBYSxHQUFHLElBQUksQ0FBQztLQUN4QjtJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUM7QUFFRCw4RkFBOEY7QUFDOUYsU0FBUyxjQUFjLENBQUMsS0FBYTtJQUNqQyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUM7S0FBRTtJQUU1QixNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUN6QixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUM7S0FBRTtJQUUxQixJQUFJO1FBQ0Esb0ZBQW9GO1FBQ3BGLG9FQUFvRTtRQUNwRSxHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMxQixHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsU0FBbUIsQ0FBQztRQUV0QyxHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMxQixHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsU0FBbUIsQ0FBQztRQUV2QyxPQUFPLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0tBQzFDO0lBQUMsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7QUFDTCxDQUFDO0FBRUQsOEVBQThFO0FBQzlFLE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYSxFQUFFLFdBQW1CLFNBQVM7SUFDckUsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFBRSxPQUFPLFFBQVEsQ0FBQztLQUFFO0lBQ3JDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUFFLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FBRTtJQUVsRSxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQUUsT0FBTyxRQUFRLENBQUM7S0FBRTtJQUUxQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JFLENBQUM7QUFFRCwrRkFBK0Y7QUFDL0YsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQWE7SUFDaEQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUM7S0FBRTtJQUVsRSxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUM7S0FBRTtJQUVyQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFBRSxPQUFPLEdBQUcsQ0FBQztLQUFFO0lBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCwyRkFBMkY7QUFDM0YsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXLEVBQUUsWUFBb0I7SUFDM0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLElBQUksT0FBTyxJQUFJLEdBQUcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFckMsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0lBRTdCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUMzQixNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUM7QUFDOUMsQ0FBQztBQUVELGtHQUFrRztBQUNsRyxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWE7SUFDcEMsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29udmVyc2lvbmkgZnJhIGkgdmFsb3JpIGNvbG9yZSBDU1MgKG5vbWksICNoZXgsIHJnYigpLCByZ2JhKCksIGhzbCgpKSBlIGxhIGNvcHBpYVxyXG4gKiBcImhleCArIG9wYWNpdMOgXCIgcmljaGllc3RhIGRhaSBjb250cm9sbGkgPGlucHV0IHR5cGU9XCJjb2xvclwiPiArIHNsaWRlciBkZWxsJ2VkaXRvciBncmFmaWNvLlxyXG4gKlxyXG4gKiBMYSBub3JtYWxpenphemlvbmUgc2ZydXR0YSBpbCBwYXJzZXIgY29sb3JpIGRlbCBicm93c2VyIGF0dHJhdmVyc28gdW4gY2FudmFzOiBhc3NlZ25hbmRvXHJcbiAqIHVuIHZhbG9yZSBhIGZpbGxTdHlsZSBzaSBvdHRpZW5lIGluZGlldHJvIFwiI3JyZ2diYlwiIG9wcHVyZSBcInJnYmEociwgZywgYiwgYSlcIi5cclxuICovXHJcblxyXG5sZXQgc2hhcmVkQ29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuXHJcbmZ1bmN0aW9uIGdldENvbnRleHQoKTogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCB7XHJcbiAgICBpZiAoc2hhcmVkQ29udGV4dCAhPT0gdW5kZWZpbmVkKSB7IHJldHVybiBzaGFyZWRDb250ZXh0OyB9XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHNoYXJlZENvbnRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgICAgc2hhcmVkQ29udGV4dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2hhcmVkQ29udGV4dDtcclxufVxyXG5cclxuLyoqIE5vcm1hbGl6emEgdW4gY29sb3JlIENTUyBpbiBcIiNycmdnYmJcIiBvIFwicmdiYShyLCBnLCBiLCBhKVwiLiBOdWxsIHNlIG5vbiBpbnRlcnByZXRhYmlsZS4gKi9cclxuZnVuY3Rpb24gbm9ybWFsaXplQ29sb3IodmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgaW5wdXQgPSAodmFsdWUgfHwgJycpLnRyaW0oKTtcclxuICAgIGlmICghaW5wdXQpIHsgcmV0dXJuIG51bGw7IH1cclxuXHJcbiAgICBjb25zdCBjdHggPSBnZXRDb250ZXh0KCk7XHJcbiAgICBpZiAoIWN0eCkgeyByZXR1cm4gbnVsbDsgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgICAgLy8gRG9wcGlvIHRlbnRhdGl2byBjb24gZHVlIHZhbG9yaSBkaSBwYXJ0ZW56YSBkaXZlcnNpOiBzZSBpbCB2YWxvcmUgbm9uIMOoIHVuIGNvbG9yZVxyXG4gICAgICAgIC8vIHZhbGlkbyBmaWxsU3R5bGUgcmVzdGEgaW52YXJpYXRvLCBlIGkgZHVlIHJpc3VsdGF0aSBkaWZmZXJpc2Nvbm8uXHJcbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjMDAwMDAwJztcclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gaW5wdXQ7XHJcbiAgICAgICAgY29uc3QgZmlyc3QgPSBjdHguZmlsbFN0eWxlIGFzIHN0cmluZztcclxuXHJcbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjZmZmZmZmJztcclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gaW5wdXQ7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kID0gY3R4LmZpbGxTdHlsZSBhcyBzdHJpbmc7XHJcblxyXG4gICAgICAgIHJldHVybiBmaXJzdCA9PT0gc2Vjb25kID8gZmlyc3QgOiBudWxsO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKiBDb21wb25lbnRlIGhleCBkZWwgY29sb3JlLCBkYSB1c2FyZSBjb21lIHZhbG9yZSBkaSA8aW5wdXQgdHlwZT1cImNvbG9yXCI+ICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjc3NDb2xvclRvSGV4KHZhbHVlOiBzdHJpbmcsIGZhbGxiYWNrOiBzdHJpbmcgPSAnIzAwMDAwMCcpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbG9yKHZhbHVlKTtcclxuICAgIGlmICghbm9ybWFsaXplZCkgeyByZXR1cm4gZmFsbGJhY2s7IH1cclxuICAgIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJyMnKSkgeyByZXR1cm4gbm9ybWFsaXplZC5zbGljZSgwLCA3KTsgfVxyXG5cclxuICAgIGNvbnN0IHBhcnRzID0gbm9ybWFsaXplZC5yZXBsYWNlKC9ecmdiYT9cXCgvLCAnJykucmVwbGFjZSgvXFwpJC8sICcnKS5zcGxpdCgnLCcpO1xyXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8IDMpIHsgcmV0dXJuIGZhbGxiYWNrOyB9XHJcblxyXG4gICAgY29uc3QgdG9IZXggPSAobjogc3RyaW5nKSA9PiBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQoTnVtYmVyKG4pKSkpXHJcbiAgICAgICAgLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgcmV0dXJuIGAjJHt0b0hleChwYXJ0c1swXSl9JHt0b0hleChwYXJ0c1sxXSl9JHt0b0hleChwYXJ0c1syXSl9YDtcclxufVxyXG5cclxuLyoqIE9wYWNpdMOgIGRlbCBjb2xvcmUgaW4gcGVyY2VudHVhbGUgKDAtMTAwKTsgMTAwIHNlIGlsIGNvbG9yZSDDqCBvcGFjbyBvIG5vbiBpbnRlcnByZXRhYmlsZSAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3NzQ29sb3JUb0FscGhhUGVyY2VudCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvcih2YWx1ZSk7XHJcbiAgICBpZiAoIW5vcm1hbGl6ZWQgfHwgIW5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgncmdiYScpKSB7IHJldHVybiAxMDA7IH1cclxuXHJcbiAgICBjb25zdCBwYXJ0cyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvXnJnYmFcXCgvLCAnJykucmVwbGFjZSgvXFwpJC8sICcnKS5zcGxpdCgnLCcpO1xyXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8IDQpIHsgcmV0dXJuIDEwMDsgfVxyXG5cclxuICAgIGNvbnN0IGFscGhhID0gTnVtYmVyKHBhcnRzWzNdKTtcclxuICAgIGlmIChpc05hTihhbHBoYSkpIHsgcmV0dXJuIDEwMDsgfVxyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgYWxwaGEpKSAqIDEwMCk7XHJcbn1cclxuXHJcbi8qKiBSaWNvbXBvbmUgdW4gdmFsb3JlIENTUyBkYSBoZXggKyBvcGFjaXTDoDogXCIjcnJnZ2JiXCIgc2Ugb3BhY28sIGFsdHJpbWVudGkgXCJyZ2JhKC4uLilcIiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDc3NDb2xvcihoZXg6IHN0cmluZywgYWxwaGFQZXJjZW50OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY2xlYW4gPSAoaGV4IHx8ICcjMDAwMDAwJykudHJpbSgpO1xyXG4gICAgY29uc3QgcGVyY2VudCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgTWF0aC5yb3VuZChhbHBoYVBlcmNlbnQgPz8gMTAwKSkpO1xyXG4gICAgaWYgKHBlcmNlbnQgPj0gMTAwKSB7IHJldHVybiBjbGVhbjsgfVxyXG5cclxuICAgIGNvbnN0IG1hdGNoID0gL14jPyhbMC05YS1mXXs2fSkkL2kuZXhlYyhjbGVhbik7XHJcbiAgICBpZiAoIW1hdGNoKSB7IHJldHVybiBjbGVhbjsgfVxyXG5cclxuICAgIGNvbnN0IGludCA9IHBhcnNlSW50KG1hdGNoWzFdLCAxNik7XHJcbiAgICBjb25zdCByID0gKGludCA+PiAxNikgJiAyNTU7XHJcbiAgICBjb25zdCBnID0gKGludCA+PiA4KSAmIDI1NTtcclxuICAgIGNvbnN0IGIgPSBpbnQgJiAyNTU7XHJcbiAgICBjb25zdCBhbHBoYSA9IE51bWJlcigocGVyY2VudCAvIDEwMCkudG9GaXhlZCgyKSk7XHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthbHBoYX0pYDtcclxufVxyXG5cclxuLyoqIFRydWUgc2UgaWwgdmFsb3JlIMOoIGludGVycHJldGFiaWxlIGNvbWUgY29sb3JlIChzZXJ2ZSBhIGRlY2lkZXJlIHNlIGFiaWxpdGFyZSBsYSBwYXN0aWdsaWEpICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Nzc0NvbG9yKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBub3JtYWxpemVDb2xvcih2YWx1ZSkgIT0gbnVsbDtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility per leggere/scrivere singole proprietà dentro una stringa di dichiarazioni CSS
|
|
3
|
+
* (il formato usato dalle mappe *FieldStyleCSS: "color:red;font-size:14px").
|
|
4
|
+
*
|
|
5
|
+
* Tutte le funzioni preservano le proprietà che non vengono toccate, così i CSS scritti
|
|
6
|
+
* a mano o generati dall'AI non vengono persi quando si modifica una singola proprietà
|
|
7
|
+
* dall'editor grafico.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Divide una stringa CSS sui ";" di primo livello, ignorando quelli dentro
|
|
11
|
+
* parentesi (es. rgba(0,0,0,.5)) o stringhe (es. url("a;b")).
|
|
12
|
+
*/
|
|
13
|
+
function splitTopLevel(css, separator) {
|
|
14
|
+
const parts = [];
|
|
15
|
+
let depth = 0;
|
|
16
|
+
let quote = null;
|
|
17
|
+
let current = '';
|
|
18
|
+
for (let i = 0; i < css.length; i++) {
|
|
19
|
+
const ch = css[i];
|
|
20
|
+
if (quote) {
|
|
21
|
+
current += ch;
|
|
22
|
+
if (ch === quote && css[i - 1] !== '\\') {
|
|
23
|
+
quote = null;
|
|
24
|
+
}
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (ch === '"' || ch === "'") {
|
|
28
|
+
quote = ch;
|
|
29
|
+
current += ch;
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (ch === '(') {
|
|
33
|
+
depth++;
|
|
34
|
+
current += ch;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (ch === ')') {
|
|
38
|
+
depth = Math.max(0, depth - 1);
|
|
39
|
+
current += ch;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (ch === separator && depth === 0) {
|
|
43
|
+
parts.push(current);
|
|
44
|
+
current = '';
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
current += ch;
|
|
48
|
+
}
|
|
49
|
+
parts.push(current);
|
|
50
|
+
return parts;
|
|
51
|
+
}
|
|
52
|
+
/** Trasforma "color:red;font-size:14px" in [{prop:'color',value:'red'},...] mantenendo l'ordine */
|
|
53
|
+
export function parseCssDeclarations(css) {
|
|
54
|
+
if (!css) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
const result = [];
|
|
58
|
+
splitTopLevel(css, ';').forEach((chunk) => {
|
|
59
|
+
const trimmed = chunk.trim();
|
|
60
|
+
if (!trimmed) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// Il primo ":" separa sempre proprietà e valore (eventuali ":" successivi,
|
|
64
|
+
// es. in url(http://...), restano nel valore).
|
|
65
|
+
const colonIndex = trimmed.indexOf(':');
|
|
66
|
+
if (colonIndex <= 0) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const prop = trimmed.slice(0, colonIndex).trim().toLowerCase();
|
|
70
|
+
const value = trimmed.slice(colonIndex + 1).trim();
|
|
71
|
+
if (!prop || !value) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
result.push({ prop, value });
|
|
75
|
+
});
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
/** Trasforma [{prop,value}] in "color: red; font-size: 14px;" */
|
|
79
|
+
export function serializeCssDeclarations(declarations) {
|
|
80
|
+
if (!declarations || declarations.length === 0) {
|
|
81
|
+
return '';
|
|
82
|
+
}
|
|
83
|
+
return declarations
|
|
84
|
+
.filter((d) => d && d.prop && d.value)
|
|
85
|
+
.map((d) => `${d.prop}: ${d.value};`)
|
|
86
|
+
.join(' ');
|
|
87
|
+
}
|
|
88
|
+
/** Legge il valore di una singola proprietà; stringa vuota se non presente */
|
|
89
|
+
export function getCssDeclaration(css, prop) {
|
|
90
|
+
const target = (prop || '').toLowerCase();
|
|
91
|
+
const found = parseCssDeclarations(css).find((d) => d.prop === target);
|
|
92
|
+
return found ? found.value : '';
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Imposta (o rimuove, se il valore è vuoto) una singola proprietà, lasciando
|
|
96
|
+
* intatte tutte le altre. Le proprietà nuove vengono accodate in fondo.
|
|
97
|
+
*/
|
|
98
|
+
export function setCssDeclaration(css, prop, value) {
|
|
99
|
+
const target = (prop || '').toLowerCase();
|
|
100
|
+
if (!target) {
|
|
101
|
+
return css ?? '';
|
|
102
|
+
}
|
|
103
|
+
const declarations = parseCssDeclarations(css);
|
|
104
|
+
const newValue = (value ?? '').trim();
|
|
105
|
+
const index = declarations.findIndex((d) => d.prop === target);
|
|
106
|
+
if (!newValue) {
|
|
107
|
+
if (index >= 0) {
|
|
108
|
+
declarations.splice(index, 1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (index >= 0) {
|
|
112
|
+
declarations[index].value = newValue;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
declarations.push({ prop: target, value: newValue });
|
|
116
|
+
}
|
|
117
|
+
return serializeCssDeclarations(declarations);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLWRlY2xhcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL3V0aWxzL2Nzcy1kZWNsYXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQU9IOzs7R0FHRztBQUNILFNBQVMsYUFBYSxDQUFDLEdBQVcsRUFBRSxTQUFpQjtJQUNqRCxNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFDO0lBQ2hDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksS0FBSyxHQUFrQixJQUFJLENBQUM7SUFDaEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQixJQUFJLEtBQUssRUFBRTtZQUNQLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLEVBQUUsS0FBSyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQUUsS0FBSyxHQUFHLElBQUksQ0FBQzthQUFFO1lBQzFELFNBQVM7U0FDWjtRQUVELElBQUksRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUFFO1lBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFBQyxTQUFTO1NBQUU7UUFDdEUsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUFFO1lBQUUsS0FBSyxFQUFFLENBQUM7WUFBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQUMsU0FBUztTQUFFO1FBQ3JELElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRTtZQUFFLEtB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SCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsR0FBVyxFQUFFLElBQVksRUFBRSxLQUFhO0lBQ3RFLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFBRSxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUM7S0FBRTtJQUVsQyxNQUFNLFlBQVksR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBRS9ELElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDWCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUFFO0tBQ3JEO1NBQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1FBQ25CLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO0tBQ3hDO1NBQU07UUFDSCxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUN4RDtJQUVELE9BQU8sd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBVdGlsaXR5IHBlciBsZWdnZXJlL3Njcml2ZXJlIHNpbmdvbGUgcHJvcHJpZXTDoCBkZW50cm8gdW5hIHN0cmluZ2EgZGkgZGljaGlhcmF6aW9uaSBDU1NcclxuICogKGlsIGZvcm1hdG8gdXNhdG8gZGFsbGUgbWFwcGUgKkZpZWxkU3R5bGVDU1M6IFwiY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4XCIpLlxyXG4gKlxyXG4gKiBUdXR0ZSBsZSBmdW56aW9uaSBwcmVzZXJ2YW5vIGxlIHByb3ByaWV0w6AgY2hlIG5vbiB2ZW5nb25vIHRvY2NhdGUsIGNvc8OsIGkgQ1NTIHNjcml0dGlcclxuICogYSBtYW5vIG8gZ2VuZXJhdGkgZGFsbCdBSSBub24gdmVuZ29ubyBwZXJzaSBxdWFuZG8gc2kgbW9kaWZpY2EgdW5hIHNpbmdvbGEgcHJvcHJpZXTDoFxyXG4gKiBkYWxsJ2VkaXRvciBncmFmaWNvLlxyXG4gKi9cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3NzRGVjbGFyYXRpb24ge1xyXG4gICAgcHJvcDogc3RyaW5nO1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIERpdmlkZSB1bmEgc3RyaW5nYSBDU1Mgc3VpIFwiO1wiIGRpIHByaW1vIGxpdmVsbG8sIGlnbm9yYW5kbyBxdWVsbGkgZGVudHJvXHJcbiAqIHBhcmVudGVzaSAoZXMuIHJnYmEoMCwwLDAsLjUpKSBvIHN0cmluZ2hlIChlcy4gdXJsKFwiYTtiXCIpKS5cclxuICovXHJcbmZ1bmN0aW9uIHNwbGl0VG9wTGV2ZWwoY3NzOiBzdHJpbmcsIHNlcGFyYXRvcjogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBwYXJ0czogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gICAgbGV0IGRlcHRoID0gMDtcclxuICAgIGxldCBxdW90ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgY3VycmVudCA9ICcnO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY3NzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgY2ggPSBjc3NbaV07XHJcblxyXG4gICAgICAgIGlmIChxdW90ZSkge1xyXG4gICAgICAgICAgICBjdXJyZW50ICs9IGNoO1xyXG4gICAgICAgICAgICBpZiAoY2ggPT09IHF1b3RlICYmIGNzc1tpIC0gMV0gIT09ICdcXFxcJykgeyBxdW90ZSA9IG51bGw7IH1cclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2ggPT09ICdcIicgfHwgY2ggPT09IFwiJ1wiKSB7IHF1b3RlID0gY2g7IGN1cnJlbnQgKz0gY2g7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgaWYgKGNoID09PSAnKCcpIHsgZGVwdGgrKzsgY3VycmVudCArPSBjaDsgY29udGludWU7IH1cclxuICAgICAgICBpZiAoY2ggPT09ICcpJykgeyBkZXB0aCA9IE1hdGgubWF4KDAsIGRlcHRoIC0gMSk7IGN1cnJlbnQgKz0gY2g7IGNvbnRpbnVlOyB9XHJcblxyXG4gICAgICAgIGlmIChjaCA9PT0gc2VwYXJhdG9yICYmIGRlcHRoID09PSAwKSB7IHBhcnRzLnB1c2goY3VycmVudCk7IGN1cnJlbnQgPSAnJzsgY29udGludWU7IH1cclxuXHJcbiAgICAgICAgY3VycmVudCArPSBjaDtcclxuICAgIH1cclxuXHJcbiAgICBwYXJ0cy5wdXNoKGN1cnJlbnQpO1xyXG4gICAgcmV0dXJuIHBhcnRzO1xyXG59XHJcblxyXG4vKiogVHJhc2Zvcm1hIFwiY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4XCIgaW4gW3twcm9wOidjb2xvcicsdmFsdWU6J3JlZCd9LC4uLl0gbWFudGVuZW5kbyBsJ29yZGluZSAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDc3NEZWNsYXJhdGlvbnMoY3NzOiBzdHJpbmcpOiBBcnJheTxDc3NEZWNsYXJhdGlvbj4ge1xyXG4gICAgaWYgKCFjc3MpIHsgcmV0dXJuIFtdOyB9XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBBcnJheTxDc3NEZWNsYXJhdGlvbj4gPSBbXTtcclxuXHJcbiAgICBzcGxpdFRvcExldmVsKGNzcywgJzsnKS5mb3JFYWNoKChjaHVuaykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSBjaHVuay50cmltKCk7XHJcbiAgICAgICAgaWYgKCF0cmltbWVkKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICAvLyBJbCBwcmltbyBcIjpcIiBzZXBhcmEgc2VtcHJlIHByb3ByaWV0w6AgZSB2YWxvcmUgKGV2ZW50dWFsaSBcIjpcIiBzdWNjZXNzaXZpLFxyXG4gICAgICAgIC8vIGVzLiBpbiB1cmwoaHR0cDovLy4uLiksIHJlc3Rhbm8gbmVsIHZhbG9yZSkuXHJcbiAgICAgICAgY29uc3QgY29sb25JbmRleCA9IHRyaW1tZWQuaW5kZXhPZignOicpO1xyXG4gICAgICAgIGlmIChjb2xvbkluZGV4IDw9IDApIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IHByb3AgPSB0cmltbWVkLnNsaWNlKDAsIGNvbG9uSW5kZXgpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdHJpbW1lZC5zbGljZShjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xyXG4gICAgICAgIGlmICghcHJvcCB8fCAhdmFsdWUpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIHJlc3VsdC5wdXNoKHsgcHJvcCwgdmFsdWUgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKiogVHJhc2Zvcm1hIFt7cHJvcCx2YWx1ZX1dIGluIFwiY29sb3I6IHJlZDsgZm9udC1zaXplOiAxNHB4O1wiICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVDc3NEZWNsYXJhdGlvbnMoZGVjbGFyYXRpb25zOiBBcnJheTxDc3NEZWNsYXJhdGlvbj4pOiBzdHJpbmcge1xyXG4gICAgaWYgKCFkZWNsYXJhdGlvbnMgfHwgZGVjbGFyYXRpb25zLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gJyc7IH1cclxuICAgIHJldHVybiBkZWNsYXJhdGlvbnNcclxuICAgICAgICAuZmlsdGVyKChkKSA9PiBkICYmIGQucHJvcCAmJiBkLnZhbHVlKVxyXG4gICAgICAgIC5tYXAoKGQpID0+IGAke2QucHJvcH06ICR7ZC52YWx1ZX07YClcclxuICAgICAgICAuam9pbignICcpO1xyXG59XHJcblxyXG4vKiogTGVnZ2UgaWwgdmFsb3JlIGRpIHVuYSBzaW5nb2xhIHByb3ByaWV0w6A7IHN0cmluZ2EgdnVvdGEgc2Ugbm9uIHByZXNlbnRlICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDc3NEZWNsYXJhdGlvbihjc3M6IHN0cmluZywgcHJvcDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IChwcm9wIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgY29uc3QgZm91bmQgPSBwYXJzZUNzc0RlY2xhcmF0aW9ucyhjc3MpLmZpbmQoKGQpID0+IGQucHJvcCA9PT0gdGFyZ2V0KTtcclxuICAgIHJldHVybiBmb3VuZCA/IGZvdW5kLnZhbHVlIDogJyc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbXBvc3RhIChvIHJpbXVvdmUsIHNlIGlsIHZhbG9yZSDDqCB2dW90bykgdW5hIHNpbmdvbGEgcHJvcHJpZXTDoCwgbGFzY2lhbmRvXHJcbiAqIGludGF0dGUgdHV0dGUgbGUgYWx0cmUuIExlIHByb3ByaWV0w6AgbnVvdmUgdmVuZ29ubyBhY2NvZGF0ZSBpbiBmb25kby5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRDc3NEZWNsYXJhdGlvbihjc3M6IHN0cmluZywgcHJvcDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IChwcm9wIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgaWYgKCF0YXJnZXQpIHsgcmV0dXJuIGNzcyA/PyAnJzsgfVxyXG5cclxuICAgIGNvbnN0IGRlY2xhcmF0aW9ucyA9IHBhcnNlQ3NzRGVjbGFyYXRpb25zKGNzcyk7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9ICh2YWx1ZSA/PyAnJykudHJpbSgpO1xyXG4gICAgY29uc3QgaW5kZXggPSBkZWNsYXJhdGlvbnMuZmluZEluZGV4KChkKSA9PiBkLnByb3AgPT09IHRhcmdldCk7XHJcblxyXG4gICAgaWYgKCFuZXdWYWx1ZSkge1xyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7IGRlY2xhcmF0aW9ucy5zcGxpY2UoaW5kZXgsIDEpOyB9XHJcbiAgICB9IGVsc2UgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICBkZWNsYXJhdGlvbnNbaW5kZXhdLnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKHsgcHJvcDogdGFyZ2V0LCB2YWx1ZTogbmV3VmFsdWUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHNlcmlhbGl6ZUNzc0RlY2xhcmF0aW9ucyhkZWNsYXJhdGlvbnMpO1xyXG59XHJcbiJdfQ==
|