@symphony-talent/component-library 4.196.0 → 4.198.0

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 (20) hide show
  1. package/esm2020/lib/atoms/input-radio/input-radio.component.mjs +5 -3
  2. package/esm2020/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.mjs +3 -3
  3. package/esm2020/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.mjs +1 -1
  4. package/esm2020/projects/component-library/lib/atoms/input-radio/input-radio.component.mjs +5 -3
  5. package/esm2020/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.mjs +3 -3
  6. package/esm2020/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.mjs +1 -1
  7. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +6 -4
  8. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  9. package/fesm2015/symphony-talent-component-library.mjs +6 -4
  10. package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
  11. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +6 -4
  12. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  13. package/fesm2020/symphony-talent-component-library.mjs +6 -4
  14. package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
  15. package/lib/atoms/input-radio/input-radio.component.d.ts +2 -1
  16. package/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.d.ts +15 -1
  17. package/package.json +1 -1
  18. package/projects/component-library/global.scss +16 -0
  19. package/projects/component-library/lib/atoms/input-radio/input-radio.component.d.ts +2 -1
  20. package/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.d.ts +15 -1
@@ -13,10 +13,10 @@ export class InputRadioComponent {
13
13
  }
14
14
  }
15
15
  InputRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- InputRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputRadioComponent, selector: "symphony-input-radio", inputs: { isActive: "isActive", name: "name", label: "label", isRequired: "isRequired" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ label }}\"\n />\n <label for=\"{{ label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
