@piserve-tech/form-submission 1.2.26 → 1.2.28

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 (52) hide show
  1. package/element-type/form-elements/form-elements.component.d.ts +2 -1
  2. package/environment/environment.d.ts +5 -0
  3. package/esm2022/element-type/form-elements/form-elements.component.mjs +6 -3
  4. package/esm2022/environment/environment.mjs +6 -0
  5. package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +3 -3
  6. package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +2 -2
  7. package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +4 -3
  8. package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +2 -2
  9. package/esm2022/form-fields/location-fields/location-fields.component.mjs +2 -2
  10. package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +2 -2
  11. package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +3 -3
  12. package/esm2022/form-fields/number-fields/number-fields.component.mjs +2 -2
  13. package/esm2022/form-fields/password-fields/password-fields.component.mjs +2 -2
  14. package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +4 -3
  15. package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +2 -2
  16. package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +2 -2
  17. package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +2 -2
  18. package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +2 -2
  19. package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +2 -2
  20. package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +2 -2
  21. package/esm2022/form-fields/text-fields/text-fields.component.mjs +2 -2
  22. package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +9 -3
  23. package/esm2022/form-fields/url-fields/url-fields.component.mjs +3 -3
  24. package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +8 -3
  25. package/esm2022/form-submission/next-prev-navigation/next-prev-navigation.component.mjs +6 -3
  26. package/esm2022/form-submission/submit-form/submit-form.component.mjs +7 -4
  27. package/esm2022/lib/form-submission.component.mjs +27 -7
  28. package/esm2022/logic/first-child/first-child.component.mjs +8 -3
  29. package/esm2022/logic/forth-child/forth-child.component.mjs +6 -3
  30. package/esm2022/logic/second-child/second-child.component.mjs +6 -3
  31. package/esm2022/logic/third-child/third-child.component.mjs +6 -3
  32. package/esm2022/question/question/question.component.mjs +6 -3
  33. package/esm2022/services/form.service.mjs +7 -4
  34. package/esm2022/sub-form/multiple-subform/multiple-subform.component.mjs +8 -3
  35. package/esm2022/sub-form/sub-form/sub-form.component.mjs +6 -3
  36. package/esm2022/sub-form/submission-modal/submission-modal.component.mjs +5 -3
  37. package/fesm2022/piserve-tech-form-submission.mjs +149 -73
  38. package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
  39. package/form-fields/toggle-switch-fields/toggle-switch-fields.component.d.ts +3 -1
  40. package/form-submission/navigation-tabs/navigation-tabs.component.d.ts +3 -1
  41. package/form-submission/next-prev-navigation/next-prev-navigation.component.d.ts +2 -1
  42. package/form-submission/submit-form/submit-form.component.d.ts +2 -1
  43. package/lib/form-submission.component.d.ts +6 -3
  44. package/logic/first-child/first-child.component.d.ts +3 -1
  45. package/logic/forth-child/forth-child.component.d.ts +2 -1
  46. package/logic/second-child/second-child.component.d.ts +2 -1
  47. package/logic/third-child/third-child.component.d.ts +2 -1
  48. package/package.json +1 -1
  49. package/question/question/question.component.d.ts +2 -1
  50. package/sub-form/multiple-subform/multiple-subform.component.d.ts +2 -1
  51. package/sub-form/sub-form/sub-form.component.d.ts +2 -1
  52. package/sub-form/submission-modal/submission-modal.component.d.ts +1 -0
@@ -26,6 +26,7 @@ export class QuestionComponent {
26
26
  this.cdr = cdr;
27
27
  this.question = {};
28
28
  this.edit = false;
29
+ this.acceptedLanguage = '';
29
30
  this.validations = [];
30
31
  this.currentPageIndex = 0;
31
32
  this.emitValidations = new EventEmitter();
@@ -36,18 +37,20 @@ export class QuestionComponent {
36
37
  this.cdr.detectChanges();
37
38
  }
38
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QuestionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: QuestionComponent, selector: "lib-question", inputs: { question: "question", edit: "edit", currentPageIndex: "currentPageIndex" }, outputs: { emitValidations: "emitValidations" }, ngImport: i0, template: "<div>\r\n <lib-check-box-fields\r\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"question.formElement.elementType === 'URL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-url-fields>\r\n <lib-first-child *ngIf=\"question.childLogics\"\r\n [childLogics]=\"question.childLogics\"></lib-first-child>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FirstChildComponent, selector: "lib-first-child", inputs: ["childLogics"] }, { kind: "component", type: i3.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question"] }, { kind: "component", type: i4.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question"] }, { kind: "component", type: i5.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question"] }, { kind: "component", type: i6.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question"] }, { kind: "component", type: i7.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question"] }, { kind: "component", type: i8.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question"] }, { kind: "component", type: i9.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question"] }, { kind: "component", type: i10.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question"] }, { kind: "component", type: i11.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question"] }, { kind: "component", type: i12.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question"] }, { kind: "component", type: i13.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question"] }, { kind: "component", type: i14.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question"] }, { kind: "component", type: i15.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question"] }, { kind: "component", type: i16.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question"] }, { kind: "component", type: i17.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question"] }, { kind: "component", type: i18.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question"] }, { kind: "component", type: i19.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question"] }, { kind: "component", type: i20.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question"] }, { kind: "component", type: i21.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question"] }] }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: QuestionComponent, selector: "lib-question", inputs: { question: "question", edit: "edit", acceptedLanguage: "acceptedLanguage", currentPageIndex: "currentPageIndex" }, outputs: { emitValidations: "emitValidations" }, ngImport: i0, template: "<div>\r\n <lib-check-box-fields\r\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"question\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"question.formElement.elementType === 'URL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-url-fields>\r\n <lib-first-child *ngIf=\"question.childLogics\"\r\n [childLogics]=\"question.childLogics\"\r\n [acceptedLanguage] = \"acceptedLanguage\">\r\n </lib-first-child>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FirstChildComponent, selector: "lib-first-child", inputs: ["childLogics", "acceptedLanguage"] }, { kind: "component", type: i3.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question"] }, { kind: "component", type: i4.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question"] }, { kind: "component", type: i5.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question"] }, { kind: "component", type: i6.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question"] }, { kind: "component", type: i7.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question"] }, { kind: "component", type: i8.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question"] }, { kind: "component", type: i9.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question"] }, { kind: "component", type: i10.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question"] }, { kind: "component", type: i11.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question"] }, { kind: "component", type: i12.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question"] }, { kind: "component", type: i13.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question"] }, { kind: "component", type: i14.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question"] }, { kind: "component", type: i15.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question"] }, { kind: "component", type: i16.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question"] }, { kind: "component", type: i17.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question"] }, { kind: "component", type: i18.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question"] }, { kind: "component", type: i19.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question"] }, { kind: "component", type: i20.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question", "acceptedLanguage"] }, { kind: "component", type: i21.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question"] }] }); }
40
41
  }
