kwikid-forms 0.1.3 → 0.1.4

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.
Files changed (49) hide show
  1. package/bundles/kwikid-forms.umd.js +308 -933
  2. package/bundles/kwikid-forms.umd.js.map +1 -1
  3. package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.js +1 -1
  4. package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.js +1 -1
  5. package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.js +1 -1
  6. package/esm2015/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.js +1 -1
  7. package/esm2015/lib/renderer/form-view/form-view.component.js +81 -55
  8. package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +48 -16
  9. package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +20 -9
  10. package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +7 -7
  11. package/esm2015/lib/renderer/form-view/helpers/form-view.validations.helper.js +33 -27
  12. package/esm2015/lib/renderer/forms-list/forms-list.component.js +4 -5
  13. package/esm2015/lib/renderer/renderer.component.js +13 -9
  14. package/esm2015/lib/renderer/renderer.config-converter.helper.js +60 -58
  15. package/esm2015/lib/renderer/renderer.service.js +4 -5
  16. package/fesm2015/kwikid-forms.js +271 -767
  17. package/fesm2015/kwikid-forms.js.map +1 -1
  18. package/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.d.ts +1 -1
  19. package/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.d.ts +1 -2
  20. package/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.d.ts +2 -2
  21. package/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.d.ts +1 -2
  22. package/lib/renderer/form-view/form-view.component.d.ts +2 -2
  23. package/package.json +3 -3
  24. package/esm2015/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.js +0 -7
  25. package/esm2015/lib/renderer/form-view/definitions/rules/form-view.rules.type.definitions.js +0 -2
  26. package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.js +0 -17
  27. package/esm2015/lib/renderer/form-view/helpers/form-view.actions.helper.js +0 -27
  28. package/esm2015/lib/renderer/form-view/helpers/form-view.condition.helper.js +0 -46
  29. package/esm2015/lib/renderer/form-view/helpers/form-view.rules.helper.js +0 -83
  30. package/esm2015/lib/renderer/form-view/helpers/form-view.sources.helper.js +0 -161
  31. package/esm2015/lib/renderer/forms-list/forms-list.helper.js +0 -4
  32. package/esm2015/lib/renderer/helpers/renderer.actions.helper.js +0 -21
  33. package/esm2015/lib/renderer/helpers/renderer.condition.helper.js +0 -41
  34. package/esm2015/lib/renderer/helpers/renderer.rules.helper.js +0 -64
  35. package/esm2015/lib/renderer/helpers/renderer.sources.helper.js +0 -117
  36. package/esm2015/lib/renderer/helpers/renderer.validations.helper.js +0 -40
  37. package/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.d.ts +0 -5
  38. package/lib/renderer/form-view/definitions/rules/form-view.rules.type.definitions.d.ts +0 -41
  39. package/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.d.ts +0 -14
  40. package/lib/renderer/form-view/helpers/form-view.actions.helper.d.ts +0 -13
  41. package/lib/renderer/form-view/helpers/form-view.condition.helper.d.ts +0 -8
  42. package/lib/renderer/form-view/helpers/form-view.rules.helper.d.ts +0 -12
  43. package/lib/renderer/form-view/helpers/form-view.sources.helper.d.ts +0 -29
  44. package/lib/renderer/forms-list/forms-list.helper.d.ts +0 -1
  45. package/lib/renderer/helpers/renderer.actions.helper.d.ts +0 -9
  46. package/lib/renderer/helpers/renderer.condition.helper.d.ts +0 -8
  47. package/lib/renderer/helpers/renderer.rules.helper.d.ts +0 -9
  48. package/lib/renderer/helpers/renderer.sources.helper.d.ts +0 -18
  49. package/lib/renderer/helpers/renderer.validations.helper.d.ts +0 -11
@@ -1,8 +1,7 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
2
  import { Injectable } from "@angular/core";
3
- import { logMethod } from "kwikid-toolkit";
3
+ import { logMethod, checkObjectKeyExists, } from "kwikid-toolkit";
4
4
  import { setValueToObject } from "./form-view/helpers/form-view.common.helper";
5
- import { hasKey } from "./renderer.helper";
6
5
  import * as i0 from "@angular/core";