16
+ InputRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputRadioComponent, selector: "symphony-input-radio", inputs: { isActive: "isActive", name: "name", label: "label", isRequired: "isRequired", radioID: "radioID" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ radioID || label }}\"\n />\n <label for=\"{{ radioID || label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:0%;cursor:inherit;height:0%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputRadioComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'symphony-input-radio', template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ label }}\"\n />\n <label for=\"{{ label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"] }]
19
+ args: [{ selector: 'symphony-input-radio', template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ radioID || label }}\"\n />\n <label for=\"{{ radioID || label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:0%;cursor:inherit;height:0%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"] }]
20
20
  }], ctorParameters: function () { return []; }, propDecorators: { isActive: [{
21
21
  type: Input
22
22
  }], name: [{
@@ -25,7 +25,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
25
25
  type: Input
26
26
  }], isRequired: [{
27
27
  type: Input
28
+ }], radioID: [{
29
+ type: Input
28
30
  }], clicked: [{
29
31
  type: Output
30
32
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1yYWRpby9pbnB1dC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXJhZGlvL2lucHV0LXJhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBUTlCO1FBRlUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0IsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBZlUsbUJBQW1CO29HQUFuQixtQkFBbUIsdUxDUGhDLHlWQVlBOzJGRExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxzQkFBc0I7MEVBS3ZCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0UmFkaW9Db21wb25lbnQge1xuICBASW5wdXQoKSBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgaXNSZXF1aXJlZDogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbkNsaWNrKCkge1xuICAgIHRoaXMuY2xpY2tlZC5lbWl0KHtcbiAgICAgIGxhYmVsOiB0aGlzLmxhYmVsLFxuICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZngtcmFkaW9cIiAoY2xpY2spPVwib25DbGljaygpXCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgY2xhc3M9XCJzZngtcmFkaW8taW5wdXRcIlxuICAgIFtjaGVja2VkXT1cImlzQWN0aXZlXCJcbiAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICBpZD1cInt7IGxhYmVsIH19XCJcbiAgLz5cbiAgPGxhYmVsIGZvcj1cInt7IGxhYmVsIH19XCIgY2xhc3M9XCJGb250NDAwXCJcbiAgICA+e3sgbGFiZWwgfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkRmllbGRcIiAqbmdJZj1cImlzUmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgPlxuPC9kaXY+XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1yYWRpby9pbnB1dC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXJhZGlvL2lucHV0LXJhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCO1FBRlUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0IsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBaEJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDJNQ1BoQywrV0FZQTsyRkRMYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usc0JBQXNCOzBFQUt2QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LWlucHV0LXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXJhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRSYWRpb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlzQWN0aXZlOiBib29sZWFuO1xuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBpc1JlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSByYWRpb0lEOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgb25DbGljaygpIHtcbiAgICB0aGlzLmNsaWNrZWQuZW1pdCh7XG4gICAgICBsYWJlbDogdGhpcy5sYWJlbCxcbiAgICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Z4LXJhZGlvXCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPlxuICA8aW5wdXRcbiAgICB0eXBlPVwicmFkaW9cIlxuICAgIGNsYXNzPVwic2Z4LXJhZGlvLWlucHV0XCJcbiAgICBbY2hlY2tlZF09XCJpc0FjdGl2ZVwiXG4gICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgaWQ9XCJ7eyByYWRpb0lEIHx8IGxhYmVsIH19XCJcbiAgLz5cbiAgPGxhYmVsIGZvcj1cInt7IHJhZGlvSUQgfHwgbGFiZWwgfX1cIiBjbGFzcz1cIkZvbnQ0MDBcIlxuICAgID57eyBsYWJlbCB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRGaWVsZFwiICpuZ0lmPVwiaXNSZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxuICA+XG48L2Rpdj5cbiJdfQ==
@@ -93,10 +93,10 @@ export class MergeContactsModalComponent {
93
93
  }
94
94
  }
95
95
  MergeContactsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- MergeContactsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactsModalComponent, selector: "symphony-merge-contacts-modal", inputs: { model: "model", isLoading: "isLoading", hasError: "hasError", selected: "selected", confirmSuggestion: "confirmSuggestion", showSuccessToast: "showSuccessToast", showFailureToast: "showFailureToast", currentStep: "currentStep" }, outputs: { next: "next", cancel: "cancel", notDuplicate: "notDuplicate", selectionChange: "selectionChange", hideSuccessToast: "hideSuccessToast", hideFailureToast: "hideFailureToast", requestConfirmSuggestion: "requestConfirmSuggestion", requestCancelConfirmSuggestion: "requestCancelConfirmSuggestion" }, ngImport: i0, template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Potential Duplicates\"></symphony-h5>\n <div class=\"scrollable-container\">\n <div *ngFor=\"let suggestion of model.suggestions\">\n <div class=\"radio-item\">\n <symphony-input-radio\n [label]=\"suggestion.name + ' [' + suggestion.id + ']'\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio>\n <div class=\"radio-action sfx-mt-30\">\n <symphony-grid-cell-clicked-open-new-tab class=\"icon-upwards\"\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\" (clicked)=\"onNotDuplicate(suggestion)\">\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"radio-item\">\n <div class=\"radio-details\">\n <div>{{ suggestion.email }}</div>\n <div *ngFor=\"let criterion of suggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of suggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}\n"], components: [{ type: i1.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ToasterAlertComponent, selector: "symphony-toaster-alert", inputs: ["alertModel", "showAlert"], outputs: ["hideAlert", "refreshClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }, { type: i6.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i7.InputRadioComponent, selector: "symphony-input-radio", inputs: ["isActive", "name", "label", "isRequired"], outputs: ["clicked"] }, { type: i8.GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", inputs: ["newTabUrl"] }, { type: i9.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i10.StatusPillComponent, selector: "symphony-status-pill", inputs: ["statusPillModel"] }, { type: i11.ButtonV2Component, selector: "symphony-button-v2" }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
96
+ MergeContactsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactsModalComponent, selector: "symphony-merge-contacts-modal", inputs: { model: "model", isLoading: "isLoading", hasError: "hasError", selected: "selected", confirmSuggestion: "confirmSuggestion", showSuccessToast: "showSuccessToast", showFailureToast: "showFailureToast", currentStep: "currentStep" }, outputs: { next: "next", cancel: "cancel", notDuplicate: "notDuplicate", selectionChange: "selectionChange", hideSuccessToast: "hideSuccessToast", hideFailureToast: "hideFailureToast", requestConfirmSuggestion: "requestConfirmSuggestion", requestCancelConfirmSuggestion: "requestCancelConfirmSuggestion" }, ngImport: i0, template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.criteria?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}.suggestion-card.selected{border-color:#712ace}\n"], components: [{ type: i1.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ToasterAlertComponent, selector: "symphony-toaster-alert", inputs: ["alertModel", "showAlert"], outputs: ["hideAlert", "refreshClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }, { type: i6.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i7.InputRadioComponent, selector: "symphony-input-radio", inputs: ["isActive", "name", "label", "isRequired", "radioID"], outputs: ["clicked"] }, { type: i8.GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", inputs: ["newTabUrl"] }, { type: i9.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i10.StatusPillComponent, selector: "symphony-status-pill", inputs: ["statusPillModel"] }, { type: i11.ButtonV2Component, selector: "symphony-button-v2" }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactsModalComponent, decorators: [{
98
98
  type: Component,
99
- args: [{ selector: 'symphony-merge-contacts-modal', template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Potential Duplicates\"></symphony-h5>\n <div class=\"scrollable-container\">\n <div *ngFor=\"let suggestion of model.suggestions\">\n <div class=\"radio-item\">\n <symphony-input-radio\n [label]=\"suggestion.name + ' [' + suggestion.id + ']'\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio>\n <div class=\"radio-action sfx-mt-30\">\n <symphony-grid-cell-clicked-open-new-tab class=\"icon-upwards\"\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\" (clicked)=\"onNotDuplicate(suggestion)\">\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"radio-item\">\n <div class=\"radio-details\">\n <div>{{ suggestion.email }}</div>\n <div *ngFor=\"let criterion of suggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of suggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}\n"] }]
99
+ args: [{ selector: 'symphony-merge-contacts-modal', template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.criteria?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}.suggestion-card.selected{border-color:#712ace}\n"] }]
100
100
  }], ctorParameters: function () { return []; }, propDecorators: { model: [{
101
101
  type: Input
102
102
  }], isLoading: [{
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
130
130
  }], currentStep: [{
131
131
  type: Input
132
132
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdkQsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEM7UUFyQlMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM3RCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDdEUsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzRCxhQUFRLEdBQWtDLElBQUks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QUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLE9BQU8sNkJBQTZCLEVBQUUsRUFBRSxDQUFDO0lBQ3JELENBQUM7O3dIQWpHVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3bUJDYnhDLGttT0F5SUE7MkZENUhhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwrQkFBK0I7MEVBS2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUlHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbCwgTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB9IGZyb20gJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHtcbiAgQWxlcnREdXJhdGlvbixcbiAgVG9hc3RlckFsZXJ0TW9kZWwsXG4gIFRvYXN0ZXJBbGVydFR5cGUsXG59IGZyb20gJy4uLy4uL2F0b21zL3RvYXN0ZXItYWxlcnQvdG9hc3Rlci1hbGVydC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LW1lcmdlLWNvbnRhY3RzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lcmdlLWNvbnRhY3RzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZXJnZUNvbnRhY3RzTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbDogTWVyZ2VDb250YWN0c01vZGFsTW9kZWw7XG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNFcnJvciA9IGZhbHNlO1xuICBAT3V0cHV0KCkgbmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG5vdER1cGxpY2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHNlbGVjdGVkOiBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbFsnc2VsZWN0ZWRDb250YWN0J107XG4gICAgc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbjtcbiAgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGhpZGVTdWNjZXNzVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBoaWRlRmFpbHVyZVRvYXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxNZXJnZUNvbnRhY3RTdWdnZXN0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENhbmNlbENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzZWxlY3RlZDogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjb25maXJtU3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93U3VjY2Vzc1RvYXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dGYWlsdXJlVG9hc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgY3VycmVudFN0ZXA6IG51bWJlciA9IDE7XG4gIHN1Y2Nlc3NUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG4gIGZhaWx1cmVUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0ID0gbmV3IFRvYXN0ZXJBbGVydE1vZGVsKCk7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LnR5cGUgPSBUb2FzdGVyQWxlcnRUeXBlLlN1Y2Nlc3M7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0Lm1lc3NhZ2UgPSBcIkNvbnRhY3QgcmVtb3ZlZCBmcm9tIGR1cGxpY2F0ZXMgc3VjY2Vzc2Z1bGx5XCI7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LmR1cmF0aW9uID0gQWxlcnREdXJhdGlvbi5GaXZlU2Vjb25kcztcbiAgdGhpcy5zdWNjZXNzVG9hc3Quc2hvd0Nsb3NlSWNvbiA9IHRydWU7XG5cbiAgdGhpcy5mYWlsdXJlVG9hc3QgPSBuZXcgVG9hc3RlckFsZXJ0TW9kZWwoKTtcbiAgdGhpcy5mYWlsdXJlVG9hc3QudHlwZSA9IFRvYXN0ZXJBbGVydFR5cGUuRXJyb3I7XG4gIHRoaXMuZmFpbHVyZVRvYXN0Lm1lc3NhZ2UgPSBcIkZhaWxlZCB0byByZW1vdmUgY29udGFjdCBmcm9tIGR1cGxpY2F0ZXNcIjtcbiAgdGhpcy5mYWlsdXJlVG9hc3QuZHVyYXRpb24gPSBBbGVydER1cmF0aW9uLkZpdmVTZWNvbmRzO1xuICB0aGlzLmZhaWx1cmVUb2FzdC5zaG93Q2xvc2VJY29uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uTmV4dCgpIHtcbiAgICB0aGlzLm5leHQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VsZWN0KHN1Z2dlc3Rpb246IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgb25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbikge1xuICAgIHRoaXMucmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uLmVtaXQoc3VnZ2VzdGlvbik7XG4gIH1cblxuICBjYW5jZWxOb3REdXBsaWNhdGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0Q2FuY2VsQ29uZmlybVN1Z2dlc3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgY29uZmlybU9uTm90RHVwbGljYXRlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpcm1TdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLm5vdER1cGxpY2F0ZS5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMubW9kZWwuc2VsZWN0ZWRDb250YWN0LFxuICAgICAgICBzdWdnZXN0aW9uOiB0aGlzLmNvbmZpcm1TdWdnZXN0aW9uLFxuICAgICAgfSk7XG4gICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vdER1cGxpY2F0ZVN1Y2Nlc3MoKSB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29uZmlybVN1Z2dlc3Rpb247XG4gICAgaWYgKHJlbW92ZWQpIHtcbiAgICAgIHRoaXMubW9kZWwuc3VnZ2VzdGlvbnMgPSB0aGlzLm1vZGVsLnN1Z2dlc3Rpb25zLmZpbHRlcihcbiAgICAgICAgKHMpID0+IHMgIT09IHJlbW92ZWRcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCA9PT0gcmVtb3ZlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlybVN1Z2dlc3Rpb24gPSBudWxsO1xuICAgICAgdGhpcy5zaG93U3VjY2Vzc1RvYXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTm90RHVwbGljYXRlRXJyb3IoKSB7XG4gICAgdGhpcy5zaG93RmFpbHVyZVRvYXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25IaWRlU3VjY2Vzc1RvYXN0KCkge1xuICAgIHRoaXMuaGlkZVN1Y2Nlc3NUb2FzdC5lbWl0KCk7XG4gIH1cbiAgb25IaWRlRmFpbHVyZVRvYXN0KCkge1xuICAgIHRoaXMuaGlkZUZhaWx1cmVUb2FzdC5lbWl0KCk7XG4gIH1cblxuICBnZXRDb250YWN0VXJsKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIGNvbnN0IFtiYXNlVXJsXSA9IHVybC5zcGxpdCgnIycpO1xuICAgIHJldHVybiBgJHtiYXNlVXJsfSMvY2FuZGlkYXRlcHJvZmlsZXZpZXc/aWQ9JHtpZH1gO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Z4IHNmeC1tb2RhbCBtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cIm1vZGVsXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtaGVhZGVyIHNmeC1wLTMwIHNmeC1wdC00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTggY29sLXNtLTggY29sLW1kLTggY29sLWxnLThcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDQgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiIHRleHQ9XCJNYW5hZ2UgRHVwbGljYXRlc1wiPjwvc3ltcGhvbnktaDQ+XG4gICAgICAgICAgPHN5bXBob255LWg0ICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIiB0ZXh0PVwiTWVyZ2UgQ29udGFjdHNcIj48L3N5bXBob255LWg0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy00IGNvbC1zbS00IGNvbC1tZC00IGNvbC1sZy00XCI+XG4gICAgICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicHVsbC1yaWdodFwiXG4gICAgICAgICAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIHNmeC1tdC0xNVwiPlxuICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGhcbiAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiXG4gICAgICAgICAgICAgIHRleHQ9XCJUaGUgY29udGFjdHMgYmVsb3cgYXJlIHBvdGVudGlhbCBkdXBsaWNhdGVzLiBQbGVhc2UgY29tcGFyZSB0aGVpciBkYXRhIGFuZCBzZWxlY3QgdGhlIG9uZSB5b3Ugd291bGQgbGlrZSB0byBtZXJnZS5cIlxuICAgICAgICAgICAgPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaFxuICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCJcbiAgICAgICAgICAgICAgdGV4dD1cIlVzaW5nIHRoZSBmaWVsZHMgYmVsb3csIGNob29zZSBhIFByaW1hcnkgQ29udGFjdCwgYW5kIHRoZW4gc2VsZWN0IHRoZSBkYXRhIHlvdSB3b3VsZCBsaWtlIHRvIG1lcmdlIGFuZCBrZWVwIGluIHRoYXQgUHJpbWFyeSBDb250YWN0IFJlY29yZC4gTWVyZ2luZyBjb250YWN0cyBpcyBpcnJldmVyc2libGUuXCJcbiAgICAgICAgICAgID48L3N5bXBob255LXBhcmFncmFwaD4gICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtYm9keSBzZngtcC0zMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2FzdGVyLWFsZXJ0LWNvbnRhaW5lci1nbG9iYWxcIj5cbiAgICAgICAgPHN5bXBob255LXRvYXN0ZXItYWxlcnRcbiAgICAgICAgICAqbmdJZj1cInNob3dTdWNjZXNzVG9hc3RcIlxuICAgICAgICAgIFthbGVydE1vZGVsXT1cInN1Y2Nlc3NUb2FzdFwiXG4gICAgICAgICAgKGhpZGVBbGVydCk9XCJvbkhpZGVTdWNjZXNzVG9hc3QoKVwiXG4gICAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgICA8c3ltcGhvbnktdG9hc3Rlci1hbGVydFxuICAgICAgICAqbmdJZj1cInNob3dGYWlsdXJlVG9hc3RcIlxuICAgICAgICBbYWxlcnRNb2RlbF09XCJmYWlsdXJlVG9hc3RcIlxuICAgICAgICAoaGlkZUFsZXJ0KT1cIm9uSGlkZUZhaWx1cmVUb2FzdCgpXCJcbiAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwic2Z4LW10LTMwIHNmeC1tYi0zMFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJTb21ldGhpbmcgaGFzIHdlbnQgd3JvbmcuIFRyeSBhZ2FpbiBsYXRlciBvciBjb250YWN0IHN1cHBvcnRcIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3IgJiYgKCFtb2RlbD8uc3VnZ2VzdGlvbnMgfHwgbW9kZWwuc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKVwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJObyBtb3JlIGR1cGxpY2F0ZXMgZXhpc3QgZm9yIHRoaXMgc2VsZWN0ZWQgY29udGFjdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlclwiPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiAhY29uZmlybVN1Z2dlc3Rpb24gJiYgbW9kZWw/LnN1Z2dlc3Rpb25zPy5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICA8cCBjbGFzcz1cInNmeC1tdC00MCBzZngtZm9udC1ib2xkXCI+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0Lm5hbWUgfX0gIFt7eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuaWQgfX1dPC9wPlxuICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiUG90ZW50aWFsIER1cGxpY2F0ZXNcIj48L3N5bXBob255LWg1PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsYWJsZS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBtb2RlbC5zdWdnZXN0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWlucHV0LXJhZGlvXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInN1Z2dlc3Rpb24ubmFtZSArICcgWycgKyBzdWdnZXN0aW9uLmlkICsgJ10nXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCInbWVyZ2Utc3VnZ2VzdGlvbnMnXCJcbiAgICAgICAgICAgICAgICBbaXNBY3RpdmVdPVwic2VsZWN0ZWQgPT09IHN1Z2dlc3Rpb25cIlxuICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2VsZWN0KHN1Z2dlc3Rpb24pXCJcbiAgICAgICAgICAgICAgPjwvc3ltcGhvbnktaW5wdXQtcmFkaW8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1hY3Rpb24gc2Z4LW10LTMwXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1ncmlkLWNlbGwtY2xpY2tlZC1vcGVuLW5ldy10YWIgY2xhc3M9XCJpY29uLXVwd2FyZHNcIlxuICAgICAgICAgICAgICAgIFtuZXdUYWJVcmxdPVwiZ2V0Q29udGFjdFVybChzdWdnZXN0aW9uLmlkKVwiXG4gICAgICAgICAgICAgID48L3N5bXBob255LWdyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWljb24td3JhcHBlciBjbGFzcz1cIm5vdC1kdXBsaWNhdGUtaWNvbi1nbG9iYWxcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiTWFyayBub3QgZHVwbGljYXRlXCIgKGNsaWNrZWQpPVwib25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbilcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktZXhjbHVkZSdcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgIDwvc3ltcGhvbnktaWNvbi13cmFwcGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgIDxkaXY+e3sgc3VnZ2VzdGlvbi5lbWFpbCB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2Ygc3VnZ2VzdGlvbi5jcml0ZXJpYVwiIGNsYXNzPVwic2Z4LW10LTVcIj57eyBjcml0ZXJpb24gfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RhdHVzIG9mIHN1Z2dlc3Rpb24uc3RhdHVzZXNcIiBjbGFzcz1cInNmeC1tdC0xMFwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1zdGF0dXMtcGlsbCBbc3RhdHVzUGlsbE1vZGVsXT1cIntzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzfVwiPjwvc3ltcGhvbnktc3RhdHVzLXBpbGw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3IgJiYgY29uZmlybVN1Z2dlc3Rpb25cIj5cbiAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIGNvbnRhY3QgYXMgYSBwb3RlbnRpYWwgZHVwbGljYXRlPyBcIj48L3N5bXBob255LWg1PlxuICAgICAgPGRpdiBjbGFzcz1cInNmeC1tdC0yMCByYWRpby1hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBjbGFzcz1cInBlbmRpbmctaWNvblwiIFtpY29uXT1cIidzaS1wZW5kaW5nLWluY29tcGxldGUnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgPHN5bXBob255LXBhcmFncmFwaCBjbGFzcz1cInNmeC1mb250LWl0YWxpY1wiIHRleHQ9XCJEb2luZyBzbyBpcyBpcnJldmVyc2libGUgYW5kIHRoaXMgY29udGFjdCB3aWxsIG5ldmVyIGJlIHNob3duIGFzIGEgcG90ZW50aWFsIGR1cGxpY2F0ZSBvZiB0aGlzIGNvbnRhY3QgYWdhaW4uXCI+PC9zeW1waG9ueS1wYXJhZ3JhcGg+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgc2Z4LW10LTMwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTYgY29sLWxnLTZcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICAgIDxwIGNsYXNzPVwic2Z4LW10LTQwIHNmeC1mb250LWJvbGRcIj57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QubmFtZSB9fSAgW3t7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5pZCB9fV08L3A+XG4gICAgICAgICAgPHA+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmVtYWlsIH19PC9wPlxuICAgICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiTWVyZ2UgU3VnZ2VzdGlvblwiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Z2dlc3Rpb24tY29uZmlybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNmeC1mb250LWJvbGRcIj57eyBjb25maXJtU3VnZ2VzdGlvbi5uYW1lIH19IFt7eyBjb25maXJtU3VnZ2VzdGlvbi5pZCB9fV08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZngtbXQtNVwiPnt7IGNvbmZpcm1TdWdnZXN0aW9uLmVtYWlsIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgY29uZmlybVN1Z2dlc3Rpb24uY3JpdGVyaWFcIiBjbGFzcz1cInNmeC1tdC01XCI+e3sgY3JpdGVyaW9uIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdGF0dXMgb2YgY29uZmlybVN1Z2dlc3Rpb24uc3RhdHVzZXNcIiBjbGFzcz1cInNmeC1tdC0xMFwiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktc3RhdHVzLXBpbGwgW3N0YXR1c1BpbGxNb2RlbF09XCJ7c3RhdHVzQ2xhc3M6ICdzdGF0dXNHcmV5JywgdmFsdWU6IHN0YXR1c31cIj48L3N5bXBob255LXN0YXR1cy1waWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS1hY3Rpb25zXCI+XG4gICAgICAgIDxzeW1waG9ueS1idXR0b24tdjJcbiAgICAgICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgICAgICBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY2FuY2VsTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICAgIDxzeW1waG9ueS1idXR0b24tdjJcbiAgICAgICAgICB0ZXh0PVwiQ29uZmlybVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY29uZmlybU9uTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCI+PC9uZy1jb250ZW50PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDFcIiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxzeW1waG9ueS1idXR0b24tdjIgdGV4dD1cIkNsb3NlXCIgW2lzU2Vjb25kYXJ5XT1cInRydWVcIiAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCI+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgPHN5bXBob255LWJ1dHRvbi12MiB0ZXh0PVwiTmV4dFwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWQgfHwgISFjb25maXJtU3VnZ2VzdGlvblwiIChjbGlja2VkKT1cIm9uTmV4dCgpXCI+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdkQsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEM7UUFyQlMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM3RCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDdEUsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzRCxhQUFRLEdBQWtDLElBQUks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QUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLE9BQU8sNkJBQTZCLEVBQUUsRUFBRSxDQUFDO0lBQ3JELENBQUM7O3dIQWpHVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3bUJDYnhDLDYwUUFxS0E7MkZEeEphLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwrQkFBK0I7MEVBS2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUlHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbCwgTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB9IGZyb20gJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHtcbiAgQWxlcnREdXJhdGlvbixcbiAgVG9hc3RlckFsZXJ0TW9kZWwsXG4gIFRvYXN0ZXJBbGVydFR5cGUsXG59IGZyb20gJy4uLy4uL2F0b21zL3RvYXN0ZXItYWxlcnQvdG9hc3Rlci1hbGVydC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LW1lcmdlLWNvbnRhY3RzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lcmdlLWNvbnRhY3RzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZXJnZUNvbnRhY3RzTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbDogTWVyZ2VDb250YWN0c01vZGFsTW9kZWw7XG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNFcnJvciA9IGZhbHNlO1xuICBAT3V0cHV0KCkgbmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG5vdER1cGxpY2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHNlbGVjdGVkOiBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbFsnc2VsZWN0ZWRDb250YWN0J107XG4gICAgc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbjtcbiAgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGhpZGVTdWNjZXNzVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBoaWRlRmFpbHVyZVRvYXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxNZXJnZUNvbnRhY3RTdWdnZXN0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENhbmNlbENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzZWxlY3RlZDogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjb25maXJtU3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93U3VjY2Vzc1RvYXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dGYWlsdXJlVG9hc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgY3VycmVudFN0ZXA6IG51bWJlciA9IDE7XG4gIHN1Y2Nlc3NUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG4gIGZhaWx1cmVUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0ID0gbmV3IFRvYXN0ZXJBbGVydE1vZGVsKCk7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LnR5cGUgPSBUb2FzdGVyQWxlcnRUeXBlLlN1Y2Nlc3M7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0Lm1lc3NhZ2UgPSBcIkNvbnRhY3QgcmVtb3ZlZCBmcm9tIGR1cGxpY2F0ZXMgc3VjY2Vzc2Z1bGx5XCI7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LmR1cmF0aW9uID0gQWxlcnREdXJhdGlvbi5GaXZlU2Vjb25kcztcbiAgdGhpcy5zdWNjZXNzVG9hc3Quc2hvd0Nsb3NlSWNvbiA9IHRydWU7XG5cbiAgdGhpcy5mYWlsdXJlVG9hc3QgPSBuZXcgVG9hc3RlckFsZXJ0TW9kZWwoKTtcbiAgdGhpcy5mYWlsdXJlVG9hc3QudHlwZSA9IFRvYXN0ZXJBbGVydFR5cGUuRXJyb3I7XG4gIHRoaXMuZmFpbHVyZVRvYXN0Lm1lc3NhZ2UgPSBcIkZhaWxlZCB0byByZW1vdmUgY29udGFjdCBmcm9tIGR1cGxpY2F0ZXNcIjtcbiAgdGhpcy5mYWlsdXJlVG9hc3QuZHVyYXRpb24gPSBBbGVydER1cmF0aW9uLkZpdmVTZWNvbmRzO1xuICB0aGlzLmZhaWx1cmVUb2FzdC5zaG93Q2xvc2VJY29uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uTmV4dCgpIHtcbiAgICB0aGlzLm5leHQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VsZWN0KHN1Z2dlc3Rpb246IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgb25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbikge1xuICAgIHRoaXMucmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uLmVtaXQoc3VnZ2VzdGlvbik7XG4gIH1cblxuICBjYW5jZWxOb3REdXBsaWNhdGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0Q2FuY2VsQ29uZmlybVN1Z2dlc3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgY29uZmlybU9uTm90RHVwbGljYXRlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpcm1TdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLm5vdER1cGxpY2F0ZS5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMubW9kZWwuc2VsZWN0ZWRDb250YWN0LFxuICAgICAgICBzdWdnZXN0aW9uOiB0aGlzLmNvbmZpcm1TdWdnZXN0aW9uLFxuICAgICAgfSk7XG4gICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vdER1cGxpY2F0ZVN1Y2Nlc3MoKSB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29uZmlybVN1Z2dlc3Rpb247XG4gICAgaWYgKHJlbW92ZWQpIHtcbiAgICAgIHRoaXMubW9kZWwuc3VnZ2VzdGlvbnMgPSB0aGlzLm1vZGVsLnN1Z2dlc3Rpb25zLmZpbHRlcihcbiAgICAgICAgKHMpID0+IHMgIT09IHJlbW92ZWRcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCA9PT0gcmVtb3ZlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlybVN1Z2dlc3Rpb24gPSBudWxsO1xuICAgICAgdGhpcy5zaG93U3VjY2Vzc1RvYXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTm90RHVwbGljYXRlRXJyb3IoKSB7XG4gICAgdGhpcy5zaG93RmFpbHVyZVRvYXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25IaWRlU3VjY2Vzc1RvYXN0KCkge1xuICAgIHRoaXMuaGlkZVN1Y2Nlc3NUb2FzdC5lbWl0KCk7XG4gIH1cbiAgb25IaWRlRmFpbHVyZVRvYXN0KCkge1xuICAgIHRoaXMuaGlkZUZhaWx1cmVUb2FzdC5lbWl0KCk7XG4gIH1cblxuICBnZXRDb250YWN0VXJsKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIGNvbnN0IFtiYXNlVXJsXSA9IHVybC5zcGxpdCgnIycpO1xuICAgIHJldHVybiBgJHtiYXNlVXJsfSMvY2FuZGlkYXRlcHJvZmlsZXZpZXc/aWQ9JHtpZH1gO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Z4IHNmeC1tb2RhbCBtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cIm1vZGVsXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtaGVhZGVyIHNmeC1wLTMwIHNmeC1wdC00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTggY29sLXNtLTggY29sLW1kLTggY29sLWxnLThcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDQgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiIHRleHQ9XCJNYW5hZ2UgRHVwbGljYXRlc1wiPjwvc3ltcGhvbnktaDQ+XG4gICAgICAgICAgPHN5bXBob255LWg0ICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIiB0ZXh0PVwiTWVyZ2UgQ29udGFjdHNcIj48L3N5bXBob255LWg0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy00IGNvbC1zbS00IGNvbC1tZC00IGNvbC1sZy00XCI+XG4gICAgICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicHVsbC1yaWdodFwiXG4gICAgICAgICAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIHNmeC1tdC0xNVwiPlxuICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGhcbiAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiXG4gICAgICAgICAgICAgIHRleHQ9XCJUaGUgY29udGFjdHMgYmVsb3cgYXJlIHBvdGVudGlhbCBkdXBsaWNhdGVzLiBQbGVhc2UgY29tcGFyZSB0aGVpciBkYXRhIGFuZCBzZWxlY3QgdGhlIG9uZSB5b3Ugd291bGQgbGlrZSB0byBtZXJnZS5cIlxuICAgICAgICAgICAgPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaFxuICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCJcbiAgICAgICAgICAgICAgdGV4dD1cIlVzaW5nIHRoZSBmaWVsZHMgYmVsb3csIGNob29zZSBhIFByaW1hcnkgQ29udGFjdCwgYW5kIHRoZW4gc2VsZWN0IHRoZSBkYXRhIHlvdSB3b3VsZCBsaWtlIHRvIG1lcmdlIGFuZCBrZWVwIGluIHRoYXQgUHJpbWFyeSBDb250YWN0IFJlY29yZC4gTWVyZ2luZyBjb250YWN0cyBpcyBpcnJldmVyc2libGUuXCJcbiAgICAgICAgICAgID48L3N5bXBob255LXBhcmFncmFwaD4gICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtYm9keSBzZngtcC0zMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2FzdGVyLWFsZXJ0LWNvbnRhaW5lci1nbG9iYWxcIj5cbiAgICAgICAgPHN5bXBob255LXRvYXN0ZXItYWxlcnRcbiAgICAgICAgICAqbmdJZj1cInNob3dTdWNjZXNzVG9hc3RcIlxuICAgICAgICAgIFthbGVydE1vZGVsXT1cInN1Y2Nlc3NUb2FzdFwiXG4gICAgICAgICAgKGhpZGVBbGVydCk9XCJvbkhpZGVTdWNjZXNzVG9hc3QoKVwiXG4gICAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgICA8c3ltcGhvbnktdG9hc3Rlci1hbGVydFxuICAgICAgICAqbmdJZj1cInNob3dGYWlsdXJlVG9hc3RcIlxuICAgICAgICBbYWxlcnRNb2RlbF09XCJmYWlsdXJlVG9hc3RcIlxuICAgICAgICAoaGlkZUFsZXJ0KT1cIm9uSGlkZUZhaWx1cmVUb2FzdCgpXCJcbiAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwic2Z4LW10LTMwIHNmeC1tYi0zMFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJTb21ldGhpbmcgaGFzIHdlbnQgd3JvbmcuIFRyeSBhZ2FpbiBsYXRlciBvciBjb250YWN0IHN1cHBvcnRcIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3IgJiYgKCFtb2RlbD8uc3VnZ2VzdGlvbnMgfHwgbW9kZWwuc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKVwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJObyBtb3JlIGR1cGxpY2F0ZXMgZXhpc3QgZm9yIHRoaXMgc2VsZWN0ZWQgY29udGFjdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlclwiPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiAhY29uZmlybVN1Z2dlc3Rpb24gJiYgbW9kZWw/LnN1Z2dlc3Rpb25zPy5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICA8cCBjbGFzcz1cInNmeC1tdC0yMCBzZngtZm9udC1ib2xkXCI+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0Lm5hbWUgfX0gIFt7eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuaWQgfX1dPC9wPlxuICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uLnZhbHVlIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgPHN5bXBob255LWg1IFt0ZXh0XT1cIidQb3RlbnRpYWwgRHVwbGljYXRlcyAoJyArIChtb2RlbD8uc3VnZ2VzdGlvbnM/Lmxlbmd0aCB8fCAwKSArICcpJ1wiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlLWNvbnRhaW5lciBjYXJkLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBtb2RlbC5zdWdnZXN0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb24tY2FyZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZCA9PT0gc3VnZ2VzdGlvbiB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChzdWdnZXN0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pbnB1dC1yYWRpb1xuICAgICAgICAgICAgICAgIFtyYWRpb0lEXT1cInN1Z2dlc3Rpb24uaWRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIidtZXJnZS1zdWdnZXN0aW9ucydcIlxuICAgICAgICAgICAgICAgIFtpc0FjdGl2ZV09XCJzZWxlY3RlZCA9PT0gc3VnZ2VzdGlvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25TZWxlY3Qoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgICA+PC9zeW1waG9ueS1pbnB1dC1yYWRpbz4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBzZngtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbi5uYW1lIH19IFt7eyBzdWdnZXN0aW9uLmlkIH19XVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiXG4gICAgICAgICAgICAgICAgICBbbmV3VGFiVXJsXT1cImdldENvbnRhY3RVcmwoc3VnZ2VzdGlvbi5pZClcIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LWdyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbi13cmFwcGVyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdC1kdXBsaWNhdGUtaWNvbi1nbG9iYWxcIlxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJNYXJrIG5vdCBkdXBsaWNhdGVcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIidzaS1leGNsdWRlJ1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L3N5bXBob255LWljb24td3JhcHBlcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJzdWdnZXN0aW9uLmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwiJ3NpLWVtYWlsLXNlbmQnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHN1Z2dlc3Rpb24uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiAqbmdGb3I9XCJsZXQgY3JpdGVyaW9uIG9mIHN1Z2dlc3Rpb24uY3JpdGVyaWFcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcml0ZXJpb24uaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImNyaXRlcmlvbi5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgY3JpdGVyaW9uLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJzdWdnZXN0aW9uLmF0c0lkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZngtdHh0LWdyYXkgc2Z4LWZvbnQtYm9sZCBzZngtZm9udDEyXCI+QVRTIElEOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBzdWdnZXN0aW9uLmF0c0lkIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWNyaXRlcmlhXCIgKm5nSWY9XCJzdWdnZXN0aW9uLmNyaXRlcmlhPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWxhYmVsIHNmeC10eHQtZ3JheVwiPkNvbnRhY3RzIHNoYXJlIHRoZSBzYW1lOjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1zdGF0dXMtcGlsbFxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiBzdWdnZXN0aW9uLnN0YXR1c2VzXCJcbiAgICAgICAgICAgICAgICAgIFtzdGF0dXNQaWxsTW9kZWxdPVwieyBzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzIH1cIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LXN0YXR1cy1waWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiBjb25maXJtU3VnZ2VzdGlvblwiPlxuICAgICAgPHN5bXBob255LWg1IHRleHQ9XCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIHRoaXMgY29udGFjdCBhcyBhIHBvdGVudGlhbCBkdXBsaWNhdGU/IFwiPjwvc3ltcGhvbnktaDU+XG4gICAgICA8ZGl2IGNsYXNzPVwic2Z4LW10LTIwIHJhZGlvLWFjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIGNsYXNzPVwicGVuZGluZy1pY29uXCIgW2ljb25dPVwiJ3NpLXBlbmRpbmctaW5jb21wbGV0ZSdcIj48L3N5bXBob255LWljb24+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIGNsYXNzPVwic2Z4LWZvbnQtaXRhbGljXCIgdGV4dD1cIkRvaW5nIHNvIGlzIGlycmV2ZXJzaWJsZSBhbmQgdGhpcyBjb250YWN0IHdpbGwgbmV2ZXIgYmUgc2hvd24gYXMgYSBwb3RlbnRpYWwgZHVwbGljYXRlIG9mIHRoaXMgY29udGFjdCBhZ2Fpbi5cIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBzZngtbXQtMzBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiU2VsZWN0ZWQgQ29udGFjdFwiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgICAgPHAgY2xhc3M9XCJzZngtbXQtNDAgc2Z4LWZvbnQtYm9sZFwiPnt7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5uYW1lIH19ICBbe3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmlkIH19XTwvcD5cbiAgICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgICAgPHAgKm5nRm9yPVwibGV0IGNyaXRlcmlvbiBvZiBtb2RlbC5zZWxlY3RlZENvbnRhY3QuY3JpdGVyaWFcIj57eyBjcml0ZXJpb24gfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgICAgPHN5bXBob255LWg1IHRleHQ9XCJNZXJnZSBTdWdnZXN0aW9uXCI+PC9zeW1waG9ueS1oNT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VnZ2VzdGlvbi1jb25maXJtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Z4LWZvbnQtYm9sZFwiPnt7IGNvbmZpcm1TdWdnZXN0aW9uLm5hbWUgfX0gW3t7IGNvbmZpcm1TdWdnZXN0aW9uLmlkIH19XTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNmeC1tdC01XCI+e3sgY29uZmlybVN1Z2dlc3Rpb24uZW1haWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNyaXRlcmlvbiBvZiBjb25maXJtU3VnZ2VzdGlvbi5jcml0ZXJpYVwiIGNsYXNzPVwic2Z4LW10LTVcIj57eyBjcml0ZXJpb24gfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiBjb25maXJtU3VnZ2VzdGlvbi5zdGF0dXNlc1wiIGNsYXNzPVwic2Z4LW10LTEwXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1zdGF0dXMtcGlsbCBbc3RhdHVzUGlsbE1vZGVsXT1cIntzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzfVwiPjwvc3ltcGhvbnktc3RhdHVzLXBpbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtLWFjdGlvbnNcIj5cbiAgICAgICAgPHN5bXBob255LWJ1dHRvbi12MlxuICAgICAgICAgIHRleHQ9XCJDYW5jZWxcIlxuICAgICAgICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJjYW5jZWxOb3REdXBsaWNhdGUoKVwiXG4gICAgICAgID48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgICAgICAgPHN5bXBob255LWJ1dHRvbi12MlxuICAgICAgICAgIHRleHQ9XCJDb25maXJtXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJjb25maXJtT25Ob3REdXBsaWNhdGUoKVwiXG4gICAgICAgID48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIj48L25nLWNvbnRlbnQ+XG4gIDwvc2VjdGlvbj5cbiAgPHNlY3Rpb24gKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiIGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPHN5bXBob255LWJ1dHRvbi12MiB0ZXh0PVwiQ2xvc2VcIiBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIj48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgICA8c3ltcGhvbnktYnV0dG9uLXYyIHRleHQ9XCJOZXh0XCIgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZCB8fCAhIWNvbmZpcm1TdWdnZXN0aW9uXCIgKGNsaWNrZWQpPVwib25OZXh0KClcIj48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL29yZ2FuaXNtcy9tZXJnZS1jb250YWN0cy1tb2RhbC9tZXJnZS1jb250YWN0cy1tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3REZXRhaWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGNyaXRlcmlhOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uIGV4dGVuZHMgTWVyZ2VDb250YWN0RGV0YWlsIHtcbiAgc3RhdHVzZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlQ29udGFjdHNNb2RhbE1vZGVsIHtcbiAgc2VsZWN0ZWRDb250YWN0OiBNZXJnZUNvbnRhY3REZXRhaWw7XG4gIHN1Z2dlc3Rpb25zOiBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL29yZ2FuaXNtcy9tZXJnZS1jb250YWN0cy1tb2RhbC9tZXJnZS1jb250YWN0cy1tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RDcml0ZXJpb24ge1xuICAvKipcbiAgICogRGlzcGxheSB2YWx1ZSBmb3IgdGhlIGNyaXRlcmlvbiAoZS5nLiBwaG9uZSBudW1iZXIgb3IgemlwIGNvZGUpLlxuICAgKi9cbiAgdmFsdWU6IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGljb24gY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBjcml0ZXJpb24gdHlwZS5cbiAgICovXG4gIGljb25DbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3REZXRhaWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGF0c0lkPzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBjcml0ZXJpYSB0byBkaXNwbGF5IGZvciB0aGUgY29udGFjdC5cbiAgICovXG4gIGNyaXRlcmlhOiBNZXJnZUNvbnRhY3RDcml0ZXJpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uIGV4dGVuZHMgTWVyZ2VDb250YWN0RGV0YWlsIHtcbiAgc3RhdHVzZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlQ29udGFjdHNNb2RhbE1vZGVsIHtcbiAgc2VsZWN0ZWRDb250YWN0OiBNZXJnZUNvbnRhY3REZXRhaWw7XG4gIHN1Z2dlc3Rpb25zOiBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uW107XG59XG4iXX0=
@@ -13,10 +13,10 @@ export class InputRadioComponent {
13
13
  }
14
14
  }
15
15
  InputRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- InputRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputRadioComponent, selector: "symphony-input-radio", inputs: { isActive: "isActive", name: "name", label: "label", isRequired: "isRequired" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ label }}\"\n />\n <label for=\"{{ label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
16
+ InputRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputRadioComponent, selector: "symphony-input-radio", inputs: { isActive: "isActive", name: "name", label: "label", isRequired: "isRequired", radioID: "radioID" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ radioID || label }}\"\n />\n <label for=\"{{ radioID || label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:0%;cursor:inherit;height:0%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputRadioComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'symphony-input-radio', template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ label }}\"\n />\n <label for=\"{{ label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"] }]
19
+ args: [{ selector: 'symphony-input-radio', template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ radioID || label }}\"\n />\n <label for=\"{{ radioID || label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:0%;cursor:inherit;height:0%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"] }]
20
20
  }], ctorParameters: function () { return []; }, propDecorators: { isActive: [{
21
21
  type: Input
22
22
  }], name: [{
@@ -25,7 +25,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
25
25
  type: Input
26
26
  }], isRequired: [{
27
27
  type: Input
28
+ }], radioID: [{
29
+ type: Input
28
30
  }], clicked: [{
29
31
  type: Output
30
32
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1yYWRpby9pbnB1dC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXJhZGlvL2lucHV0LXJhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBUTlCO1FBRlUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0IsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBZlUsbUJBQW1CO29HQUFuQixtQkFBbUIsdUxDUGhDLHlWQVlBOzJGRExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxzQkFBc0I7MEVBS3ZCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0UmFkaW9Db21wb25lbnQge1xuICBASW5wdXQoKSBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgaXNSZXF1aXJlZDogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbkNsaWNrKCkge1xuICAgIHRoaXMuY2xpY2tlZC5lbWl0KHtcbiAgICAgIGxhYmVsOiB0aGlzLmxhYmVsLFxuICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZngtcmFkaW9cIiAoY2xpY2spPVwib25DbGljaygpXCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgY2xhc3M9XCJzZngtcmFkaW8taW5wdXRcIlxuICAgIFtjaGVja2VkXT1cImlzQWN0aXZlXCJcbiAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICBpZD1cInt7IGxhYmVsIH19XCJcbiAgLz5cbiAgPGxhYmVsIGZvcj1cInt7IGxhYmVsIH19XCIgY2xhc3M9XCJGb250NDAwXCJcbiAgICA+e3sgbGFiZWwgfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkRmllbGRcIiAqbmdJZj1cImlzUmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgPlxuPC9kaXY+XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1yYWRpby9pbnB1dC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXJhZGlvL2lucHV0LXJhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCO1FBRlUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0IsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBaEJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDJNQ1BoQywrV0FZQTsyRkRMYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usc0JBQXNCOzBFQUt2QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LWlucHV0LXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXJhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRSYWRpb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlzQWN0aXZlOiBib29sZWFuO1xuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBpc1JlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSByYWRpb0lEOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgb25DbGljaygpIHtcbiAgICB0aGlzLmNsaWNrZWQuZW1pdCh7XG4gICAgICBsYWJlbDogdGhpcy5sYWJlbCxcbiAgICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Z4LXJhZGlvXCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPlxuICA8aW5wdXRcbiAgICB0eXBlPVwicmFkaW9cIlxuICAgIGNsYXNzPVwic2Z4LXJhZGlvLWlucHV0XCJcbiAgICBbY2hlY2tlZF09XCJpc0FjdGl2ZVwiXG4gICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgaWQ9XCJ7eyByYWRpb0lEIHx8IGxhYmVsIH19XCJcbiAgLz5cbiAgPGxhYmVsIGZvcj1cInt7IHJhZGlvSUQgfHwgbGFiZWwgfX1cIiBjbGFzcz1cIkZvbnQ0MDBcIlxuICAgID57eyBsYWJlbCB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRGaWVsZFwiICpuZ0lmPVwiaXNSZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxuICA+XG48L2Rpdj5cbiJdfQ==
@@ -93,10 +93,10 @@ export class MergeContactsModalComponent {
93
93
  }
94
94
  }
95
95
  MergeContactsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- MergeContactsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactsModalComponent, selector: "symphony-merge-contacts-modal", inputs: { model: "model", isLoading: "isLoading", hasError: "hasError", selected: "selected", confirmSuggestion: "confirmSuggestion", showSuccessToast: "showSuccessToast", showFailureToast: "showFailureToast", currentStep: "currentStep" }, outputs: { next: "next", cancel: "cancel", notDuplicate: "notDuplicate", selectionChange: "selectionChange", hideSuccessToast: "hideSuccessToast", hideFailureToast: "hideFailureToast", requestConfirmSuggestion: "requestConfirmSuggestion", requestCancelConfirmSuggestion: "requestCancelConfirmSuggestion" }, ngImport: i0, template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Potential Duplicates\"></symphony-h5>\n <div class=\"scrollable-container\">\n <div *ngFor=\"let suggestion of model.suggestions\">\n <div class=\"radio-item\">\n <symphony-input-radio\n [label]=\"suggestion.name + ' [' + suggestion.id + ']'\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio>\n <div class=\"radio-action sfx-mt-30\">\n <symphony-grid-cell-clicked-open-new-tab class=\"icon-upwards\"\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\" (clicked)=\"onNotDuplicate(suggestion)\">\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"radio-item\">\n <div class=\"radio-details\">\n <div>{{ suggestion.email }}</div>\n <div *ngFor=\"let criterion of suggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of suggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}\n"], components: [{ type: i1.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ToasterAlertComponent, selector: "symphony-toaster-alert", inputs: ["alertModel", "showAlert"], outputs: ["hideAlert", "refreshClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }, { type: i6.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i7.InputRadioComponent, selector: "symphony-input-radio", inputs: ["isActive", "name", "label", "isRequired"], outputs: ["clicked"] }, { type: i8.GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", inputs: ["newTabUrl"] }, { type: i9.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i10.StatusPillComponent, selector: "symphony-status-pill", inputs: ["statusPillModel"] }, { type: i11.ButtonV2Component, selector: "symphony-button-v2" }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
96
+ MergeContactsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactsModalComponent, selector: "symphony-merge-contacts-modal", inputs: { model: "model", isLoading: "isLoading", hasError: "hasError", selected: "selected", confirmSuggestion: "confirmSuggestion", showSuccessToast: "showSuccessToast", showFailureToast: "showFailureToast", currentStep: "currentStep" }, outputs: { next: "next", cancel: "cancel", notDuplicate: "notDuplicate", selectionChange: "selectionChange", hideSuccessToast: "hideSuccessToast", hideFailureToast: "hideFailureToast", requestConfirmSuggestion: "requestConfirmSuggestion", requestCancelConfirmSuggestion: "requestCancelConfirmSuggestion" }, ngImport: i0, template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.criteria?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}.suggestion-card.selected{border-color:#712ace}\n"], components: [{ type: i1.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ToasterAlertComponent, selector: "symphony-toaster-alert", inputs: ["alertModel", "showAlert"], outputs: ["hideAlert", "refreshClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }, { type: i6.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i7.InputRadioComponent, selector: "symphony-input-radio", inputs: ["isActive", "name", "label", "isRequired", "radioID"], outputs: ["clicked"] }, { type: i8.GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", inputs: ["newTabUrl"] }, { type: i9.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i10.StatusPillComponent, selector: "symphony-status-pill", inputs: ["statusPillModel"] }, { type: i11.ButtonV2Component, selector: "symphony-button-v2" }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactsModalComponent, decorators: [{
98
98
  type: Component,
99
- args: [{ selector: 'symphony-merge-contacts-modal', template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Potential Duplicates\"></symphony-h5>\n <div class=\"scrollable-container\">\n <div *ngFor=\"let suggestion of model.suggestions\">\n <div class=\"radio-item\">\n <symphony-input-radio\n [label]=\"suggestion.name + ' [' + suggestion.id + ']'\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio>\n <div class=\"radio-action sfx-mt-30\">\n <symphony-grid-cell-clicked-open-new-tab class=\"icon-upwards\"\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\" (clicked)=\"onNotDuplicate(suggestion)\">\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"radio-item\">\n <div class=\"radio-details\">\n <div>{{ suggestion.email }}</div>\n <div *ngFor=\"let criterion of suggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of suggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}\n"] }]
99
+ args: [{ selector: 'symphony-merge-contacts-modal', template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.criteria?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-40 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Merge Suggestion\"></symphony-h5>\n <div class=\"suggestion-confirm\">\n <div class=\"sfx-font-bold\">{{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]</div>\n <div class=\"sfx-mt-5\">{{ confirmSuggestion.email }}</div>\n <div *ngFor=\"let criterion of confirmSuggestion.criteria\" class=\"sfx-mt-5\">{{ criterion }}</div>\n <div *ngFor=\"let status of confirmSuggestion.statuses\" class=\"sfx-mt-10\">\n <symphony-status-pill [statusPillModel]=\"{statusClass: 'statusGrey', value: status}\"></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}.suggestion-card.selected{border-color:#712ace}\n"] }]
100
100
  }], ctorParameters: function () { return []; }, propDecorators: { model: [{
101
101
  type: Input
102
102
  }], isLoading: [{
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
130
130
  }], currentStep: [{
131
131
  type: Input
132
132
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdkQsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEM7UUFyQlMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM3RCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDdEUsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzRCxhQUFRLEdBQWtDLElBQUksQ0FBQztRQUMvQyxzQkFBaUIsR0FBa0MsSUFBSSxDQUFDO1FBQ3hELHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFLakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLDhDQUE4QyxDQUFDO1FBQzNFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXZDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRywwQ0FBMEMsQ0FBQztRQUN2RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUFrQztRQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQWtDO1FBQy9DLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtnQkFDcEMsVUFBVSxFQUFFLElBQUksQ0FBQyxpQkFBaUI7YUFDbkMsQ0FBQyxDQUFDO1NBQ0g7SUFDSixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN2QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDcEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQ3JCLENBQUM7WUFDRixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO2dCQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtZQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLE9BQU8sNkJBQTZCLEVBQUUsRUFBRSxDQUFDO0lBQ3JELENBQUM7O3dIQWpHVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3bUJDYnhDLGttT0F5SUE7MkZENUhhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwrQkFBK0I7MEVBS2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUlHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbCwgTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB9IGZyb20gJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHtcbiAgQWxlcnREdXJhdGlvbixcbiAgVG9hc3RlckFsZXJ0TW9kZWwsXG4gIFRvYXN0ZXJBbGVydFR5cGUsXG59IGZyb20gJy4uLy4uL2F0b21zL3RvYXN0ZXItYWxlcnQvdG9hc3Rlci1hbGVydC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LW1lcmdlLWNvbnRhY3RzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lcmdlLWNvbnRhY3RzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZXJnZUNvbnRhY3RzTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbDogTWVyZ2VDb250YWN0c01vZGFsTW9kZWw7XG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNFcnJvciA9IGZhbHNlO1xuICBAT3V0cHV0KCkgbmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG5vdER1cGxpY2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHNlbGVjdGVkOiBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbFsnc2VsZWN0ZWRDb250YWN0J107XG4gICAgc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbjtcbiAgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGhpZGVTdWNjZXNzVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBoaWRlRmFpbHVyZVRvYXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxNZXJnZUNvbnRhY3RTdWdnZXN0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENhbmNlbENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzZWxlY3RlZDogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjb25maXJtU3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93U3VjY2Vzc1RvYXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dGYWlsdXJlVG9hc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgY3VycmVudFN0ZXA6IG51bWJlciA9IDE7XG4gIHN1Y2Nlc3NUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG4gIGZhaWx1cmVUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0ID0gbmV3IFRvYXN0ZXJBbGVydE1vZGVsKCk7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LnR5cGUgPSBUb2FzdGVyQWxlcnRUeXBlLlN1Y2Nlc3M7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0Lm1lc3NhZ2UgPSBcIkNvbnRhY3QgcmVtb3ZlZCBmcm9tIGR1cGxpY2F0ZXMgc3VjY2Vzc2Z1bGx5XCI7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LmR1cmF0aW9uID0gQWxlcnREdXJhdGlvbi5GaXZlU2Vjb25kcztcbiAgdGhpcy5zdWNjZXNzVG9hc3Quc2hvd0Nsb3NlSWNvbiA9IHRydWU7XG5cbiAgdGhpcy5mYWlsdXJlVG9hc3QgPSBuZXcgVG9hc3RlckFsZXJ0TW9kZWwoKTtcbiAgdGhpcy5mYWlsdXJlVG9hc3QudHlwZSA9IFRvYXN0ZXJBbGVydFR5cGUuRXJyb3I7XG4gIHRoaXMuZmFpbHVyZVRvYXN0Lm1lc3NhZ2UgPSBcIkZhaWxlZCB0byByZW1vdmUgY29udGFjdCBmcm9tIGR1cGxpY2F0ZXNcIjtcbiAgdGhpcy5mYWlsdXJlVG9hc3QuZHVyYXRpb24gPSBBbGVydER1cmF0aW9uLkZpdmVTZWNvbmRzO1xuICB0aGlzLmZhaWx1cmVUb2FzdC5zaG93Q2xvc2VJY29uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uTmV4dCgpIHtcbiAgICB0aGlzLm5leHQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VsZWN0KHN1Z2dlc3Rpb246IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgb25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbikge1xuICAgIHRoaXMucmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uLmVtaXQoc3VnZ2VzdGlvbik7XG4gIH1cblxuICBjYW5jZWxOb3REdXBsaWNhdGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0Q2FuY2VsQ29uZmlybVN1Z2dlc3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgY29uZmlybU9uTm90RHVwbGljYXRlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpcm1TdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLm5vdER1cGxpY2F0ZS5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMubW9kZWwuc2VsZWN0ZWRDb250YWN0LFxuICAgICAgICBzdWdnZXN0aW9uOiB0aGlzLmNvbmZpcm1TdWdnZXN0aW9uLFxuICAgICAgfSk7XG4gICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vdER1cGxpY2F0ZVN1Y2Nlc3MoKSB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29uZmlybVN1Z2dlc3Rpb247XG4gICAgaWYgKHJlbW92ZWQpIHtcbiAgICAgIHRoaXMubW9kZWwuc3VnZ2VzdGlvbnMgPSB0aGlzLm1vZGVsLnN1Z2dlc3Rpb25zLmZpbHRlcihcbiAgICAgICAgKHMpID0+IHMgIT09IHJlbW92ZWRcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCA9PT0gcmVtb3ZlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlybVN1Z2dlc3Rpb24gPSBudWxsO1xuICAgICAgdGhpcy5zaG93U3VjY2Vzc1RvYXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTm90RHVwbGljYXRlRXJyb3IoKSB7XG4gICAgdGhpcy5zaG93RmFpbHVyZVRvYXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25IaWRlU3VjY2Vzc1RvYXN0KCkge1xuICAgIHRoaXMuaGlkZVN1Y2Nlc3NUb2FzdC5lbWl0KCk7XG4gIH1cbiAgb25IaWRlRmFpbHVyZVRvYXN0KCkge1xuICAgIHRoaXMuaGlkZUZhaWx1cmVUb2FzdC5lbWl0KCk7XG4gIH1cblxuICBnZXRDb250YWN0VXJsKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIGNvbnN0IFtiYXNlVXJsXSA9IHVybC5zcGxpdCgnIycpO1xuICAgIHJldHVybiBgJHtiYXNlVXJsfSMvY2FuZGlkYXRlcHJvZmlsZXZpZXc/aWQ9JHtpZH1gO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Z4IHNmeC1tb2RhbCBtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cIm1vZGVsXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtaGVhZGVyIHNmeC1wLTMwIHNmeC1wdC00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTggY29sLXNtLTggY29sLW1kLTggY29sLWxnLThcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDQgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiIHRleHQ9XCJNYW5hZ2UgRHVwbGljYXRlc1wiPjwvc3ltcGhvbnktaDQ+XG4gICAgICAgICAgPHN5bXBob255LWg0ICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIiB0ZXh0PVwiTWVyZ2UgQ29udGFjdHNcIj48L3N5bXBob255LWg0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy00IGNvbC1zbS00IGNvbC1tZC00IGNvbC1sZy00XCI+XG4gICAgICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicHVsbC1yaWdodFwiXG4gICAgICAgICAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIHNmeC1tdC0xNVwiPlxuICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGhcbiAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiXG4gICAgICAgICAgICAgIHRleHQ9XCJUaGUgY29udGFjdHMgYmVsb3cgYXJlIHBvdGVudGlhbCBkdXBsaWNhdGVzLiBQbGVhc2UgY29tcGFyZSB0aGVpciBkYXRhIGFuZCBzZWxlY3QgdGhlIG9uZSB5b3Ugd291bGQgbGlrZSB0byBtZXJnZS5cIlxuICAgICAgICAgICAgPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaFxuICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCJcbiAgICAgICAgICAgICAgdGV4dD1cIlVzaW5nIHRoZSBmaWVsZHMgYmVsb3csIGNob29zZSBhIFByaW1hcnkgQ29udGFjdCwgYW5kIHRoZW4gc2VsZWN0IHRoZSBkYXRhIHlvdSB3b3VsZCBsaWtlIHRvIG1lcmdlIGFuZCBrZWVwIGluIHRoYXQgUHJpbWFyeSBDb250YWN0IFJlY29yZC4gTWVyZ2luZyBjb250YWN0cyBpcyBpcnJldmVyc2libGUuXCJcbiAgICAgICAgICAgID48L3N5bXBob255LXBhcmFncmFwaD4gICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtYm9keSBzZngtcC0zMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2FzdGVyLWFsZXJ0LWNvbnRhaW5lci1nbG9iYWxcIj5cbiAgICAgICAgPHN5bXBob255LXRvYXN0ZXItYWxlcnRcbiAgICAgICAgICAqbmdJZj1cInNob3dTdWNjZXNzVG9hc3RcIlxuICAgICAgICAgIFthbGVydE1vZGVsXT1cInN1Y2Nlc3NUb2FzdFwiXG4gICAgICAgICAgKGhpZGVBbGVydCk9XCJvbkhpZGVTdWNjZXNzVG9hc3QoKVwiXG4gICAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgICA8c3ltcGhvbnktdG9hc3Rlci1hbGVydFxuICAgICAgICAqbmdJZj1cInNob3dGYWlsdXJlVG9hc3RcIlxuICAgICAgICBbYWxlcnRNb2RlbF09XCJmYWlsdXJlVG9hc3RcIlxuICAgICAgICAoaGlkZUFsZXJ0KT1cIm9uSGlkZUZhaWx1cmVUb2FzdCgpXCJcbiAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwic2Z4LW10LTMwIHNmeC1tYi0zMFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJTb21ldGhpbmcgaGFzIHdlbnQgd3JvbmcuIFRyeSBhZ2FpbiBsYXRlciBvciBjb250YWN0IHN1cHBvcnRcIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3IgJiYgKCFtb2RlbD8uc3VnZ2VzdGlvbnMgfHwgbW9kZWwuc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKVwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJObyBtb3JlIGR1cGxpY2F0ZXMgZXhpc3QgZm9yIHRoaXMgc2VsZWN0ZWQgY29udGFjdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlclwiPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiAhY29uZmlybVN1Z2dlc3Rpb24gJiYgbW9kZWw/LnN1Z2dlc3Rpb25zPy5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICA8cCBjbGFzcz1cInNmeC1tdC00MCBzZngtZm9udC1ib2xkXCI+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0Lm5hbWUgfX0gIFt7eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuaWQgfX1dPC9wPlxuICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiUG90ZW50aWFsIER1cGxpY2F0ZXNcIj48L3N5bXBob255LWg1PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsYWJsZS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBtb2RlbC5zdWdnZXN0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWlucHV0LXJhZGlvXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInN1Z2dlc3Rpb24ubmFtZSArICcgWycgKyBzdWdnZXN0aW9uLmlkICsgJ10nXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCInbWVyZ2Utc3VnZ2VzdGlvbnMnXCJcbiAgICAgICAgICAgICAgICBbaXNBY3RpdmVdPVwic2VsZWN0ZWQgPT09IHN1Z2dlc3Rpb25cIlxuICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2VsZWN0KHN1Z2dlc3Rpb24pXCJcbiAgICAgICAgICAgICAgPjwvc3ltcGhvbnktaW5wdXQtcmFkaW8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1hY3Rpb24gc2Z4LW10LTMwXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1ncmlkLWNlbGwtY2xpY2tlZC1vcGVuLW5ldy10YWIgY2xhc3M9XCJpY29uLXVwd2FyZHNcIlxuICAgICAgICAgICAgICAgIFtuZXdUYWJVcmxdPVwiZ2V0Q29udGFjdFVybChzdWdnZXN0aW9uLmlkKVwiXG4gICAgICAgICAgICAgID48L3N5bXBob255LWdyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWljb24td3JhcHBlciBjbGFzcz1cIm5vdC1kdXBsaWNhdGUtaWNvbi1nbG9iYWxcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiTWFyayBub3QgZHVwbGljYXRlXCIgKGNsaWNrZWQpPVwib25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbilcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktZXhjbHVkZSdcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgIDwvc3ltcGhvbnktaWNvbi13cmFwcGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgIDxkaXY+e3sgc3VnZ2VzdGlvbi5lbWFpbCB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2Ygc3VnZ2VzdGlvbi5jcml0ZXJpYVwiIGNsYXNzPVwic2Z4LW10LTVcIj57eyBjcml0ZXJpb24gfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RhdHVzIG9mIHN1Z2dlc3Rpb24uc3RhdHVzZXNcIiBjbGFzcz1cInNmeC1tdC0xMFwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1zdGF0dXMtcGlsbCBbc3RhdHVzUGlsbE1vZGVsXT1cIntzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzfVwiPjwvc3ltcGhvbnktc3RhdHVzLXBpbGw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3IgJiYgY29uZmlybVN1Z2dlc3Rpb25cIj5cbiAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIGNvbnRhY3QgYXMgYSBwb3RlbnRpYWwgZHVwbGljYXRlPyBcIj48L3N5bXBob255LWg1PlxuICAgICAgPGRpdiBjbGFzcz1cInNmeC1tdC0yMCByYWRpby1hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBjbGFzcz1cInBlbmRpbmctaWNvblwiIFtpY29uXT1cIidzaS1wZW5kaW5nLWluY29tcGxldGUnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgPHN5bXBob255LXBhcmFncmFwaCBjbGFzcz1cInNmeC1mb250LWl0YWxpY1wiIHRleHQ9XCJEb2luZyBzbyBpcyBpcnJldmVyc2libGUgYW5kIHRoaXMgY29udGFjdCB3aWxsIG5ldmVyIGJlIHNob3duIGFzIGEgcG90ZW50aWFsIGR1cGxpY2F0ZSBvZiB0aGlzIGNvbnRhY3QgYWdhaW4uXCI+PC9zeW1waG9ueS1wYXJhZ3JhcGg+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgc2Z4LW10LTMwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTYgY29sLWxnLTZcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICAgIDxwIGNsYXNzPVwic2Z4LW10LTQwIHNmeC1mb250LWJvbGRcIj57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QubmFtZSB9fSAgW3t7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5pZCB9fV08L3A+XG4gICAgICAgICAgPHA+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmVtYWlsIH19PC9wPlxuICAgICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiTWVyZ2UgU3VnZ2VzdGlvblwiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Z2dlc3Rpb24tY29uZmlybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNmeC1mb250LWJvbGRcIj57eyBjb25maXJtU3VnZ2VzdGlvbi5uYW1lIH19IFt7eyBjb25maXJtU3VnZ2VzdGlvbi5pZCB9fV08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZngtbXQtNVwiPnt7IGNvbmZpcm1TdWdnZXN0aW9uLmVtYWlsIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgY29uZmlybVN1Z2dlc3Rpb24uY3JpdGVyaWFcIiBjbGFzcz1cInNmeC1tdC01XCI+e3sgY3JpdGVyaW9uIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdGF0dXMgb2YgY29uZmlybVN1Z2dlc3Rpb24uc3RhdHVzZXNcIiBjbGFzcz1cInNmeC1tdC0xMFwiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktc3RhdHVzLXBpbGwgW3N0YXR1c1BpbGxNb2RlbF09XCJ7c3RhdHVzQ2xhc3M6ICdzdGF0dXNHcmV5JywgdmFsdWU6IHN0YXR1c31cIj48L3N5bXBob255LXN0YXR1cy1waWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS1hY3Rpb25zXCI+XG4gICAgICAgIDxzeW1waG9ueS1idXR0b24tdjJcbiAgICAgICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgICAgICBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY2FuY2VsTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICAgIDxzeW1waG9ueS1idXR0b24tdjJcbiAgICAgICAgICB0ZXh0PVwiQ29uZmlybVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY29uZmlybU9uTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCI+PC9uZy1jb250ZW50PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDFcIiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxzeW1waG9ueS1idXR0b24tdjIgdGV4dD1cIkNsb3NlXCIgW2lzU2Vjb25kYXJ5XT1cInRydWVcIiAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCI+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgPHN5bXBob255LWJ1dHRvbi12MiB0ZXh0PVwiTmV4dFwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWQgfHwgISFjb25maXJtU3VnZ2VzdGlvblwiIChjbGlja2VkKT1cIm9uTmV4dCgpXCI+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdkQsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEM7UUFyQlMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM3RCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDdEUsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzRCxhQUFR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QWtCO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLE9BQU8sNkJBQTZCLEVBQUUsRUFBRSxDQUFDO0lBQ3JELENBQUM7O3dIQWpHVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3bUJDYnhDLDYwUUFxS0E7MkZEeEphLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwrQkFBK0I7MEVBS2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUlHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbCwgTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB9IGZyb20gJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHtcbiAgQWxlcnREdXJhdGlvbixcbiAgVG9hc3RlckFsZXJ0TW9kZWwsXG4gIFRvYXN0ZXJBbGVydFR5cGUsXG59IGZyb20gJy4uLy4uL2F0b21zL3RvYXN0ZXItYWxlcnQvdG9hc3Rlci1hbGVydC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LW1lcmdlLWNvbnRhY3RzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lcmdlLWNvbnRhY3RzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZXJnZUNvbnRhY3RzTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbDogTWVyZ2VDb250YWN0c01vZGFsTW9kZWw7XG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNFcnJvciA9IGZhbHNlO1xuICBAT3V0cHV0KCkgbmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG5vdER1cGxpY2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHNlbGVjdGVkOiBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbFsnc2VsZWN0ZWRDb250YWN0J107XG4gICAgc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbjtcbiAgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGhpZGVTdWNjZXNzVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBoaWRlRmFpbHVyZVRvYXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxNZXJnZUNvbnRhY3RTdWdnZXN0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENhbmNlbENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzZWxlY3RlZDogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjb25maXJtU3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93U3VjY2Vzc1RvYXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dGYWlsdXJlVG9hc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgY3VycmVudFN0ZXA6IG51bWJlciA9IDE7XG4gIHN1Y2Nlc3NUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG4gIGZhaWx1cmVUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0ID0gbmV3IFRvYXN0ZXJBbGVydE1vZGVsKCk7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LnR5cGUgPSBUb2FzdGVyQWxlcnRUeXBlLlN1Y2Nlc3M7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0Lm1lc3NhZ2UgPSBcIkNvbnRhY3QgcmVtb3ZlZCBmcm9tIGR1cGxpY2F0ZXMgc3VjY2Vzc2Z1bGx5XCI7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LmR1cmF0aW9uID0gQWxlcnREdXJhdGlvbi5GaXZlU2Vjb25kcztcbiAgdGhpcy5zdWNjZXNzVG9hc3Quc2hvd0Nsb3NlSWNvbiA9IHRydWU7XG5cbiAgdGhpcy5mYWlsdXJlVG9hc3QgPSBuZXcgVG9hc3RlckFsZXJ0TW9kZWwoKTtcbiAgdGhpcy5mYWlsdXJlVG9hc3QudHlwZSA9IFRvYXN0ZXJBbGVydFR5cGUuRXJyb3I7XG4gIHRoaXMuZmFpbHVyZVRvYXN0Lm1lc3NhZ2UgPSBcIkZhaWxlZCB0byByZW1vdmUgY29udGFjdCBmcm9tIGR1cGxpY2F0ZXNcIjtcbiAgdGhpcy5mYWlsdXJlVG9hc3QuZHVyYXRpb24gPSBBbGVydER1cmF0aW9uLkZpdmVTZWNvbmRzO1xuICB0aGlzLmZhaWx1cmVUb2FzdC5zaG93Q2xvc2VJY29uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uTmV4dCgpIHtcbiAgICB0aGlzLm5leHQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VsZWN0KHN1Z2dlc3Rpb246IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgb25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbikge1xuICAgIHRoaXMucmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uLmVtaXQoc3VnZ2VzdGlvbik7XG4gIH1cblxuICBjYW5jZWxOb3REdXBsaWNhdGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0Q2FuY2VsQ29uZmlybVN1Z2dlc3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgY29uZmlybU9uTm90RHVwbGljYXRlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpcm1TdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLm5vdER1cGxpY2F0ZS5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMubW9kZWwuc2VsZWN0ZWRDb250YWN0LFxuICAgICAgICBzdWdnZXN0aW9uOiB0aGlzLmNvbmZpcm1TdWdnZXN0aW9uLFxuICAgICAgfSk7XG4gICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vdER1cGxpY2F0ZVN1Y2Nlc3MoKSB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29uZmlybVN1Z2dlc3Rpb247XG4gICAgaWYgKHJlbW92ZWQpIHtcbiAgICAgIHRoaXMubW9kZWwuc3VnZ2VzdGlvbnMgPSB0aGlzLm1vZGVsLnN1Z2dlc3Rpb25zLmZpbHRlcihcbiAgICAgICAgKHMpID0+IHMgIT09IHJlbW92ZWRcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCA9PT0gcmVtb3ZlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlybVN1Z2dlc3Rpb24gPSBudWxsO1xuICAgICAgdGhpcy5zaG93U3VjY2Vzc1RvYXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTm90RHVwbGljYXRlRXJyb3IoKSB7XG4gICAgdGhpcy5zaG93RmFpbHVyZVRvYXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25IaWRlU3VjY2Vzc1RvYXN0KCkge1xuICAgIHRoaXMuaGlkZVN1Y2Nlc3NUb2FzdC5lbWl0KCk7XG4gIH1cbiAgb25IaWRlRmFpbHVyZVRvYXN0KCkge1xuICAgIHRoaXMuaGlkZUZhaWx1cmVUb2FzdC5lbWl0KCk7XG4gIH1cblxuICBnZXRDb250YWN0VXJsKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIGNvbnN0IFtiYXNlVXJsXSA9IHVybC5zcGxpdCgnIycpO1xuICAgIHJldHVybiBgJHtiYXNlVXJsfSMvY2FuZGlkYXRlcHJvZmlsZXZpZXc/aWQ9JHtpZH1gO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Z4IHNmeC1tb2RhbCBtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cIm1vZGVsXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtaGVhZGVyIHNmeC1wLTMwIHNmeC1wdC00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTggY29sLXNtLTggY29sLW1kLTggY29sLWxnLThcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDQgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiIHRleHQ9XCJNYW5hZ2UgRHVwbGljYXRlc1wiPjwvc3ltcGhvbnktaDQ+XG4gICAgICAgICAgPHN5bXBob255LWg0ICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIiB0ZXh0PVwiTWVyZ2UgQ29udGFjdHNcIj48L3N5bXBob255LWg0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy00IGNvbC1zbS00IGNvbC1tZC00IGNvbC1sZy00XCI+XG4gICAgICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicHVsbC1yaWdodFwiXG4gICAgICAgICAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIHNmeC1tdC0xNVwiPlxuICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGhcbiAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiXG4gICAgICAgICAgICAgIHRleHQ9XCJUaGUgY29udGFjdHMgYmVsb3cgYXJlIHBvdGVudGlhbCBkdXBsaWNhdGVzLiBQbGVhc2UgY29tcGFyZSB0aGVpciBkYXRhIGFuZCBzZWxlY3QgdGhlIG9uZSB5b3Ugd291bGQgbGlrZSB0byBtZXJnZS5cIlxuICAgICAgICAgICAgPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaFxuICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCJcbiAgICAgICAgICAgICAgdGV4dD1cIlVzaW5nIHRoZSBmaWVsZHMgYmVsb3csIGNob29zZSBhIFByaW1hcnkgQ29udGFjdCwgYW5kIHRoZW4gc2VsZWN0IHRoZSBkYXRhIHlvdSB3b3VsZCBsaWtlIHRvIG1lcmdlIGFuZCBrZWVwIGluIHRoYXQgUHJpbWFyeSBDb250YWN0IFJlY29yZC4gTWVyZ2luZyBjb250YWN0cyBpcyBpcnJldmVyc2libGUuXCJcbiAgICAgICAgICAgID48L3N5bXBob255LXBhcmFncmFwaD4gICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtYm9keSBzZngtcC0zMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2FzdGVyLWFsZXJ0LWNvbnRhaW5lci1nbG9iYWxcIj5cbiAgICAgICAgPHN5bXBob255LXRvYXN0ZXItYWxlcnRcbiAgICAgICAgICAqbmdJZj1cInNob3dTdWNjZXNzVG9hc3RcIlxuICAgICAgICAgIFthbGVydE1vZGVsXT1cInN1Y2Nlc3NUb2FzdFwiXG4gICAgICAgICAgKGhpZGVBbGVydCk9XCJvbkhpZGVTdWNjZXNzVG9hc3QoKVwiXG4gICAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgICA8c3ltcGhvbnktdG9hc3Rlci1hbGVydFxuICAgICAgICAqbmdJZj1cInNob3dGYWlsdXJlVG9hc3RcIlxuICAgICAgICBbYWxlcnRNb2RlbF09XCJmYWlsdXJlVG9hc3RcIlxuICAgICAgICAoaGlkZUFsZXJ0KT1cIm9uSGlkZUZhaWx1cmVUb2FzdCgpXCJcbiAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwic2Z4LW10LTMwIHNmeC1tYi0zMFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJTb21ldGhpbmcgaGFzIHdlbnQgd3JvbmcuIFRyeSBhZ2FpbiBsYXRlciBvciBjb250YWN0IHN1cHBvcnRcIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3IgJiYgKCFtb2RlbD8uc3VnZ2VzdGlvbnMgfHwgbW9kZWwuc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKVwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJObyBtb3JlIGR1cGxpY2F0ZXMgZXhpc3QgZm9yIHRoaXMgc2VsZWN0ZWQgY29udGFjdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlclwiPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiAhY29uZmlybVN1Z2dlc3Rpb24gJiYgbW9kZWw/LnN1Z2dlc3Rpb25zPy5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICA8cCBjbGFzcz1cInNmeC1tdC0yMCBzZngtZm9udC1ib2xkXCI+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0Lm5hbWUgfX0gIFt7eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuaWQgfX1dPC9wPlxuICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uLnZhbHVlIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgPHN5bXBob255LWg1IFt0ZXh0XT1cIidQb3RlbnRpYWwgRHVwbGljYXRlcyAoJyArIChtb2RlbD8uc3VnZ2VzdGlvbnM/Lmxlbmd0aCB8fCAwKSArICcpJ1wiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlLWNvbnRhaW5lciBjYXJkLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBtb2RlbC5zdWdnZXN0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb24tY2FyZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZCA9PT0gc3VnZ2VzdGlvbiB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChzdWdnZXN0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pbnB1dC1yYWRpb1xuICAgICAgICAgICAgICAgIFtyYWRpb0lEXT1cInN1Z2dlc3Rpb24uaWRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIidtZXJnZS1zdWdnZXN0aW9ucydcIlxuICAgICAgICAgICAgICAgIFtpc0FjdGl2ZV09XCJzZWxlY3RlZCA9PT0gc3VnZ2VzdGlvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25TZWxlY3Qoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgICA+PC9zeW1waG9ueS1pbnB1dC1yYWRpbz4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBzZngtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbi5uYW1lIH19IFt7eyBzdWdnZXN0aW9uLmlkIH19XVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiXG4gICAgICAgICAgICAgICAgICBbbmV3VGFiVXJsXT1cImdldENvbnRhY3RVcmwoc3VnZ2VzdGlvbi5pZClcIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LWdyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbi13cmFwcGVyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdC1kdXBsaWNhdGUtaWNvbi1nbG9iYWxcIlxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJNYXJrIG5vdCBkdXBsaWNhdGVcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIidzaS1leGNsdWRlJ1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L3N5bXBob255LWljb24td3JhcHBlcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJzdWdnZXN0aW9uLmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwiJ3NpLWVtYWlsLXNlbmQnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHN1Z2dlc3Rpb24uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiAqbmdGb3I9XCJsZXQgY3JpdGVyaW9uIG9mIHN1Z2dlc3Rpb24uY3JpdGVyaWFcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcml0ZXJpb24uaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImNyaXRlcmlvbi5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgY3JpdGVyaW9uLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJzdWdnZXN0aW9uLmF0c0lkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZngtdHh0LWdyYXkgc2Z4LWZvbnQtYm9sZCBzZngtZm9udDEyXCI+QVRTIElEOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBzdWdnZXN0aW9uLmF0c0lkIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWNyaXRlcmlhXCIgKm5nSWY9XCJzdWdnZXN0aW9uLmNyaXRlcmlhPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWxhYmVsIHNmeC10eHQtZ3JheVwiPkNvbnRhY3RzIHNoYXJlIHRoZSBzYW1lOjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1zdGF0dXMtcGlsbFxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiBzdWdnZXN0aW9uLnN0YXR1c2VzXCJcbiAgICAgICAgICAgICAgICAgIFtzdGF0dXNQaWxsTW9kZWxdPVwieyBzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzIH1cIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LXN0YXR1cy1waWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiBjb25maXJtU3VnZ2VzdGlvblwiPlxuICAgICAgPHN5bXBob255LWg1IHRleHQ9XCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIHRoaXMgY29udGFjdCBhcyBhIHBvdGVudGlhbCBkdXBsaWNhdGU/IFwiPjwvc3ltcGhvbnktaDU+XG4gICAgICA8ZGl2IGNsYXNzPVwic2Z4LW10LTIwIHJhZGlvLWFjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIGNsYXNzPVwicGVuZGluZy1pY29uXCIgW2ljb25dPVwiJ3NpLXBlbmRpbmctaW5jb21wbGV0ZSdcIj48L3N5bXBob255LWljb24+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIGNsYXNzPVwic2Z4LWZvbnQtaXRhbGljXCIgdGV4dD1cIkRvaW5nIHNvIGlzIGlycmV2ZXJzaWJsZSBhbmQgdGhpcyBjb250YWN0IHdpbGwgbmV2ZXIgYmUgc2hvd24gYXMgYSBwb3RlbnRpYWwgZHVwbGljYXRlIG9mIHRoaXMgY29udGFjdCBhZ2Fpbi5cIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBzZngtbXQtMzBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiU2VsZWN0ZWQgQ29udGFjdFwiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgICAgPHAgY2xhc3M9XCJzZngtbXQtNDAgc2Z4LWZvbnQtYm9sZFwiPnt7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5uYW1lIH19ICBbe3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmlkIH19XTwvcD5cbiAgICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgICAgPHAgKm5nRm9yPVwibGV0IGNyaXRlcmlvbiBvZiBtb2RlbC5zZWxlY3RlZENvbnRhY3QuY3JpdGVyaWFcIj57eyBjcml0ZXJpb24gfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgICAgPHN5bXBob255LWg1IHRleHQ9XCJNZXJnZSBTdWdnZXN0aW9uXCI+PC9zeW1waG9ueS1oNT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VnZ2VzdGlvbi1jb25maXJtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Z4LWZvbnQtYm9sZFwiPnt7IGNvbmZpcm1TdWdnZXN0aW9uLm5hbWUgfX0gW3t7IGNvbmZpcm1TdWdnZXN0aW9uLmlkIH19XTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNmeC1tdC01XCI+e3sgY29uZmlybVN1Z2dlc3Rpb24uZW1haWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNyaXRlcmlvbiBvZiBjb25maXJtU3VnZ2VzdGlvbi5jcml0ZXJpYVwiIGNsYXNzPVwic2Z4LW10LTVcIj57eyBjcml0ZXJpb24gfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiBjb25maXJtU3VnZ2VzdGlvbi5zdGF0dXNlc1wiIGNsYXNzPVwic2Z4LW10LTEwXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1zdGF0dXMtcGlsbCBbc3RhdHVzUGlsbE1vZGVsXT1cIntzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzfVwiPjwvc3ltcGhvbnktc3RhdHVzLXBpbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtLWFjdGlvbnNcIj5cbiAgICAgICAgPHN5bXBob255LWJ1dHRvbi12MlxuICAgICAgICAgIHRleHQ9XCJDYW5jZWxcIlxuICAgICAgICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJjYW5jZWxOb3REdXBsaWNhdGUoKVwiXG4gICAgICAgID48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgICAgICAgPHN5bXBob255LWJ1dHRvbi12MlxuICAgICAgICAgIHRleHQ9XCJDb25maXJtXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJjb25maXJtT25Ob3REdXBsaWNhdGUoKVwiXG4gICAgICAgID48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIj48L25nLWNvbnRlbnQ+XG4gIDwvc2VjdGlvbj5cbiAgPHNlY3Rpb24gKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiIGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPHN5bXBob255LWJ1dHRvbi12MiB0ZXh0PVwiQ2xvc2VcIiBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIj48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgICA8c3ltcGhvbnktYnV0dG9uLXYyIHRleHQ9XCJOZXh0XCIgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZCB8fCAhIWNvbmZpcm1TdWdnZXN0aW9uXCIgKGNsaWNrZWQpPVwib25OZXh0KClcIj48L3N5bXBob255LWJ1dHRvbi12Mj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL29yZ2FuaXNtcy9tZXJnZS1jb250YWN0cy1tb2RhbC9tZXJnZS1jb250YWN0cy1tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3REZXRhaWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGNyaXRlcmlhOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uIGV4dGVuZHMgTWVyZ2VDb250YWN0RGV0YWlsIHtcbiAgc3RhdHVzZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlQ29udGFjdHNNb2RhbE1vZGVsIHtcbiAgc2VsZWN0ZWRDb250YWN0OiBNZXJnZUNvbnRhY3REZXRhaWw7XG4gIHN1Z2dlc3Rpb25zOiBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL29yZ2FuaXNtcy9tZXJnZS1jb250YWN0cy1tb2RhbC9tZXJnZS1jb250YWN0cy1tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RDcml0ZXJpb24ge1xuICAvKipcbiAgICogRGlzcGxheSB2YWx1ZSBmb3IgdGhlIGNyaXRlcmlvbiAoZS5nLiBwaG9uZSBudW1iZXIgb3IgemlwIGNvZGUpLlxuICAgKi9cbiAgdmFsdWU6IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGljb24gY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBjcml0ZXJpb24gdHlwZS5cbiAgICovXG4gIGljb25DbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3REZXRhaWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGF0c0lkPzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBjcml0ZXJpYSB0byBkaXNwbGF5IGZvciB0aGUgY29udGFjdC5cbiAgICovXG4gIGNyaXRlcmlhOiBNZXJnZUNvbnRhY3RDcml0ZXJpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uIGV4dGVuZHMgTWVyZ2VDb250YWN0RGV0YWlsIHtcbiAgc3RhdHVzZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlQ29udGFjdHNNb2RhbE1vZGVsIHtcbiAgc2VsZWN0ZWRDb250YWN0OiBNZXJnZUNvbnRhY3REZXRhaWw7XG4gIHN1Z2dlc3Rpb25zOiBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uW107XG59XG4iXX0=