41
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QuestionComponent, decorators: [{
42
43
  type: Component,
43
- args: [{ selector: 'lib-question', template: "<div>\r\n <lib-check-box-fields\r\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"question.formElement.elementType === 'URL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-url-fields>\r\n <lib-first-child *ngIf=\"question.childLogics\"\r\n [childLogics]=\"question.childLogics\"></lib-first-child>\r\n</div>\r\n" }]
44
+ args: [{ selector: 'lib-question', template: "<div>\r\n <lib-check-box-fields\r\n *ngIf=\"question.formElement.elementType === 'CHECK_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"question.formElement.elementType === 'DATE_TIME'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"question.formElement.elementType === 'DROP_DOWN'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"question.formElement.elementType === 'FILE_PICKER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"question.formElement.elementType === 'LOCATION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"question.formElement.elementType === 'EMAIL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"question.formElement.elementType === 'MOBILE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"question.formElement.elementType === 'NUMBER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"question.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\">\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"question.formElement.elementType === 'RADIO_BUTTON'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"question.formElement.elementType === 'RICH_TEXT_EDITOR'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"question.formElement.elementType === 'SELECTION_MATRIX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"question.formElement.elementType === 'SIGNATURE'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"question.formElement.elementType === 'SLIDER'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"question.formElement.elementType === 'TERMS_AND_CONDITION'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_AREA'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"question.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"question.formElement.elementType === 'TOGGLE_SWITCH'\"\r\n [question]=\"question\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n (validate)=\"handleValidation($event)\"></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"question.formElement.elementType === 'URL'\"\r\n [question]=\"question\"\r\n (validate)=\"handleValidation($event)\"></lib-url-fields>\r\n <lib-first-child *ngIf=\"question.childLogics\"\r\n [childLogics]=\"question.childLogics\"\r\n [acceptedLanguage] = \"acceptedLanguage\">\r\n </lib-first-child>\r\n</div>\r\n" }]
44
45
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { question: [{
45
46
  type: Input
46
47
  }], edit: [{
47
48
  type: Input
49
+ }], acceptedLanguage: [{
50
+ type: Input
48
51
  }], currentPageIndex: [{
49
52
  type: Input
50
53
  }], emitValidations: [{
51
54
  type: Output
52
55
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9xdWVzdGlvbi9xdWVzdGlvbi9xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3F1ZXN0aW9uL3F1ZXN0aW9uL3F1ZXN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVExRixNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSGpDLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFhLEtBQUssQ0FBQztRQUloQyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUNiLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM1QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFKTixDQUFDO0lBSy9DLGdCQUFnQixDQUFDLFVBQWU7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0FiVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiwyTENSOUIsdXpIQXFGQTs7NEZEN0VhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjO3dHQUtmLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBlZGl0IDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICB2YWxpZGF0aW9uczogYW55ID0gW107XHJcbiAgQElucHV0KCkgY3VycmVudFBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICBAT3V0cHV0KCkgZW1pdFZhbGlkYXRpb25zID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgaGFuZGxlVmFsaWRhdGlvbih2YWxpZGF0aW9uOiBhbnkpIHtcclxuICAgIHRoaXMudmFsaWRhdGlvbnMucHVzaCh2YWxpZGF0aW9uKTtcclxuICAgIHRoaXMuZW1pdFZhbGlkYXRpb25zLmVtaXQodGhpcy52YWxpZGF0aW9ucyk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGxpYi1jaGVjay1ib3gtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnQ0hFQ0tfQk9YJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLWNoZWNrLWJveC1maWVsZHM+XHJcbiAgPGxpYi1kYXRlLXRpbWUtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnREFURV9USU1FJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLWRhdGUtdGltZS1maWVsZHM+XHJcbiAgPGxpYi1kcm9wLWRvd24tZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRFJPUF9ET1dOJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLWRyb3AtZG93bi1maWVsZHM+XHJcbiAgPGxpYi1maWxlLXBpY2tlci1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUidcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi1maWxlLXBpY2tlci1maWVsZHM+XHJcbiAgPGxpYi1sb2NhdGlvbi1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdMT0NBVElPTidcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi1sb2NhdGlvbi1maWVsZHM+XHJcblxyXG4gIDxsaWItbWFpbC1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdFTUFJTCdcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj5cclxuICA8L2xpYi1tYWlsLWZpZWxkcz5cclxuICA8bGliLW1vYmlsZS1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdNT0JJTEUnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+XHJcbiAgPC9saWItbW9iaWxlLWZpZWxkcz5cclxuICA8bGliLW51bWJlci1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdOVU1CRVInXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+XHJcbiAgPC9saWItbnVtYmVyLWZpZWxkcz5cclxuICA8bGliLXBhc3N3b3JkLWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1BBU1NXT1JEJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPlxyXG4gIDwvbGliLXBhc3N3b3JkLWZpZWxkcz5cclxuICA8bGliLXJhZGlvLWJ1dHRvbi1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdSQURJT19CVVRUT04nXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItcmFkaW8tYnV0dG9uLWZpZWxkcz5cclxuICA8bGliLXJpY2gtdGV4dC1lZGl0b3ItZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnUklDSF9URVhUX0VESVRPUidcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi1yaWNoLXRleHQtZWRpdG9yLWZpZWxkcz5cclxuICA8bGliLXNlbGVjdGlvbi1tYXRyaXgtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU0VMRUNUSU9OX01BVFJJWCdcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi1zZWxlY3Rpb24tbWF0cml4LWZpZWxkcz5cclxuICA8bGliLXNpZ25hdHVyZS1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdTSUdOQVRVUkUnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItc2lnbmF0dXJlLWZpZWxkcz5cclxuICA8bGliLXNsaWRlci1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdTTElERVInXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItc2xpZGVyLWZpZWxkcz5cclxuICA8bGliLXRlcm1zLWFuZC1jb25kaXRpb24tZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVEVSTVNfQU5EX0NPTkRJVElPTidcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkcz5cclxuICA8bGliLXRleHQtYXJlYS1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdURVhUX0FSRUEnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItdGV4dC1hcmVhLWZpZWxkcz5cclxuICA8bGliLXRleHQtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVEVYVF9CT1gnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItdGV4dC1maWVsZHM+XHJcbiAgPGxpYi10b2dnbGUtc3dpdGNoLWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1RPR0dMRV9TV0lUQ0gnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItdG9nZ2xlLXN3aXRjaC1maWVsZHM+XHJcbiAgPGxpYi11cmwtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVVJMJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLXVybC1maWVsZHM+XHJcbiAgPGxpYi1maXJzdC1jaGlsZCAqbmdJZj1cInF1ZXN0aW9uLmNoaWxkTG9naWNzXCJcclxuICAgIFtjaGlsZExvZ2ljc109XCJxdWVzdGlvbi5jaGlsZExvZ2ljc1wiPjwvbGliLWZpcnN0LWNoaWxkPlxyXG48L2Rpdj5cclxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9xdWVzdGlvbi9xdWVzdGlvbi9xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3F1ZXN0aW9uL3F1ZXN0aW9uL3F1ZXN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVExRixNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSmpDLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFhLEtBQUssQ0FBQztRQUN2QixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFJdEMsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDYixxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBSk4sQ0FBQztJQUsvQyxnQkFBZ0IsQ0FBQyxVQUFlO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBZFUsaUJBQWlCO21HQUFqQixpQkFBaUIsaU9DUjlCLCs1SEF3RkE7OzRGRGhGYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzt3R0FLZixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGVkaXQgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWNjZXB0ZWRMYW5ndWFnZTogc3RyaW5nID0nJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgdmFsaWRhdGlvbnM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgQE91dHB1dCgpIGVtaXRWYWxpZGF0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIGhhbmRsZVZhbGlkYXRpb24odmFsaWRhdGlvbjogYW55KSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25zLnB1c2godmFsaWRhdGlvbik7XHJcbiAgICB0aGlzLmVtaXRWYWxpZGF0aW9ucy5lbWl0KHRoaXMudmFsaWRhdGlvbnMpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2PlxyXG4gIDxsaWItY2hlY2stYm94LWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0NIRUNLX0JPWCdcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi1jaGVjay1ib3gtZmllbGRzPlxyXG4gIDxsaWItZGF0ZS10aW1lLWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0RBVEVfVElNRSdcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi1kYXRlLXRpbWUtZmllbGRzPlxyXG4gIDxsaWItZHJvcC1kb3duLWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0RST1BfRE9XTidcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tZmllbGRzPlxyXG4gIDxsaWItZmlsZS1waWNrZXItZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRklMRV9QSUNLRVInXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItZmlsZS1waWNrZXItZmllbGRzPlxyXG4gIDxsaWItbG9jYXRpb24tZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnTE9DQVRJT04nXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItbG9jYXRpb24tZmllbGRzPlxyXG5cclxuICA8bGliLW1haWwtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRU1BSUwnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+XHJcbiAgPC9saWItbWFpbC1maWVsZHM+XHJcbiAgPGxpYi1tb2JpbGUtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnTU9CSUxFJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPlxyXG4gIDwvbGliLW1vYmlsZS1maWVsZHM+XHJcbiAgPGxpYi1udW1iZXItZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnTlVNQkVSJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPlxyXG4gIDwvbGliLW51bWJlci1maWVsZHM+XHJcbiAgPGxpYi1wYXNzd29yZC1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdQQVNTV09SRCdcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj5cclxuICA8L2xpYi1wYXNzd29yZC1maWVsZHM+XHJcbiAgPGxpYi1yYWRpby1idXR0b24tZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnUkFESU9fQlVUVE9OJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLXJhZGlvLWJ1dHRvbi1maWVsZHM+XHJcbiAgPGxpYi1yaWNoLXRleHQtZWRpdG9yLWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1JJQ0hfVEVYVF9FRElUT1InXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItcmljaC10ZXh0LWVkaXRvci1maWVsZHM+XHJcbiAgPGxpYi1zZWxlY3Rpb24tbWF0cml4LWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1NFTEVDVElPTl9NQVRSSVgnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItc2VsZWN0aW9uLW1hdHJpeC1maWVsZHM+XHJcbiAgPGxpYi1zaWduYXR1cmUtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU0lHTkFUVVJFJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLXNpZ25hdHVyZS1maWVsZHM+XHJcbiAgPGxpYi1zbGlkZXItZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU0xJREVSJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLXNsaWRlci1maWVsZHM+XHJcbiAgPGxpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1RFUk1TX0FORF9DT05ESVRJT04nXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItdGVybXMtYW5kLWNvbmRpdGlvbi1maWVsZHM+XHJcbiAgPGxpYi10ZXh0LWFyZWEtZmllbGRzXHJcbiAgICAqbmdJZj1cInF1ZXN0aW9uLmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVEVYVF9BUkVBJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLXRleHQtYXJlYS1maWVsZHM+XHJcbiAgPGxpYi10ZXh0LWZpZWxkc1xyXG4gICAgKm5nSWY9XCJxdWVzdGlvbi5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1RFWFRfQk9YJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgKHZhbGlkYXRlKT1cImhhbmRsZVZhbGlkYXRpb24oJGV2ZW50KVwiPjwvbGliLXRleHQtZmllbGRzPlxyXG4gIDxsaWItdG9nZ2xlLXN3aXRjaC1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdUT0dHTEVfU1dJVENIJ1wiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgW2FjY2VwdGVkTGFuZ3VhZ2VdID0gXCJhY2NlcHRlZExhbmd1YWdlXCJcclxuICAgICh2YWxpZGF0ZSk9XCJoYW5kbGVWYWxpZGF0aW9uKCRldmVudClcIj48L2xpYi10b2dnbGUtc3dpdGNoLWZpZWxkcz5cclxuICA8bGliLXVybC1maWVsZHNcclxuICAgICpuZ0lmPVwicXVlc3Rpb24uZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdVUkwnXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAodmFsaWRhdGUpPVwiaGFuZGxlVmFsaWRhdGlvbigkZXZlbnQpXCI+PC9saWItdXJsLWZpZWxkcz5cclxuICA8bGliLWZpcnN0LWNoaWxkICpuZ0lmPVwicXVlc3Rpb24uY2hpbGRMb2dpY3NcIlxyXG4gICAgW2NoaWxkTG9naWNzXT1cInF1ZXN0aW9uLmNoaWxkTG9naWNzXCJcclxuICAgIFthY2NlcHRlZExhbmd1YWdlXSA9IFwiYWNjZXB0ZWRMYW5ndWFnZVwiPlxyXG4gIDwvbGliLWZpcnN0LWNoaWxkPlxyXG48L2Rpdj5cclxuIl19
@@ -18,12 +18,16 @@ export class FormService {
18
18
  this.dataService.parentQuestions$.subscribe((questions) => {
19
19
  if (questions) {
20
20
  this.parentQuestions = questions;
21
- console.log('parent questions', this.parentQuestions);
22
21
  }
23
22
  });
24
23
  }
25
24
  getQuestions(moduleName) {
26
- return this.http.get(`${this.apiUrl}/api/public/forms/${moduleName}`);
25
+ const headers = new HttpHeaders({
26
+ 'Accept-Language': this.header.acceptedLanguage,
27
+ });
28
+ return this.http.get(`${this.apiUrl}/api/public/forms/${moduleName}`, {
29
+ headers
30
+ });
27
31
  }
28
32
  fetchDataFromDatabase(database) {
29
33
  const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
@@ -48,7 +52,6 @@ export class FormService {
48
52
  }
49
53
  getSubmittedForm(moduleName, submissionId) {
50
54
  const questions = this.parentQuestions ? this.parentQuestions.map((q) => `parentQuestions=${encodeURIComponent(q)}`).join('&') : '';
51
- console.log('questions', questions);
52
55
  return this.http.get(`${this.apiUrl}/api/forms/${moduleName}/submissions/${submissionId}?${questions}`);
53
56
  }
54
57
  updateForm(moduleName, submissionId, formData) {
@@ -69,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
69
72
  providedIn: 'root',
70
73
  }]
71
74
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.DataService }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFPL0QsTUFBTSxPQUFPLFdBQVc7SUFLdEIsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFKOUQsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBSWYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBQyxTQUFTLENBQUM7Z0JBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBRXREO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLFVBQWtCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxxQkFBcUIsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQscUJBQXFCLENBQUMsUUFBYTtRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLG1CQUFtQixFQUFFLFFBQVEsRUFBRTtZQUN0RSxPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLFNBQWlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxzQkFBc0IsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsd0JBQXdCLENBQUMsR0FBVztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBa0IsRUFBRSxRQUFrQjtRQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM5QixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1NBQ2xDLENBQUMsQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0scUJBQXFCLFVBQVUsY0FBYyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUNuQyxPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQWtCLEVBQUUsWUFBb0I7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEksT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFHbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLGNBQWMsVUFBVSxnQkFBZ0IsWUFBWSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBa0I7UUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtTQUNsQyxDQUFDLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLHFCQUFxQixVQUFVLGdCQUFnQixZQUFZLEVBQUUsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDbEMsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBckVVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBhcGlVcmw6IHN0cmluZyA9ICcnO1xyXG4gIGhlYWRlcjogYW55ID0ge307XHJcbiAgcGFyZW50UXVlc3Rpb25zOmFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge1xyXG4gICAgdGhpcy5kYXRhU2VydmljZS5hcGlVcmwkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLmFwaVVybCA9IGRhdGE7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmhlYWRlciQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuaGVhZGVyID0gZGF0YTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UucGFyZW50UXVlc3Rpb25zJC5zdWJzY3JpYmUoKHF1ZXN0aW9ucykgPT4ge1xyXG4gICAgICBpZiAocXVlc3Rpb25zKSB7XHJcbiAgICAgICAgdGhpcy5wYXJlbnRRdWVzdGlvbnM9cXVlc3Rpb25zO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdwYXJlbnQgcXVlc3Rpb25zJyx0aGlzLnBhcmVudFF1ZXN0aW9ucyk7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25zKG1vZHVsZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hcGlVcmx9L2FwaS9wdWJsaWMvZm9ybXMvJHttb2R1bGVOYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hEYXRhRnJvbURhdGFiYXNlKGRhdGFiYXNlOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hcGlVcmx9L2FwaS9sb2FkLWZyb20tZGJgLCBkYXRhYmFzZSwge1xyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmZXRjaERhdGFGcm9tTG9va3VwKHRhYmxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2xvb2t1cC8ke3RhYmxlTmFtZX1gKTtcclxuICB9XHJcblxyXG4gIGZldGNoRGF0YUZyb21FeHRlcm5hbEFQSSh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKG1vZHVsZU5hbWU6IHN0cmluZywgZm9ybURhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQXV0aC11c2VyJzogdGhpcy5oZWFkZXIuYXV0aFVzZXIsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2Zvcm1zLyR7bW9kdWxlTmFtZX0vc3VibWlzc2lvbnNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgZm9ybURhdGEsIHtcclxuICAgICAgaGVhZGVyc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdWJtaXR0ZWRGb3JtKG1vZHVsZU5hbWU6IHN0cmluZywgc3VibWlzc2lvbklkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHF1ZXN0aW9ucyA9IHRoaXMucGFyZW50UXVlc3Rpb25zID8gdGhpcy5wYXJlbnRRdWVzdGlvbnMubWFwKChxOmFueSkgPT4gYHBhcmVudFF1ZXN0aW9ucz0ke2VuY29kZVVSSUNvbXBvbmVudChxKX1gKS5qb2luKCcmJykgOiAnJztcclxuXHJcbiAgICBjb25zb2xlLmxvZygncXVlc3Rpb25zJyxxdWVzdGlvbnMpO1xyXG4gICAgXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFwaVVybH0vYXBpL2Zvcm1zLyR7bW9kdWxlTmFtZX0vc3VibWlzc2lvbnMvJHtzdWJtaXNzaW9uSWR9PyR7cXVlc3Rpb25zfWApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRm9ybShtb2R1bGVOYW1lOiBzdHJpbmcsIHN1Ym1pc3Npb25JZDogc3RyaW5nLCBmb3JtRGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdBdXRoLXVzZXInOiB0aGlzLmhlYWRlci5hdXRoVXNlcixcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcGlVcmx9L2FwaS9wdWJsaWMvZm9ybXMvJHttb2R1bGVOYW1lfS9zdWJtaXNzaW9ucy8ke3N1Ym1pc3Npb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodXJsLCBmb3JtRGF0YSwge1xyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFPL0QsTUFBTSxPQUFPLFdBQVc7SUFLdEIsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFKOUQsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBSWYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7YUFDbEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsVUFBa0I7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDOUIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7U0FDaEQsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLHFCQUFxQixVQUFVLEVBQUUsRUFBRTtZQUNwRSxPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQixDQUFDLFFBQWE7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxtQkFBbUIsRUFBRSxRQUFRLEVBQUU7WUFDdEUsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxTQUFpQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sc0JBQXNCLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELHdCQUF3QixDQUFDLEdBQVc7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQWtCLEVBQUUsUUFBa0I7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtTQUNsQyxDQUFDLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLHFCQUFxQixVQUFVLGNBQWMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDbkMsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFlBQW9CO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxjQUFjLFVBQVUsZ0JBQWdCLFlBQVksSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFFBQWtCO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxxQkFBcUIsVUFBVSxnQkFBZ0IsWUFBWSxFQUFFLENBQUM7UUFDeEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFO1lBQ2xDLE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXBFVSxXQUFXO21IQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgYXBpVXJsOiBzdHJpbmcgPSAnJztcclxuICBoZWFkZXI6IGFueSA9IHt9O1xyXG4gIHBhcmVudFF1ZXN0aW9uczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVVybCQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBpVXJsID0gZGF0YTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuaGVhZGVyJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5oZWFkZXIgPSBkYXRhO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5wYXJlbnRRdWVzdGlvbnMkLnN1YnNjcmliZSgocXVlc3Rpb25zKSA9PiB7XHJcbiAgICAgIGlmIChxdWVzdGlvbnMpIHtcclxuICAgICAgICB0aGlzLnBhcmVudFF1ZXN0aW9ucyA9IHF1ZXN0aW9ucztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbnMobW9kdWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IHRoaXMuaGVhZGVyLmFjY2VwdGVkTGFuZ3VhZ2UsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2Zvcm1zLyR7bW9kdWxlTmFtZX1gLCB7XHJcbiAgICAgIGhlYWRlcnNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hEYXRhRnJvbURhdGFiYXNlKGRhdGFiYXNlOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hcGlVcmx9L2FwaS9sb2FkLWZyb20tZGJgLCBkYXRhYmFzZSwge1xyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmZXRjaERhdGFGcm9tTG9va3VwKHRhYmxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2xvb2t1cC8ke3RhYmxlTmFtZX1gKTtcclxuICB9XHJcblxyXG4gIGZldGNoRGF0YUZyb21FeHRlcm5hbEFQSSh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKG1vZHVsZU5hbWU6IHN0cmluZywgZm9ybURhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQXV0aC11c2VyJzogdGhpcy5oZWFkZXIuYXV0aFVzZXIsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2Zvcm1zLyR7bW9kdWxlTmFtZX0vc3VibWlzc2lvbnNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgZm9ybURhdGEsIHtcclxuICAgICAgaGVhZGVyc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdWJtaXR0ZWRGb3JtKG1vZHVsZU5hbWU6IHN0cmluZywgc3VibWlzc2lvbklkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHF1ZXN0aW9ucyA9IHRoaXMucGFyZW50UXVlc3Rpb25zID8gdGhpcy5wYXJlbnRRdWVzdGlvbnMubWFwKChxOiBhbnkpID0+IGBwYXJlbnRRdWVzdGlvbnM9JHtlbmNvZGVVUklDb21wb25lbnQocSl9YCkuam9pbignJicpIDogJyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYXBpVXJsfS9hcGkvZm9ybXMvJHttb2R1bGVOYW1lfS9zdWJtaXNzaW9ucy8ke3N1Ym1pc3Npb25JZH0/JHtxdWVzdGlvbnN9YCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGb3JtKG1vZHVsZU5hbWU6IHN0cmluZywgc3VibWlzc2lvbklkOiBzdHJpbmcsIGZvcm1EYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgJ0F1dGgtdXNlcic6IHRoaXMuaGVhZGVyLmF1dGhVc2VyLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVVybH0vYXBpL3B1YmxpYy9mb3Jtcy8ke21vZHVsZU5hbWV9L3N1Ym1pc3Npb25zLyR7c3VibWlzc2lvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGZvcm1EYXRhLCB7XHJcbiAgICAgIGhlYWRlcnNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -12,6 +12,7 @@ export class MultipleSubformComponent {
12
12
  this.dialog = dialog;
13
13
  this.subForm = {};
14
14
  this.subFormChange = new EventEmitter();
15
+ this.acceptedLanguage = '';
15
16
  this.submissions = [];
16
17
  this.deletedSubmissions = [];
17
18
  this.displayedColumns = [];
@@ -78,6 +79,7 @@ export class MultipleSubformComponent {
78
79
  dialogConfig.width = '100%';
79
80
  dialogConfig.data = {
80
81
  subForm: subForm,
82
+ acceptedLanguage: this.acceptedLanguage
81
83
  };
82
84
  dialogConfig.hasBackdrop = true;
83
85
  dialogConfig.disableClose = true;
@@ -127,6 +129,7 @@ export class MultipleSubformComponent {
127
129
  dialogConfig.width = '100%';
128
130
  dialogConfig.data = {
129
131
  subForm: this.subForm,
132
+ acceptedLanguage: this.acceptedLanguage
130
133
  };
131
134
  dialogConfig.hasBackdrop = true;
132
135
  dialogConfig.disableClose = true;
@@ -237,14 +240,16 @@ export class MultipleSubformComponent {
237
240
  this.updateSubFormWithSubmissions();
238
241
  }
239
242
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultipleSubformComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
240
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultipleSubformComponent, selector: "lib-multiple-subform", inputs: { subForm: "subForm" }, outputs: { subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultipleSubformComponent, selector: "lib-multiple-subform", inputs: { subForm: "subForm", acceptedLanguage: "acceptedLanguage" }, outputs: { subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}::ng-deep .mat-mdc-menu-panel{min-width:65px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
241
244
  }
242
245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultipleSubformComponent, decorators: [{
243
246
  type: Component,
244
- args: [{ selector: 'lib-multiple-subform', template: "<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}\n"] }]
247
+ args: [{ selector: 'lib-multiple-subform', template: "<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}::ng-deep .mat-mdc-menu-panel{min-width:65px!important}\n"] }]
245
248
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { subForm: [{
246
249
  type: Input
247
250
  }], subFormChange: [{
248
251
  type: Output
252
+ }], acceptedLanguage: [{
253
+ type: Input
249
254
  }] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQXVCMUYsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUFtQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBUDNCLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWxELGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUMvQix1QkFBa0IsR0FBYSxFQUFFLENBQUM7UUFDbEMscUJBQWdCLEdBQWEsRUFBRSxDQUFDO0lBRU8sQ0FBQztJQUV4QyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTtZQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FB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NUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxtQkFBbUIsR0FBZ0IsRUFBRSxDQUFDO1FBQzVDLE1BQU0sa0JBQWtCLEdBQVksRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxFQUFFO2dCQUMzRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdEM7aUJBQU0sSUFBSSxVQUFVLENBQUMsWUFBWSxFQUFFO2dCQUNsQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7K0dBelFVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHlJQ3pCckMsdWlKQXdEQTs7NEZEL0JhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7Z0dBS3ZCLE9BQU87c0JBQWYsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9uLW1vZGFsL3N1Ym1pc3Npb24tbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRhY2htZW50Lm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBBbnN3ZXIge1xyXG4gIHF1ZXN0aW9uSWQ6IHN0cmluZztcclxuICBhbnN3ZXI/OiBhbnk7XHJcbiAgYW5zd2VySWQ/OiBzdHJpbmc7XHJcbiAgZGVsZXRlRmlsZXM/OiBzdHJpbmdbXTtcclxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRbXTtcclxuICBmaWxlcz86IGFueTtcclxuICBpc0NoaWxkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFN1Ym1pc3Npb24ge1xyXG4gIHN1Ym1pc3Npb25JZDogc3RyaW5nO1xyXG4gIGFuc3dlcnM6IEFuc3dlcltdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tdWx0aXBsZS1zdWJmb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVTdWJmb3JtQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzdWJGb3JtOiBhbnkgPSB7fTtcclxuICBAT3V0cHV0KCkgc3ViRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBzdWJtaXNzaW9uczogU3VibWlzc2lvbltdID0gW107XHJcbiAgZGVsZXRlZFN1Ym1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJGb3JtPy5zdWJtaXNzaW9ucykge1xyXG4gICAgICB0aGlzLnN1Ym1pc3Npb25zID0gdGhpcy5zdWJGb3JtLnN1Ym1pc3Npb25zO1xyXG4gICAgICB0aGlzLnN1YkZvcm0uZGVsZXRlZFN1Ym1pc3Npb25zID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXRpYWxpemVEaXNwbGF5ZWRDb2x1bW5zKCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRGlzcGxheWVkQ29sdW1ucygpIHtcclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuc3ViRm9ybS5mb3JtRWxlbWVudHMubWFwKChmZTogYW55KSA9PiBmZS5lbGVtZW50LnF1ZXN0aW9uKTtcclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdhY3Rpb25zJyk7XHJcbiAgfVxyXG5cclxuICBnZXRBbnN3ZXJCeVF1ZXN0aW9uSWQoc3VibWlzc2lvbjogU3VibWlzc2lvbiwgcXVlc3Rpb25JZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gc3VibWlzc2lvbi5hbnN3ZXJzLmZpbmQoYW5zd2VyID0+IGFuc3dlci5xdWVzdGlvbklkID09PSBxdWVzdGlvbklkKTtcclxuICB9XHJcblxyXG4gIHN1YkZvcm1TdWJtaXNzaW9uKHN1YkZvcm06IGFueSkge1xyXG4gICAgY29uc3QgcHJvY2Vzc0Zvcm1FbGVtZW50cyA9IChmb3JtRWxlbWVudHM6IGFueVtdLCBpc0NoaWxkOiBib29sZWFuID0gZmFsc2UpOiBBbnN3ZXJbXSA9PiB7XHJcbiAgICAgIGNvbnN0IGFuc3dlcnM6IEFuc3dlcltdID0gW107XHJcbiAgXHJcbiAgICAgIGZvcm1FbGVtZW50cy5mb3JFYWNoKChmb3JtRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgYW5zd2VyOiBBbnN3ZXIgPSB7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBmb3JtRWxlbWVudC5lbGVtZW50LmlkLFxyXG4gICAgICAgICAgYW5zd2VyOiBmb3JtRWxlbWVudC5lbGVtZW50Py5hbnN3ZXIgfHwgJycsXHJcbiAgICAgICAgICBmaWxlczogZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PSAnRklMRV9QSUNLRVInICYmIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyXHJcbiAgICAgICAgICAgID8gZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICBpc0NoaWxkOiBpc0NoaWxkXHJcbiAgICAgICAgfTtcclxuICBcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09ICdGSUxFX1BJQ0tFUicgJiZcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlTmFtZXMgPSBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlci5tYXAoXHJcbiAgICAgICAgICAgIChmaWxlOiBhbnkpID0+IGZpbGU/Ll9maWxlLm5hbWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBhbnN3ZXIuYW5zd2VyID0gZmlsZU5hbWVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhbnN3ZXJzLnB1c2goYW5zd2VyKTtcclxuICBcclxuICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcy5mb3JFYWNoKChsb2dpYzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKGxvZ2ljLnNob3dMb2dpYyl7XHJcbiAgICAgICAgICAgICAgYW5zd2Vycy5wdXNoKC4uLnByb2Nlc3NGb3JtRWxlbWVudHMobG9naWMuZm9ybUVsZW1lbnRzLCB0cnVlKSk7XHJcbiAgICAgICAgICAgICAgbG9naWMuc2hvd0xvZ2ljPWZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyID0gJyc7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYW5zd2VycztcclxuICAgIH07XHJcbiAgXHJcbiAgICBjb25zdCBhbnN3ZXJzID0gcHJvY2Vzc0Zvcm1FbGVtZW50cyhzdWJGb3JtLmZvcm1FbGVtZW50cyk7XHJcbiAgXHJcbiAgICBpZiAoYW5zd2Vycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHN1Ym1pc3Npb246IFN1Ym1pc3Npb24gPSB7XHJcbiAgICAgICAgc3VibWlzc2lvbklkOiAnJyxcclxuICAgICAgICBhbnN3ZXJzOiBhbnN3ZXJzLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnN1Ym1pc3Npb25zLnB1c2goc3VibWlzc2lvbik7XHJcbiAgICAgIHRoaXMuc3VibWlzc2lvbnMgPSBbLi4udGhpcy5zdWJtaXNzaW9uc107XHJcbiAgICAgIHRoaXMudXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgZWRpdFN1YkZvcm1TdWJtaXNzaW9uKGluZGV4OiBudW1iZXIsIHN1Ym1pc3Npb246IFN1Ym1pc3Npb24pIHtcclxuICAgIGNvbnN0IHN1YkZvcm0gPSB0aGlzLmJpbmRBbnN3ZXJzKHRoaXMuc3ViRm9ybSwgc3VibWlzc2lvbik7XHJcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XHJcbiAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSB7IHRvcDogJzUlJyB9O1xyXG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzEwMCUnO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XHJcbiAgICAgIHN1YkZvcm06IHN1YkZvcm0sXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLm1heEhlaWdodCA9ICc4MHZoJztcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU3VibWlzc2lvbk1vZGFsQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVTdWJtaXNzaW9uKHJlc3VsdCwgaW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYmluZEFuc3dlcnMoc3ViRm9ybTogYW55LCBzdWJtaXNzaW9uOiBTdWJtaXNzaW9uKTogYW55IHtcclxuICAgIGNvbnN0IGJpbmRFbGVtZW50QW5zd2VycyA9IChmb3JtRWxlbWVudHM6IGFueVtdLCBhbnN3ZXJzOiBBbnN3ZXJbXSkgPT4ge1xyXG4gICAgICBmb3JtRWxlbWVudHMuZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFuc3dlciA9IGFuc3dlcnMuZmluZChcclxuICAgICAgICAgIChhKSA9PiBhLnF1ZXN0aW9uSWQgPT09IGZvcm1FbGVtZW50LmVsZW1lbnQuaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChhbnN3ZXIpIHtcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyID1cclxuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PSAnRklMRV9QSUNLRVInXHJcbiAgICAgICAgICAgICAgPyBhbnN3ZXI/LmZpbGVzXHJcbiAgICAgICAgICAgICAgOiBhbnN3ZXIuYW5zd2VyO1xyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJJZCA9IGFuc3dlci5hbnN3ZXJJZDtcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHMgPSBhbnN3ZXIuYXR0YWNobWVudHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGxvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgYmluZEVsZW1lbnRBbnN3ZXJzKGxvZ2ljLmZvcm1FbGVtZW50cywgYW5zd2Vycyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkU3ViRm9ybSA9IHsgLi4uc3ViRm9ybSB9O1xyXG4gICAgYmluZEVsZW1lbnRBbnN3ZXJzKHVwZGF0ZWRTdWJGb3JtLmZvcm1FbGVtZW50cywgc3VibWlzc2lvbi5hbnN3ZXJzKTtcclxuICAgIHJldHVybiB1cGRhdGVkU3ViRm9ybTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVN1YkZvcm0oaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc3VibWlzc2lvbiA9IHRoaXMuc3VibWlzc2lvbnNbaW5kZXhdO1xyXG4gICAgaWYgKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlZFN1Ym1pc3Npb25zLnB1c2goc3VibWlzc2lvbi5zdWJtaXNzaW9uSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJtaXNzaW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zdWJtaXNzaW9ucyA9IFsuLi50aGlzLnN1Ym1pc3Npb25zXTtcclxuICAgIHRoaXMudXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U3VibWlzc2lvbigpIHtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgIGRpYWxvZ0NvbmZpZy5wb3NpdGlvbiA9IHsgdG9wOiAnNSUnIH07XHJcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnMTAwJSc7XHJcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IHtcclxuICAgICAgc3ViRm9ybTogdGhpcy5zdWJGb3JtLFxyXG4gICAgfTtcclxuICAgIGRpYWxvZ0NvbmZpZy5oYXNCYWNrZHJvcCA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5tYXhIZWlnaHQgPSAnODB2aCc7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFN1Ym1pc3Npb25Nb2RhbENvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcclxuICBcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIGNvbnN0IGhhc0RhdGEgPSByZXN1bHQuZm9ybUVsZW1lbnRzLnNvbWUoKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciAmJiBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlci5sZW5ndGggPiAwO1xyXG4gICAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAgIGlmIChoYXNEYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLnN1YkZvcm0gPSByZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLnN1YkZvcm1TdWJtaXNzaW9uKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcblxyXG4gIHVwZGF0ZVN1Ym1pc3Npb24ocmVzdWx0OiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHByb2Nlc3NGb3JtRWxlbWVudHMgPSAoZm9ybUVsZW1lbnRzOiBhbnlbXSwgYW5zd2VyczogQW5zd2VyW10pID0+IHtcclxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgYW5zd2VyOiBBbnN3ZXIgPSB7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBmb3JtRWxlbWVudC5lbGVtZW50LmlkLFxyXG4gICAgICAgICAgYW5zd2VySWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQ/LmFuc3dlcklkIHx8ICcnLFxyXG4gICAgICAgICAgYXR0YWNobWVudHM6IGZvcm1FbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHMgfHwgW10sXHJcbiAgICAgICAgICBhbnN3ZXI6IFtdLFxyXG4gICAgICAgICAgZmlsZXM6IFtdLFxyXG4gICAgICAgICAgZGVsZXRlRmlsZXM6IFtdLFxyXG4gICAgICAgIH07XHJcbiAgXHJcbiAgICAgICAgaWYgKGFuc3dlci5hdHRhY2htZW50cykge1xyXG4gICAgICAgICAgYW5zd2VyLmFuc3dlciA9IGFuc3dlci5hdHRhY2htZW50cy5tYXAoXHJcbiAgICAgICAgICAgIChhdHRhY2htZW50OiBBdHRhY2htZW50KSA9PiBhdHRhY2htZW50LmZpbGVOYW1lXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICBcclxuICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0ZJTEVfUElDS0VSJykge1xyXG4gICAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQ/LmRlbGV0ZUZpbGVzKSB7XHJcbiAgICAgICAgICAgIGFuc3dlci5hbnN3ZXIgPSBbXTtcclxuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5kZWxldGVGaWxlcy5mb3JFYWNoKChkZWxldGVkSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgIGFuc3dlci5kZWxldGVGaWxlcz8ucHVzaChkZWxldGVkSWQpO1xyXG4gICAgICAgICAgICAgIGlmIChhbnN3ZXIuYXR0YWNobWVudHMpIHtcclxuICAgICAgICAgICAgICAgIGFuc3dlci5hdHRhY2htZW50cyA9IGFuc3dlci5hdHRhY2htZW50cy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgIChhdHRhY2htZW50OiBBdHRhY2htZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhdHRhY2htZW50LmZpbGVJZCAhPT0gZGVsZXRlZElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFuc3dlci5hbnN3ZXIuaW5jbHVkZXMoZmlsZU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuc3dlci5hbnN3ZXIucHVzaChmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlcikge1xyXG4gICAgICAgICAgICBhbnN3ZXIuZmlsZXMgPSBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlcjtcclxuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIuZm9yRWFjaCgoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLl9maWxlPy5uYW1lO1xyXG4gICAgICAgICAgICAgIGxldCBmaWxlTmFtZXNBcnJheSA9IEFycmF5LmlzQXJyYXkoYW5zd2VyLmFuc3dlcilcclxuICAgICAgICAgICAgICAgID8gYW5zd2VyLmFuc3dlclxyXG4gICAgICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICAgICAgICBpZiAoIWZpbGVOYW1lc0FycmF5LmluY2x1ZGVzKGZpbGVOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgZmlsZU5hbWVzQXJyYXkucHVzaChmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGFuc3dlci5hbnN3ZXIgPSBmaWxlTmFtZXNBcnJheTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGFuc3dlciA9IHtcclxuICAgICAgICAgICAgcXVlc3Rpb25JZDogZm9ybUVsZW1lbnQuZWxlbWVudC5pZCxcclxuICAgICAgICAgICAgYW5zd2VySWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQ/LmFuc3dlcklkIHx8ICcnLFxyXG4gICAgICAgICAgICBhdHRhY2htZW50czogZm9ybUVsZW1lbnQuZWxlbWVudC5hdHRhY2htZW50cyxcclxuICAgICAgICAgICAgYW5zd2VyOiBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlcixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyID0gJyc7XHJcbiAgICAgICAgYW5zd2Vycy5wdXNoKGFuc3dlcik7XHJcbiAgXHJcbiAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MuZm9yRWFjaCgobG9naWM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZihsb2dpYy5zaG93TG9naWMpe1xyXG4gICAgICAgICAgICAgIHByb2Nlc3NGb3JtRWxlbWVudHMobG9naWMuZm9ybUVsZW1lbnRzLCBhbnN3ZXJzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgXHJcbiAgICB0aGlzLnN1Ym1pc3Npb25zW2luZGV4XS5hbnN3ZXJzID0gW107XHJcbiAgICBwcm9jZXNzRm9ybUVsZW1lbnRzKHJlc3VsdC5mb3JtRWxlbWVudHMsIHRoaXMuc3VibWlzc2lvbnNbaW5kZXhdLmFuc3dlcnMpO1xyXG4gICAgdGhpcy5zdWJtaXNzaW9ucyA9IFsuLi50aGlzLnN1Ym1pc3Npb25zXTtcclxuICAgIHRoaXMudXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpO1xyXG4gICAgdGhpcy5jbGVhckVtcHR5Um93cygpO1xyXG4gIH0gIFxyXG5cclxuICB1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCkge1xyXG4gICAgdGhpcy5zdWJGb3JtLnN1Ym1pc3Npb25zID0gdGhpcy5zdWJtaXNzaW9ucztcclxuICAgIHRoaXMuc3ViRm9ybS5kZWxldGVkU3VibWlzc2lvbnMgPSB0aGlzLmRlbGV0ZWRTdWJtaXNzaW9ucztcclxuICAgIHRoaXMuc3ViRm9ybUNoYW5nZS5lbWl0KHRoaXMuc3ViRm9ybSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckVtcHR5Um93cygpIHtcclxuICAgIGNvbnN0IG5vbkVtcHR5U3VibWlzc2lvbnM6U3VibWlzc2lvbltdID0gW107XHJcbiAgICBjb25zdCBlbXB0eVN1Ym1pc3Npb25JZHM6c3RyaW5nW10gPSBbXTtcclxuICBcclxuICAgIHRoaXMuc3VibWlzc2lvbnMuZm9yRWFjaChzdWJtaXNzaW9uID0+IHtcclxuICAgICAgaWYgKHN1Ym1pc3Npb24uYW5zd2Vycy5zb21lKGFuc3dlciA9PiBhbnN3ZXIuYW5zd2VyICE9PSAnJykpIHtcclxuICAgICAgICBub25FbXB0eVN1Ym1pc3Npb25zLnB1c2goc3VibWlzc2lvbik7XHJcbiAgICAgIH0gZWxzZSBpZiAoc3VibWlzc2lvbi5zdWJtaXNzaW9uSWQpIHtcclxuICAgICAgICBlbXB0eVN1Ym1pc3Npb25JZHMucHVzaChzdWJtaXNzaW9uLnN1Ym1pc3Npb25JZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIFxyXG4gICAgdGhpcy5zdWJtaXNzaW9ucyA9IG5vbkVtcHR5U3VibWlzc2lvbnM7XHJcbiAgICB0aGlzLmRlbGV0ZWRTdWJtaXNzaW9ucy5wdXNoKC4uLmVtcHR5U3VibWlzc2lvbklkcyk7XHJcbiAgICB0aGlzLnVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoKTtcclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImV4YW1wbGUtY29udGFpbmVyIFwiIHRhYmluZGV4PVwiMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXJcIj5cclxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwic3VibWlzc2lvbnNcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZm9ybUVsZW1lbnQgb2Ygc3ViRm9ybS5mb3JtRWxlbWVudHNcIiBbbWF0Q29sdW1uRGVmXT1cImZvcm1FbGVtZW50LmVsZW1lbnQucXVlc3Rpb25cIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xXCI+e3sgZm9ybUVsZW1lbnQuZWxlbWVudC5xdWVzdGlvbiB9fTwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1Ym1pc3Npb25cIiBjbGFzcz1cImJvcmRlciBib3JkZXItMVwiIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogZ2V0QW5zd2VyQnlRdWVzdGlvbklkKHN1Ym1pc3Npb24sIGZvcm1FbGVtZW50LmVsZW1lbnQuaWQpPy5pc0NoaWxkfVwiPlxyXG4gICAgICAgICAge3sgZ2V0QW5zd2VyQnlRdWVzdGlvbklkKHN1Ym1pc3Npb24sIGZvcm1FbGVtZW50LmVsZW1lbnQuaWQpPy5hbnN3ZXIgfX1cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiIHN0aWNreUVuZD5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmICBjbGFzcz1cImJvcmRlciBib3JkZXItMVwiPiBBY3Rpb25zIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1Ym1pc3Npb247IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInRleHQtY2VudGVyIGJvcmRlciBib3JkZXItMVwiPlxyXG5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBhcmlhLWxhYmVsPVwiRXhhbXBsZSBpY29uLWJ1dHRvbiB3aXRoIGEgbWVudVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAgKGNsaWNrKT1cImVkaXRTdWJGb3JtU3VibWlzc2lvbihpLCBzdWJtaXNzaW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI5XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI5IDI4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIyOFwiIGhlaWdodD1cIjI2LjQ3MzdcIiByeD1cIjUuNVwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIiNEOEQ4RDhcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMi4wMDA5IDE5LjA3ODdIOS4xNTgyVjE2LjIzNjFDOS4xNTgyIDE1Ljk0NDcgOS4yNzM5IDE1LjY2NTMgOS40Nzk5OSAxNS40NTkzTDE2LjIyMjQgOC43MTY4NkMxNi40Mjg0IDguNTEwNSAxNi43MDggOC4zOTQ1MyAxNi45OTk1IDguMzk0NTNDMTcuMjkxMSA4LjM5NDUzIDE3LjU3MDcgOC41MTA1IDE3Ljc3NjcgOC43MTY4NkwxOS41MjAxIDEwLjQ2MDNDMTkuNzI2NCAxMC42NjYzIDE5Ljg0MjQgMTAuOTQ1OCAxOS44NDI0IDExLjIzNzRDMTkuODQyNCAxMS41MjkgMTkuNzI2NCAxMS44MDg2IDE5LjUyMDEgMTIuMDE0NUwxMi43Nzc3IDE4Ljc1N0MxMi41NzE1IDE4Ljk2MjggMTIuMjkyMiAxOS4wNzg1IDEyLjAwMDkgMTkuMDc4N1pcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjE3MDQgMTAuMzk4NEwxNy44NDE1IDEzLjA2OTVcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkZWxldGVTdWJGb3JtKGkpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjlcIiBoZWlnaHQ9XCIyOFwiIHZpZXdCb3g9XCIwIDAgMjkgMjhcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjI3LjY0MDJcIiBoZWlnaHQ9XCIyNi4xMzI4XCIgcng9XCI1LjVcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIjRDhEOEQ4XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNjA0NDkgOS4yMDYzN0gyMC4wMzU0XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOS4yMTg5IDkuMjA3MDNWMTcuNzg2M0MxOS4yMTg5IDE4LjY0ODIgMTguNDg4MSAxOS4zNDYyIDE3LjU4NTkgMTkuMzQ2MkgxMS4wNTM5QzEwLjE1MTcgMTkuMzQ2MiA5LjQyMDkgMTguNjQ4MiA5LjQyMDkgMTcuNzg2M1Y5LjIwNzAzXCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNi43Njk2IDYuNjcxMjJIMTEuODcwNlwiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNjg3MSAxMi4zMjQyVjE2LjIyMzlcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1Ljk1MzIgMTIuMzI0MlYxNi4yMjM5XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxyXG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWRkTmV3QnRuXCIgKGNsaWNrKT1cImFkZE5ld1N1Ym1pc3Npb24oKVwiPlxyXG4gICAgICA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTUgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIuNTU1NiAxMy4yNzc4SDIuNDQ0NDRDMS42NDYzOSAxMy4yNzc4IDEgMTIuNjY3MyAxIDExLjkxMzZWMi4zNjQyQzEgMS42MTA0OCAxLjY0NjM5IDEgMi40NDQ0NCAxSDEyLjU1NTZDMTMuMzUzNiAxIDE0IDEuNjEwNDggMTQgMi4zNjQyVjExLjkxMzZDMTQgMTIuNjY3MyAxMy4zNTM2IDEzLjI3NzggMTIuNTU1NiAxMy4yNzc4WlwiIHN0cm9rZT1cIiNEOEQ4RDhcIiBzdHJva2Utd2lkdGg9XCIwLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgPHBhdGggZD1cIk01LjMzMzUgNy41MDM0N0g5LjY2NjgzXCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS13aWR0aD1cIjAuOFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICA8cGF0aCBkPVwiTTcuNTAwMDUgNS4zMzU5NFY5LjY2OTI3XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS13aWR0aD1cIjAuOFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICAgIDxhIGNsYXNzPVwibXMtMiB0ZXh0LWRlY29yYXRpb24tbm9uZVwiPkFkZCBOZXc8L2E+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQXVCMUYsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUFtQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBUjNCLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUV0QyxnQkFBVyxHQUFpQixFQUFFLENBQUM7UUFDL0IsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBQ2xDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUVPLENBQUM7SUFFeEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztTQUN0QztRQUNELElBQUksQ0FB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QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9uLW1vZGFsL3N1Ym1pc3Npb24tbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRhY2htZW50Lm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBBbnN3ZXIge1xyXG4gIHF1ZXN0aW9uSWQ6IHN0cmluZztcclxuICBhbnN3ZXI/OiBhbnk7XHJcbiAgYW5zd2VySWQ/OiBzdHJpbmc7XHJcbiAgZGVsZXRlRmlsZXM/OiBzdHJpbmdbXTtcclxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRbXTtcclxuICBmaWxlcz86IGFueTtcclxuICBpc0NoaWxkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFN1Ym1pc3Npb24ge1xyXG4gIHN1Ym1pc3Npb25JZDogc3RyaW5nO1xyXG4gIGFuc3dlcnM6IEFuc3dlcltdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tdWx0aXBsZS1zdWJmb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVTdWJmb3JtQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzdWJGb3JtOiBhbnkgPSB7fTtcclxuICBAT3V0cHV0KCkgc3ViRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIGFjY2VwdGVkTGFuZ3VhZ2U6IHN0cmluZyA9Jyc7XHJcblxyXG4gIHN1Ym1pc3Npb25zOiBTdWJtaXNzaW9uW10gPSBbXTtcclxuICBkZWxldGVkU3VibWlzc2lvbnM6IHN0cmluZ1tdID0gW107XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnN1YkZvcm0/LnN1Ym1pc3Npb25zKSB7XHJcbiAgICAgIHRoaXMuc3VibWlzc2lvbnMgPSB0aGlzLnN1YkZvcm0uc3VibWlzc2lvbnM7XHJcbiAgICAgIHRoaXMuc3ViRm9ybS5kZWxldGVkU3VibWlzc2lvbnMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdGlhbGl6ZURpc3BsYXllZENvbHVtbnMoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVEaXNwbGF5ZWRDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5zdWJGb3JtLmZvcm1FbGVtZW50cy5tYXAoKGZlOiBhbnkpID0+IGZlLmVsZW1lbnQucXVlc3Rpb24pO1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ2FjdGlvbnMnKTtcclxuICB9XHJcblxyXG4gIGdldEFuc3dlckJ5UXVlc3Rpb25JZChzdWJtaXNzaW9uOiBTdWJtaXNzaW9uLCBxdWVzdGlvbklkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBzdWJtaXNzaW9uLmFuc3dlcnMuZmluZChhbnN3ZXIgPT4gYW5zd2VyLnF1ZXN0aW9uSWQgPT09IHF1ZXN0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgc3ViRm9ybVN1Ym1pc3Npb24oc3ViRm9ybTogYW55KSB7XHJcbiAgICBjb25zdCBwcm9jZXNzRm9ybUVsZW1lbnRzID0gKGZvcm1FbGVtZW50czogYW55W10sIGlzQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZSk6IEFuc3dlcltdID0+IHtcclxuICAgICAgY29uc3QgYW5zd2VyczogQW5zd2VyW10gPSBbXTtcclxuICBcclxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBhbnN3ZXI6IEFuc3dlciA9IHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQuaWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IGZvcm1FbGVtZW50LmVsZW1lbnQ/LmFuc3dlciB8fCAnJyxcclxuICAgICAgICAgIGZpbGVzOiBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09ICdGSUxFX1BJQ0tFUicgJiYgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJcclxuICAgICAgICAgICAgPyBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlclxyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGlzQ2hpbGQ6IGlzQ2hpbGRcclxuICAgICAgICB9O1xyXG4gIFxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT0gJ0ZJTEVfUElDS0VSJyAmJlxyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVOYW1lcyA9IGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyLm1hcChcclxuICAgICAgICAgICAgKGZpbGU6IGFueSkgPT4gZmlsZT8uX2ZpbGUubmFtZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGFuc3dlci5hbnN3ZXIgPSBmaWxlTmFtZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFuc3dlcnMucHVzaChhbnN3ZXIpO1xyXG4gIFxyXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGxvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYobG9naWMuc2hvd0xvZ2ljKXtcclxuICAgICAgICAgICAgICBhbnN3ZXJzLnB1c2goLi4ucHJvY2Vzc0Zvcm1FbGVtZW50cyhsb2dpYy5mb3JtRWxlbWVudHMsIHRydWUpKTtcclxuICAgICAgICAgICAgICBsb2dpYy5zaG93TG9naWM9ZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPSAnJztcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBhbnN3ZXJzO1xyXG4gICAgfTtcclxuICBcclxuICAgIGNvbnN0IGFuc3dlcnMgPSBwcm9jZXNzRm9ybUVsZW1lbnRzKHN1YkZvcm0uZm9ybUVsZW1lbnRzKTtcclxuICBcclxuICAgIGlmIChhbnN3ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3Qgc3VibWlzc2lvbjogU3VibWlzc2lvbiA9IHtcclxuICAgICAgICBzdWJtaXNzaW9uSWQ6ICcnLFxyXG4gICAgICAgIGFuc3dlcnM6IGFuc3dlcnMsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3VibWlzc2lvbnMucHVzaChzdWJtaXNzaW9uKTtcclxuICAgICAgdGhpcy5zdWJtaXNzaW9ucyA9IFsuLi50aGlzLnN1Ym1pc3Npb25zXTtcclxuICAgICAgdGhpcy51cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBlZGl0U3ViRm9ybVN1Ym1pc3Npb24oaW5kZXg6IG51bWJlciwgc3VibWlzc2lvbjogU3VibWlzc2lvbikge1xyXG4gICAgY29uc3Qgc3ViRm9ybSA9IHRoaXMuYmluZEFuc3dlcnModGhpcy5zdWJGb3JtLCBzdWJtaXNzaW9uKTtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgIGRpYWxvZ0NvbmZpZy5wb3NpdGlvbiA9IHsgdG9wOiAnNSUnIH07XHJcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnMTAwJSc7XHJcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IHtcclxuICAgICAgc3ViRm9ybTogc3ViRm9ybSxcclxuICAgICAgYWNjZXB0ZWRMYW5ndWFnZTogdGhpcy5hY2NlcHRlZExhbmd1YWdlXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLm1heEhlaWdodCA9ICc4MHZoJztcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU3VibWlzc2lvbk1vZGFsQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVTdWJtaXNzaW9uKHJlc3VsdCwgaW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYmluZEFuc3dlcnMoc3ViRm9ybTogYW55LCBzdWJtaXNzaW9uOiBTdWJtaXNzaW9uKTogYW55IHtcclxuICAgIGNvbnN0IGJpbmRFbGVtZW50QW5zd2VycyA9IChmb3JtRWxlbWVudHM6IGFueVtdLCBhbnN3ZXJzOiBBbnN3ZXJbXSkgPT4ge1xyXG4gICAgICBmb3JtRWxlbWVudHMuZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFuc3dlciA9IGFuc3dlcnMuZmluZChcclxuICAgICAgICAgIChhKSA9PiBhLnF1ZXN0aW9uSWQgPT09IGZvcm1FbGVtZW50LmVsZW1lbnQuaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChhbnN3ZXIpIHtcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyID1cclxuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PSAnRklMRV9QSUNLRVInXHJcbiAgICAgICAgICAgICAgPyBhbnN3ZXI/LmZpbGVzXHJcbiAgICAgICAgICAgICAgOiBhbnN3ZXIuYW5zd2VyO1xyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJJZCA9IGFuc3dlci5hbnN3ZXJJZDtcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHMgPSBhbnN3ZXIuYXR0YWNobWVudHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGxvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgYmluZEVsZW1lbnRBbnN3ZXJzKGxvZ2ljLmZvcm1FbGVtZW50cywgYW5zd2Vycyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkU3ViRm9ybSA9IHsgLi4uc3ViRm9ybSB9O1xyXG4gICAgYmluZEVsZW1lbnRBbnN3ZXJzKHVwZGF0ZWRTdWJGb3JtLmZvcm1FbGVtZW50cywgc3VibWlzc2lvbi5hbnN3ZXJzKTtcclxuICAgIHJldHVybiB1cGRhdGVkU3ViRm9ybTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVN1YkZvcm0oaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc3VibWlzc2lvbiA9IHRoaXMuc3VibWlzc2lvbnNbaW5kZXhdO1xyXG4gICAgaWYgKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlZFN1Ym1pc3Npb25zLnB1c2goc3VibWlzc2lvbi5zdWJtaXNzaW9uSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJtaXNzaW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zdWJtaXNzaW9ucyA9IFsuLi50aGlzLnN1Ym1pc3Npb25zXTtcclxuICAgIHRoaXMudXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U3VibWlzc2lvbigpIHtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgIGRpYWxvZ0NvbmZpZy5wb3NpdGlvbiA9IHsgdG9wOiAnNSUnIH07XHJcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnMTAwJSc7XHJcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IHtcclxuICAgICAgc3ViRm9ybTogdGhpcy5zdWJGb3JtLFxyXG4gICAgICBhY2NlcHRlZExhbmd1YWdlOiB0aGlzLmFjY2VwdGVkTGFuZ3VhZ2VcclxuICAgIH07XHJcbiAgICBkaWFsb2dDb25maWcuaGFzQmFja2Ryb3AgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcubWF4SGVpZ2h0ID0gJzgwdmgnO1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XHJcbiAgXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICBjb25zdCBoYXNEYXRhID0gcmVzdWx0LmZvcm1FbGVtZW50cy5zb21lKChmb3JtRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgJiYgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIubGVuZ3RoID4gMDtcclxuICAgICAgICB9KTtcclxuICBcclxuICAgICAgICBpZiAoaGFzRGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5zdWJGb3JtID0gcmVzdWx0O1xyXG4gICAgICAgICAgdGhpcy5zdWJGb3JtU3VibWlzc2lvbihyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICB1cGRhdGVTdWJtaXNzaW9uKHJlc3VsdDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwcm9jZXNzRm9ybUVsZW1lbnRzID0gKGZvcm1FbGVtZW50czogYW55W10sIGFuc3dlcnM6IEFuc3dlcltdKSA9PiB7XHJcbiAgICAgIGZvcm1FbGVtZW50cy5mb3JFYWNoKChmb3JtRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGFuc3dlcjogQW5zd2VyID0ge1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogZm9ybUVsZW1lbnQuZWxlbWVudC5pZCxcclxuICAgICAgICAgIGFuc3dlcklkOiBmb3JtRWxlbWVudC5lbGVtZW50Py5hbnN3ZXJJZCB8fCAnJyxcclxuICAgICAgICAgIGF0dGFjaG1lbnRzOiBmb3JtRWxlbWVudC5lbGVtZW50LmF0dGFjaG1lbnRzIHx8IFtdLFxyXG4gICAgICAgICAgYW5zd2VyOiBbXSxcclxuICAgICAgICAgIGZpbGVzOiBbXSxcclxuICAgICAgICAgIGRlbGV0ZUZpbGVzOiBbXSxcclxuICAgICAgICB9O1xyXG4gIFxyXG4gICAgICAgIGlmIChhbnN3ZXIuYXR0YWNobWVudHMpIHtcclxuICAgICAgICAgIGFuc3dlci5hbnN3ZXIgPSBhbnN3ZXIuYXR0YWNobWVudHMubWFwKFxyXG4gICAgICAgICAgICAoYXR0YWNobWVudDogQXR0YWNobWVudCkgPT4gYXR0YWNobWVudC5maWxlTmFtZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUicpIHtcclxuICAgICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50Py5kZWxldGVGaWxlcykge1xyXG4gICAgICAgICAgICBhbnN3ZXIuYW5zd2VyID0gW107XHJcbiAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZGVsZXRlRmlsZXMuZm9yRWFjaCgoZGVsZXRlZElkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICBhbnN3ZXIuZGVsZXRlRmlsZXM/LnB1c2goZGVsZXRlZElkKTtcclxuICAgICAgICAgICAgICBpZiAoYW5zd2VyLmF0dGFjaG1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBhbnN3ZXIuYXR0YWNobWVudHMgPSBhbnN3ZXIuYXR0YWNobWVudHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAoYXR0YWNobWVudDogQXR0YWNobWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYXR0YWNobWVudC5maWxlTmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0YWNobWVudC5maWxlSWQgIT09IGRlbGV0ZWRJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIuYW5zd2VyLmluY2x1ZGVzKGZpbGVOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbnN3ZXIuYW5zd2VyLnB1c2goZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIpIHtcclxuICAgICAgICAgICAgYW5zd2VyLmZpbGVzID0gZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXI7XHJcbiAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyLmZvckVhY2goKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5fZmlsZT8ubmFtZTtcclxuICAgICAgICAgICAgICBsZXQgZmlsZU5hbWVzQXJyYXkgPSBBcnJheS5pc0FycmF5KGFuc3dlci5hbnN3ZXIpXHJcbiAgICAgICAgICAgICAgICA/IGFuc3dlci5hbnN3ZXJcclxuICAgICAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICAgICAgaWYgKCFmaWxlTmFtZXNBcnJheS5pbmNsdWRlcyhmaWxlTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIGZpbGVOYW1lc0FycmF5LnB1c2goZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBhbnN3ZXIuYW5zd2VyID0gZmlsZU5hbWVzQXJyYXk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhbnN3ZXIgPSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQuaWQsXHJcbiAgICAgICAgICAgIGFuc3dlcklkOiBmb3JtRWxlbWVudC5lbGVtZW50Py5hbnN3ZXJJZCB8fCAnJyxcclxuICAgICAgICAgICAgYXR0YWNobWVudHM6IGZvcm1FbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHMsXHJcbiAgICAgICAgICAgIGFuc3dlcjogZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciA9ICcnO1xyXG4gICAgICAgIGFuc3dlcnMucHVzaChhbnN3ZXIpO1xyXG4gIFxyXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGxvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYobG9naWMuc2hvd0xvZ2ljKXtcclxuICAgICAgICAgICAgICBwcm9jZXNzRm9ybUVsZW1lbnRzKGxvZ2ljLmZvcm1FbGVtZW50cywgYW5zd2Vycyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgdGhpcy5zdWJtaXNzaW9uc1tpbmRleF0uYW5zd2VycyA9IFtdO1xyXG4gICAgcHJvY2Vzc0Zvcm1FbGVtZW50cyhyZXN1bHQuZm9ybUVsZW1lbnRzLCB0aGlzLnN1Ym1pc3Npb25zW2luZGV4XS5hbnN3ZXJzKTtcclxuICAgIHRoaXMuc3VibWlzc2lvbnMgPSBbLi4udGhpcy5zdWJtaXNzaW9uc107XHJcbiAgICB0aGlzLnVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoKTtcclxuICAgIHRoaXMuY2xlYXJFbXB0eVJvd3MoKTtcclxuICB9ICBcclxuXHJcbiAgdXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpIHtcclxuICAgIHRoaXMuc3ViRm9ybS5zdWJtaXNzaW9ucyA9IHRoaXMuc3VibWlzc2lvbnM7XHJcbiAgICB0aGlzLnN1YkZvcm0uZGVsZXRlZFN1Ym1pc3Npb25zID0gdGhpcy5kZWxldGVkU3VibWlzc2lvbnM7XHJcbiAgICB0aGlzLnN1YkZvcm1DaGFuZ2UuZW1pdCh0aGlzLnN1YkZvcm0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJFbXB0eVJvd3MoKSB7XHJcbiAgICBjb25zdCBub25FbXB0eVN1Ym1pc3Npb25zOlN1Ym1pc3Npb25bXSA9IFtdO1xyXG4gICAgY29uc3QgZW1wdHlTdWJtaXNzaW9uSWRzOnN0cmluZ1tdID0gW107XHJcbiAgXHJcbiAgICB0aGlzLnN1Ym1pc3Npb25zLmZvckVhY2goc3VibWlzc2lvbiA9PiB7XHJcbiAgICAgIGlmIChzdWJtaXNzaW9uLmFuc3dlcnMuc29tZShhbnN3ZXIgPT4gYW5zd2VyLmFuc3dlciAhPT0gJycpKSB7XHJcbiAgICAgICAgbm9uRW1wdHlTdWJtaXNzaW9ucy5wdXNoKHN1Ym1pc3Npb24pO1xyXG4gICAgICB9IGVsc2UgaWYgKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKSB7XHJcbiAgICAgICAgZW1wdHlTdWJtaXNzaW9uSWRzLnB1c2goc3VibWlzc2lvbi5zdWJtaXNzaW9uSWQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBcclxuICAgIHRoaXMuc3VibWlzc2lvbnMgPSBub25FbXB0eVN1Ym1pc3Npb25zO1xyXG4gICAgdGhpcy5kZWxldGVkU3VibWlzc2lvbnMucHVzaCguLi5lbXB0eVN1Ym1pc3Npb25JZHMpO1xyXG4gICAgdGhpcy51cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCk7XHJcbiAgfVxyXG4gIFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJleGFtcGxlLWNvbnRhaW5lciBcIiB0YWJpbmRleD1cIjBcIj5cclxuICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyXCI+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInN1Ym1pc3Npb25zXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm1FbGVtZW50IG9mIHN1YkZvcm0uZm9ybUVsZW1lbnRzXCIgW21hdENvbHVtbkRlZl09XCJmb3JtRWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImJvcmRlciBib3JkZXItMVwiPnt7IGZvcm1FbGVtZW50LmVsZW1lbnQucXVlc3Rpb24gfX08L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJtaXNzaW9uXCIgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTFcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6IGdldEFuc3dlckJ5UXVlc3Rpb25JZChzdWJtaXNzaW9uLCBmb3JtRWxlbWVudC5lbGVtZW50LmlkKT8uaXNDaGlsZH1cIj5cclxuICAgICAgICAgIHt7IGdldEFuc3dlckJ5UXVlc3Rpb25JZChzdWJtaXNzaW9uLCBmb3JtRWxlbWVudC5lbGVtZW50LmlkKT8uYW5zd2VyIH19XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIiBzdGlja3lFbmQ+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiAgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTFcIj4gQWN0aW9ucyA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJtaXNzaW9uOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0ZXh0LWNlbnRlciBib3JkZXIgYm9yZGVyLTFcIj5cclxuXHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgYXJpYS1sYWJlbD1cIkV4YW1wbGUgaWNvbi1idXR0b24gd2l0aCBhIG1lbnVcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gIChjbGljayk9XCJlZGl0U3ViRm9ybVN1Ym1pc3Npb24oaSwgc3VibWlzc2lvbilcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyOVwiIGhlaWdodD1cIjI4XCIgdmlld0JveD1cIjAgMCAyOSAyOFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMjhcIiBoZWlnaHQ9XCIyNi40NzM3XCIgcng9XCI1LjVcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIjRDhEOEQ4XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIuMDAwOSAxOS4wNzg3SDkuMTU4MlYxNi4yMzYxQzkuMTU4MiAxNS45NDQ3IDkuMjczOSAxNS42NjUzIDkuNDc5OTkgMTUuNDU5M0wxNi4yMjI0IDguNzE2ODZDMTYuNDI4NCA4LjUxMDUgMTYuNzA4IDguMzk0NTMgMTYuOTk5NSA4LjM5NDUzQzE3LjI5MTEgOC4zOTQ1MyAxNy41NzA3IDguNTEwNSAxNy43NzY3IDguNzE2ODZMMTkuNTIwMSAxMC40NjAzQzE5LjcyNjQgMTAuNjY2MyAxOS44NDI0IDEwLjk0NTggMTkuODQyNCAxMS4yMzc0QzE5Ljg0MjQgMTEuNTI5IDE5LjcyNjQgMTEuODA4NiAxOS41MjAxIDEyLjAxNDVMMTIuNzc3NyAxOC43NTdDMTIuNTcxNSAxOC45NjI4IDEyLjI5MjIgMTkuMDc4NSAxMi4wMDA5IDE5LjA3ODdaXCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS4xNzA0IDEwLjM5ODRMMTcuODQxNSAxMy4wNjk1XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGVsZXRlU3ViRm9ybShpKVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI5XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI5IDI4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIyNy42NDAyXCIgaGVpZ2h0PVwiMjYuMTMyOFwiIHJ4PVwiNS41XCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiI0Q4RDhEOFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjYwNDQ5IDkuMjA2MzdIMjAuMDM1NFwiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkuMjE4OSA5LjIwNzAzVjE3Ljc4NjNDMTkuMjE4OSAxOC42NDgyIDE4LjQ4ODEgMTkuMzQ2MiAxNy41ODU5IDE5LjM0NjJIMTEuMDUzOUMxMC4xNTE3IDE5LjM0NjIgOS40MjA5IDE4LjY0ODIgOS40MjA5IDE3Ljc4NjNWOS4yMDcwM1wiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYuNzY5NiA2LjY3MTIySDExLjg3MDZcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjY4NzEgMTIuMzI0MlYxNi4yMjM5XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS45NTMyIDEyLjMyNDJWMTYuMjIzOVwiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZE5ld0J0blwiIChjbGljayk9XCJhZGROZXdTdWJtaXNzaW9uKClcIj5cclxuICAgICAgPHN2ZyB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE1IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyLjU1NTYgMTMuMjc3OEgyLjQ0NDQ0QzEuNjQ2MzkgMTMuMjc3OCAxIDEyLjY2NzMgMSAxMS45MTM2VjIuMzY0MkMxIDEuNjEwNDggMS42NDYzOSAxIDIuNDQ0NDQgMUgxMi41NTU2QzEzLjM1MzYgMSAxNCAxLjYxMDQ4IDE0IDIuMzY0MlYxMS45MTM2QzE0IDEyLjY2NzMgMTMuMzUzNiAxMy4yNzc4IDEyLjU1NTYgMTMuMjc3OFpcIiBzdHJva2U9XCIjRDhEOEQ4XCIgc3Ryb2tlLXdpZHRoPVwiMC44XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM1IDcuNTAzNDdIOS42NjY4M1wiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2Utd2lkdGg9XCIwLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgPHBhdGggZD1cIk03LjUwMDA1IDUuMzM1OTRWOS42NjkyN1wiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2Utd2lkdGg9XCIwLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgICA8YSBjbGFzcz1cIm1zLTIgdGV4dC1kZWNvcmF0aW9uLW5vbmVcIj5BZGQgTmV3PC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=