7
6
  export class KwikIDRendererService {
8
7
  constructor() {
@@ -63,7 +62,7 @@ export class KwikIDRendererService {
63
62
  markFormInFormsListAsDisabled(formsList, formsListCompleted) {
64
63
  for (let form of formsList) {
65
64
  if (form.status !== "completed") {
66
- if (hasKey(form, "dependentOn")) {
65
+ if (checkObjectKeyExists(form, "dependentOn")) {
67
66
  const isDependent = form.dependentOn.every((r) => formsListCompleted.includes(r));
68
67
  if (isDependent) {
69
68
  form = setValueToObject(form, "status", "editable");
@@ -93,7 +92,7 @@ export class KwikIDRendererService {
93
92
  filterAllFormsData(allFormsData, formsList) {
94
93
  let currentUserFormAllFormsData = {};
95
94
  for (let form of formsList) {
96
- if (hasKey(allFormsData, form.key)) {
95
+ if (checkObjectKeyExists(allFormsData, form.key)) {
97
96
  currentUserFormAllFormsData = Object.assign(Object.assign({}, currentUserFormAllFormsData), { [form.key]: allFormsData[form.key] });
98
97
  }
99
98
  }
@@ -170,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
170
169
  providedIn: "root"
171
170
  }]
172
171
  }], ctorParameters: function () { return []; }, propDecorators: { setFormsList: [], setFormsListCompleted: [], setAllFormsData: [], setActiveFormConfig: [], setActiveFormFields: [], setActiveFormData: [], findActiveFormConfig: [], findCompletedFormsList: [], markFormInFormsListAsCompleted: [], markFormInFormsListAsDisabled: [], assignSequenceNoToForm: [], filterAllFormsData: [], updateFormsList: [] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL3JlbmRlcmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHFCQUFxQjtJQTBDaEM7UUF6Q0EsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFpQnJCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO0lBd0JSLENBQUM7SUF4Q2hCLGVBQWUsQ0FBQyxZQUFxQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBSUQsWUFBWSxDQUFDLFNBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFJRCxxQkFBcUIsQ0FBQyxrQkFBeUI7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQy9DLENBQUM7SUFJRCxlQUFlLENBQUMsWUFBbUI7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUlELG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztJQUlELG1CQUFtQixDQUFDLGdCQUF1QjtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztJQUlELGlCQUFpQixDQUFDLGNBQW1CO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7SUFJSyxlQUFlLENBQUMsR0FBVzs7WUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQUE7SUFHRCxvQkFBb0IsQ0FBQyxTQUFnQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMvQyxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUdELHNCQUFzQixDQUFDLFlBQWlCO1FBQ3RDLElBQUksa0JBQWtCLEdBQWEsRUFBRSxDQUFDO1FBRXRDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBR0QsOEJBQThCLENBQzVCLFNBQWdCLEVBQ2hCLGtCQUE0QjtRQUU1QixLQUFLLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUMxQixJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUVuRCxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDckQsSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDbEQ7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFHRCw2QkFBNkIsQ0FDM0IsU0FBZ0IsRUFDaEIsa0JBQTRCO1FBRTVCLEtBQUssSUFBSSxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQy9CLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUN2RCxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQy9CLENBQUM7b0JBQ0YsSUFBSSxXQUFXLEVBQUU7d0JBQ2YsSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7d0JBQ3BELElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO3FCQUNsRDt5QkFBTTt3QkFDTCxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQzt3QkFDbEQsSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7cUJBQ2pEO2lCQUNGO3FCQUFNO29CQUNMLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNqRCxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQ2xEO2FBQ0Y7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFHRCxzQkFBc0IsQ0FBQyxTQUFnQjtRQUNyQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsS0FBSyxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsQ0FBQztTQUNoQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxZQUFpQixFQUFFLFNBQWdCO1FBQ3BELElBQUksMkJBQTJCLEdBQVEsRUFBRSxDQUFDO1FBRTFDLEtBQUssSUFBSSxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzFCLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xDLDJCQUEyQixtQ0FDdEIsMkJBQTJCLEtBQzlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQ25DLENBQUM7YUFDSDtTQUNGO1FBRUQsT0FBTywyQkFBMkIsQ0FBQztJQUNyQyxDQUFDO0lBR0QsZUFBZTtRQUNiLElBQUksU0FBUyxHQUFVLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdEMsSUFBSSxrQkFBNEIsQ0FBQztRQUNqQyxJQUFJLGdCQUFxQixDQUFDO1FBRTFCLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkQ7Ozs7O1dBS0c7UUFDSCxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDekQsSUFBSSxDQUFDLFlBQVksRUFDakIsU0FBUyxDQUNWLENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUM5QywyQkFBMkIsQ0FDNUIsQ0FBQztRQUVGLFNBQVMsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQzdDLFNBQVMsRUFDVCxrQkFBa0IsQ0FDbkIsQ0FBQztRQUVGLFNBQVMsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQzVDLFNBQVMsRUFDVCxrQkFBa0IsQ0FDbkIsQ0FBQztRQUVGLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7WUFDbEQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXhELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRCxDQUFDOztzSUF4TFUscUJBQXFCOzBJQUFyQixxQkFBcUIsY0FGcEIsTUFBTTtBQVVsQjtJQURDLFNBQVM7eURBR1Q7QUFJRDtJQURDLFNBQVM7a0VBR1Q7QUFJRDtJQURDLFNBQVM7NERBR1Q7QUFJRDtJQURDLFNBQVM7Z0VBR1Q7QUFJRDtJQURDLFNBQVM7Z0VBR1Q7QUFJRDtJQURDLFNBQVM7OERBR1Q7QUFXRDtJQURDLFNBQVM7aUVBTVQ7QUFHRDtJQURDLFNBQVM7bUVBU1Q7QUFHRDtJQURDLFNBQVM7MkVBZVQ7QUFHRDtJQURDLFNBQVM7MEVBMkJUO0FBR0Q7SUFEQyxTQUFTO21FQVFUO0FBR0Q7SUFEQyxTQUFTOytEQWNUO0FBR0Q7SUFEQyxTQUFTOzREQTJDVDs0RkF4TFUscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjswRUFTQyxZQUFZLE1BTVoscUJBQXFCLE1BTXJCLGVBQWUsTUFNZixtQkFBbUIsTUFNbkIsbUJBQW1CLE1BTW5CLGlCQUFpQixNQWFqQixvQkFBb0IsTUFRcEIsc0JBQXNCLE1BV3RCLDhCQUE4QixNQWlCOUIsNkJBQTZCLE1BNkI3QixzQkFBc0IsTUFVdEIsa0JBQWtCLE1BZ0JsQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGxvZ01ldGhvZCB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xyXG5pbXBvcnQgeyBzZXRWYWx1ZVRvT2JqZWN0IH0gZnJvbSBcIi4vZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmNvbW1vbi5oZWxwZXJcIjtcclxuaW1wb3J0IHsgaGFzS2V5IH0gZnJvbSBcIi4vcmVuZGVyZXIuaGVscGVyXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEt3aWtJRFJlbmRlcmVyU2VydmljZSB7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgc2V0SXNNb2JpbGVWaWV3KGlzTW9iaWxlVmlldzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc01vYmlsZVZpZXcgPSBpc01vYmlsZVZpZXc7XHJcbiAgfVxyXG5cclxuICBmb3Jtc0xpc3Q6IGFueVtdO1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRGb3Jtc0xpc3QoZm9ybXNMaXN0OiBhbnlbXSkge1xyXG4gICAgdGhpcy5mb3Jtc0xpc3QgPSBmb3Jtc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBmb3Jtc0xpc3RDb21wbGV0ZWQ6IHN0cmluZ1tdO1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRGb3Jtc0xpc3RDb21wbGV0ZWQoZm9ybXNMaXN0Q29tcGxldGVkOiBhbnlbXSkge1xyXG4gICAgdGhpcy5mb3Jtc0xpc3RDb21wbGV0ZWQgPSBmb3Jtc0xpc3RDb21wbGV0ZWQ7XHJcbiAgfVxyXG5cclxuICBhbGxGb3Jtc0RhdGE6IGFueSA9IHt9O1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRBbGxGb3Jtc0RhdGEoYWxsRm9ybXNEYXRhOiBhbnlbXSkge1xyXG4gICAgdGhpcy5hbGxGb3Jtc0RhdGEgPSBhbGxGb3Jtc0RhdGE7XHJcbiAgfVxyXG5cclxuICBhY3RpdmVGb3JtQ29uZmlnOiBhbnk7XHJcbiAgQGxvZ01ldGhvZFxyXG4gIHNldEFjdGl2ZUZvcm1Db25maWcoYWN0aXZlRm9ybUNvbmZpZzogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZUZvcm1Db25maWcgPSBhY3RpdmVGb3JtQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgYWN0aXZlRm9ybUZpZWxkczogYW55W107XHJcbiAgQGxvZ01ldGhvZFxyXG4gIHNldEFjdGl2ZUZvcm1GaWVsZHMoYWN0aXZlRm9ybUZpZWxkczogYW55W10pIHtcclxuICAgIHRoaXMuYWN0aXZlRm9ybUZpZWxkcyA9IGFjdGl2ZUZvcm1GaWVsZHM7XHJcbiAgfVxyXG5cclxuICBhY3RpdmVGb3JtRGF0YTogYW55O1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRBY3RpdmVGb3JtRGF0YShhY3RpdmVGb3JtRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZUZvcm1EYXRhID0gYWN0aXZlRm9ybURhdGE7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGFzeW5jIGZldGNoRm9ybUNvbmZpZyh1cmw6IHN0cmluZykge1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHsgbWV0aG9kOiBcIkdFVFwiIH0pO1xyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgQGxvZ01ldGhvZFxyXG4gIGZpbmRBY3RpdmVGb3JtQ29uZmlnKGZvcm1zTGlzdDogYW55W10pOiBhbnkge1xyXG4gICAgY29uc3QgYWN0aXZlRm9ybUNvbmZpZyA9IGZvcm1zTGlzdC5maW5kKChmb3JtKSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtLnN0YXR1cyA9PT0gXCJlZGl0YWJsZVwiICYmICFmb3JtLmRpc2FibGVkO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYWN0aXZlRm9ybUNvbmZpZztcclxuICB9XHJcblxyXG4gIEBsb2dNZXRob2RcclxuICBmaW5kQ29tcGxldGVkRm9ybXNMaXN0KGFsbEZvcm1zRGF0YTogYW55KTogc3RyaW5nW10ge1xyXG4gICAgbGV0IGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhhbGxGb3Jtc0RhdGEpLm1hcCgoZm9ybUtleSkgPT4ge1xyXG4gICAgICBmb3Jtc0xpc3RDb21wbGV0ZWQucHVzaChmb3JtS2V5KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3Jtc0xpc3RDb21wbGV0ZWQ7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgbWFya0Zvcm1JbkZvcm1zTGlzdEFzQ29tcGxldGVkKFxyXG4gICAgZm9ybXNMaXN0OiBhbnlbXSxcclxuICAgIGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW11cclxuICApOiBhbnlbXSB7XHJcbiAgICBmb3IgKGxldCBmb3JtIG9mIGZvcm1zTGlzdCkge1xyXG4gICAgICBpZiAoZm9ybXNMaXN0Q29tcGxldGVkLmluY2x1ZGVzKGZvcm0ua2V5KSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1zTGlzdENvbXBsZXRlZC5pbmNsdWRlcyhmb3JtLmtleSkpO1xyXG5cclxuICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcInN0YXR1c1wiLCBcImNvbXBsZXRlZFwiKTtcclxuICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3Jtc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgbWFya0Zvcm1JbkZvcm1zTGlzdEFzRGlzYWJsZWQoXHJcbiAgICBmb3Jtc0xpc3Q6IGFueVtdLFxyXG4gICAgZm9ybXNMaXN0Q29tcGxldGVkOiBzdHJpbmdbXVxyXG4gICk6IGFueVtdIHtcclxuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XHJcbiAgICAgIGlmIChmb3JtLnN0YXR1cyAhPT0gXCJjb21wbGV0ZWRcIikge1xyXG4gICAgICAgIGlmIChoYXNLZXkoZm9ybSwgXCJkZXBlbmRlbnRPblwiKSkge1xyXG4gICAgICAgICAgY29uc3QgaXNEZXBlbmRlbnQgPSBmb3JtLmRlcGVuZGVudE9uLmV2ZXJ5KChyOiBzdHJpbmcpID0+XHJcbiAgICAgICAgICAgIGZvcm1zTGlzdENvbXBsZXRlZC5pbmNsdWRlcyhyKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmIChpc0RlcGVuZGVudCkge1xyXG4gICAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcInN0YXR1c1wiLCBcImVkaXRhYmxlXCIpO1xyXG4gICAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0KGZvcm0sIFwic3RhdHVzXCIsIFwibG9ja2VkXCIpO1xyXG4gICAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcImRpc2FibGVkXCIsIHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcImRlcGVuZGVudE9uXCIsIFtdKTtcclxuICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0KGZvcm0sIFwic3RhdHVzXCIsIFwiZWRpdGFibGVcIik7XHJcbiAgICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybXNMaXN0O1xyXG4gIH1cclxuXHJcbiAgQGxvZ01ldGhvZFxyXG4gIGFzc2lnblNlcXVlbmNlTm9Ub0Zvcm0oZm9ybXNMaXN0OiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGxldCBzZXF1ZW5jZU5vID0gMTtcclxuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XHJcbiAgICAgIGZvcm0uc2VxdWVuY2VObyA9IHNlcXVlbmNlTm8rKztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybXNMaXN0O1xyXG4gIH1cclxuXHJcbiAgQGxvZ01ldGhvZFxyXG4gIGZpbHRlckFsbEZvcm1zRGF0YShhbGxGb3Jtc0RhdGE6IGFueSwgZm9ybXNMaXN0OiBhbnlbXSk6IGFueSB7XHJcbiAgICBsZXQgY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBmb3IgKGxldCBmb3JtIG9mIGZvcm1zTGlzdCkge1xyXG4gICAgICBpZiAoaGFzS2V5KGFsbEZvcm1zRGF0YSwgZm9ybS5rZXkpKSB7XHJcbiAgICAgICAgY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhID0ge1xyXG4gICAgICAgICAgLi4uY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhLFxyXG4gICAgICAgICAgW2Zvcm0ua2V5XTogYWxsRm9ybXNEYXRhW2Zvcm0ua2V5XVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhO1xyXG4gIH1cclxuXHJcbiAgQGxvZ01ldGhvZFxyXG4gIHVwZGF0ZUZvcm1zTGlzdCgpIHtcclxuICAgIGxldCBmb3Jtc0xpc3Q6IGFueVtdID0gdGhpcy5mb3Jtc0xpc3Q7XHJcbiAgICBsZXQgZm9ybXNMaXN0Q29tcGxldGVkOiBzdHJpbmdbXTtcclxuICAgIGxldCBhY3RpdmVGb3JtQ29uZmlnOiBhbnk7XHJcblxyXG4gICAgZm9ybXNMaXN0ID0gdGhpcy5hc3NpZ25TZXF1ZW5jZU5vVG9Gb3JtKGZvcm1zTGlzdCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCZWxvdyBjb2RlIGlkZW50aWZpZXMgdGhlIGFsbEZvcm1zRGF0YSByZXF1aXJlZCBmb3IgdGhlIGN1cnJlbnQgVXNlciBGb3JtLlxyXG4gICAgICogV2h5PyBCZWNhdXNlIGFsbEZvcm1zRGF0YSB3aWxsIGFjdHVhbGx5IGNvbnRhaW4gdGhlIHdob2xlIGpvdXJuZXkncyBhbGxcclxuICAgICAqIHBvc3NpYmxlIFVzZXIgRm9ybSBzdGVwcy4gU28sIGl0IGlzIGltcG9ydGFudCB0byBzZXQgdGhlIGZvcm0gZGF0YSB3aGljaFxyXG4gICAgICogdGhpcyBwYXJ0aWN1bGFyIFVzZXIgRm9ybSBvbmx5IGhhcyB0byBMT0NBTCBNRVRIT0QgVmFyaWFibGUuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YSA9IHRoaXMuZmlsdGVyQWxsRm9ybXNEYXRhKFxyXG4gICAgICB0aGlzLmFsbEZvcm1zRGF0YSxcclxuICAgICAgZm9ybXNMaXN0XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZm9ybXNMaXN0KSkpO1xyXG5cclxuICAgIGZvcm1zTGlzdENvbXBsZXRlZCA9IHRoaXMuZmluZENvbXBsZXRlZEZvcm1zTGlzdChcclxuICAgICAgY3VycmVudFVzZXJGb3JtQWxsRm9ybXNEYXRhXHJcbiAgICApO1xyXG5cclxuICAgIGZvcm1zTGlzdCA9IHRoaXMubWFya0Zvcm1JbkZvcm1zTGlzdEFzQ29tcGxldGVkKFxyXG4gICAgICBmb3Jtc0xpc3QsXHJcbiAgICAgIGZvcm1zTGlzdENvbXBsZXRlZFxyXG4gICAgKTtcclxuXHJcbiAgICBmb3Jtc0xpc3QgPSB0aGlzLm1hcmtGb3JtSW5Gb3Jtc0xpc3RBc0Rpc2FibGVkKFxyXG4gICAgICBmb3Jtc0xpc3QsXHJcbiAgICAgIGZvcm1zTGlzdENvbXBsZXRlZFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoZm9ybXNMaXN0Lmxlbmd0aCAhPT0gZm9ybXNMaXN0Q29tcGxldGVkLmxlbmd0aCkge1xyXG4gICAgICBhY3RpdmVGb3JtQ29uZmlnID0gdGhpcy5maW5kQWN0aXZlRm9ybUNvbmZpZyhmb3Jtc0xpc3QpO1xyXG5cclxuICAgICAgdGhpcy5zZXRBY3RpdmVGb3JtQ29uZmlnKGFjdGl2ZUZvcm1Db25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0Rm9ybXNMaXN0KGZvcm1zTGlzdCk7XHJcbiAgICB0aGlzLnNldEZvcm1zTGlzdENvbXBsZXRlZChmb3Jtc0xpc3RDb21wbGV0ZWQpO1xyXG4gIH1cclxufVxyXG4iXX0=
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL3JlbmRlcmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFLL0UsTUFBTSxPQUFPLHFCQUFxQjtJQTBDaEM7UUF6Q0EsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFpQnJCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO0lBd0JSLENBQUM7SUF4Q2hCLGVBQWUsQ0FBQyxZQUFxQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBSUQsWUFBWSxDQUFDLFNBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFJRCxxQkFBcUIsQ0FBQyxrQkFBeUI7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQy9DLENBQUM7SUFJRCxlQUFlLENBQUMsWUFBbUI7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUlELG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztJQUlELG1CQUFtQixDQUFDLGdCQUF1QjtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztJQUlELGlCQUFpQixDQUFDLGNBQW1CO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lB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N0Isc0JBQXNCLE1BVXRCLGtCQUFrQixNQWdCbEIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIGxvZ01ldGhvZCxcclxuICBjaGVja09iamVjdEtleUV4aXN0cyxcclxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcclxuaW1wb3J0IHsgc2V0VmFsdWVUb09iamVjdCB9IGZyb20gXCIuL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy5jb21tb24uaGVscGVyXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEt3aWtJRFJlbmRlcmVyU2VydmljZSB7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgc2V0SXNNb2JpbGVWaWV3KGlzTW9iaWxlVmlldzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc01vYmlsZVZpZXcgPSBpc01vYmlsZVZpZXc7XHJcbiAgfVxyXG5cclxuICBmb3Jtc0xpc3Q6IGFueVtdO1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRGb3Jtc0xpc3QoZm9ybXNMaXN0OiBhbnlbXSkge1xyXG4gICAgdGhpcy5mb3Jtc0xpc3QgPSBmb3Jtc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBmb3Jtc0xpc3RDb21wbGV0ZWQ6IHN0cmluZ1tdO1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRGb3Jtc0xpc3RDb21wbGV0ZWQoZm9ybXNMaXN0Q29tcGxldGVkOiBhbnlbXSkge1xyXG4gICAgdGhpcy5mb3Jtc0xpc3RDb21wbGV0ZWQgPSBmb3Jtc0xpc3RDb21wbGV0ZWQ7XHJcbiAgfVxyXG5cclxuICBhbGxGb3Jtc0RhdGE6IGFueSA9IHt9O1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRBbGxGb3Jtc0RhdGEoYWxsRm9ybXNEYXRhOiBhbnlbXSkge1xyXG4gICAgdGhpcy5hbGxGb3Jtc0RhdGEgPSBhbGxGb3Jtc0RhdGE7XHJcbiAgfVxyXG5cclxuICBhY3RpdmVGb3JtQ29uZmlnOiBhbnk7XHJcbiAgQGxvZ01ldGhvZFxyXG4gIHNldEFjdGl2ZUZvcm1Db25maWcoYWN0aXZlRm9ybUNvbmZpZzogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZUZvcm1Db25maWcgPSBhY3RpdmVGb3JtQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgYWN0aXZlRm9ybUZpZWxkczogYW55W107XHJcbiAgQGxvZ01ldGhvZFxyXG4gIHNldEFjdGl2ZUZvcm1GaWVsZHMoYWN0aXZlRm9ybUZpZWxkczogYW55W10pIHtcclxuICAgIHRoaXMuYWN0aXZlRm9ybUZpZWxkcyA9IGFjdGl2ZUZvcm1GaWVsZHM7XHJcbiAgfVxyXG5cclxuICBhY3RpdmVGb3JtRGF0YTogYW55O1xyXG4gIEBsb2dNZXRob2RcclxuICBzZXRBY3RpdmVGb3JtRGF0YShhY3RpdmVGb3JtRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZUZvcm1EYXRhID0gYWN0aXZlRm9ybURhdGE7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGFzeW5jIGZldGNoRm9ybUNvbmZpZyh1cmw6IHN0cmluZykge1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHsgbWV0aG9kOiBcIkdFVFwiIH0pO1xyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgQGxvZ01ldGhvZFxyXG4gIGZpbmRBY3RpdmVGb3JtQ29uZmlnKGZvcm1zTGlzdDogYW55W10pOiBhbnkge1xyXG4gICAgY29uc3QgYWN0aXZlRm9ybUNvbmZpZyA9IGZvcm1zTGlzdC5maW5kKChmb3JtKSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtLnN0YXR1cyA9PT0gXCJlZGl0YWJsZVwiICYmICFmb3JtLmRpc2FibGVkO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYWN0aXZlRm9ybUNvbmZpZztcclxuICB9XHJcblxyXG4gIEBsb2dNZXRob2RcclxuICBmaW5kQ29tcGxldGVkRm9ybXNMaXN0KGFsbEZvcm1zRGF0YTogYW55KTogc3RyaW5nW10ge1xyXG4gICAgbGV0IGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhhbGxGb3Jtc0RhdGEpLm1hcCgoZm9ybUtleSkgPT4ge1xyXG4gICAgICBmb3Jtc0xpc3RDb21wbGV0ZWQucHVzaChmb3JtS2V5KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3Jtc0xpc3RDb21wbGV0ZWQ7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgbWFya0Zvcm1JbkZvcm1zTGlzdEFzQ29tcGxldGVkKFxyXG4gICAgZm9ybXNMaXN0OiBhbnlbXSxcclxuICAgIGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW11cclxuICApOiBhbnlbXSB7XHJcbiAgICBmb3IgKGxldCBmb3JtIG9mIGZvcm1zTGlzdCkge1xyXG4gICAgICBpZiAoZm9ybXNMaXN0Q29tcGxldGVkLmluY2x1ZGVzKGZvcm0ua2V5KSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1zTGlzdENvbXBsZXRlZC5pbmNsdWRlcyhmb3JtLmtleSkpO1xyXG5cclxuICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcInN0YXR1c1wiLCBcImNvbXBsZXRlZFwiKTtcclxuICAgICAgICBmb3JtID0gc2V0VmFsdWVUb09iamVjdChmb3JtLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3Jtc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgbWFya0Zvcm1JbkZvcm1zTGlzdEFzRGlzYWJsZWQoXHJcbiAgICBmb3Jtc0xpc3Q6IGFueVtdLFxyXG4gICAgZm9ybXNMaXN0Q29tcGxldGVkOiBzdHJpbmdbXVxyXG4gICk6IGFueVtdIHtcclxuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XHJcbiAgICAgIGlmIChmb3JtLnN0YXR1cyAhPT0gXCJjb21wbGV0ZWRcIikge1xyXG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLCBcImRlcGVuZGVudE9uXCIpKSB7XHJcbiAgICAgICAgICBjb25zdCBpc0RlcGVuZGVudCA9IGZvcm0uZGVwZW5kZW50T24uZXZlcnkoKHI6IHN0cmluZykgPT5cclxuICAgICAgICAgICAgZm9ybXNMaXN0Q29tcGxldGVkLmluY2x1ZGVzKHIpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKGlzRGVwZW5kZW50KSB7XHJcbiAgICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0KGZvcm0sIFwic3RhdHVzXCIsIFwiZWRpdGFibGVcIik7XHJcbiAgICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0KGZvcm0sIFwiZGlzYWJsZWRcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9ybSA9IHNldFZhbHVlVG9PYmplY3QoZm9ybSwgXCJzdGF0dXNcIiwgXCJsb2NrZWRcIik7XHJcbiAgICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0KGZvcm0sIFwiZGlzYWJsZWRcIiwgdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0KGZvcm0sIFwiZGVwZW5kZW50T25cIiwgW10pO1xyXG4gICAgICAgICAgZm9ybSA9IHNldFZhbHVlVG9PYmplY3QoZm9ybSwgXCJzdGF0dXNcIiwgXCJlZGl0YWJsZVwiKTtcclxuICAgICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0KGZvcm0sIFwiZGlzYWJsZWRcIiwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3Jtc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgYXNzaWduU2VxdWVuY2VOb1RvRm9ybShmb3Jtc0xpc3Q6IGFueVtdKTogYW55W10ge1xyXG4gICAgbGV0IHNlcXVlbmNlTm8gPSAxO1xyXG4gICAgZm9yIChsZXQgZm9ybSBvZiBmb3Jtc0xpc3QpIHtcclxuICAgICAgZm9ybS5zZXF1ZW5jZU5vID0gc2VxdWVuY2VObysrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3Jtc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgZmlsdGVyQWxsRm9ybXNEYXRhKGFsbEZvcm1zRGF0YTogYW55LCBmb3Jtc0xpc3Q6IGFueVtdKTogYW55IHtcclxuICAgIGxldCBjdXJyZW50VXNlckZvcm1BbGxGb3Jtc0RhdGE6IGFueSA9IHt9O1xyXG5cclxuICAgIGZvciAobGV0IGZvcm0gb2YgZm9ybXNMaXN0KSB7XHJcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhbGxGb3Jtc0RhdGEsIGZvcm0ua2V5KSkge1xyXG4gICAgICAgIGN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YSA9IHtcclxuICAgICAgICAgIC4uLmN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YSxcclxuICAgICAgICAgIFtmb3JtLmtleV06IGFsbEZvcm1zRGF0YVtmb3JtLmtleV1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YTtcclxuICB9XHJcblxyXG4gIEBsb2dNZXRob2RcclxuICB1cGRhdGVGb3Jtc0xpc3QoKSB7XHJcbiAgICBsZXQgZm9ybXNMaXN0OiBhbnlbXSA9IHRoaXMuZm9ybXNMaXN0O1xyXG4gICAgbGV0IGZvcm1zTGlzdENvbXBsZXRlZDogc3RyaW5nW107XHJcbiAgICBsZXQgYWN0aXZlRm9ybUNvbmZpZzogYW55O1xyXG5cclxuICAgIGZvcm1zTGlzdCA9IHRoaXMuYXNzaWduU2VxdWVuY2VOb1RvRm9ybShmb3Jtc0xpc3QpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmVsb3cgY29kZSBpZGVudGlmaWVzIHRoZSBhbGxGb3Jtc0RhdGEgcmVxdWlyZWQgZm9yIHRoZSBjdXJyZW50IFVzZXIgRm9ybS5cclxuICAgICAqIFdoeT8gQmVjYXVzZSBhbGxGb3Jtc0RhdGEgd2lsbCBhY3R1YWxseSBjb250YWluIHRoZSB3aG9sZSBqb3VybmV5J3MgYWxsXHJcbiAgICAgKiBwb3NzaWJsZSBVc2VyIEZvcm0gc3RlcHMuIFNvLCBpdCBpcyBpbXBvcnRhbnQgdG8gc2V0IHRoZSBmb3JtIGRhdGEgd2hpY2hcclxuICAgICAqIHRoaXMgcGFydGljdWxhciBVc2VyIEZvcm0gb25seSBoYXMgdG8gTE9DQUwgTUVUSE9EIFZhcmlhYmxlLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBjdXJyZW50VXNlckZvcm1BbGxGb3Jtc0RhdGEgPSB0aGlzLmZpbHRlckFsbEZvcm1zRGF0YShcclxuICAgICAgdGhpcy5hbGxGb3Jtc0RhdGEsXHJcbiAgICAgIGZvcm1zTGlzdFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGZvcm1zTGlzdCkpKTtcclxuXHJcbiAgICBmb3Jtc0xpc3RDb21wbGV0ZWQgPSB0aGlzLmZpbmRDb21wbGV0ZWRGb3Jtc0xpc3QoXHJcbiAgICAgIGN1cnJlbnRVc2VyRm9ybUFsbEZvcm1zRGF0YVxyXG4gICAgKTtcclxuXHJcbiAgICBmb3Jtc0xpc3QgPSB0aGlzLm1hcmtGb3JtSW5Gb3Jtc0xpc3RBc0NvbXBsZXRlZChcclxuICAgICAgZm9ybXNMaXN0LFxyXG4gICAgICBmb3Jtc0xpc3RDb21wbGV0ZWRcclxuICAgICk7XHJcblxyXG4gICAgZm9ybXNMaXN0ID0gdGhpcy5tYXJrRm9ybUluRm9ybXNMaXN0QXNEaXNhYmxlZChcclxuICAgICAgZm9ybXNMaXN0LFxyXG4gICAgICBmb3Jtc0xpc3RDb21wbGV0ZWRcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGZvcm1zTGlzdC5sZW5ndGggIT09IGZvcm1zTGlzdENvbXBsZXRlZC5sZW5ndGgpIHtcclxuICAgICAgYWN0aXZlRm9ybUNvbmZpZyA9IHRoaXMuZmluZEFjdGl2ZUZvcm1Db25maWcoZm9ybXNMaXN0KTtcclxuXHJcbiAgICAgIHRoaXMuc2V0QWN0aXZlRm9ybUNvbmZpZyhhY3RpdmVGb3JtQ29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldEZvcm1zTGlzdChmb3Jtc0xpc3QpO1xyXG4gICAgdGhpcy5zZXRGb3Jtc0xpc3RDb21wbGV0ZWQoZm9ybXNMaXN0Q29tcGxldGVkKTtcclxuICB9XHJcbn1cclxuIl19