kwikid-forms 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/kwikid-forms.umd.js +101 -56
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/builder/builder.component.js +2 -1
- package/esm2015/lib/builder/element-config-editor/element-config-editor.component.js +12 -7
- package/esm2015/lib/renderer/config-converter.helper.js +24 -1
- package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +2 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +15 -3
- package/fesm2015/kwikid-forms.js +49 -7
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +15 -2
- package/package.json +2 -2
|
@@ -113,6 +113,7 @@ export class KwikIDFormsBuilderComponent {
|
|
|
113
113
|
}
|
|
114
114
|
removeElement(idx, id) {
|
|
115
115
|
this.formElementsDropList.splice(idx, 1);
|
|
116
|
+
this.elementEditorElementConfig = undefined;
|
|
116
117
|
}
|
|
117
118
|
editElement(idx, item) {
|
|
118
119
|
this.elementEditorElementConfig = item;
|
|
@@ -284,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
284
285
|
styleUrls: ["shared/shared.scss", "./builder.component.scss"]
|
|
285
286
|
}]
|
|
286
287
|
}], ctorParameters: function () { return []; }, propDecorators: { handleGetKeyValue: [], drop: [], exit: [], enter: [], removeElement: [], editElement: [], handleOnSaveUpdateElement: [] } });
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFPakQsTUFBTSxPQUFPLDJCQUEyQjtJQW9CdEM7UUFuQkEsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFjLFNBQVMsQ0FBQztRQUV4QyxrQkFBYSxHQUFlLElBQUksUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2pELHFCQUFnQixHQUFlLElBQUksUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hELGtCQUFhLEdBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDbEQscUJBQWdCLEdBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7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Qiw0REN2QnhDLHd2UEF1TkE7QURqR0U7SUFEQyxTQUFTO29FQVFUO0FBR0Q7SUFEQyxTQUFTO3VEQW1DVDtBQUdEO0lBREMsU0FBUzt1REFDa0M7QUFHNUM7SUFEQyxTQUFTO3dEQUNtQztBQVE3QztJQURDLFNBQVM7Z0VBR1Q7QUFHRDtJQURDLFNBQVM7OERBR1Q7QUFHRDtJQURDLFNBQVM7NEVBQzhCOzRGQW5LN0IsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSwwQkFBMEI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixDQUFDO2lCQUM5RDswRUFnR0MsaUJBQWlCLE1BVWpCLElBQUksTUFxQ0osSUFBSSxNQUdKLEtBQUssTUFRTCxhQUFhLE1BS2IsV0FBVyxNQUtYLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENka0RyYWcsXG4gIGNvcHlBcnJheUl0ZW0sXG4gIG1vdmVJdGVtSW5BcnJheVxufSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGdldE9iamVjdEZyb21Mb2NhbFN0b3JhZ2UsXG4gIGlzRW1wdHlWYWx1ZSxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBsb2dNZXRob2QsXG4gIHNldE1pc3NpbmdLZXlWYWx1ZVxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IEVsZW1lbnRzIH0gZnJvbSBcIi4vc2hhcmVkL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyByZXZpc2VkUmFuZElkIH0gZnJvbSBcIi4vc2hhcmVkL2hlbHBlcnNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImt3aWtpZC1mb3Jtcy1idWlsZGVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYnVpbGRlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcInNoYXJlZC9zaGFyZWQuc2Nzc1wiLCBcIi4vYnVpbGRlci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBLd2lrSURGb3Jtc0J1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtS2V5OiBzdHJpbmcgPSBcIlwiO1xuICBmb3JtVGl0bGU6IHN0cmluZyA9IFwiXCI7XG4gIGJ1aWxkZXJGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IHVuZGVmaW5lZDtcblxuICBiYXNpY0VsZW1lbnRzOiBBcnJheTxhbnk+ID0gbmV3IEVsZW1lbnRzKCkuYmFzaWM7XG4gIGRvY3VtZW50RWxlbWVudHM6IEFycmF5PGFueT4gPSBuZXcgRWxlbWVudHMoKS5kb2N1bWVudHM7XG4gIG90aGVyRWxlbWVudHM6IEFycmF5PGFueT4gPSBuZXcgRWxlbWVudHMoKS5vdGhlcnM7XG4gIHRlbXBsYXRlRWxlbWVudHM6IEFycmF5PGFueT4gPSBuZXcgRWxlbWVudHMoKS50ZW1wbGF0ZXM7XG5cbiAgZWxlbWVudHNNYXBwaW5nOiBhbnkgPSBuZXcgRWxlbWVudHMoKS5lbGVtZW50TWFwcGluZztcblxuICBmb3JtRWxlbWVudHNEcmFnTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuICBmb3JtRWxlbWVudHNEcm9wTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuXG4gIGVsZW1lbnRFZGl0b3JFbGVtZW50Q29uZmlnOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgZmluYWxKU09OQ29uZmlnOiBhbnkgPSB1bmRlZmluZWQ7XG4gIEpTT04gPSBKU09OO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYnVpbGRlckZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgZm9ybUtleTogbmV3IEZvcm1Db250cm9sKFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBmb3JtVGl0bGU6IG5ldyBGb3JtQ29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3JtRHJvcENvbmZpZyA9IGdldE9iamVjdEZyb21Mb2NhbFN0b3JhZ2UoXCJmb3JtRHJvcENvbmZpZ1wiKTtcblxuICAgIGlmIChpc05vdEVtcHR5VmFsdWUoZm9ybURyb3BDb25maWcpKSB7XG4gICAgICB0aGlzLmZvcm1LZXkgPSBmb3JtRHJvcENvbmZpZy5rZXk7XG4gICAgICB0aGlzLmZvcm1UaXRsZSA9IGZvcm1Ecm9wQ29uZmlnLnRpdGxlO1xuICAgICAgY29uc3QgZm9ybUZpZWxkcyA9IGZvcm1Ecm9wQ29uZmlnLmZpZWxkcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgaXRlbS5lbGVtZW50SWQgPSByZXZpc2VkUmFuZElkKCk7XG4gICAgICAgIGl0ZW0uZWxlbWVudENhdGVnb3J5ID0gdGhpcy5lbGVtZW50c01hcHBpbmcuYmFzaWMuaW5jbHVkZXMoaXRlbS50eXBlKVxuICAgICAgICAgID8gXCJiYXNpY1wiXG4gICAgICAgICAgOiB0aGlzLmVsZW1lbnRzTWFwcGluZy5kb2N1bWVudHMuaW5jbHVkZXMoaXRlbS50eXBlKVxuICAgICAgICAgID8gXCJkb2N1bWVudFwiXG4gICAgICAgICAgOiBcIm90aGVyc1wiO1xuICAgICAgICBpdGVtLmVsZW1lbnRUeXBlID1cbiAgICAgICAgICBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJiYXNpY1wiIHx8XG4gICAgICAgICAgaXRlbS5lbGVtZW50Q2F0ZWdvcnkgPT09IFwiZG9jdW1lbnRcIlxuICAgICAgICAgICAgPyBpdGVtLnR5cGVcbiAgICAgICAgICAgIDogU3RyaW5nKGBOQTw+JHtpdGVtLnR5cGV9YCk7XG4gICAgICAgIGl0ZW0uaXNFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZWxlbWVudEZpbHRlcmVkID1cbiAgICAgICAgICBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJiYXNpY1wiXG4gICAgICAgICAgICA/IHRoaXMuYmFzaWNFbGVtZW50cy5maW5kKFxuICAgICAgICAgICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50LmVsZW1lbnRUeXBlID09PSBpdGVtLnR5cGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJkb2N1bWVudFwiXG4gICAgICAgICAgICA/IHRoaXMuZG9jdW1lbnRFbGVtZW50cy5maW5kKFxuICAgICAgICAgICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50LmVsZW1lbnRUeXBlID09PSBpdGVtLnR5cGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJvdGhlcnNcIlxuICAgICAgICAgICAgPyB0aGlzLm90aGVyRWxlbWVudHMuZmluZChcbiAgICAgICAgICAgICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC5lbGVtZW50VHlwZSA9PT0gaXRlbS50eXBlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBpdGVtLmVsZW1lbnRUaXRsZSA9IGlzRW1wdHlWYWx1ZShlbGVtZW50RmlsdGVyZWQpXG4gICAgICAgICAgPyBpdGVtLmVsZW1lbnRDYXRlZ29yeSArIFwiOjpcIiArIGl0ZW0uZWxlbWVudFR5cGVcbiAgICAgICAgICA6IGVsZW1lbnRGaWx0ZXJlZC5lbGVtZW50VGl0bGU7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5mb3JtRWxlbWVudHNEcm9wTGlzdCA9IGZvcm1GaWVsZHM7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb3JtRWxlbWVudHNEcmFnTGlzdCA9IFtcbiAgICAgIHsgaXNFbGVtZW50OiBmYWxzZSwgZWxlbWVudFRpdGxlOiBcIkJhc2ljIEVsZW1lbnRzXCIgfSxcbiAgICAgIC4uLnRoaXMuYmFzaWNFbGVtZW50cyxcbiAgICAgIHsgaXNFbGVtZW50OiBmYWxzZSwgZWxlbWVudFRpdGxlOiBcIkRvY3VtZW50IEVsZW1lbnRzXCIgfSxcbiAgICAgIC4uLnRoaXMuZG9jdW1lbnRFbGVtZW50cyxcbiAgICAgIHsgaXNFbGVtZW50OiBmYWxzZSwgZWxlbWVudFRpdGxlOiBcIk90aGVyIEVsZW1lbnRzXCIgfSxcbiAgICAgIC4uLnRoaXMub3RoZXJFbGVtZW50c1xuICAgIF07XG5cbiAgICBmb3IgKGxldCBmb3JtRWxlbWVudHNEcmFnSXRlbSBvZiB0aGlzLmZvcm1FbGVtZW50c0RyYWdMaXN0KSB7XG4gICAgICBmb3JtRWxlbWVudHNEcmFnSXRlbS5lbGVtZW50SWQgPSByZXZpc2VkUmFuZElkKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT25DaGFuZ2UoXG4gICAgZXZlbnQ6IHsgdGFyZ2V0OiB7IHZhbHVlOiBhbnkgfSB9LFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAga2V5OiBzdHJpbmcgfCBudW1iZXIsXG4gICAgaWR4OiBhbnlcbiAgKSB7XG4gICAgY29uc3QgX3ZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICB9XG5cbiAgLy8gRE9NIEV2ZW50IEhhbmRsZXJzXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlR2V0S2V5VmFsdWUoZTogYW55KSB7XG4gICAgdGhpcy5idWlsZGVyRm9ybUdyb3VwLnBhdGNoVmFsdWUoXG4gICAgICB7XG4gICAgICAgIFtlLmtleV06IGUudmFsdWVcbiAgICAgIH0sXG4gICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgICk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGRyb3AoZXZlbnQ6IGFueSwgZWxlbWVudENhdGVnb3J5OiBzdHJpbmcpIHtcbiAgICAvLyBsZXQgaXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgIT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgY29uc29sZS5sb2coXCJjb3B5aW5nXCIpO1xuICAgICAgaWYgKGV2ZW50Lml0ZW0uZGF0YS5pc0VsZW1lbnQpIHtcbiAgICAgICAgLy8gQ2xvbmUgdGhlIGl0ZW0gdGhhdCB3YXMgZHJvcHBlZC5cbiAgICAgICAgY29uc3QgZHJhZ2dlZEl0ZW1JbmRleCA9IHRoaXMuZm9ybUVsZW1lbnRzRHJhZ0xpc3QuZmluZEluZGV4KChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0uZWxlbWVudElkID09PSBldmVudC5pdGVtLmRhdGEuZWxlbWVudElkO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb3B5QXJyYXlJdGVtKFxuICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnRzRHJhZ0xpc3QsXG4gICAgICAgICAgdGhpcy5mb3JtRWxlbWVudHNEcm9wTGlzdCxcbiAgICAgICAgICBkcmFnZ2VkSXRlbUluZGV4LFxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnRzRHJhZ0xpc3QgPSBKU09OLnBhcnNlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgdGhpcy5mb3JtRWxlbWVudHNEcmFnTGlzdC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbS5lbGVtZW50SWQgPSByZXZpc2VkUmFuZElkKCk7XG4gICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKFwibW92aW5nXCIpO1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZXhpdChldmVudDogYW55LCBlbGVtZW50Q2F0ZWdvcnk6IHN0cmluZykge31cblxuICBAbG9nTWV0aG9kXG4gIGVudGVyKGV2ZW50OiBhbnksIGVsZW1lbnRDYXRlZ29yeTogc3RyaW5nKSB7fVxuXG4gIC8qKiBQcmVkaWNhdGUgZnVuY3Rpb24gdGhhdCBvbmx5IGFsbG93cyBpc0VsZW1lbnQ6IHRydWUgaXRlbXMgdG8gYmUgZHJvcHBlZCBpbnRvIGEgbGlzdC4gKi9cbiAgaXNFbGVtZW50UHJlZGljYXRlKGl0ZW06IENka0RyYWc8YW55Pikge1xuICAgIHJldHVybiBpdGVtLmRhdGEuaXNFbGVtZW50O1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICByZW1vdmVFbGVtZW50KGlkeDogbnVtYmVyLCBpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtRWxlbWVudHNEcm9wTGlzdC5zcGxpY2UoaWR4LCAxKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZWRpdEVsZW1lbnQoaWR4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIHRoaXMuZWxlbWVudEVkaXRvckVsZW1lbnRDb25maWcgPSBpdGVtO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPblNhdmVVcGRhdGVFbGVtZW50KGV2ZW50OiBhbnkpIHt9XG5cbiAgaGFuZGxlT25DbGlja1NhdmVGb3JtcyhldmVudDogYW55KSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh0aGlzLmJ1aWxkZXJGb3JtR3JvdXAuY29udHJvbHMuZm9ybUtleS52YWx1ZSkpIHtcbiAgICAgIHdpbmRvdy5hbGVydChcIlBsZWFzZSBwcm92aWRlIEZvcm0gS2V5XCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1LZXkgPSB0aGlzLmJ1aWxkZXJGb3JtR3JvdXAuY29udHJvbHMuZm9ybUtleS52YWx1ZTtcbiAgICAgIHRoaXMuZm9ybUtleSA9IHRoaXMuZm9ybUtleS5yZXBsYWNlKC9cXHMvZywgXCJfXCIpLnRvTG9jYWxlVXBwZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh0aGlzLmJ1aWxkZXJGb3JtR3JvdXAuY29udHJvbHMuZm9ybVRpdGxlLnZhbHVlKSkge1xuICAgICAgd2luZG93LmFsZXJ0KFwiUGxlYXNlIHByb3ZpZGUgRm9ybSBUaXRsZVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtVGl0bGUgPSB0aGlzLmJ1aWxkZXJGb3JtR3JvdXAuY29udHJvbHMuZm9ybVRpdGxlLnZhbHVlO1xuICAgIH1cblxuICAgIGxldCBmaW5hbEZpZWxkcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRWxlbWVudHNEcm9wTGlzdCkpO1xuICAgIGZpbmFsRmllbGRzID0gZmluYWxGaWVsZHMubWFwKChpdGVtKSA9PiB7XG4gICAgICBpdGVtID0gc2V0TWlzc2luZ0tleVZhbHVlKGl0ZW0sIFwidHlwZVwiLCBpdGVtLmVsZW1lbnRUeXBlKTtcblxuICAgICAgaWYgKGl0ZW0uZWxlbWVudFR5cGUuc3RhcnRzV2l0aChcIk5BPD5cIiwgMCkpIHtcbiAgICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudElkO1xuICAgICAgICBkZWxldGUgaXRlbS5lbGVtZW50VHlwZTtcbiAgICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudFRpdGxlO1xuICAgICAgICBkZWxldGUgaXRlbS5lbGVtZW50Q2F0ZWdvcnk7XG4gICAgICAgIGRlbGV0ZSBpdGVtLmlzRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRJZDtcbiAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRUeXBlO1xuICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudFRpdGxlO1xuICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudENhdGVnb3J5O1xuICAgICAgZGVsZXRlIGl0ZW0uaXNFbGVtZW50O1xuXG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoaXRlbSwgXCJkZWZhdWx0XCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhpdGVtLmRlZmF1bHQsIFwidmFsdWVcIikpIHtcbiAgICAgICAgICBpZiAoaXRlbS5kZWZhdWx0LnZhbHVlKSB7XG4gICAgICAgICAgICBpdGVtLmRlZmF1bHQgPSB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaXNfZm91bmQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBcIk9CSkVDVFwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIkFMTF9GT1JNU19EQVRBXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBTdHJpbmcoYCQuJHt0aGlzLmZvcm1LZXl9LiR7aXRlbS5rZXl9YClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgaXNfdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9JTklUXCJdLFxuICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIlZBTFVFX0NIRUNLXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiT0JKRUNUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiQUxMX0ZPUk1TX0RBVEFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFN0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCQuJHt0aGlzLmZvcm1LZXl9LiR7aXRlbS5rZXl9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogeyBrZXk6IFwiSVNfTk9UX0VNUFRZXCIgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRLZXk6IFN0cmluZyhgJHtpdGVtLmtleX1gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJPQkpFQ1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJBTExfRk9STVNfREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJC4ke3RoaXMuZm9ybUtleX0uJHtpdGVtLmtleX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpdGVtLmRlZmF1bHQgPSB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaXNfZm91bmQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmFsRm9ybUNvbmZpZyA9IHtcbiAgICAgIGtleTogdGhpcy5mb3JtS2V5LFxuICAgICAgdGl0bGU6IHRoaXMuZm9ybVRpdGxlLFxuICAgICAgZmllbGRzOiBmaW5hbEZpZWxkc1xuICAgIH07XG5cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInJlbmRlcmVyRm9ybUNvbmZpZ1wiLCBKU09OLnN0cmluZ2lmeShmaW5hbEZvcm1Db25maWcpKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgIFwiYnVpbGRlckZvcm1Db25maWdcIixcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAga2V5OiB0aGlzLmZvcm1LZXksXG4gICAgICAgIHRpdGxlOiB0aGlzLmZvcm1UaXRsZSxcbiAgICAgICAgZmllbGRzOiB0aGlzLmZvcm1FbGVtZW50c0Ryb3BMaXN0XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmZpbmFsSlNPTkNvbmZpZyA9IGZpbmFsRm9ybUNvbmZpZztcbiAgICBjb25zb2xlLmxvZyhmaW5hbEZvcm1Db25maWcpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybUVsZW1lbnRzRHJvcExpc3QpO1xuICB9XG5cbiAgY29weVRvQ2xpcGJvYXJkKCkge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KHRoaXMuZmluYWxKU09OQ29uZmlnKSk7XG4gICAgYWxlcnQoXCJKU09OIENvbmZpZyBpcyBjb3BpZWRcIik7XG4gIH1cblxuICBjbG9zZUpTT05Qb3B1cCgpIHtcbiAgICB0aGlzLmZpbmFsSlNPTkNvbmZpZyA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJidWlsZGVyLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImJ1aWxkZXItdGl0bGVcIj5Ld2lrSUQgRm9ybSBCdWlsZGVyPC9kaXY+XG4gICAgICA8Zm9ybVxuICAgICAgICBbZm9ybUdyb3VwXT1cImJ1aWxkZXJGb3JtR3JvdXBcIlxuICAgICAgICBjbGFzcz1cImJ1aWxkZXItZm9ybVwiXG4gICAgICA+XG4gICAgICAgIDxrd2lrdWktaW5wdXRcbiAgICAgICAgICBbbGFiZWxdPVwiJ0Zvcm0gS2V5J1wiXG4gICAgICAgICAgW2lkXT1cIidmb3JtX2tleSdcIlxuICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZm9ybUtleSdcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJidWlsZGVyRm9ybUdyb3VwLmNvbnRyb2xzWydmb3JtS2V5J11cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQbGVhc2UgZW50ZXIgYSBGb3JtIEtleSdcIlxuICAgICAgICAgIFtmb2N1c109XCJmYWxzZVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiZmFsc2VcIlxuICAgICAgICAgIFtjYXNlXT1cIid1cHBlcidcIlxuICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAoZ2V0S2V5VmFsdWUpPVwiaGFuZGxlR2V0S2V5VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgID48L2t3aWt1aS1pbnB1dD5cbiAgICAgICAgPGt3aWt1aS1pbnB1dFxuICAgICAgICAgIFtsYWJlbF09XCInRm9ybSBUaXRsZSdcIlxuICAgICAgICAgIFtpZF09XCInZm9ybV90aXRsZSdcIlxuICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZm9ybVRpdGxlJ1wiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImJ1aWxkZXJGb3JtR3JvdXAuY29udHJvbHNbJ2Zvcm1UaXRsZSddXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUGxlYXNlIGVudGVyIGEgRm9ybSBUaXRsZSdcIlxuICAgICAgICAgIFtmb2N1c109XCJmYWxzZVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiZmFsc2VcIlxuICAgICAgICAgIFtjYXNlXT1cIidkZWZhdWx0J1wiXG4gICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgIChnZXRLZXlWYWx1ZSk9XCJoYW5kbGVHZXRLZXlWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgPjwva3dpa3VpLWlucHV0PlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhYnVpbGRlckZvcm1Hcm91cC52YWxpZFwiXG4gICAgICAgICAgaWQ9XCJzYXZlX2Zvcm1fYnRuXCJcbiAgICAgICAgICBsYWJlbD1cIlNhdmUgRm9ybVwiXG4gICAgICAgICAgW3Nob3dMb2FkZXJdPVwiZmFsc2VcIlxuICAgICAgICAgIHN0eWxlcz1cIlwiXG4gICAgICAgICAgY2xhc3M9XCJcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJwcmltYXJ5XCJcbiAgICAgICAgICBpY29uPVwiXCJcbiAgICAgICAgICBpY29uUmlnaHQ9XCJcIlxuICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVPbkNsaWNrU2F2ZUZvcm1zKCRldmVudClcIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJidWlsZGVyLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnRzLWRyYWctd3JhcHBlclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWVsZW1lbnRzLWRyYWdcIlxuICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJmb3JtRWxlbWVudHNEcmFnTGlzdFwiXG4gICAgICAgICAgY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRcbiAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZm9ybUVsZW1lbnRzTGlzdF1cIlxuICAgICAgICAgIChjZGtEcm9wTGlzdEV4aXRlZCk9XCJleGl0KCRldmVudCwgJ290aGVyJylcIlxuICAgICAgICAgIChjZGtEcm9wTGlzdEVudGVyZWQpPVwiZW50ZXIoJGV2ZW50LCAnb3RoZXInKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZm9ybUVsZW1lbnREcmFnSXRlbSBvZiBmb3JtRWxlbWVudHNEcmFnTGlzdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1FbGVtZW50RHJhZ0l0ZW0uaXNFbGVtZW50XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZWxlbWVudC1kcmFnXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cImZvcm1FbGVtZW50RHJhZ0l0ZW1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJiM4OTQyOyYjODk0MjsmbmJzcDsmbmJzcDt7eyBmb3JtRWxlbWVudERyYWdJdGVtLmVsZW1lbnRUaXRsZSB9fVxuICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJmb3JtRWxlbWVudERyYWdJdGVtLmNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZWxlbWVudC1kcmFnXCJcbiAgICAgICAgICAgICAgICAqY2RrRHJhZ1BsYWNlaG9sZGVyXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBmb3JtRWxlbWVudERyYWdJdGVtLmVsZW1lbnRUaXRsZSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmb3JtRWxlbWVudERyYWdJdGVtLmlzRWxlbWVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1lbGVtZW50LWNhdGVnb3J5XCI+XG4gICAgICAgICAgICAgICAge3sgZm9ybUVsZW1lbnREcmFnSXRlbS5lbGVtZW50VGl0bGUgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmb3JtLWVsZW1lbnRzLWRyb3Atd3JhcHBlclwiXG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICNmb3JtRWxlbWVudHNMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImZvcm1FbGVtZW50c0Ryb3BMaXN0XCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudCwgJycpXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiaXNFbGVtZW50UHJlZGljYXRlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGZvcm1FbGVtZW50RHJvcEl0ZW0gb2YgZm9ybUVsZW1lbnRzRHJvcExpc3Q7XG4gICAgICAgICAgICBsZXQgaWR4ID0gaW5kZXhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudFwiXG4gICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LWdyYWItc3ltYm9sXCI+JiM4OTQyOyYjODk0Mjs8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1tYWluXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1FbGVtZW50RHJvcEl0ZW0uZWxlbWVudFRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxrd2lrdWktYnV0dG9uLWljb25cbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidlZGl0LWVsZW1lbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVzXT1cIlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJcIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInYnV0dG9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cIidzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiJ3R1aUljb25FZGl0J1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJlZGl0RWxlbWVudChpZHgsIGZvcm1FbGVtZW50RHJvcEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgICAgICAgICAgICAgICAgIDxrd2lrdWktYnV0dG9uLWljb25cbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidyZW1vdmUtZWxlbWVudCdcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0xvYWRlcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZXNdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIlwiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIididXR0b24nXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiJ2FjY2VudCdcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCIndHVpSWNvbkNsb3NlTGFyZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInJlbW92ZUVsZW1lbnQoaWR4LCBmb3JtRWxlbWVudERyb3BJdGVtKVwiXG4gICAgICAgICAgICAgICAgICA+PC9rd2lrdWktYnV0dG9uLWljb24+XG4gICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRFbGVtZW50KGlkeCwgZm9ybUVsZW1lbnREcm9wSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cImVkaXQgZWxlbWVudCBwcm9wZXJ0aWVzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgJiM5OTk4O1xuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVFbGVtZW50KGlkeCwgZm9ybUVsZW1lbnREcm9wSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cImRlbGV0ZSBlbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgJiMxMDAwNjtcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1ib2R5XCI+IDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LWlkXCI+XG4gICAgICAgICAgICAgICAgICB7eyBmb3JtRWxlbWVudERyb3BJdGVtLmVsZW1lbnRJZCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1jYXRlZ29yeVwiPlxuICAgICAgICAgICAgICAgICAge3sgZm9ybUVsZW1lbnREcm9wSXRlbS5lbGVtZW50Q2F0ZWdvcnkgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtdHlwZVwiPlxuICAgICAgICAgICAgICAgICAge3sgZm9ybUVsZW1lbnREcm9wSXRlbS5lbGVtZW50VHlwZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhhbXBsZS1jdXN0b20tcGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICpjZGtEcmFnUGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiZm9ybUVsZW1lbnREcm9wSXRlbS5jb21wb25lbnRcIj4gPC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JtTW9kYWw7IGNvbnRleHQ6IGZvcm1FbGVtZW50RHJvcEl0ZW1cIj48L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbGVtZW50LXByb3BlcnR5LWVkaXRvci13cmFwcGVyXCI+XG4gICAgICAgIDxlbGVtZW50LWNvbmZpZy1lZGl0b3JcbiAgICAgICAgICBbZWxlbWVudENvbmZpZ109XCJlbGVtZW50RWRpdG9yRWxlbWVudENvbmZpZ1wiXG4gICAgICAgICAgKHVwZGF0ZUVsZW1lbnQpPVwiaGFuZGxlT25TYXZlVXBkYXRlRWxlbWVudCgkZXZlbnQpXCJcbiAgICAgICAgPjwvZWxlbWVudC1jb25maWctZWRpdG9yPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJ1aWxkZXItZm9vdGVyXCI+ICZjb3B5OyBCYWlqdSBEb2RoaWEsIEt3aWtJRCA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1vZGFsXCJcbiAgICAqbmdJZj1cImZpbmFsSlNPTkNvbmZpZ1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm94XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7IGZvcm1UaXRsZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwibW9kYWwtY29kZS1jb3B5XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZCgpXCJcbiAgICAgICAgICAgICAgPkNvcHkgdG8gQ2xpcGJvYXJkPC9kaXZcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbC1jbG9zZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZUpTT05Qb3B1cCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQ2xvc2VcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHByZT5cbiAgICAgICAgPGNvZGU+e3tKU09OLnN0cmluZ2lmeShmaW5hbEpTT05Db25maWcsIHVuZGVmaW5lZCwgMil9fTwvY29kZT5cbiAgICA8L3ByZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFPakQsTUFBTSxPQUFPLDJCQUEyQjtJQW9CdEM7UUFuQkEsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFjLFNBQVMsQ0FBQztRQUV4QyxrQkFBYSxHQUFlLElBQUksUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2pELHFCQUFnQixHQUFlLElBQUksUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hELGtCQUFhLEdBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDbEQscUJBQWdCLEdBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFFeEQsb0JBQWUsR0FBUSxJQUFJLFFBQVEsRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUVyRCx5QkFBb0IsR0FBZSxFQUFFLENBQUM7UUFDdEMseUJBQW9CLEdBQWUsRUFBRSxDQUFDO1FBRXRDLCtCQUEwQixHQUFRLFNBQVMsQ0FBQztRQUU1QyxvQkFBZSxHQUFRLFNBQVMsQ0FBQztRQUNqQyxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBR1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0RCxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRW5FLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFDdEMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDbkUsQ0FBQyxDQUFDLE9BQU87b0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNwRCxDQUFDLENBQUMsVUFBVTt3QkFDWixDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNiLElBQUksQ0FBQyxXQUFXO29CQUNkLElBQUksQ0FBQyxlQUFlLEtBQUssT0FBTzt3QkFDaEMsSUFBSSxDQUFDLGVBQWUsS0FBSyxVQUFVO3dCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7d0JBQ1gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsTUFBTSxlQUFlLEdBQ25CLElBQUksQ0FBQyxlQUFlLEtBQUssT0FBTztvQkFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUMvQztvQkFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxVQUFVO3dCQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDeEIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLElBQUksQ0FDL0M7d0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEtBQUssUUFBUTs0QkFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUMvQzs0QkFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUM7b0JBQy9DLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVztvQkFDaEQsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7Z0JBRWpDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLEdBQUc7WUFDMUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRTtZQUNwRCxHQUFHLElBQUksQ0FBQyxhQUFhO1lBQ3JCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUU7WUFDdkQsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO1lBQ3hCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUU7WUFDcEQsR0FBRyxJQUFJLENBQUMsYUFBYTtTQUN0QixDQUFDO1FBRUYsS0FBSyxJQUFJLG9CQUFvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMxRCxvQkFBb0IsQ0FBQyxTQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUNaLEtBQWlDLEVBQ2pDLEVBQW1CLEVBQ25CLEdBQW9CLEVBQ3BCLEdBQVE7UUFFUixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQscUJBQXFCO0lBRXJCLGlCQUFpQixDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FDOUI7WUFDRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSztTQUNqQixFQUNELEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUdELElBQUksQ0FBQyxLQUFVLEVBQUUsZUFBdUI7UUFDdEMsZ0RBQWdEO1FBQ2hELElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDN0IsbUNBQW1DO2dCQUNuQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDcEUsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDdEQsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsYUFBYSxDQUNYLElBQUksQ0FBQyxvQkFBb0IsRUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixnQkFBZ0IsRUFDaEIsS0FBSyxDQUFDLFlBQVksQ0FDbkIsQ0FBQztnQkFFRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDcEMsSUFBSSxDQUFDLFNBQVMsQ0FDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7b0JBQ2pDLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsZUFBZSxDQUNiLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNwQixLQUFLLENBQUMsYUFBYSxFQUNuQixLQUFLLENBQUMsWUFBWSxDQUNuQixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBR0QsSUFBSSxDQUFDLEtBQVUsRUFBRSxlQUF1QixJQUFHLENBQUM7SUFHNUMsS0FBSyxDQUFDLEtBQVUsRUFBRSxlQUF1QixJQUFHLENBQUM7SUFFN0MsMkZBQTJGO0lBQzNGLGtCQUFrQixDQUFDLElBQWtCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUdELGFBQWEsQ0FBQyxHQUFXLEVBQUUsRUFBVTtRQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFHRCxXQUFXLENBQUMsR0FBVyxFQUFFLElBQVM7UUFDaEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBR0QseUJBQXlCLENBQUMsS0FBVSxJQUFHLENBQUM7SUFFeEMsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5RCxNQUFNLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDeEMsT0FBTztTQUNSO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQ3JFO1FBRUQsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEUsTUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzFDLE9BQU87U0FDUjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDakU7UUFFRCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUN4RSxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JDLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUxRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDMUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBRXRCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBRXRCLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7b0JBQy9DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7d0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUc7NEJBQ2IsS0FBSyxFQUFFO2dDQUNMLFFBQVEsRUFBRSxLQUFLO2dDQUNmLEtBQUssRUFBRSxFQUFFO2dDQUNULE9BQU8sRUFBRTtvQ0FDUDt3Q0FDRSxHQUFHLEVBQUUsUUFBUTt3Q0FDYixLQUFLLEVBQUU7NENBQ0wsTUFBTSxFQUFFO2dEQUNOLEdBQUcsRUFBRSxnQkFBZ0I7Z0RBQ3JCLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzs2Q0FDOUM7eUNBQ0Y7d0NBQ0QsS0FBSyxFQUFFLEVBQUU7d0NBQ1QsVUFBVSxFQUFFOzRDQUNWLFFBQVEsRUFBRSxLQUFLOzRDQUNmLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQzs0Q0FDckIsS0FBSyxFQUFFO2dEQUNMO29EQUNFLEVBQUUsRUFBRSxHQUFHO29EQUNQLEdBQUcsRUFBRSxhQUFhO29EQUNsQixLQUFLLEVBQUU7d0RBQ0wsS0FBSyxFQUFFOzREQUNMLE1BQU0sRUFBRTtnRUFDTixHQUFHLEVBQUUsUUFBUTtnRUFDYixLQUFLLEVBQUU7b0VBQ0wsTUFBTSxFQUFFO3dFQUNOLEdBQUcsRUFBRSxnQkFBZ0I7d0VBQ3JCLElBQUksRUFBRSxNQUFNLENBQ1YsS0FBSyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDaEM7cUVBQ0Y7aUVBQ0Y7NkRBQ0Y7eURBQ0Y7d0RBQ0QsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRTtxREFDakM7aURBQ0Y7NkNBQ0Y7NENBQ0QsT0FBTyxFQUFFO2dEQUNQO29EQUNFLEVBQUUsRUFBRSxHQUFHO29EQUNQLEdBQUcsRUFBRSx5QkFBeUI7b0RBQzlCLFNBQVMsRUFBRSxHQUFHO29EQUNkLEtBQUssRUFBRTt3REFDTCxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dEQUMvQixLQUFLLEVBQUU7NERBQ0wsTUFBTSxFQUFFO2dFQUNOLEdBQUcsRUFBRSxRQUFRO2dFQUNiLEtBQUssRUFBRTtvRUFDTCxNQUFNLEVBQUU7d0VBQ04sR0FBRyxFQUFFLGdCQUFnQjt3RUFDckIsSUFBSSxFQUFFLE1BQU0sQ0FDVixLQUFLLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUNoQztxRUFDRjtpRUFDRjs2REFDRjt5REFDRjtxREFDRjtpREFDRjs2Q0FDRjt5Q0FDRjtxQ0FDRjtpQ0FDRjs2QkFDRjt5QkFDRixDQUFDO3FCQUNIO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUc7NEJBQ2IsS0FBSyxFQUFFO2dDQUNMLFFBQVEsRUFBRSxLQUFLO2dDQUNmLEtBQUssRUFBRSxFQUFFO2dDQUNULE9BQU8sRUFBRSxFQUFFOzZCQUNaO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGVBQWUsR0FBRztZQUN0QixHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3JCLE1BQU0sRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUM1RSxZQUFZLENBQUMsT0FBTyxDQUNsQixtQkFBbUIsRUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7U0FDbEMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGVBQWU7UUFDYixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7SUFDbkMsQ0FBQzs7NElBelRVLDJCQUEyQjtnSUFBM0IsMkJBQTJCLDREQ3ZCeEMsd3ZQQXVOQTtBRGpHRTtJQURDLFNBQVM7b0VBUVQ7QUFHRDtJQURDLFNBQVM7dURBbUNUO0FBR0Q7SUFEQyxTQUFTO3VEQUNrQztBQUc1QztJQURDLFNBQVM7d0RBQ21DO0FBUTdDO0lBREMsU0FBUztnRUFJVDtBQUdEO0lBREMsU0FBUzs4REFHVDtBQUdEO0lBREMsU0FBUzs0RUFDOEI7NEZBcEs3QiwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsU0FBUyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMEJBQTBCLENBQUM7aUJBQzlEOzBFQWdHQyxpQkFBaUIsTUFVakIsSUFBSSxNQXFDSixJQUFJLE1BR0osS0FBSyxNQVFMLGFBQWEsTUFNYixXQUFXLE1BS1gseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2RrRHJhZyxcbiAgY29weUFycmF5SXRlbSxcbiAgbW92ZUl0ZW1JbkFycmF5XG59IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgZ2V0T2JqZWN0RnJvbUxvY2FsU3RvcmFnZSxcbiAgaXNFbXB0eVZhbHVlLFxuICBpc05vdEVtcHR5VmFsdWUsXG4gIGxvZ01ldGhvZCxcbiAgc2V0TWlzc2luZ0tleVZhbHVlXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRWxlbWVudHMgfSBmcm9tIFwiLi9zaGFyZWQvZWxlbWVudHNcIjtcbmltcG9ydCB7IHJldmlzZWRSYW5kSWQgfSBmcm9tIFwiLi9zaGFyZWQvaGVscGVyc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwia3dpa2lkLWZvcm1zLWJ1aWxkZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9idWlsZGVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wic2hhcmVkL3NoYXJlZC5zY3NzXCIsIFwiLi9idWlsZGVyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1zQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZvcm1LZXk6IHN0cmluZyA9IFwiXCI7XG4gIGZvcm1UaXRsZTogc3RyaW5nID0gXCJcIjtcbiAgYnVpbGRlckZvcm1Hcm91cDogRm9ybUdyb3VwID0gdW5kZWZpbmVkO1xuXG4gIGJhc2ljRWxlbWVudHM6IEFycmF5PGFueT4gPSBuZXcgRWxlbWVudHMoKS5iYXNpYztcbiAgZG9jdW1lbnRFbGVtZW50czogQXJyYXk8YW55PiA9IG5ldyBFbGVtZW50cygpLmRvY3VtZW50cztcbiAgb3RoZXJFbGVtZW50czogQXJyYXk8YW55PiA9IG5ldyBFbGVtZW50cygpLm90aGVycztcbiAgdGVtcGxhdGVFbGVtZW50czogQXJyYXk8YW55PiA9IG5ldyBFbGVtZW50cygpLnRlbXBsYXRlcztcblxuICBlbGVtZW50c01hcHBpbmc6IGFueSA9IG5ldyBFbGVtZW50cygpLmVsZW1lbnRNYXBwaW5nO1xuXG4gIGZvcm1FbGVtZW50c0RyYWdMaXN0OiBBcnJheTxhbnk+ID0gW107XG4gIGZvcm1FbGVtZW50c0Ryb3BMaXN0OiBBcnJheTxhbnk+ID0gW107XG5cbiAgZWxlbWVudEVkaXRvckVsZW1lbnRDb25maWc6IGFueSA9IHVuZGVmaW5lZDtcblxuICBmaW5hbEpTT05Db25maWc6IGFueSA9IHVuZGVmaW5lZDtcbiAgSlNPTiA9IEpTT047XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5idWlsZGVyRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBmb3JtS2V5OiBuZXcgRm9ybUNvbnRyb2woXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIGZvcm1UaXRsZTogbmV3IEZvcm1Db250cm9sKFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvcm1Ecm9wQ29uZmlnID0gZ2V0T2JqZWN0RnJvbUxvY2FsU3RvcmFnZShcImZvcm1Ecm9wQ29uZmlnXCIpO1xuXG4gICAgaWYgKGlzTm90RW1wdHlWYWx1ZShmb3JtRHJvcENvbmZpZykpIHtcbiAgICAgIHRoaXMuZm9ybUtleSA9IGZvcm1Ecm9wQ29uZmlnLmtleTtcbiAgICAgIHRoaXMuZm9ybVRpdGxlID0gZm9ybURyb3BDb25maWcudGl0bGU7XG4gICAgICBjb25zdCBmb3JtRmllbGRzID0gZm9ybURyb3BDb25maWcuZmllbGRzLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLmVsZW1lbnRJZCA9IHJldmlzZWRSYW5kSWQoKTtcbiAgICAgICAgaXRlbS5lbGVtZW50Q2F0ZWdvcnkgPSB0aGlzLmVsZW1lbnRzTWFwcGluZy5iYXNpYy5pbmNsdWRlcyhpdGVtLnR5cGUpXG4gICAgICAgICAgPyBcImJhc2ljXCJcbiAgICAgICAgICA6IHRoaXMuZWxlbWVudHNNYXBwaW5nLmRvY3VtZW50cy5pbmNsdWRlcyhpdGVtLnR5cGUpXG4gICAgICAgICAgPyBcImRvY3VtZW50XCJcbiAgICAgICAgICA6IFwib3RoZXJzXCI7XG4gICAgICAgIGl0ZW0uZWxlbWVudFR5cGUgPVxuICAgICAgICAgIGl0ZW0uZWxlbWVudENhdGVnb3J5ID09PSBcImJhc2ljXCIgfHxcbiAgICAgICAgICBpdGVtLmVsZW1lbnRDYXRlZ29yeSA9PT0gXCJkb2N1bWVudFwiXG4gICAgICAgICAgICA/IGl0ZW0udHlwZVxuICAgICAgICAgICAgOiBTdHJpbmcoYE5BPD4ke2l0ZW0udHlwZX1gKTtcbiAgICAgICAgaXRlbS5pc0VsZW1lbnQgPSB0cnVlO1xuICAgICAgICBjb25zdCBlbGVtZW50RmlsdGVyZWQgPVxuICAgICAgICAgIGl0ZW0uZWxlbWVudENhdGVnb3J5ID09PSBcImJhc2ljXCJcbiAgICAgICAgICAgID8gdGhpcy5iYXNpY0VsZW1lbnRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGVsZW1lbnQpID0+IGVsZW1lbnQuZWxlbWVudFR5cGUgPT09IGl0ZW0udHlwZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGl0ZW0uZWxlbWVudENhdGVnb3J5ID09PSBcImRvY3VtZW50XCJcbiAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudEVsZW1lbnRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGVsZW1lbnQpID0+IGVsZW1lbnQuZWxlbWVudFR5cGUgPT09IGl0ZW0udHlwZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGl0ZW0uZWxlbWVudENhdGVnb3J5ID09PSBcIm90aGVyc1wiXG4gICAgICAgICAgICA/IHRoaXMub3RoZXJFbGVtZW50cy5maW5kKFxuICAgICAgICAgICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50LmVsZW1lbnRUeXBlID09PSBpdGVtLnR5cGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGl0ZW0uZWxlbWVudFRpdGxlID0gaXNFbXB0eVZhbHVlKGVsZW1lbnRGaWx0ZXJlZClcbiAgICAgICAgICA/IGl0ZW0uZWxlbWVudENhdGVnb3J5ICsgXCI6OlwiICsgaXRlbS5lbGVtZW50VHlwZVxuICAgICAgICAgIDogZWxlbWVudEZpbHRlcmVkLmVsZW1lbnRUaXRsZTtcblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZvcm1FbGVtZW50c0Ryb3BMaXN0ID0gZm9ybUZpZWxkcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm1FbGVtZW50c0RyYWdMaXN0ID0gW1xuICAgICAgeyBpc0VsZW1lbnQ6IGZhbHNlLCBlbGVtZW50VGl0bGU6IFwiQmFzaWMgRWxlbWVudHNcIiB9LFxuICAgICAgLi4udGhpcy5iYXNpY0VsZW1lbnRzLFxuICAgICAgeyBpc0VsZW1lbnQ6IGZhbHNlLCBlbGVtZW50VGl0bGU6IFwiRG9jdW1lbnQgRWxlbWVudHNcIiB9LFxuICAgICAgLi4udGhpcy5kb2N1bWVudEVsZW1lbnRzLFxuICAgICAgeyBpc0VsZW1lbnQ6IGZhbHNlLCBlbGVtZW50VGl0bGU6IFwiT3RoZXIgRWxlbWVudHNcIiB9LFxuICAgICAgLi4udGhpcy5vdGhlckVsZW1lbnRzXG4gICAgXTtcblxuICAgIGZvciAobGV0IGZvcm1FbGVtZW50c0RyYWdJdGVtIG9mIHRoaXMuZm9ybUVsZW1lbnRzRHJhZ0xpc3QpIHtcbiAgICAgIGZvcm1FbGVtZW50c0RyYWdJdGVtLmVsZW1lbnRJZCA9IHJldmlzZWRSYW5kSWQoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVPbkNoYW5nZShcbiAgICBldmVudDogeyB0YXJnZXQ6IHsgdmFsdWU6IGFueSB9IH0sXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBrZXk6IHN0cmluZyB8IG51bWJlcixcbiAgICBpZHg6IGFueVxuICApIHtcbiAgICBjb25zdCBfdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cblxuICAvLyBET00gRXZlbnQgSGFuZGxlcnNcbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVHZXRLZXlWYWx1ZShlOiBhbnkpIHtcbiAgICB0aGlzLmJ1aWxkZXJGb3JtR3JvdXAucGF0Y2hWYWx1ZShcbiAgICAgIHtcbiAgICAgICAgW2Uua2V5XTogZS52YWx1ZVxuICAgICAgfSxcbiAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZHJvcChldmVudDogYW55LCBlbGVtZW50Q2F0ZWdvcnk6IHN0cmluZykge1xuICAgIC8vIGxldCBpdGVtID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShldmVudCkpO1xuICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciAhPT0gZXZlbnQuY29udGFpbmVyKSB7XG4gICAgICBjb25zb2xlLmxvZyhcImNvcHlpbmdcIik7XG4gICAgICBpZiAoZXZlbnQuaXRlbS5kYXRhLmlzRWxlbWVudCkge1xuICAgICAgICAvLyBDbG9uZSB0aGUgaXRlbSB0aGF0IHdhcyBkcm9wcGVkLlxuICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbUluZGV4ID0gdGhpcy5mb3JtRWxlbWVudHNEcmFnTGlzdC5maW5kSW5kZXgoKGl0ZW0pID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbS5lbGVtZW50SWQgPT09IGV2ZW50Lml0ZW0uZGF0YS5lbGVtZW50SWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvcHlBcnJheUl0ZW0oXG4gICAgICAgICAgdGhpcy5mb3JtRWxlbWVudHNEcmFnTGlzdCxcbiAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50c0Ryb3BMaXN0LFxuICAgICAgICAgIGRyYWdnZWRJdGVtSW5kZXgsXG4gICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5mb3JtRWxlbWVudHNEcmFnTGlzdCA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50c0RyYWdMaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICBpdGVtLmVsZW1lbnRJZCA9IHJldmlzZWRSYW5kSWQoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coXCJtb3ZpbmdcIik7XG4gICAgICBtb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBleGl0KGV2ZW50OiBhbnksIGVsZW1lbnRDYXRlZ29yeTogc3RyaW5nKSB7fVxuXG4gIEBsb2dNZXRob2RcbiAgZW50ZXIoZXZlbnQ6IGFueSwgZWxlbWVudENhdGVnb3J5OiBzdHJpbmcpIHt9XG5cbiAgLyoqIFByZWRpY2F0ZSBmdW5jdGlvbiB0aGF0IG9ubHkgYWxsb3dzIGlzRWxlbWVudDogdHJ1ZSBpdGVtcyB0byBiZSBkcm9wcGVkIGludG8gYSBsaXN0LiAqL1xuICBpc0VsZW1lbnRQcmVkaWNhdGUoaXRlbTogQ2RrRHJhZzxhbnk+KSB7XG4gICAgcmV0dXJuIGl0ZW0uZGF0YS5pc0VsZW1lbnQ7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHJlbW92ZUVsZW1lbnQoaWR4OiBudW1iZXIsIGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm1FbGVtZW50c0Ryb3BMaXN0LnNwbGljZShpZHgsIDEpO1xuICAgIHRoaXMuZWxlbWVudEVkaXRvckVsZW1lbnRDb25maWcgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGVkaXRFbGVtZW50KGlkeDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcbiAgICB0aGlzLmVsZW1lbnRFZGl0b3JFbGVtZW50Q29uZmlnID0gaXRlbTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlT25TYXZlVXBkYXRlRWxlbWVudChldmVudDogYW55KSB7fVxuXG4gIGhhbmRsZU9uQ2xpY2tTYXZlRm9ybXMoZXZlbnQ6IGFueSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodGhpcy5idWlsZGVyRm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1LZXkudmFsdWUpKSB7XG4gICAgICB3aW5kb3cuYWxlcnQoXCJQbGVhc2UgcHJvdmlkZSBGb3JtIEtleVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtS2V5ID0gdGhpcy5idWlsZGVyRm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1LZXkudmFsdWU7XG4gICAgICB0aGlzLmZvcm1LZXkgPSB0aGlzLmZvcm1LZXkucmVwbGFjZSgvXFxzL2csIFwiX1wiKS50b0xvY2FsZVVwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIGlmIChpc0VtcHR5VmFsdWUodGhpcy5idWlsZGVyRm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1UaXRsZS52YWx1ZSkpIHtcbiAgICAgIHdpbmRvdy5hbGVydChcIlBsZWFzZSBwcm92aWRlIEZvcm0gVGl0bGVcIik7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybVRpdGxlID0gdGhpcy5idWlsZGVyRm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1UaXRsZS52YWx1ZTtcbiAgICB9XG5cbiAgICBsZXQgZmluYWxGaWVsZHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybUVsZW1lbnRzRHJvcExpc3QpKTtcbiAgICBmaW5hbEZpZWxkcyA9IGZpbmFsRmllbGRzLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbSA9IHNldE1pc3NpbmdLZXlWYWx1ZShpdGVtLCBcInR5cGVcIiwgaXRlbS5lbGVtZW50VHlwZSk7XG5cbiAgICAgIGlmIChpdGVtLmVsZW1lbnRUeXBlLnN0YXJ0c1dpdGgoXCJOQTw+XCIsIDApKSB7XG4gICAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRJZDtcbiAgICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudFR5cGU7XG4gICAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRUaXRsZTtcbiAgICAgICAgZGVsZXRlIGl0ZW0uZWxlbWVudENhdGVnb3J5O1xuICAgICAgICBkZWxldGUgaXRlbS5pc0VsZW1lbnQ7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9XG4gICAgICBkZWxldGUgaXRlbS5lbGVtZW50SWQ7XG4gICAgICBkZWxldGUgaXRlbS5lbGVtZW50VHlwZTtcbiAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRUaXRsZTtcbiAgICAgIGRlbGV0ZSBpdGVtLmVsZW1lbnRDYXRlZ29yeTtcbiAgICAgIGRlbGV0ZSBpdGVtLmlzRWxlbWVudDtcblxuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGl0ZW0sIFwiZGVmYXVsdFwiKSkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoaXRlbS5kZWZhdWx0LCBcInZhbHVlXCIpKSB7XG4gICAgICAgICAgaWYgKGl0ZW0uZGVmYXVsdC52YWx1ZSkge1xuICAgICAgICAgICAgaXRlbS5kZWZhdWx0ID0ge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogXCJPQkpFQ1RcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJBTExfRk9STVNfREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogU3RyaW5nKGAkLiR7dGhpcy5mb3JtS2V5fS4ke2l0ZW0ua2V5fWApXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIGlzX3ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyczogW1wiT05fSU5JVFwiXSxcbiAgICAgICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJWQUxVRV9DSEVDS1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIk9CSkVDVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIkFMTF9GT1JNU19EQVRBXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBTdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAkLiR7dGhpcy5mb3JtS2V5fS4ke2l0ZW0ua2V5fWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IHsga2V5OiBcIklTX05PVF9FTVBUWVwiIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJTRVRfRklFTERfREVGQVVMVF9WQUxVRVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkS2V5OiBTdHJpbmcoYCR7aXRlbS5rZXl9YCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiT0JKRUNUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiQUxMX0ZPUk1TX0RBVEFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFN0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCQuJHt0aGlzLmZvcm1LZXl9LiR7aXRlbS5rZXl9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbS5kZWZhdWx0ID0ge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICBzb3VyY2VzOiBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgICBjb25zdCBmaW5hbEZvcm1Db25maWcgPSB7XG4gICAgICBrZXk6IHRoaXMuZm9ybUtleSxcbiAgICAgIHRpdGxlOiB0aGlzLmZvcm1UaXRsZSxcbiAgICAgIGZpZWxkczogZmluYWxGaWVsZHNcbiAgICB9O1xuXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJyZW5kZXJlckZvcm1Db25maWdcIiwgSlNPTi5zdHJpbmdpZnkoZmluYWxGb3JtQ29uZmlnKSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICBcImJ1aWxkZXJGb3JtQ29uZmlnXCIsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGtleTogdGhpcy5mb3JtS2V5LFxuICAgICAgICB0aXRsZTogdGhpcy5mb3JtVGl0bGUsXG4gICAgICAgIGZpZWxkczogdGhpcy5mb3JtRWxlbWVudHNEcm9wTGlzdFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5maW5hbEpTT05Db25maWcgPSBmaW5hbEZvcm1Db25maWc7XG4gICAgY29uc29sZS5sb2coZmluYWxGb3JtQ29uZmlnKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm1FbGVtZW50c0Ryb3BMaXN0KTtcbiAgfVxuXG4gIGNvcHlUb0NsaXBib2FyZCgpIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLmZpbmFsSlNPTkNvbmZpZykpO1xuICAgIGFsZXJ0KFwiSlNPTiBDb25maWcgaXMgY29waWVkXCIpO1xuICB9XG5cbiAgY2xvc2VKU09OUG9wdXAoKSB7XG4gICAgdGhpcy5maW5hbEpTT05Db25maWcgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYnVpbGRlci1oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJidWlsZGVyLXRpdGxlXCI+S3dpa0lEIEZvcm0gQnVpbGRlcjwvZGl2PlxuICAgICAgPGZvcm1cbiAgICAgICAgW2Zvcm1Hcm91cF09XCJidWlsZGVyRm9ybUdyb3VwXCJcbiAgICAgICAgY2xhc3M9XCJidWlsZGVyLWZvcm1cIlxuICAgICAgPlxuICAgICAgICA8a3dpa3VpLWlucHV0XG4gICAgICAgICAgW2xhYmVsXT1cIidGb3JtIEtleSdcIlxuICAgICAgICAgIFtpZF09XCInZm9ybV9rZXknXCJcbiAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2Zvcm1LZXknXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYnVpbGRlckZvcm1Hcm91cC5jb250cm9sc1snZm9ybUtleSddXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUGxlYXNlIGVudGVyIGEgRm9ybSBLZXknXCJcbiAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICBbY2FzZV09XCIndXBwZXInXCJcbiAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgKGdldEtleVZhbHVlKT1cImhhbmRsZUdldEtleVZhbHVlKCRldmVudClcIlxuICAgICAgICA+PC9rd2lrdWktaW5wdXQ+XG4gICAgICAgIDxrd2lrdWktaW5wdXRcbiAgICAgICAgICBbbGFiZWxdPVwiJ0Zvcm0gVGl0bGUnXCJcbiAgICAgICAgICBbaWRdPVwiJ2Zvcm1fdGl0bGUnXCJcbiAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2Zvcm1UaXRsZSdcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJidWlsZGVyRm9ybUdyb3VwLmNvbnRyb2xzWydmb3JtVGl0bGUnXVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BsZWFzZSBlbnRlciBhIEZvcm0gVGl0bGUnXCJcbiAgICAgICAgICBbZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgICBbY2FzZV09XCInZGVmYXVsdCdcIlxuICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAoZ2V0S2V5VmFsdWUpPVwiaGFuZGxlR2V0S2V5VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgID48L2t3aWt1aS1pbnB1dD5cbiAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWJ1aWxkZXJGb3JtR3JvdXAudmFsaWRcIlxuICAgICAgICAgIGlkPVwic2F2ZV9mb3JtX2J0blwiXG4gICAgICAgICAgbGFiZWw9XCJTYXZlIEZvcm1cIlxuICAgICAgICAgIFtzaG93TG9hZGVyXT1cImZhbHNlXCJcbiAgICAgICAgICBzdHlsZXM9XCJcIlxuICAgICAgICAgIGNsYXNzPVwiXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXG4gICAgICAgICAgaWNvbj1cIlwiXG4gICAgICAgICAgaWNvblJpZ2h0PVwiXCJcbiAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlT25DbGlja1NhdmVGb3JtcygkZXZlbnQpXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYnVpbGRlci1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1lbGVtZW50cy1kcmFnLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1lbGVtZW50cy1kcmFnXCJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZm9ybUVsZW1lbnRzRHJhZ0xpc3RcIlxuICAgICAgICAgIGNka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW2Zvcm1FbGVtZW50c0xpc3RdXCJcbiAgICAgICAgICAoY2RrRHJvcExpc3RFeGl0ZWQpPVwiZXhpdCgkZXZlbnQsICdvdGhlcicpXCJcbiAgICAgICAgICAoY2RrRHJvcExpc3RFbnRlcmVkKT1cImVudGVyKCRldmVudCwgJ290aGVyJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZvcm1FbGVtZW50RHJhZ0l0ZW0gb2YgZm9ybUVsZW1lbnRzRHJhZ0xpc3RcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtRWxlbWVudERyYWdJdGVtLmlzRWxlbWVudFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWVsZW1lbnQtZHJhZ1wiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJmb3JtRWxlbWVudERyYWdJdGVtXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICYjODk0MjsmIzg5NDI7Jm5ic3A7Jm5ic3A7e3sgZm9ybUVsZW1lbnREcmFnSXRlbS5lbGVtZW50VGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiZm9ybUVsZW1lbnREcmFnSXRlbS5jb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWVsZW1lbnQtZHJhZ1wiXG4gICAgICAgICAgICAgICAgKmNka0RyYWdQbGFjZWhvbGRlclxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZm9ybUVsZW1lbnREcmFnSXRlbS5lbGVtZW50VGl0bGUgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZm9ybUVsZW1lbnREcmFnSXRlbS5pc0VsZW1lbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZWxlbWVudC1jYXRlZ29yeVwiPlxuICAgICAgICAgICAgICAgIHt7IGZvcm1FbGVtZW50RHJhZ0l0ZW0uZWxlbWVudFRpdGxlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZm9ybS1lbGVtZW50cy1kcm9wLXdyYXBwZXJcIlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAjZm9ybUVsZW1lbnRzTGlzdD1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJmb3JtRWxlbWVudHNEcm9wTGlzdFwiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQsICcnKVwiXG4gICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImlzRWxlbWVudFByZWRpY2F0ZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBmb3JtRWxlbWVudERyb3BJdGVtIG9mIGZvcm1FbGVtZW50c0Ryb3BMaXN0O1xuICAgICAgICAgICAgbGV0IGlkeCA9IGluZGV4XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnRcIlxuICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1ncmFiLXN5bWJvbFwiPiYjODk0MjsmIzg5NDI7PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtbWFpblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBmb3JtRWxlbWVudERyb3BJdGVtLmVsZW1lbnRUaXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCInZWRpdC1lbGVtZW50J1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlc109XCJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCInc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIid0dWlJY29uRWRpdCdcIlxuICAgICAgICAgICAgICAgICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ3MnXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZWRpdEVsZW1lbnQoaWR4LCBmb3JtRWxlbWVudERyb3BJdGVtKVwiXG4gICAgICAgICAgICAgICAgICA+PC9rd2lrdWktYnV0dG9uLWljb24+XG4gICAgICAgICAgICAgICAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCIncmVtb3ZlLWVsZW1lbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVzXT1cIlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJcIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInYnV0dG9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cIidhY2NlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiJ3R1aUljb25DbG9zZUxhcmdlJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJyZW1vdmVFbGVtZW50KGlkeCwgZm9ybUVsZW1lbnREcm9wSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgPjwva3dpa3VpLWJ1dHRvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0RWxlbWVudChpZHgsIGZvcm1FbGVtZW50RHJvcEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJlZGl0IGVsZW1lbnQgcHJvcGVydGllc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICYjOTk5ODtcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRWxlbWVudChpZHgsIGZvcm1FbGVtZW50RHJvcEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJkZWxldGUgZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICYjMTAwMDY7XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtYm9keVwiPiA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LWZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyb3AtZWxlbWVudC1pZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZm9ybUVsZW1lbnREcm9wSXRlbS5lbGVtZW50SWQgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcm9wLWVsZW1lbnQtY2F0ZWdvcnlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1FbGVtZW50RHJvcEl0ZW0uZWxlbWVudENhdGVnb3J5IH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJvcC1lbGVtZW50LXR5cGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1FbGVtZW50RHJvcEl0ZW0uZWxlbWVudFR5cGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV4YW1wbGUtY3VzdG9tLXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAqY2RrRHJhZ1BsYWNlaG9sZGVyXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImZvcm1FbGVtZW50RHJvcEl0ZW0uY29tcG9uZW50XCI+IDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9ybU1vZGFsOyBjb250ZXh0OiBmb3JtRWxlbWVudERyb3BJdGVtXCI+PC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZWxlbWVudC1wcm9wZXJ0eS1lZGl0b3Itd3JhcHBlclwiPlxuICAgICAgICA8ZWxlbWVudC1jb25maWctZWRpdG9yXG4gICAgICAgICAgW2VsZW1lbnRDb25maWddPVwiZWxlbWVudEVkaXRvckVsZW1lbnRDb25maWdcIlxuICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgID48L2VsZW1lbnQtY29uZmlnLWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJidWlsZGVyLWZvb3RlclwiPiAmY29weTsgQmFpanUgRG9kaGlhLCBLd2lrSUQgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtb2RhbFwiXG4gICAgKm5nSWY9XCJmaW5hbEpTT05Db25maWdcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJveFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRpbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtdGl0bGVcIj57eyBmb3JtVGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsLWNvZGUtY29weVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoKVwiXG4gICAgICAgICAgICAgID5Db3B5IHRvIENsaXBib2FyZDwvZGl2XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwibW9kYWwtY2xvc2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VKU09OUG9wdXAoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIENsb3NlXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwcmU+XG4gICAgICAgIDxjb2RlPnt7SlNPTi5zdHJpbmdpZnkoZmluYWxKU09OQ29uZmlnLCB1bmRlZmluZWQsIDIpfX08L2NvZGU+XG4gICAgPC9wcmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
3
3
|
import { FormControl, FormGroup } from "@angular/forms";
|
|
4
|
-
import { logMethod } from "kwikid-toolkit";
|
|
4
|
+
import { checkObjectKeyExists, logMethod } from "kwikid-toolkit";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "./editors/basic-element-config.editor.component";
|
|
7
7
|
import * as i2 from "./editors/document-element-config.editor.component";
|
|
@@ -29,11 +29,16 @@ export class ElementConfigEditor {
|
|
|
29
29
|
if (verifyChange("elementConfig")) {
|
|
30
30
|
this.elementConfig = changes.elementConfig.currentValue;
|
|
31
31
|
if (this.elementConfig !== undefined) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
if (!checkObjectKeyExists(this.elementConfig, "elementType")) {
|
|
33
|
+
throw new Error("'elementConfig' doesn't have 'elementType'");
|
|
34
|
+
}
|
|
35
|
+
else if (!checkObjectKeyExists(this.elementConfig, "elementCategory")) {
|
|
36
|
+
throw new Error("'elementConfig' doesn't have 'elementCategory'");
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.elementType = this.elementConfig.elementType;
|
|
40
|
+
this.elementCategory = this.elementConfig.elementCategory;
|
|
41
|
+
}
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
44
|
}
|
|
@@ -89,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
89
94
|
}], updateElement: [{
|
|
90
95
|
type: Output
|
|
91
96
|
}], ngOnInit: [], ngOnChanges: [], updateFormGroup: [], handleOnSaveUpdateElement: [], handleOnClickSave: [] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jb25maWctZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL2J1aWxkZXIvZWxlbWVudC1jb25maWctZWRpdG9yL2VsZW1lbnQtY29uZmlnLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2VsZW1lbnQtY29uZmlnLWVkaXRvci9lbGVtZW50LWNvbmZpZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBV2pFLE1BQU0sT0FBTyxtQkFBbUI7SUFnQjlCO1FBZEEsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUdyQixrQkFBYSxHQUFRLFNBQVMsQ0FBQztRQUcvQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0IsMkJBQXNCLEdBQWMsU0FBUyxDQUFDO1FBRTlDLHFCQUFnQixHQUFXLENBQUMsQ0FBQztJQUVkLENBQUM7SUFHaEIsUUFBUSxLQUFJLENBQUM7SUFHYixXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNuQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ2xFLENBQUMsQ0FBQztRQUVGLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7U0FDN0M7UUFDRCxJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBRXhELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFO29CQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7aUJBQy9EO3FCQUFNLElBQ0wsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLEVBQzVEO29CQUNBLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztpQkFDbkU7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztvQkFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztpQkFDM0Q7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUdELGVBQWU7UUFDYixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDMUMsVUFBVSxFQUFFLElBQUksU0FBUyxDQUFDO2dCQUN4QixXQUFXLEVBQUUsSUFBSSxXQUFXLENBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFDekM7b0JBQ0UsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQ0Y7YUFDRixDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUdELHlCQUF5QixDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUdELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7O29JQXZFVSxtQkFBbUI7d0hBQW5CLG1CQUFtQiwrTEN0QmhDLDh6REEwREE7QURqQkU7SUFEQyxTQUFTO21EQUNHO0FBR2I7SUFEQyxTQUFTO3NEQXlCVDtBQUdEO0lBREMsU0FBUzswREFhVDtBQUdEO0lBREMsU0FBUztvRUFHVDtBQUdEO0lBREMsU0FBUzs0REFHVDs0RkF2RVUsbUJBQW1CO2tCQVQvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSx3Q0FBd0M7b0JBQ3JELFNBQVMsRUFBRTt3QkFDVCx3Q0FBd0M7d0JBQ3hDLHVCQUF1QjtxQkFDeEI7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzBFQUdDLE9BQU87c0JBRE4sS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixNQUFNO2dCQVlQLFFBQVEsTUFHUixXQUFXLE1BMkJYLGVBQWUsTUFlZix5QkFBeUIsTUFLekIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgY2hlY2tPYmplY3RLZXlFeGlzdHMsIGxvZ01ldGhvZCB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZWxlbWVudC1jb25maWctZWRpdG9yXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZWxlbWVudC1jb25maWctZWRpdG9yLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1xuICAgIFwiLi9lbGVtZW50LWNvbmZpZy1lZGl0b3IuY29tcG9uZW50LnNjc3NcIixcbiAgICBcIi4uL3NoYXJlZC9zaGFyZWQuc2Nzc1wiXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudENvbmZpZ0VkaXRvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgZm9ybUtleTogc3RyaW5nID0gXCJcIjtcblxuICBASW5wdXQoKVxuICBlbGVtZW50Q29uZmlnOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpXG4gIHVwZGF0ZUVsZW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBlbGVtZW50VHlwZTogc3RyaW5nID0gXCJcIjtcbiAgZWxlbWVudENhdGVnb3J5OiBzdHJpbmcgPSBcIlwiO1xuICBlbGVtZW50RWRpdG9yRm9ybUdyb3VwOiBGb3JtR3JvdXAgPSB1bmRlZmluZWQ7XG5cbiAgc2F2ZUNsaWNrQ291bnRlcjogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgQGxvZ01ldGhvZFxuICBuZ09uSW5pdCgpIHt9XG5cbiAgQGxvZ01ldGhvZFxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgdmVyaWZ5Q2hhbmdlID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2U7XG4gICAgfTtcblxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJmb3JtS2V5XCIpKSB7XG4gICAgICB0aGlzLmZvcm1LZXkgPSBjaGFuZ2VzLmZvcm1LZXkuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwiZWxlbWVudENvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5lbGVtZW50Q29uZmlnID0gY2hhbmdlcy5lbGVtZW50Q29uZmlnLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgaWYgKHRoaXMuZWxlbWVudENvbmZpZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHModGhpcy5lbGVtZW50Q29uZmlnLCBcImVsZW1lbnRUeXBlXCIpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiJ2VsZW1lbnRDb25maWcnIGRvZXNuJ3QgaGF2ZSAnZWxlbWVudFR5cGUnXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICFjaGVja09iamVjdEtleUV4aXN0cyh0aGlzLmVsZW1lbnRDb25maWcsIFwiZWxlbWVudENhdGVnb3J5XCIpXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIidlbGVtZW50Q29uZmlnJyBkb2Vzbid0IGhhdmUgJ2VsZW1lbnRDYXRlZ29yeSdcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50VHlwZSA9IHRoaXMuZWxlbWVudENvbmZpZy5lbGVtZW50VHlwZTtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRDYXRlZ29yeSA9IHRoaXMuZWxlbWVudENvbmZpZy5lbGVtZW50Q2F0ZWdvcnk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Hcm91cCgpIHtcbiAgICB0aGlzLmVsZW1lbnRFZGl0b3JGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIHByb3BlcnRpZXM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBvcmllbnRhdGlvbjogbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgIHRoaXMuZWxlbWVudENvbmZpZy5wcm9wZXJ0aWVzLm9yaWVudGF0aW9uLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVwZGF0ZU9uOiBcImNoYW5nZVwiXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICB9KVxuICAgIH0pO1xuICAgIHRoaXMuZWxlbWVudEVkaXRvckZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRWxlbWVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlT25DbGlja1NhdmUoKSB7XG4gICAgdGhpcy5zYXZlQ2xpY2tDb3VudGVyKys7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjb250YWluZXJcIlxuICAqbmdJZj1cImVsZW1lbnRDb25maWdcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZWxlbWVudC1jb25maWctZWRpdG9yLWhlYWRlclwiPlxuICAgICd7eyBlbGVtZW50Q29uZmlnLmVsZW1lbnRUeXBlIH19JyBFbGVtZW50IENvbmZpZyBFZGl0b3JcbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJlbGVtZW50LWNvbmZpZy1lZGl0b3ItYm9keVwiXG4gICAgPjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImVsZW1lbnRDYXRlZ29yeVwiPlxuICAgICAgPCEtLSBCYXNpYyAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidiYXNpYydcIj5cbiAgICAgICAgPGJhc2ljLWVsZW1lbnQtY29uZmlnLWVkaXRvclxuICAgICAgICAgIFtzYXZlQ2xpY2tDb3VudGVyXT1cInNhdmVDbGlja0NvdW50ZXJcIlxuICAgICAgICAgIFtlbGVtZW50Q29uZmlnXT1cImVsZW1lbnRDb25maWdcIlxuICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgID48L2Jhc2ljLWVsZW1lbnQtY29uZmlnLWVkaXRvcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBEb2N1bWVudCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkb2N1bWVudCdcIj5cbiAgICAgICAgPGRvY3VtZW50LWVsZW1lbnQtY29uZmlnLWVkaXRvclxuICAgICAgICAgIFtzYXZlQ2xpY2tDb3VudGVyXT1cInNhdmVDbGlja0NvdW50ZXJcIlxuICAgICAgICAgIFtlbGVtZW50Q29uZmlnXT1cImVsZW1lbnRDb25maWdcIlxuICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgID48L2RvY3VtZW50LWVsZW1lbnQtY29uZmlnLWVkaXRvcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBPdGhlciAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidvdGhlcidcIj5cbiAgICAgICAgPG90aGVyLWVsZW1lbnQtY29uZmlnLWVkaXRvclxuICAgICAgICAgIFtzYXZlQ2xpY2tDb3VudGVyXT1cInNhdmVDbGlja0NvdW50ZXJcIlxuICAgICAgICAgIFtlbGVtZW50Q29uZmlnXT1cImVsZW1lbnRDb25maWdcIlxuICAgICAgICAgICh1cGRhdGVFbGVtZW50KT1cImhhbmRsZU9uU2F2ZVVwZGF0ZUVsZW1lbnQoJGV2ZW50KVwiXG4gICAgICAgID48L290aGVyLWVsZW1lbnQtY29uZmlnLWVkaXRvcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImVsZW1lbnQtY29uZmlnLWVkaXRvci1mb290ZXJcIj5cbiAgICA8IS0tIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2F2ZS1idXR0b25cIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlT25DbGlja1NhdmUoKVwiXG4gICAgPlxuICAgICAgU2F2ZVxuICAgIDwvYnV0dG9uPiAtLT5cbiAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgIGxhYmVsPVwiU2F2ZVwiXG4gICAgICBbc2hvd0xvYWRlcl09XCJmYWxzZVwiXG4gICAgICBzdHlsZXM9XCJcIlxuICAgICAgY2xhc3M9XCJzYXZlLWJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGFwcGVhcmFuY2U9XCJwcmltYXJ5XCJcbiAgICAgIGljb249XCJcIlxuICAgICAgaWNvblJpZ2h0PVwiXCJcbiAgICAgIHNpemU9XCJtXCJcbiAgICAgIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2tTYXZlKClcIlxuICAgID48L2t3aWt1aS1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|