@ieeesa-npm/groups 0.15.17 → 0.15.19

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 (29) hide show
  1. package/esm2022/lib/assets/constants.json +27 -1
  2. package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +8 -10
  3. package/esm2022/lib/components/create-group/create-group.component.mjs +2 -2
  4. package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +7 -55
  5. package/esm2022/lib/components/interest-form/interest-form.component.mjs +3 -3
  6. package/esm2022/lib/components/interest-form-management/interest-form-management.component.mjs +3 -3
  7. package/esm2022/lib/components/interest-responses/interest-responses.component.mjs +119 -0
  8. package/esm2022/lib/components/interested-rosters/interested-rosters.component.mjs +370 -15
  9. package/esm2022/lib/components/roster-import-history/roster-import-history.component.mjs +106 -8
  10. package/esm2022/lib/components/view-roster/view-roster.component.mjs +2 -2
  11. package/esm2022/lib/groups.component.mjs +58 -9
  12. package/esm2022/lib/models/interest-response.model.mjs +18 -0
  13. package/esm2022/lib/models/roster-import.model.mjs +1 -1
  14. package/esm2022/lib/services/groups.service.mjs +91 -7
  15. package/esm2022/public-api.mjs +3 -1
  16. package/fesm2022/ieeesa-npm-groups.mjs +821 -212
  17. package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
  18. package/lib/components/edit-user-roles/edit-user-roles.component.d.ts +0 -10
  19. package/lib/components/interest-responses/interest-responses.component.d.ts +80 -0
  20. package/lib/components/interested-rosters/interested-rosters.component.d.ts +143 -9
  21. package/lib/components/roster-import-history/roster-import-history.component.d.ts +42 -4
  22. package/lib/groups.component.d.ts +9 -4
  23. package/lib/models/interest-response.model.d.ts +209 -0
  24. package/lib/models/roster-import.model.d.ts +12 -0
  25. package/lib/services/groups.service.d.ts +66 -10
  26. package/package.json +1 -1
  27. package/public-api.d.ts +2 -0
  28. package/esm2022/lib/assets/country-calling-codes.mjs +0 -83
  29. package/lib/assets/country-calling-codes.d.ts +0 -14
@@ -490,7 +490,7 @@ export class InterestFormComponent {
490
490
  this.destroy$.complete();
491
491
  }
492
492
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormComponent, deps: [{ token: i1.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }, { token: i2.InterestFormService }, { token: i3.GroupsService }, { token: i4.AlertsService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
493
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InterestFormComponent, isStandalone: true, selector: "ieeesa-interest-form", ngImport: i0, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [disabled]=\"!!editingQuestionId\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled", "canShowIcon"], outputs: ["slideToggleChange"] }, { kind: "component", type: RadioComponent, selector: "ieeesa-radio", inputs: ["formControlName", "radioGroup", "isDisabled"], outputs: ["selectedRadioOption"] }, { kind: "component", type: CustomQuestionEditorComponent, selector: "ieeesa-custom-question-editor", inputs: ["question"], outputs: ["save", "cancel"] }], encapsulation: i0.ViewEncapsulation.None }); }
493
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InterestFormComponent, isStandalone: true, selector: "ieeesa-interest-form", ngImport: i0, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [disabled]=\"!!editingQuestionId\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px;margin-bottom:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled", "canShowIcon"], outputs: ["slideToggleChange"] }, { kind: "component", type: RadioComponent, selector: "ieeesa-radio", inputs: ["formControlName", "radioGroup", "isDisabled"], outputs: ["selectedRadioOption"] }, { kind: "component", type: CustomQuestionEditorComponent, selector: "ieeesa-custom-question-editor", inputs: ["question"], outputs: ["save", "cancel"] }], encapsulation: i0.ViewEncapsulation.None }); }
494
494
  }
495
495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormComponent, decorators: [{
496
496
  type: Component,
@@ -500,7 +500,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
500
500
  SlideToggleComponent,
501
501
  RadioComponent,
502
502
  CustomQuestionEditorComponent,
503
- ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [disabled]=\"!!editingQuestionId\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"] }]
503
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [disabled]=\"!!editingQuestionId\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px;margin-bottom:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"] }]
504
504
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef, decorators: [{
505
505
  type: Optional
506
506
  }] }, { type: undefined, decorators: [{
@@ -509,4 +509,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
509
509
  type: Inject,
510
510
  args: [MAT_DIALOG_DATA]
511
511
  }] }, { type: i2.InterestFormService }, { type: i3.GroupsService }, { type: i4.AlertsService }, { type: i1.MatDialog }]; } });
512
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFHTixRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxjQUFjLEVBRWQsb0JBQW9CLEdBRXJCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBR0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUk1QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQWF6RDs7Ozs7Ozs7O0dBU0c7QUFlSCxNQUFNLE9BQU8scUJBQXFCO0lBdUNoQztJQUNFLDBDQUEwQztJQUN0QixTQUFnQztJQUNwRCwwQ0FBMEM7SUFDRSxLQUFnQjtJQUM1RCwwQ0FBMEM7SUFDbEMsbUJBQXdDO0lBQ2hELDBDQUEwQztJQUNsQyxhQUE0QjtJQUNwQywwQ0FBMEM7SUFDbEMsWUFBMkI7SUFDbkMsMENBQTBDO0lBQ2xDLE1BQWlCO1FBVkwsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFFUixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBRXBELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFFeEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFNUIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFFM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWxEM0IsOERBQThEO1FBQzlELGNBQVMsR0FBUSxTQUFTLENBQUM7UUFDM0Isc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxDQUFDO1FBQ2xFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQztRQUN0RCxpQkFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUM7UUFDcEQsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDO1FBQ2hFLDJCQUFzQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQztRQUN4RSwwQkFBcUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7UUFDdEUsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDO1FBQ3hFLGlDQUE0QixHQUMxQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsNEJBQTRCLENBQUM7UUFDdkQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLG9CQUFvQixDQUFDO1FBQ3BFLHFCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQztRQUM1RCxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDbEQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQ2xELHFCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQztRQUM1RCwwQkFBcUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7UUFDdEUsNEJBQXVCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixDQUFDO1FBQzFFLG9CQUFlLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQztRQUMxRCxlQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUM7UUFDM0QsZ0JBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQzlELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUdoRSxzQkFBaUIsR0FBMEIsRUFBRSxDQUFDO1FBQzlDLHFCQUFnQixHQUFrQixFQUFFLENBQUM7UUFDckMsOEVBQThFO1FBQzlFLDhFQUE4RTtRQUM5RSx5REFBeUQ7UUFDekQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBQ3RDLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO1FBRXpCLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUN2QyxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQWV2QyxDQUFDO0lBRUo7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQzdCLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixJQUFJLEVBQUUsQ0FDaEQsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQztZQUNiLEtBQUs7WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDdEIsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQjtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLFFBQVEsQ0FBQyxXQUFXLENBQUM7YUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLG9FQUFvRTtnQkFDcEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUN6QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxzQkFBc0IsQ0FDdkQsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLG1CQUFtQjthQUNyQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQzthQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxNQUFNLEdBQUcsUUFBUSxFQUFFLElBQUksQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLEVBQUUsWUFBWSxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRztvQkFDdEIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO29CQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWE7aUJBQzVCLENBQUM7Z0JBQ0Ysa0VBQWtFO2dCQUNsRSxJQUFJLENBQUMsZUFBZTtvQkFDbEIsTUFBTSxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUM7Z0JBQzNELElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQ3JDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1NBQzFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsMkJBQTJCO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsRCxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3JCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxlQUFlO1NBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQzthQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztTQUMxQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QiwyREFBMkQ7WUFDM0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLE9BQU87U0FDUjtRQUNELDJFQUEyRTtRQUMzRSx3RUFBd0U7UUFDeEUsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDO1lBQ3RELElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjthQUFNO1lBQ0wseUVBQXlFO1lBQ3pFLHdFQUF3RTtZQUN4RSxnRUFBZ0U7WUFDaEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHO2dCQUN0QixHQUFHLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3hCLE9BQU8sRUFBRSxLQUFLO2FBQ2YsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO2dCQUM3QixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlO2dCQUNoRCxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUs7Z0JBQzNCLGFBQWEsRUFBRSxJQUFJO2FBQ3BCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFBRSxPQUFPO1FBQ2pDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUUsT0FBTztRQUN4RCxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLGtCQUFrQixDQUFDO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDM0IsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUM5QixDQUFDLENBQUMsWUFBWSxDQUFDLElBQUk7Z0JBQ25CLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUTtZQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNqRSxDQUFDO2FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztTQUMxQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsQ0FBQyxNQUFtQjtRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU87UUFDbkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFdBQVcsR0FBbUI7WUFDbEMsVUFBVSxFQUFFLE1BQU07WUFDbEIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM1QixhQUFhLEVBQUUsRUFBRTtZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFLEVBQUU7WUFDWixPQUFPLEVBQUUsU0FBUztZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNO1NBQ3ZDLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxRQUF3QjtRQUNyQyxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxPQUFPO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLFFBQXdCO1FBQ3JDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLE1BQU0sT0FBTyxHQUFtQixFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDaEQsK0RBQStEO1lBQy9ELE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUMxQixJQUFJLENBQUMsbUJBQW1CO2lCQUNyQixjQUFjLENBQUMsT0FBTyxDQUFDO2lCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDOUIsU0FBUyxDQUFDO2dCQUNULElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3JDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7YUFDMUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUI7aUJBQ3JCLGNBQWMsQ0FBQyxRQUFRLENBQUM7aUJBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDckMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQzthQUMxQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxVQUE4QjtRQUM3QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNoRCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQ2pELENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLFVBQThCO1FBQzdDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUN4QixvREFBb0Q7UUFDcEQsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLGNBQWMsQ0FBQyxVQUFVLENBQUM7YUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxVQUFVLEVBQUU7b0JBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7b0JBQzlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7aUJBQ25DO2dCQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztTQUMxQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLEtBQW9DO1FBQ3JELE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELEdBQUcsUUFBUTtZQUNYLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLG1CQUFtQjthQUNyQixnQkFBZ0IsQ0FDZixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQW9CO1lBQ3pDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztTQUM5QixDQUFDLENBQUMsQ0FDSjthQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULHFFQUFxRTtZQUNyRSxnRUFBZ0U7WUFDaEUsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsSUFBOEI7UUFDekMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7WUFDL0IsS0FBSyxpQkFBaUIsQ0FBQyxRQUFRO2dCQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO1lBQ25DLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztZQUNuQyxLQUFLLGlCQUFpQixDQUFDLFFBQVE7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDbkMsS0FBSyxpQkFBaUIsQ0FBQyxLQUFLO2dCQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO1lBQ2hDLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztZQUMvQjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCw4REFBOEQ7SUFDOUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7WUFDN0IsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxPQUFPO1lBQ2hELFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSztZQUMzQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDOUMsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixTQUFTLEVBQUUsTUFBTTtZQUNqQixVQUFVLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw4QkFBOEIsQ0FBQztZQUNuRSxTQUFTLEVBQUUsSUFBSTtZQUNmLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksRUFBRTtnQkFDdEMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ3RDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLFFBQTZCO1FBQ3BELE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQUMsS0FBYSxFQUFFLFFBQXdCO1FBQ3ZELE9BQU8sUUFBUSxDQUFDLFVBQW9CLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQXBlVSxxQkFBcUIsOERBMkNWLGVBQWU7bUdBM0MxQixxQkFBcUIsZ0ZDNUVsQyxvMVJBOE5BLG81WUQ1SkksWUFBWSwrUEFDWixjQUFjLDZqQ0FDZCxvQkFBb0IseUtBQ3BCLGNBQWMsb0pBQ2QsNkJBQTZCOzs0RkFNcEIscUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCw2QkFBNkI7cUJBQzlCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7OzBCQTJDbEMsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgTUFUX0RJQUxPR19EQVRBLFxyXG4gIE1hdERpYWxvZyxcclxuICBNYXREaWFsb2dSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ2RrRHJhZ0Ryb3AsXHJcbiAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgbW92ZUl0ZW1JbkFycmF5LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQge1xyXG4gIFJhZGlvQ29tcG9uZW50LFxyXG4gIFJhZGlvT3B0aW9uLFxyXG4gIFNsaWRlVG9nZ2xlQ29tcG9uZW50LFxyXG4gIFNsaWRlVG9nZ2xlT3B0aW9uLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSwgQWxlcnRzU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEN1c3RvbVF1ZXN0aW9uLFxyXG4gIEdyb3VwUm9sZSxcclxuICBJbnRlcmVzdE1vZGUsXHJcbiAgTUVNQkVSX0xFVkVMX1JPTEVfVFlQRSxcclxuICBRdWVzdGlvbkZpZWxkVHlwZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvY3VzdG9tLXF1ZXN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnRlcmVzdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tUXVlc3Rpb25FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b20tcXVlc3Rpb24tZWRpdG9yL2N1c3RvbS1xdWVzdGlvbi1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW50ZXJlc3RGb3JtUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZXN0LWZvcm0tcHJldmlldy9pbnRlcmVzdC1mb3JtLXByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQgKGxvY2tlZCkgcXVlc3Rpb24gcm93IHNob3duIGluIHRoZSBJbnRlcmVzdCBGb3JtIHRhYi5cclxuICogQGV4cG9ydFxyXG4gKiBAaW50ZXJmYWNlIFN0YW5kYXJkUXVlc3Rpb25Sb3dcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRRdWVzdGlvblJvdyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHRhZzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogXCJJbnRlcmVzdCBGb3JtXCIgdGFiIGNvbnRlbnQgb2YgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChTUDNNLTMxNykuIFRoZVxyXG4gKiBncm91cCBhZG1pbiBlbmFibGVzL2Rpc2FibGVzIHRoZSBmb3JtLCB2aWV3cyBsb2NrZWQgc3RhbmRhcmQgcXVlc3Rpb25zLFxyXG4gKiBjaG9vc2VzIHRoZSBkZWZhdWx0IG1lbWJlcnNoaXAgbGV2ZWwgYW5kIG1hbmFnZXMgY3VzdG9tIHF1ZXN0aW9uc1xyXG4gKiAoYWRkIC8gZWRpdCAvIHJlb3JkZXIgLyByZW1vdmUpLCBwZXJzaXN0ZWQgdG8gdGhlIGdyb3VwcyBiYWNrZW5kIHZpYVxyXG4gKiBJbnRlcmVzdEZvcm1TZXJ2aWNlLiBFYWNoIHF1ZXN0aW9uIGlzIHNhdmVkIGluZGl2aWR1YWxseSAoY3JlYXRlL3VwZGF0ZSkgYW5kXHJcbiAqIHRoZSBlbmFibGUgbW9kZSArIGRlZmF1bHQgbGV2ZWwgYXJlIHNhdmVkIHZpYSB0aGUgaW50ZXJlc3QtY29uZmlnIGVuZHBvaW50LlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWludGVyZXN0LWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBTbGlkZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFJhZGlvQ29tcG9uZW50LFxyXG4gICAgQ3VzdG9tUXVlc3Rpb25FZGl0b3JDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICBpbnRlcmVzdEZvcm1UZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5yb3N0ZXJJbnRlcmVzdHM/LmludGVyZXN0Rm9ybTtcclxuICBjaGFuZ2VzTm90aWNlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uY2hhbmdlc05vdGljZTtcclxuICBzZWN0aW9uVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zZWN0aW9uVGl0bGU7XHJcbiAgc2VjdGlvbkRlc2NyaXB0aW9uID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc2VjdGlvbkRlc2NyaXB0aW9uO1xyXG4gIHN0YW5kYXJkUXVlc3Rpb25zVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zdGFuZGFyZFF1ZXN0aW9uc1RpdGxlO1xyXG4gIHN0YW5kYXJkUXVlc3Rpb25zSGludCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkUXVlc3Rpb25zSGludDtcclxuICBkZWZhdWx0TWVtYmVyc2hpcFRpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZGVmYXVsdE1lbWJlcnNoaXBUaXRsZTtcclxuICBkZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uID1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlZmF1bHRNZW1iZXJzaGlwRGVzY3JpcHRpb247XHJcbiAgY3VzdG9tUXVlc3Rpb25zVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5jdXN0b21RdWVzdGlvbnNUaXRsZTtcclxuICBhZGRRdWVzdGlvbkxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uYWRkUXVlc3Rpb25MYWJlbDtcclxuICByZXF1aXJlZFRhZyA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnJlcXVpcmVkVGFnO1xyXG4gIHN0YW5kYXJkVGFnID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRUYWc7XHJcbiAgbmV3UXVlc3Rpb25MYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5ld1F1ZXN0aW9uTGFiZWw7XHJcbiAgZWRpdFF1ZXN0aW9uQXJpYUxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZWRpdFF1ZXN0aW9uQXJpYUxhYmVsO1xyXG4gIGRlbGV0ZVF1ZXN0aW9uQXJpYUxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZGVsZXRlUXVlc3Rpb25BcmlhTGFiZWw7XHJcbiAgbm9MZXZlbHNNZXNzYWdlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ubm9MZXZlbHNNZXNzYWdlO1xyXG4gIHR5cGVMYWJlbHMgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5xdWVzdGlvbkVkaXRvcj8udHlwZXM7XHJcbiAgY2FuY2VsTGFiZWwgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5mb290ZXI/LmNhbmNlbDtcclxuICBwcmV2aWV3TGFiZWwgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5mb290ZXI/LnByZXZpZXc7XHJcblxyXG4gIGVuYWJsZUZvcm1Ub2dnbGUhOiBTbGlkZVRvZ2dsZU9wdGlvbjtcclxuICBzdGFuZGFyZFF1ZXN0aW9uczogU3RhbmRhcmRRdWVzdGlvblJvd1tdID0gW107XHJcbiAgbWVtYmVyc2hpcExldmVsczogUmFkaW9PcHRpb25bXSA9IFtdO1xyXG4gIC8vIERlZmF1bHRzIHRvIGRpc2FibGVkIChPRkYpLiBUaGUgcmVhbCBzdGF0ZSBpcyBkcml2ZW4gYnkgdGhlIEFQSSByZXNwb25zZSBpblxyXG4gIC8vIGxvYWRDb25maWc7IHdoZW4gbm8gY29uZmlnIGhhcyBiZWVuIHNhdmVkIHlldCB0aGUgYmFja2VuZCByZXR1cm5zIERJU0FCTEVELFxyXG4gIC8vIHNvIHRoZSBmaXJzdC10aW1lIHZpZXcgY29ycmVjdGx5IHNob3dzIHRoZSB0b2dnbGUgT0ZGLlxyXG4gIGlzRm9ybUVuYWJsZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZExldmVsSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGxldmVsczogR3JvdXBSb2xlW10gPSBbXTtcclxuXHJcbiAgY3VzdG9tUXVlc3Rpb25zOiBDdXN0b21RdWVzdGlvbltdID0gW107XHJcbiAgZWRpdGluZ1F1ZXN0aW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8dW5rbm93bj4sXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZ3JvdXA6IEdyb3VwSW5mbyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBpbnRlcmVzdEZvcm1TZXJ2aWNlOiBJbnRlcmVzdEZvcm1TZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdyb3Vwc1NlcnZpY2U6IEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyBzdGF0aWMgVUkgb3B0aW9ucyBhbmQgbG9hZHMgdGhlIGdyb3VwJ3MgaW50ZXJlc3QgY29uZmlnIGFuZFxyXG4gICAqIGN1c3RvbSBxdWVzdGlvbnMgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2Uuc2V0QXBpQmFzZVVybCh0aGlzLmdyb3Vwc1NlcnZpY2U/LmFwaUJhc2VVcmwpO1xyXG4gICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICBjaGVja2VkOiB0aGlzLmlzRm9ybUVuYWJsZWQsXHJcbiAgICAgIGFyaWFMYWJlbDogdGhpcy5zZWN0aW9uVGl0bGUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zdGFuZGFyZFF1ZXN0aW9ucyA9IChcclxuICAgICAgdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRRdWVzdGlvbnMgPz8gW11cclxuICAgICkubWFwKChsYWJlbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiAoe1xyXG4gICAgICBpZDogaW5kZXggKyAxLFxyXG4gICAgICBsYWJlbCxcclxuICAgICAgdGFnOiB0aGlzLnN0YW5kYXJkVGFnLFxyXG4gICAgfSkpO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXA/Lmdyb3VwSWQpIHtcclxuICAgICAgdGhpcy5sb2FkTWVtYmVyc2hpcExldmVscygpO1xyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSByZWFsIG1lbWJlcnNoaXAgbGV2ZWxzIGZvciB0aGUgZ3JvdXAncyBncm91cCB0eXBlIGFuZCB0aGVuIHRoZVxyXG4gICAqIHNhdmVkIGludGVyZXN0IGNvbmZpZ3VyYXRpb24gKHNvIHRoZSBzYXZlZCBkZWZhdWx0IGxldmVsIGNhbiBiZVxyXG4gICAqIHByZXNlbGVjdGVkKS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbG9hZE1lbWJlcnNoaXBMZXZlbHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBncm91cFR5cGVJZCA9IHRoaXMuZ3JvdXA/Lmdyb3VwVHlwZTtcclxuICAgIGlmICghZ3JvdXBUeXBlSWQpIHtcclxuICAgICAgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAuZ2V0Um9sZXMoZ3JvdXBUeXBlSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAvLyBNZW1iZXIgbGV2ZWxzIGFyZSB0aGUgcm9sZXMgd2hvc2Ugcm9sZVR5cGVOYW1lIGlzIFwiTWVtYmVyIExldmVsXCIuXHJcbiAgICAgICAgICB0aGlzLmxldmVscyA9IChyZXNwb25zZT8uYm9keSA/PyBbXSkuZmlsdGVyKFxyXG4gICAgICAgICAgICAocm9sZSkgPT4gcm9sZS5yb2xlVHlwZU5hbWUgPT09IE1FTUJFUl9MRVZFTF9ST0xFX1RZUEVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDb25maWcoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChtb2RlICsgZGVmYXVsdCBsZXZlbCkgYW5kIHN5bmNzXHJcbiAgICogdGhlIHRvZ2dsZSBhbmQgdGhlIGRlZmF1bHQtbGV2ZWwgcmFkaW8gc2VsZWN0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBsb2FkQ29uZmlnKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRJbnRlcmVzdENvbmZpZyh0aGlzLmdyb3VwLmdyb3VwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb25maWcgPSByZXNwb25zZT8uYm9keTtcclxuICAgICAgICAgIHRoaXMuaXNGb3JtRW5hYmxlZCA9IGNvbmZpZz8uaW50ZXJlc3RNb2RlID09PSBJbnRlcmVzdE1vZGUuRk9STTtcclxuICAgICAgICAgIHRoaXMuZW5hYmxlRm9ybVRvZ2dsZSA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5lbmFibGVGb3JtVG9nZ2xlLFxyXG4gICAgICAgICAgICBjaGVja2VkOiB0aGlzLmlzRm9ybUVuYWJsZWQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgLy8gUHJlc2VsZWN0IHRoZSBzYXZlZCBkZWZhdWx0IGxldmVsLCBlbHNlIHRoZSBmaXJzdCBtZW1iZXIgbGV2ZWwuXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA9XHJcbiAgICAgICAgICAgIGNvbmZpZz8uZGVmYXVsdExldmVsSWQgPz8gdGhpcy5sZXZlbHNbMF0/LnJvbGVJZCA/PyBudWxsO1xyXG4gICAgICAgICAgdGhpcy5idWlsZE1lbWJlcnNoaXBMZXZlbE9wdGlvbnMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkcyB0aGUgcmFkaW8gb3B0aW9ucyBmcm9tIHRoZSByZWFsIG1lbWJlcnNoaXAgbGV2ZWxzLCBtYXJraW5nIHRoZVxyXG4gICAqIGN1cnJlbnRseSBzZWxlY3RlZCBsZXZlbCBhcyBjaGVja2VkLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBidWlsZE1lbWJlcnNoaXBMZXZlbE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1lbWJlcnNoaXBMZXZlbHMgPSB0aGlzLmxldmVscy5tYXAoKGxldmVsKSA9PiAoe1xyXG4gICAgICBpZDogbGV2ZWwucm9sZUlkLFxyXG4gICAgICBsYWJlbDogbGV2ZWwucm9sZU5hbWUsXHJcbiAgICAgIGNoZWNrZWQ6IGxldmVsLnJvbGVJZCA9PT0gdGhpcy5zZWxlY3RlZExldmVsSWQsXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgZ3JvdXAncyBjdXN0b20gcXVlc3Rpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBsb2FkUXVlc3Rpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRRdWVzdGlvbnModGhpcy5ncm91cC5ncm91cElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSByZXNwb25zZT8uYm9keSA/PyBbXTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGZvcm0tZW5hYmxlZCBzdGF0ZSBhbmQgcGVyc2lzdHMgdGhlIG5ldyBpbnRlcmVzdCBtb2RlLlxyXG4gICAqIEBwYXJhbSB7U2xpZGVUb2dnbGVPcHRpb259IHRvZ2dsZVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkVuYWJsZUZvcm1Ub2dnbGUodG9nZ2xlOiBTbGlkZVRvZ2dsZU9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Zvcm1FbmFibGVkID0gdG9nZ2xlPy5jaGVja2VkO1xyXG4gICAgaWYgKCF0aGlzLmlzRm9ybUVuYWJsZWQpIHtcclxuICAgICAgLy8gRGlzYWJsaW5nIGFsd2F5cyBwZXJzaXN0cyBpbW1lZGlhdGVseSAobm8gbGV2ZWwgbmVlZGVkKS5cclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIEVuYWJsaW5nIHJlcXVpcmVzIGEgZGVmYXVsdCBsZXZlbCAoYmFja2VuZCByZWplY3RzIEZPUk0gd2l0aG91dCBvbmUpLiBJZlxyXG4gICAgLy8gbm9uZSBpcyBzZWxlY3RlZCB5ZXQsIGF1dG8tc2VsZWN0IHRoZSBsZXZlbCBmbGFnZ2VkIGRlZmF1bHQsIGVsc2UgdGhlXHJcbiAgICAvLyBmaXJzdCBhdmFpbGFibGUgbGV2ZWwsIHNvIHRoZSB0b2dnbGUgcGVyc2lzdHMgaW1tZWRpYXRlbHkuXHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMZXZlbElkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRMZXZlbElkID0gdGhpcy5sZXZlbHNbMF0/LnJvbGVJZCA/PyBudWxsO1xyXG4gICAgICB0aGlzLmJ1aWxkTWVtYmVyc2hpcExldmVsT3B0aW9ucygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMZXZlbElkKSB7XHJcbiAgICAgIHRoaXMuc2F2ZUNvbmZpZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gTm8gbWVtYmVyc2hpcCBsZXZlbHMgY29uZmlndXJlZCBmb3IgdGhpcyBncm91cCB0eXBlOiBjYW5ub3QgZW5hYmxlLCBzb1xyXG4gICAgICAvLyByZXZlcnQgdGhlIHRvZ2dsZS9lbmFibGVkIHN0YXRlIHRvIGZhbHNlIGJlZm9yZSBhbGVydGluZyAobm90aGluZyB3YXNcclxuICAgICAgLy8gcGVyc2lzdGVkLCBhbmQgdGhlIGRlcGVuZGVudCBzZWN0aW9ucyBtdXN0IG5vdCBzdGF5IHZpc2libGUpLlxyXG4gICAgICB0aGlzLmlzRm9ybUVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZW5hYmxlRm9ybVRvZ2dsZSxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5vTGV2ZWxzTWVzc2FnZSxcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJzaXN0cyB0aGUgaW50ZXJlc3QgY29uZmlnLiBUaGUgZGVmYXVsdCBsZXZlbCBpcyBvbmx5IHNlbnQgZm9yIHRoZVxyXG4gICAqIGVuYWJsZWQgKEZPUk0pIG1vZGU7IERJU0FCTEVEIGNsZWFycyBpdC4gRW5hYmxpbmcgd2l0aG91dCBhIHNlbGVjdGVkIGxldmVsXHJcbiAgICogaXMgc2tpcHBlZCBzbyBhbiBpbnZhbGlkIHJlcXVlc3QgaXMgbmV2ZXIgc2VudC5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2F2ZUNvbmZpZygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ncm91cD8uZ3JvdXBJZCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaXNGb3JtRW5hYmxlZCAmJiAhdGhpcy5zZWxlY3RlZExldmVsSWQpIHJldHVybjtcclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAuc2F2ZUludGVyZXN0Q29uZmlnKHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwLmdyb3VwSWQsXHJcbiAgICAgICAgaW50ZXJlc3RNb2RlOiB0aGlzLmlzRm9ybUVuYWJsZWRcclxuICAgICAgICAgID8gSW50ZXJlc3RNb2RlLkZPUk1cclxuICAgICAgICAgIDogSW50ZXJlc3RNb2RlLkRJU0FCTEVELFxyXG4gICAgICAgIGRlZmF1bHRMZXZlbElkOiB0aGlzLmlzRm9ybUVuYWJsZWQgPyB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA6IG51bGwsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjb3JkcyB0aGUgc2VsZWN0ZWQgZGVmYXVsdCBtZW1iZXJzaGlwIGxldmVsIGFuZCBwZXJzaXN0cyB0aGUgY29uZmlnIHdoZW5cclxuICAgKiB0aGUgZm9ybSBpcyBlbmFibGVkLlxyXG4gICAqIEBwYXJhbSB7UmFkaW9PcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbk1lbWJlcnNoaXBMZXZlbENoYW5nZShvcHRpb246IFJhZGlvT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA9IFN0cmluZyhvcHRpb24/LmlkKTtcclxuICAgIGlmICh0aGlzLmlzRm9ybUVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3IGJsYW5rIHF1ZXN0aW9uIGFuZCBvcGVucyBpdHMgZWRpdG9yLiBPbmx5IG9uZSBlZGl0b3IgaXMgb3BlbiBhdFxyXG4gICAqIGEgdGltZS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BZGRRdWVzdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkKSByZXR1cm47XHJcbiAgICBjb25zdCB0ZW1wSWQgPSBgbmV3LSR7RGF0ZS5ub3coKX1gO1xyXG4gICAgY29uc3QgbmV3UXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uID0ge1xyXG4gICAgICBxdWVzdGlvbklkOiB0ZW1wSWQsXHJcbiAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXA/Lmdyb3VwSWQsXHJcbiAgICAgIHF1ZXN0aW9uTGFiZWw6ICcnLFxyXG4gICAgICBmaWVsZFR5cGU6IG51bGwsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgaGVscFRleHQ6ICcnLFxyXG4gICAgICBvcHRpb25zOiB1bmRlZmluZWQsXHJcbiAgICAgIHZpZXdPcmRlcjogdGhpcy5jdXN0b21RdWVzdGlvbnMubGVuZ3RoLFxyXG4gICAgfTtcclxuICAgIHRoaXMuY3VzdG9tUXVlc3Rpb25zID0gWy4uLnRoaXMuY3VzdG9tUXVlc3Rpb25zLCBuZXdRdWVzdGlvbl07XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gdGVtcElkO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVucyB0aGUgZWRpdG9yIGZvciBhbiBleGlzdGluZyBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkVkaXRRdWVzdGlvbihxdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb24pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkKSByZXR1cm47XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gcXVlc3Rpb24ucXVlc3Rpb25JZCA/PyBudWxsO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBxdWVzdGlvbiBvbiB0aGUgYmFja2VuZCBhbmQgcmVmcmVzaGVzIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2F2ZVF1ZXN0aW9uKHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24pIHtcclxuICAgICAgY29uc3QgcGF5bG9hZDogQ3VzdG9tUXVlc3Rpb24gPSB7IC4uLnF1ZXN0aW9uIH07XHJcbiAgICAgIC8vIFJlbW92ZSB0aGUgdGVtcG9yYXJ5IGNsaWVudCBpZCBzbyB0aGUgYmFja2VuZCBnZW5lcmF0ZXMgb25lLlxyXG4gICAgICBkZWxldGUgcGF5bG9hZC5xdWVzdGlvbklkO1xyXG4gICAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgICAuY3JlYXRlUXVlc3Rpb24ocGF5bG9hZClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLmFmdGVyUXVlc3Rpb25TYXZlZCgpLFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgICAudXBkYXRlUXVlc3Rpb24ocXVlc3Rpb24pXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4gdGhpcy5hZnRlclF1ZXN0aW9uU2F2ZWQoKSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBlZGl0b3IgYW5kIHJlbG9hZHMgdGhlIHF1ZXN0aW9ucyBhZnRlciBhIHN1Y2Nlc3NmdWwgc2F2ZS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZnRlclF1ZXN0aW9uU2F2ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgIHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgIHRoaXMubG9hZFF1ZXN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBlZGl0b3IuIEEgbmV3bHkgYWRkZWQgcXVlc3Rpb24gaXMgcmVtb3ZlZCBvbiBjYW5jZWw7IGFuIGV4aXN0aW5nXHJcbiAgICogcXVlc3Rpb24ga2VlcHMgaXRzIHByZXZpb3VzIHZhbHVlcy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlc3Rpb25JZFxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNhbmNlbFF1ZXN0aW9uKHF1ZXN0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24pIHtcclxuICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSB0aGlzLmN1c3RvbVF1ZXN0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHF1ZXN0aW9uKSA9PiBxdWVzdGlvbi5xdWVzdGlvbklkICE9PSBxdWVzdGlvbklkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgIHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBxdWVzdGlvbiBvbiB0aGUgYmFja2VuZCBhbmQgcmVmcmVzaGVzIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVzdGlvbklkXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRGVsZXRlUXVlc3Rpb24ocXVlc3Rpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoIXF1ZXN0aW9uSWQpIHJldHVybjtcclxuICAgIC8vIEEgbm90LXlldC1zYXZlZCBxdWVzdGlvbiBvbmx5IGV4aXN0cyBjbGllbnQtc2lkZS5cclxuICAgIGlmIChxdWVzdGlvbklkLnN0YXJ0c1dpdGgoJ25ldy0nKSkge1xyXG4gICAgICB0aGlzLm9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb25JZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAucmVtb3ZlUXVlc3Rpb24ocXVlc3Rpb25JZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5lZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb25JZCkge1xyXG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW9yZGVycyBxdWVzdGlvbnMgb24gZHJhZy1kcm9wIGFuZCBwZXJzaXN0cyB0aGUgbmV3IG9yZGVyLlxyXG4gICAqIEBwYXJhbSB7Q2RrRHJhZ0Ryb3A8Q3VzdG9tUXVlc3Rpb25bXT59IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUmVvcmRlclF1ZXN0aW9ucyhldmVudDogQ2RrRHJhZ0Ryb3A8Q3VzdG9tUXVlc3Rpb25bXT4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmN1c3RvbVF1ZXN0aW9uc107XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkocmVvcmRlcmVkLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSByZW9yZGVyZWQubWFwKChxdWVzdGlvbiwgaW5kZXgpID0+ICh7XHJcbiAgICAgIC4uLnF1ZXN0aW9uLFxyXG4gICAgICB2aWV3T3JkZXI6IGluZGV4LFxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5yZW9yZGVyUXVlc3Rpb25zKFxyXG4gICAgICAgIHRoaXMuY3VzdG9tUXVlc3Rpb25zLm1hcCgocXVlc3Rpb24pID0+ICh7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkIGFzIHN0cmluZyxcclxuICAgICAgICAgIHZpZXdPcmRlcjogcXVlc3Rpb24udmlld09yZGVyLFxyXG4gICAgICAgIH0pKVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgLy8gVGhlIGxpc3Qgd2FzIHJlb3JkZXJlZCBvcHRpbWlzdGljYWxseTsgaWYgdGhlIGJhY2tlbmQgcmVqZWN0ZWQgdGhlXHJcbiAgICAgICAgLy8gbmV3IG9yZGVyLCByZWxvYWQgc28gdGhlIGNsaWVudCByZWZsZWN0cyB0aGUgcGVyc2lzdGVkIG9yZGVyLlxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IGxhYmVsIGZvciBhIHF1ZXN0aW9uJ3MgZmllbGQgdHlwZS5cclxuICAgKiBAcGFyYW0geyhRdWVzdGlvbkZpZWxkVHlwZSB8IG51bGwpfSB0eXBlXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBnZXRUeXBlTGFiZWwodHlwZTogUXVlc3Rpb25GaWVsZFR5cGUgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uRmllbGRUeXBlLlRFWFQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8udGV4dDtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5URVhUQVJFQTpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy50ZXh0QXJlYTtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5TRUxFQ1Q6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8uZHJvcGRvd247XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuQ0hFQ0tCT1g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8uY2hlY2tib3g7XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuUkFESU86XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8ucmFkaW87XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuREFURTpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5kYXRlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIGFuIGVycm9yIGFsZXJ0IGZvciBhIGZhaWxlZCBpbnRlcmVzdC1mb3JtIG9wZXJhdGlvbi5cclxuICAgKiBAcGFyYW0geyp9IGVycm9yXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogZXJyb3I/LmVycm9yPy5tZXNzYWdlID8/IGVycm9yPy5tZXNzYWdlLFxyXG4gICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBpbnRlcmVzdCBmb3JtIGluIHJlYWQtb25seSBwcmV2aWV3IG1vZGUgKFNQM00tMzE3IFI2LjcpLCByZXVzaW5nXHJcbiAgICogdGhlIHNoYXJlZCBleHByZXNzLWludGVyZXN0IGRpYWxvZy4gU2hvd3MgdGhlIGFkbWluJ3MgY3VycmVudCBjdXN0b21cclxuICAgKiBxdWVzdGlvbnMgYXMgYW4gZW5kIHVzZXIgd291bGQgc2VlIHRoZW07IG5vIHN1Ym1pdCwgQ2FuY2VsIG9ubHkuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUHJldmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nPy5vcGVuKEludGVyZXN0Rm9ybVByZXZpZXdDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc3MjBweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnOTJ2dycsXHJcbiAgICAgIG1heEhlaWdodDogJzkwdmgnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCAnaWVlZXNhLWludGVyZXN0LWZvcm0tcHJldmlldyddLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBncm91cE5hbWU6IHRoaXMuZ3JvdXA/Lmdyb3VwTmFtZSA/PyAnJyxcclxuICAgICAgICBjdXN0b21RdWVzdGlvbnM6IHRoaXMuY3VzdG9tUXVlc3Rpb25zLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChDYW5jZWwgYWN0aW9uKS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5nRm9yIHRyYWNraW5nIGZvciBzdGFuZGFyZCBxdWVzdGlvbiByb3dzLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7U3RhbmRhcmRRdWVzdGlvblJvd30gcXVlc3Rpb25cclxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBxdWVzdGlvbjogU3RhbmRhcmRRdWVzdGlvblJvdyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gcXVlc3Rpb24uaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBuZ0ZvciB0cmFja2luZyBmb3IgY3VzdG9tIHF1ZXN0aW9ucy5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeVF1ZXN0aW9uSWQoaW5kZXg6IG51bWJlciwgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBxdWVzdGlvbi5xdWVzdGlvbklkIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGFuZCBjb21wbGV0ZXMgdGhlIGRlc3Ryb3kgc3ViamVjdCBzbyBhbnkgaW4tZmxpZ2h0IHJlcXVlc3RzIGFyZVxyXG4gICAqIHVuc3Vic2NyaWJlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UgaWVlZXNhLWJvZHktc20tMTRcIiByb2xlPVwibm90ZVwiPlxyXG4gICAgPHN2Z1xyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UtaWNvblwiXHJcbiAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0xMiAyTDEgMjFoMjJMMTIgMnptMCA0LjVMMTkuNSAxOS41aC0xNUwxMiA2LjV6TTExIDEwdjVoMnYtNWgtMnptMCA2djJoMnYtMmgtMnpcIlxyXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3Bhbj57eyBjaGFuZ2VzTm90aWNlIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8c2VjdGlvbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3JvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgICAgICB7eyBzZWN0aW9uVGl0bGUgfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tZGVzYyBpZWVlc2EtYm9keS1zbS0xNCBtLTBcIj5cclxuICAgICAgICAgIHt7IHNlY3Rpb25EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpZWVlc2Etc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgW3NsaWRlVG9nZ2xlXT1cImVuYWJsZUZvcm1Ub2dnbGVcIlxyXG4gICAgICAgIChzbGlkZVRvZ2dsZUNoYW5nZSk9XCJvbkVuYWJsZUZvcm1Ub2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1zbGlkZS10b2dnbGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1oZWFkaW5nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fbG9ja1wiXHJcbiAgICAgICAgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGQ9XCJNMTIgMmE1IDUgMCAwIDAtNSA1djNINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04YTIgMiAwIDAgMC0yLTJoLTFWN2E1IDUgMCAwIDAtNS01em0tMyA1YTMgMyAwIDAgMSA2IDB2M0g5Vjd6bS0zIDVoMTJ2OEg2di04elwiXHJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICB7eyBzdGFuZGFyZFF1ZXN0aW9uc1RpdGxlIH19XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2hpbnQgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgIHN0YW5kYXJkUXVlc3Rpb25zSGludFxyXG4gICAgICB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHVsIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHN0YW5kYXJkUXVlc3Rpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxhYmVsIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLmxhYmVsXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtdGFnIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLnRhZ1xyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgIHt7IGRlZmF1bHRNZW1iZXJzaGlwVGl0bGUgfX1cclxuICAgIDwvaDI+XHJcbiAgICA8cCBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWRlc2MgaWVlZXNhLWJvZHktc20tMTRcIj5cclxuICAgICAge3sgZGVmYXVsdE1lbWJlcnNoaXBEZXNjcmlwdGlvbiB9fVxyXG4gICAgPC9wPlxyXG4gICAgPGllZWVzYS1yYWRpb1xyXG4gICAgICAqbmdJZj1cIm1lbWJlcnNoaXBMZXZlbHMubGVuZ3RoID4gMFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRNZW1iZXJzaGlwTGV2ZWxcIlxyXG4gICAgICBbcmFkaW9Hcm91cF09XCJtZW1iZXJzaGlwTGV2ZWxzXCJcclxuICAgICAgKHNlbGVjdGVkUmFkaW9PcHRpb24pPVwib25NZW1iZXJzaGlwTGV2ZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9pZWVlc2EtcmFkaW8+XHJcbiAgICA8cFxyXG4gICAgICAqbmdJZj1cIm1lbWJlcnNoaXBMZXZlbHMubGVuZ3RoID09PSAwXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1kZXNjIGllZWVzYS1ib2R5LXNtLTE0XCJcclxuICAgID5cclxuICAgICAge3sgbm9MZXZlbHNNZXNzYWdlIH19XHJcbiAgICA8L3A+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8c2VjdGlvbiAqbmdJZj1cImlzRm9ybUVuYWJsZWRcIiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2N1c3RvbS1oZWFkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgICAge3sgY3VzdG9tUXVlc3Rpb25zVGl0bGUgfX1cclxuICAgICAgPC9oMj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2FkZC1xdWVzdGlvbiBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgICAoY2xpY2spPVwib25BZGRRdWVzdGlvbigpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFkZFF1ZXN0aW9uTGFiZWxcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgYWRkUXVlc3Rpb25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tbGlzdFwiXHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25SZW9yZGVyUXVlc3Rpb25zKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGN1c3RvbVF1ZXN0aW9uczsgdHJhY2tCeTogdHJhY2tCeVF1ZXN0aW9uSWRcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvblwiXHJcbiAgICAgICAgW2NsYXNzLmllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi0tZWRpdGluZ109XCJcclxuICAgICAgICAgIGVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uLXJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yXCJcclxuICAgICAgICAgIFtjbGFzcy5pZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tcm93LS1lZGl0aW5nXT1cIlxyXG4gICAgICAgICAgICBlZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb24ucXVlc3Rpb25JZFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tbWFpblwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2RyYWctaGFuZGxlXCJcclxuICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXHJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxMiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMlwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjJcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiOFwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjE0XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMTRcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1sYWJlbCBpZWVlc2EtYm9keS1zbS0xNFwiPlxyXG4gICAgICAgICAgICAgIHt7IHF1ZXN0aW9uLnF1ZXN0aW9uTGFiZWwgfHwgbmV3UXVlc3Rpb25MYWJlbCB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5maWVsZFR5cGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2NoaXAgaWVlZXNhLWludGVyZXN0LWZvcm1fX2NoaXAtLXR5cGUgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgZ2V0VHlwZUxhYmVsKHF1ZXN0aW9uLmZpZWxkVHlwZSkgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcCBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcC0tcmVxdWlyZWQgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgcmVxdWlyZWRUYWcgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlZGl0aW5nUXVlc3Rpb25JZCAhPT0gcXVlc3Rpb24ucXVlc3Rpb25JZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9faWNvbi1idG5cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkVkaXRRdWVzdGlvbihxdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZWRpdFF1ZXN0aW9uQXJpYUxhYmVsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTYuMDYuNTlsMS4zNSAxLjM1Yy43OS43OC43OSAyLjA1IDAgMi44M0w0LjE4IDE4SDB2LTQuMThMMTAuNCAzLjQxIDEzLjIzLjU5Yy43OC0uNzggMi4wNS0uNzggMi44MyAwek0yIDE2bDEuNDEuMDZMMTMuMjMgNi4yM2wtMS40MS0xLjQxTDIgMTQuNjRWMTZ6XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19pY29uLWJ0biBpZWVlc2EtaW50ZXJlc3QtZm9ybV9faWNvbi1idG4tLWRlbGV0ZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlUXVlc3Rpb24ocXVlc3Rpb24ucXVlc3Rpb25JZClcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVsZXRlUXVlc3Rpb25BcmlhTGFiZWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNSAzVjRIMjBWNkgxOVYxOUMxOSAyMC4xIDE4LjEgMjEgMTcgMjFIN0M1LjkgMjEgNSAyMC4xIDUgMTlWNkg0VjRIOVYzSDE1Wk03IDE5SDE3VjZIN1YxOVpNOSA4SDExVjE3SDlWOFpNMTUgOEgxM1YxN0gxNVY4WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxpZWVlc2EtY3VzdG9tLXF1ZXN0aW9uLWVkaXRvclxyXG4gICAgICAgICAgKm5nSWY9XCJlZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb24ucXVlc3Rpb25JZFwiXHJcbiAgICAgICAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgKHNhdmUpPVwib25TYXZlUXVlc3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2FuY2VsKT1cIm9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb24ucXVlc3Rpb25JZClcIlxyXG4gICAgICAgID48L2llZWVzYS1jdXN0b20tcXVlc3Rpb24tZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19mb290ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBnYXAtM1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2FuY2VsXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNhbmNlbExhYmVsXCJcclxuICAgID5cclxuICAgICAge3sgY2FuY2VsTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cImlzRm9ybUVuYWJsZWRcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcHJldmlld1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhIWVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgKGNsaWNrKT1cIm9uUHJldmlldygpXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2aWV3TGFiZWxcIlxyXG4gICAgPlxyXG4gICAgICB7eyBwcmV2aWV3TGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
512
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFHTixRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxjQUFjLEVBRWQsb0JBQW9CLEdBRXJCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBR0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUk1QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQWF6RDs7Ozs7Ozs7O0dBU0c7QUFlSCxNQUFNLE9BQU8scUJB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QkFDdEMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ3RDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLFFBQTZCO1FBQ3BELE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQUMsS0FBYSxFQUFFLFFBQXdCO1FBQ3ZELE9BQU8sUUFBUSxDQUFDLFVBQW9CLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQXBlVSxxQkFBcUIsOERBMkNWLGVBQWU7bUdBM0MxQixxQkFBcUIsZ0ZDNUVsQyxvMVJBOE5BLHU2WUQ1SkksWUFBWSwrUEFDWixjQUFjLDZqQ0FDZCxvQkFBb0IseUtBQ3BCLGNBQWMsb0pBQ2QsNkJBQTZCOzs0RkFNcEIscUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCw2QkFBNkI7cUJBQzlCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7OzBCQTJDbEMsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgTUFUX0RJQUxPR19EQVRBLFxyXG4gIE1hdERpYWxvZyxcclxuICBNYXREaWFsb2dSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ2RrRHJhZ0Ryb3AsXHJcbiAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgbW92ZUl0ZW1JbkFycmF5LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQge1xyXG4gIFJhZGlvQ29tcG9uZW50LFxyXG4gIFJhZGlvT3B0aW9uLFxyXG4gIFNsaWRlVG9nZ2xlQ29tcG9uZW50LFxyXG4gIFNsaWRlVG9nZ2xlT3B0aW9uLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSwgQWxlcnRzU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEN1c3RvbVF1ZXN0aW9uLFxyXG4gIEdyb3VwUm9sZSxcclxuICBJbnRlcmVzdE1vZGUsXHJcbiAgTUVNQkVSX0xFVkVMX1JPTEVfVFlQRSxcclxuICBRdWVzdGlvbkZpZWxkVHlwZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvY3VzdG9tLXF1ZXN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnRlcmVzdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tUXVlc3Rpb25FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b20tcXVlc3Rpb24tZWRpdG9yL2N1c3RvbS1xdWVzdGlvbi1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW50ZXJlc3RGb3JtUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZXN0LWZvcm0tcHJldmlldy9pbnRlcmVzdC1mb3JtLXByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQgKGxvY2tlZCkgcXVlc3Rpb24gcm93IHNob3duIGluIHRoZSBJbnRlcmVzdCBGb3JtIHRhYi5cclxuICogQGV4cG9ydFxyXG4gKiBAaW50ZXJmYWNlIFN0YW5kYXJkUXVlc3Rpb25Sb3dcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRRdWVzdGlvblJvdyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHRhZzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogXCJJbnRlcmVzdCBGb3JtXCIgdGFiIGNvbnRlbnQgb2YgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChTUDNNLTMxNykuIFRoZVxyXG4gKiBncm91cCBhZG1pbiBlbmFibGVzL2Rpc2FibGVzIHRoZSBmb3JtLCB2aWV3cyBsb2NrZWQgc3RhbmRhcmQgcXVlc3Rpb25zLFxyXG4gKiBjaG9vc2VzIHRoZSBkZWZhdWx0IG1lbWJlcnNoaXAgbGV2ZWwgYW5kIG1hbmFnZXMgY3VzdG9tIHF1ZXN0aW9uc1xyXG4gKiAoYWRkIC8gZWRpdCAvIHJlb3JkZXIgLyByZW1vdmUpLCBwZXJzaXN0ZWQgdG8gdGhlIGdyb3VwcyBiYWNrZW5kIHZpYVxyXG4gKiBJbnRlcmVzdEZvcm1TZXJ2aWNlLiBFYWNoIHF1ZXN0aW9uIGlzIHNhdmVkIGluZGl2aWR1YWxseSAoY3JlYXRlL3VwZGF0ZSkgYW5kXHJcbiAqIHRoZSBlbmFibGUgbW9kZSArIGRlZmF1bHQgbGV2ZWwgYXJlIHNhdmVkIHZpYSB0aGUgaW50ZXJlc3QtY29uZmlnIGVuZHBvaW50LlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWludGVyZXN0LWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBTbGlkZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFJhZGlvQ29tcG9uZW50LFxyXG4gICAgQ3VzdG9tUXVlc3Rpb25FZGl0b3JDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICBpbnRlcmVzdEZvcm1UZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5yb3N0ZXJJbnRlcmVzdHM/LmludGVyZXN0Rm9ybTtcclxuICBjaGFuZ2VzTm90aWNlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uY2hhbmdlc05vdGljZTtcclxuICBzZWN0aW9uVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zZWN0aW9uVGl0bGU7XHJcbiAgc2VjdGlvbkRlc2NyaXB0aW9uID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc2VjdGlvbkRlc2NyaXB0aW9uO1xyXG4gIHN0YW5kYXJkUXVlc3Rpb25zVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zdGFuZGFyZFF1ZXN0aW9uc1RpdGxlO1xyXG4gIHN0YW5kYXJkUXVlc3Rpb25zSGludCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkUXVlc3Rpb25zSGludDtcclxuICBkZWZhdWx0TWVtYmVyc2hpcFRpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZGVmYXVsdE1lbWJlcnNoaXBUaXRsZTtcclxuICBkZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uID1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlZmF1bHRNZW1iZXJzaGlwRGVzY3JpcHRpb247XHJcbiAgY3VzdG9tUXVlc3Rpb25zVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5jdXN0b21RdWVzdGlvbnNUaXRsZTtcclxuICBhZGRRdWVzdGlvbkxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uYWRkUXVlc3Rpb25MYWJlbDtcclxuICByZXF1aXJlZFRhZyA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnJlcXVpcmVkVGFnO1xyXG4gIHN0YW5kYXJkVGFnID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRUYWc7XHJcbiAgbmV3UXVlc3Rpb25MYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5ld1F1ZXN0aW9uTGFiZWw7XHJcbiAgZWRpdFF1ZXN0aW9uQXJpYUxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZWRpdFF1ZXN0aW9uQXJpYUxhYmVsO1xyXG4gIGRlbGV0ZVF1ZXN0aW9uQXJpYUxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZGVsZXRlUXVlc3Rpb25BcmlhTGFiZWw7XHJcbiAgbm9MZXZlbHNNZXNzYWdlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ubm9MZXZlbHNNZXNzYWdlO1xyXG4gIHR5cGVMYWJlbHMgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5xdWVzdGlvbkVkaXRvcj8udHlwZXM7XHJcbiAgY2FuY2VsTGFiZWwgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5mb290ZXI/LmNhbmNlbDtcclxuICBwcmV2aWV3TGFiZWwgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5mb290ZXI/LnByZXZpZXc7XHJcblxyXG4gIGVuYWJsZUZvcm1Ub2dnbGUhOiBTbGlkZVRvZ2dsZU9wdGlvbjtcclxuICBzdGFuZGFyZFF1ZXN0aW9uczogU3RhbmRhcmRRdWVzdGlvblJvd1tdID0gW107XHJcbiAgbWVtYmVyc2hpcExldmVsczogUmFkaW9PcHRpb25bXSA9IFtdO1xyXG4gIC8vIERlZmF1bHRzIHRvIGRpc2FibGVkIChPRkYpLiBUaGUgcmVhbCBzdGF0ZSBpcyBkcml2ZW4gYnkgdGhlIEFQSSByZXNwb25zZSBpblxyXG4gIC8vIGxvYWRDb25maWc7IHdoZW4gbm8gY29uZmlnIGhhcyBiZWVuIHNhdmVkIHlldCB0aGUgYmFja2VuZCByZXR1cm5zIERJU0FCTEVELFxyXG4gIC8vIHNvIHRoZSBmaXJzdC10aW1lIHZpZXcgY29ycmVjdGx5IHNob3dzIHRoZSB0b2dnbGUgT0ZGLlxyXG4gIGlzRm9ybUVuYWJsZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZExldmVsSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGxldmVsczogR3JvdXBSb2xlW10gPSBbXTtcclxuXHJcbiAgY3VzdG9tUXVlc3Rpb25zOiBDdXN0b21RdWVzdGlvbltdID0gW107XHJcbiAgZWRpdGluZ1F1ZXN0aW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8dW5rbm93bj4sXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZ3JvdXA6IEdyb3VwSW5mbyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBpbnRlcmVzdEZvcm1TZXJ2aWNlOiBJbnRlcmVzdEZvcm1TZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdyb3Vwc1NlcnZpY2U6IEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyBzdGF0aWMgVUkgb3B0aW9ucyBhbmQgbG9hZHMgdGhlIGdyb3VwJ3MgaW50ZXJlc3QgY29uZmlnIGFuZFxyXG4gICAqIGN1c3RvbSBxdWVzdGlvbnMgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2Uuc2V0QXBpQmFzZVVybCh0aGlzLmdyb3Vwc1NlcnZpY2U/LmFwaUJhc2VVcmwpO1xyXG4gICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICBjaGVja2VkOiB0aGlzLmlzRm9ybUVuYWJsZWQsXHJcbiAgICAgIGFyaWFMYWJlbDogdGhpcy5zZWN0aW9uVGl0bGUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zdGFuZGFyZFF1ZXN0aW9ucyA9IChcclxuICAgICAgdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRRdWVzdGlvbnMgPz8gW11cclxuICAgICkubWFwKChsYWJlbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiAoe1xyXG4gICAgICBpZDogaW5kZXggKyAxLFxyXG4gICAgICBsYWJlbCxcclxuICAgICAgdGFnOiB0aGlzLnN0YW5kYXJkVGFnLFxyXG4gICAgfSkpO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXA/Lmdyb3VwSWQpIHtcclxuICAgICAgdGhpcy5sb2FkTWVtYmVyc2hpcExldmVscygpO1xyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSByZWFsIG1lbWJlcnNoaXAgbGV2ZWxzIGZvciB0aGUgZ3JvdXAncyBncm91cCB0eXBlIGFuZCB0aGVuIHRoZVxyXG4gICAqIHNhdmVkIGludGVyZXN0IGNvbmZpZ3VyYXRpb24gKHNvIHRoZSBzYXZlZCBkZWZhdWx0IGxldmVsIGNhbiBiZVxyXG4gICAqIHByZXNlbGVjdGVkKS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbG9hZE1lbWJlcnNoaXBMZXZlbHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBncm91cFR5cGVJZCA9IHRoaXMuZ3JvdXA/Lmdyb3VwVHlwZTtcclxuICAgIGlmICghZ3JvdXBUeXBlSWQpIHtcclxuICAgICAgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAuZ2V0Um9sZXMoZ3JvdXBUeXBlSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAvLyBNZW1iZXIgbGV2ZWxzIGFyZSB0aGUgcm9sZXMgd2hvc2Ugcm9sZVR5cGVOYW1lIGlzIFwiTWVtYmVyIExldmVsXCIuXHJcbiAgICAgICAgICB0aGlzLmxldmVscyA9IChyZXNwb25zZT8uYm9keSA/PyBbXSkuZmlsdGVyKFxyXG4gICAgICAgICAgICAocm9sZSkgPT4gcm9sZS5yb2xlVHlwZU5hbWUgPT09IE1FTUJFUl9MRVZFTF9ST0xFX1RZUEVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDb25maWcoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChtb2RlICsgZGVmYXVsdCBsZXZlbCkgYW5kIHN5bmNzXHJcbiAgICogdGhlIHRvZ2dsZSBhbmQgdGhlIGRlZmF1bHQtbGV2ZWwgcmFkaW8gc2VsZWN0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBsb2FkQ29uZmlnKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRJbnRlcmVzdENvbmZpZyh0aGlzLmdyb3VwLmdyb3VwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb25maWcgPSByZXNwb25zZT8uYm9keTtcclxuICAgICAgICAgIHRoaXMuaXNGb3JtRW5hYmxlZCA9IGNvbmZpZz8uaW50ZXJlc3RNb2RlID09PSBJbnRlcmVzdE1vZGUuRk9STTtcclxuICAgICAgICAgIHRoaXMuZW5hYmxlRm9ybVRvZ2dsZSA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5lbmFibGVGb3JtVG9nZ2xlLFxyXG4gICAgICAgICAgICBjaGVja2VkOiB0aGlzLmlzRm9ybUVuYWJsZWQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgLy8gUHJlc2VsZWN0IHRoZSBzYXZlZCBkZWZhdWx0IGxldmVsLCBlbHNlIHRoZSBmaXJzdCBtZW1iZXIgbGV2ZWwuXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA9XHJcbiAgICAgICAgICAgIGNvbmZpZz8uZGVmYXVsdExldmVsSWQgPz8gdGhpcy5sZXZlbHNbMF0/LnJvbGVJZCA/PyBudWxsO1xyXG4gICAgICAgICAgdGhpcy5idWlsZE1lbWJlcnNoaXBMZXZlbE9wdGlvbnMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkcyB0aGUgcmFkaW8gb3B0aW9ucyBmcm9tIHRoZSByZWFsIG1lbWJlcnNoaXAgbGV2ZWxzLCBtYXJraW5nIHRoZVxyXG4gICAqIGN1cnJlbnRseSBzZWxlY3RlZCBsZXZlbCBhcyBjaGVja2VkLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBidWlsZE1lbWJlcnNoaXBMZXZlbE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1lbWJlcnNoaXBMZXZlbHMgPSB0aGlzLmxldmVscy5tYXAoKGxldmVsKSA9PiAoe1xyXG4gICAgICBpZDogbGV2ZWwucm9sZUlkLFxyXG4gICAgICBsYWJlbDogbGV2ZWwucm9sZU5hbWUsXHJcbiAgICAgIGNoZWNrZWQ6IGxldmVsLnJvbGVJZCA9PT0gdGhpcy5zZWxlY3RlZExldmVsSWQsXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgZ3JvdXAncyBjdXN0b20gcXVlc3Rpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBsb2FkUXVlc3Rpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRRdWVzdGlvbnModGhpcy5ncm91cC5ncm91cElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSByZXNwb25zZT8uYm9keSA/PyBbXTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGZvcm0tZW5hYmxlZCBzdGF0ZSBhbmQgcGVyc2lzdHMgdGhlIG5ldyBpbnRlcmVzdCBtb2RlLlxyXG4gICAqIEBwYXJhbSB7U2xpZGVUb2dnbGVPcHRpb259IHRvZ2dsZVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkVuYWJsZUZvcm1Ub2dnbGUodG9nZ2xlOiBTbGlkZVRvZ2dsZU9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Zvcm1FbmFibGVkID0gdG9nZ2xlPy5jaGVja2VkO1xyXG4gICAgaWYgKCF0aGlzLmlzRm9ybUVuYWJsZWQpIHtcclxuICAgICAgLy8gRGlzYWJsaW5nIGFsd2F5cyBwZXJzaXN0cyBpbW1lZGlhdGVseSAobm8gbGV2ZWwgbmVlZGVkKS5cclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIEVuYWJsaW5nIHJlcXVpcmVzIGEgZGVmYXVsdCBsZXZlbCAoYmFja2VuZCByZWplY3RzIEZPUk0gd2l0aG91dCBvbmUpLiBJZlxyXG4gICAgLy8gbm9uZSBpcyBzZWxlY3RlZCB5ZXQsIGF1dG8tc2VsZWN0IHRoZSBsZXZlbCBmbGFnZ2VkIGRlZmF1bHQsIGVsc2UgdGhlXHJcbiAgICAvLyBmaXJzdCBhdmFpbGFibGUgbGV2ZWwsIHNvIHRoZSB0b2dnbGUgcGVyc2lzdHMgaW1tZWRpYXRlbHkuXHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMZXZlbElkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRMZXZlbElkID0gdGhpcy5sZXZlbHNbMF0/LnJvbGVJZCA/PyBudWxsO1xyXG4gICAgICB0aGlzLmJ1aWxkTWVtYmVyc2hpcExldmVsT3B0aW9ucygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMZXZlbElkKSB7XHJcbiAgICAgIHRoaXMuc2F2ZUNvbmZpZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gTm8gbWVtYmVyc2hpcCBsZXZlbHMgY29uZmlndXJlZCBmb3IgdGhpcyBncm91cCB0eXBlOiBjYW5ub3QgZW5hYmxlLCBzb1xyXG4gICAgICAvLyByZXZlcnQgdGhlIHRvZ2dsZS9lbmFibGVkIHN0YXRlIHRvIGZhbHNlIGJlZm9yZSBhbGVydGluZyAobm90aGluZyB3YXNcclxuICAgICAgLy8gcGVyc2lzdGVkLCBhbmQgdGhlIGRlcGVuZGVudCBzZWN0aW9ucyBtdXN0IG5vdCBzdGF5IHZpc2libGUpLlxyXG4gICAgICB0aGlzLmlzRm9ybUVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZW5hYmxlRm9ybVRvZ2dsZSxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5vTGV2ZWxzTWVzc2FnZSxcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJzaXN0cyB0aGUgaW50ZXJlc3QgY29uZmlnLiBUaGUgZGVmYXVsdCBsZXZlbCBpcyBvbmx5IHNlbnQgZm9yIHRoZVxyXG4gICAqIGVuYWJsZWQgKEZPUk0pIG1vZGU7IERJU0FCTEVEIGNsZWFycyBpdC4gRW5hYmxpbmcgd2l0aG91dCBhIHNlbGVjdGVkIGxldmVsXHJcbiAgICogaXMgc2tpcHBlZCBzbyBhbiBpbnZhbGlkIHJlcXVlc3QgaXMgbmV2ZXIgc2VudC5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2F2ZUNvbmZpZygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ncm91cD8uZ3JvdXBJZCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaXNGb3JtRW5hYmxlZCAmJiAhdGhpcy5zZWxlY3RlZExldmVsSWQpIHJldHVybjtcclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAuc2F2ZUludGVyZXN0Q29uZmlnKHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwLmdyb3VwSWQsXHJcbiAgICAgICAgaW50ZXJlc3RNb2RlOiB0aGlzLmlzRm9ybUVuYWJsZWRcclxuICAgICAgICAgID8gSW50ZXJlc3RNb2RlLkZPUk1cclxuICAgICAgICAgIDogSW50ZXJlc3RNb2RlLkRJU0FCTEVELFxyXG4gICAgICAgIGRlZmF1bHRMZXZlbElkOiB0aGlzLmlzRm9ybUVuYWJsZWQgPyB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA6IG51bGwsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjb3JkcyB0aGUgc2VsZWN0ZWQgZGVmYXVsdCBtZW1iZXJzaGlwIGxldmVsIGFuZCBwZXJzaXN0cyB0aGUgY29uZmlnIHdoZW5cclxuICAgKiB0aGUgZm9ybSBpcyBlbmFibGVkLlxyXG4gICAqIEBwYXJhbSB7UmFkaW9PcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbk1lbWJlcnNoaXBMZXZlbENoYW5nZShvcHRpb246IFJhZGlvT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA9IFN0cmluZyhvcHRpb24/LmlkKTtcclxuICAgIGlmICh0aGlzLmlzRm9ybUVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3IGJsYW5rIHF1ZXN0aW9uIGFuZCBvcGVucyBpdHMgZWRpdG9yLiBPbmx5IG9uZSBlZGl0b3IgaXMgb3BlbiBhdFxyXG4gICAqIGEgdGltZS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BZGRRdWVzdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkKSByZXR1cm47XHJcbiAgICBjb25zdCB0ZW1wSWQgPSBgbmV3LSR7RGF0ZS5ub3coKX1gO1xyXG4gICAgY29uc3QgbmV3UXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uID0ge1xyXG4gICAgICBxdWVzdGlvbklkOiB0ZW1wSWQsXHJcbiAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXA/Lmdyb3VwSWQsXHJcbiAgICAgIHF1ZXN0aW9uTGFiZWw6ICcnLFxyXG4gICAgICBmaWVsZFR5cGU6IG51bGwsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgaGVscFRleHQ6ICcnLFxyXG4gICAgICBvcHRpb25zOiB1bmRlZmluZWQsXHJcbiAgICAgIHZpZXdPcmRlcjogdGhpcy5jdXN0b21RdWVzdGlvbnMubGVuZ3RoLFxyXG4gICAgfTtcclxuICAgIHRoaXMuY3VzdG9tUXVlc3Rpb25zID0gWy4uLnRoaXMuY3VzdG9tUXVlc3Rpb25zLCBuZXdRdWVzdGlvbl07XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gdGVtcElkO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVucyB0aGUgZWRpdG9yIGZvciBhbiBleGlzdGluZyBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkVkaXRRdWVzdGlvbihxdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb24pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkKSByZXR1cm47XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gcXVlc3Rpb24ucXVlc3Rpb25JZCA/PyBudWxsO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBxdWVzdGlvbiBvbiB0aGUgYmFja2VuZCBhbmQgcmVmcmVzaGVzIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2F2ZVF1ZXN0aW9uKHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24pIHtcclxuICAgICAgY29uc3QgcGF5bG9hZDogQ3VzdG9tUXVlc3Rpb24gPSB7IC4uLnF1ZXN0aW9uIH07XHJcbiAgICAgIC8vIFJlbW92ZSB0aGUgdGVtcG9yYXJ5IGNsaWVudCBpZCBzbyB0aGUgYmFja2VuZCBnZW5lcmF0ZXMgb25lLlxyXG4gICAgICBkZWxldGUgcGF5bG9hZC5xdWVzdGlvbklkO1xyXG4gICAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgICAuY3JlYXRlUXVlc3Rpb24ocGF5bG9hZClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLmFmdGVyUXVlc3Rpb25TYXZlZCgpLFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgICAudXBkYXRlUXVlc3Rpb24ocXVlc3Rpb24pXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4gdGhpcy5hZnRlclF1ZXN0aW9uU2F2ZWQoKSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBlZGl0b3IgYW5kIHJlbG9hZHMgdGhlIHF1ZXN0aW9ucyBhZnRlciBhIHN1Y2Nlc3NmdWwgc2F2ZS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZnRlclF1ZXN0aW9uU2F2ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgIHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgIHRoaXMubG9hZFF1ZXN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBlZGl0b3IuIEEgbmV3bHkgYWRkZWQgcXVlc3Rpb24gaXMgcmVtb3ZlZCBvbiBjYW5jZWw7IGFuIGV4aXN0aW5nXHJcbiAgICogcXVlc3Rpb24ga2VlcHMgaXRzIHByZXZpb3VzIHZhbHVlcy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlc3Rpb25JZFxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNhbmNlbFF1ZXN0aW9uKHF1ZXN0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24pIHtcclxuICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSB0aGlzLmN1c3RvbVF1ZXN0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHF1ZXN0aW9uKSA9PiBxdWVzdGlvbi5xdWVzdGlvbklkICE9PSBxdWVzdGlvbklkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgIHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBxdWVzdGlvbiBvbiB0aGUgYmFja2VuZCBhbmQgcmVmcmVzaGVzIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVzdGlvbklkXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRGVsZXRlUXVlc3Rpb24ocXVlc3Rpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoIXF1ZXN0aW9uSWQpIHJldHVybjtcclxuICAgIC8vIEEgbm90LXlldC1zYXZlZCBxdWVzdGlvbiBvbmx5IGV4aXN0cyBjbGllbnQtc2lkZS5cclxuICAgIGlmIChxdWVzdGlvbklkLnN0YXJ0c1dpdGgoJ25ldy0nKSkge1xyXG4gICAgICB0aGlzLm9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb25JZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAucmVtb3ZlUXVlc3Rpb24ocXVlc3Rpb25JZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5lZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb25JZCkge1xyXG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW9yZGVycyBxdWVzdGlvbnMgb24gZHJhZy1kcm9wIGFuZCBwZXJzaXN0cyB0aGUgbmV3IG9yZGVyLlxyXG4gICAqIEBwYXJhbSB7Q2RrRHJhZ0Ryb3A8Q3VzdG9tUXVlc3Rpb25bXT59IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUmVvcmRlclF1ZXN0aW9ucyhldmVudDogQ2RrRHJhZ0Ryb3A8Q3VzdG9tUXVlc3Rpb25bXT4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmN1c3RvbVF1ZXN0aW9uc107XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkocmVvcmRlcmVkLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSByZW9yZGVyZWQubWFwKChxdWVzdGlvbiwgaW5kZXgpID0+ICh7XHJcbiAgICAgIC4uLnF1ZXN0aW9uLFxyXG4gICAgICB2aWV3T3JkZXI6IGluZGV4LFxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5yZW9yZGVyUXVlc3Rpb25zKFxyXG4gICAgICAgIHRoaXMuY3VzdG9tUXVlc3Rpb25zLm1hcCgocXVlc3Rpb24pID0+ICh7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkIGFzIHN0cmluZyxcclxuICAgICAgICAgIHZpZXdPcmRlcjogcXVlc3Rpb24udmlld09yZGVyLFxyXG4gICAgICAgIH0pKVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgLy8gVGhlIGxpc3Qgd2FzIHJlb3JkZXJlZCBvcHRpbWlzdGljYWxseTsgaWYgdGhlIGJhY2tlbmQgcmVqZWN0ZWQgdGhlXHJcbiAgICAgICAgLy8gbmV3IG9yZGVyLCByZWxvYWQgc28gdGhlIGNsaWVudCByZWZsZWN0cyB0aGUgcGVyc2lzdGVkIG9yZGVyLlxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IGxhYmVsIGZvciBhIHF1ZXN0aW9uJ3MgZmllbGQgdHlwZS5cclxuICAgKiBAcGFyYW0geyhRdWVzdGlvbkZpZWxkVHlwZSB8IG51bGwpfSB0eXBlXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBnZXRUeXBlTGFiZWwodHlwZTogUXVlc3Rpb25GaWVsZFR5cGUgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uRmllbGRUeXBlLlRFWFQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8udGV4dDtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5URVhUQVJFQTpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy50ZXh0QXJlYTtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5TRUxFQ1Q6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8uZHJvcGRvd247XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuQ0hFQ0tCT1g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8uY2hlY2tib3g7XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuUkFESU86XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8ucmFkaW87XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuREFURTpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5kYXRlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIGFuIGVycm9yIGFsZXJ0IGZvciBhIGZhaWxlZCBpbnRlcmVzdC1mb3JtIG9wZXJhdGlvbi5cclxuICAgKiBAcGFyYW0geyp9IGVycm9yXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogZXJyb3I/LmVycm9yPy5tZXNzYWdlID8/IGVycm9yPy5tZXNzYWdlLFxyXG4gICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBpbnRlcmVzdCBmb3JtIGluIHJlYWQtb25seSBwcmV2aWV3IG1vZGUgKFNQM00tMzE3IFI2LjcpLCByZXVzaW5nXHJcbiAgICogdGhlIHNoYXJlZCBleHByZXNzLWludGVyZXN0IGRpYWxvZy4gU2hvd3MgdGhlIGFkbWluJ3MgY3VycmVudCBjdXN0b21cclxuICAgKiBxdWVzdGlvbnMgYXMgYW4gZW5kIHVzZXIgd291bGQgc2VlIHRoZW07IG5vIHN1Ym1pdCwgQ2FuY2VsIG9ubHkuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUHJldmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nPy5vcGVuKEludGVyZXN0Rm9ybVByZXZpZXdDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc3MjBweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnOTJ2dycsXHJcbiAgICAgIG1heEhlaWdodDogJzkwdmgnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCAnaWVlZXNhLWludGVyZXN0LWZvcm0tcHJldmlldyddLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBncm91cE5hbWU6IHRoaXMuZ3JvdXA/Lmdyb3VwTmFtZSA/PyAnJyxcclxuICAgICAgICBjdXN0b21RdWVzdGlvbnM6IHRoaXMuY3VzdG9tUXVlc3Rpb25zLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChDYW5jZWwgYWN0aW9uKS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5nRm9yIHRyYWNraW5nIGZvciBzdGFuZGFyZCBxdWVzdGlvbiByb3dzLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7U3RhbmRhcmRRdWVzdGlvblJvd30gcXVlc3Rpb25cclxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBxdWVzdGlvbjogU3RhbmRhcmRRdWVzdGlvblJvdyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gcXVlc3Rpb24uaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBuZ0ZvciB0cmFja2luZyBmb3IgY3VzdG9tIHF1ZXN0aW9ucy5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeVF1ZXN0aW9uSWQoaW5kZXg6IG51bWJlciwgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBxdWVzdGlvbi5xdWVzdGlvbklkIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGFuZCBjb21wbGV0ZXMgdGhlIGRlc3Ryb3kgc3ViamVjdCBzbyBhbnkgaW4tZmxpZ2h0IHJlcXVlc3RzIGFyZVxyXG4gICAqIHVuc3Vic2NyaWJlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UgaWVlZXNhLWJvZHktc20tMTRcIiByb2xlPVwibm90ZVwiPlxyXG4gICAgPHN2Z1xyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UtaWNvblwiXHJcbiAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0xMiAyTDEgMjFoMjJMMTIgMnptMCA0LjVMMTkuNSAxOS41aC0xNUwxMiA2LjV6TTExIDEwdjVoMnYtNWgtMnptMCA2djJoMnYtMmgtMnpcIlxyXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3Bhbj57eyBjaGFuZ2VzTm90aWNlIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8c2VjdGlvbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3JvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgICAgICB7eyBzZWN0aW9uVGl0bGUgfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tZGVzYyBpZWVlc2EtYm9keS1zbS0xNCBtLTBcIj5cclxuICAgICAgICAgIHt7IHNlY3Rpb25EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpZWVlc2Etc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgW3NsaWRlVG9nZ2xlXT1cImVuYWJsZUZvcm1Ub2dnbGVcIlxyXG4gICAgICAgIChzbGlkZVRvZ2dsZUNoYW5nZSk9XCJvbkVuYWJsZUZvcm1Ub2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1zbGlkZS10b2dnbGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1oZWFkaW5nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fbG9ja1wiXHJcbiAgICAgICAgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGQ9XCJNMTIgMmE1IDUgMCAwIDAtNSA1djNINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04YTIgMiAwIDAgMC0yLTJoLTFWN2E1IDUgMCAwIDAtNS01em0tMyA1YTMgMyAwIDAgMSA2IDB2M0g5Vjd6bS0zIDVoMTJ2OEg2di04elwiXHJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICB7eyBzdGFuZGFyZFF1ZXN0aW9uc1RpdGxlIH19XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2hpbnQgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgIHN0YW5kYXJkUXVlc3Rpb25zSGludFxyXG4gICAgICB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHVsIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHN0YW5kYXJkUXVlc3Rpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxhYmVsIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLmxhYmVsXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtdGFnIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLnRhZ1xyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgIHt7IGRlZmF1bHRNZW1iZXJzaGlwVGl0bGUgfX1cclxuICAgIDwvaDI+XHJcbiAgICA8cCBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWRlc2MgaWVlZXNhLWJvZHktc20tMTRcIj5cclxuICAgICAge3sgZGVmYXVsdE1lbWJlcnNoaXBEZXNjcmlwdGlvbiB9fVxyXG4gICAgPC9wPlxyXG4gICAgPGllZWVzYS1yYWRpb1xyXG4gICAgICAqbmdJZj1cIm1lbWJlcnNoaXBMZXZlbHMubGVuZ3RoID4gMFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRNZW1iZXJzaGlwTGV2ZWxcIlxyXG4gICAgICBbcmFkaW9Hcm91cF09XCJtZW1iZXJzaGlwTGV2ZWxzXCJcclxuICAgICAgKHNlbGVjdGVkUmFkaW9PcHRpb24pPVwib25NZW1iZXJzaGlwTGV2ZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9pZWVlc2EtcmFkaW8+XHJcbiAgICA8cFxyXG4gICAgICAqbmdJZj1cIm1lbWJlcnNoaXBMZXZlbHMubGVuZ3RoID09PSAwXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1kZXNjIGllZWVzYS1ib2R5LXNtLTE0XCJcclxuICAgID5cclxuICAgICAge3sgbm9MZXZlbHNNZXNzYWdlIH19XHJcbiAgICA8L3A+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8c2VjdGlvbiAqbmdJZj1cImlzRm9ybUVuYWJsZWRcIiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2N1c3RvbS1oZWFkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgICAge3sgY3VzdG9tUXVlc3Rpb25zVGl0bGUgfX1cclxuICAgICAgPC9oMj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2FkZC1xdWVzdGlvbiBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgICAoY2xpY2spPVwib25BZGRRdWVzdGlvbigpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFkZFF1ZXN0aW9uTGFiZWxcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgYWRkUXVlc3Rpb25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tbGlzdFwiXHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25SZW9yZGVyUXVlc3Rpb25zKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGN1c3RvbVF1ZXN0aW9uczsgdHJhY2tCeTogdHJhY2tCeVF1ZXN0aW9uSWRcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvblwiXHJcbiAgICAgICAgW2NsYXNzLmllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi0tZWRpdGluZ109XCJcclxuICAgICAgICAgIGVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uLXJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yXCJcclxuICAgICAgICAgIFtjbGFzcy5pZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tcm93LS1lZGl0aW5nXT1cIlxyXG4gICAgICAgICAgICBlZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb24ucXVlc3Rpb25JZFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tbWFpblwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2RyYWctaGFuZGxlXCJcclxuICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXHJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxMiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMlwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjJcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiOFwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjE0XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMTRcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1sYWJlbCBpZWVlc2EtYm9keS1zbS0xNFwiPlxyXG4gICAgICAgICAgICAgIHt7IHF1ZXN0aW9uLnF1ZXN0aW9uTGFiZWwgfHwgbmV3UXVlc3Rpb25MYWJlbCB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5maWVsZFR5cGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2NoaXAgaWVlZXNhLWludGVyZXN0LWZvcm1fX2NoaXAtLXR5cGUgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgZ2V0VHlwZUxhYmVsKHF1ZXN0aW9uLmZpZWxkVHlwZSkgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcCBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcC0tcmVxdWlyZWQgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgcmVxdWlyZWRUYWcgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlZGl0aW5nUXVlc3Rpb25JZCAhPT0gcXVlc3Rpb24ucXVlc3Rpb25JZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9faWNvbi1idG5cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkVkaXRRdWVzdGlvbihxdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZWRpdFF1ZXN0aW9uQXJpYUxhYmVsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTYuMDYuNTlsMS4zNSAxLjM1Yy43OS43OC43OSAyLjA1IDAgMi44M0w0LjE4IDE4SDB2LTQuMThMMTAuNCAzLjQxIDEzLjIzLjU5Yy43OC0uNzggMi4wNS0uNzggMi44MyAwek0yIDE2bDEuNDEuMDZMMTMuMjMgNi4yM2wtMS40MS0xLjQxTDIgMTQuNjRWMTZ6XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19pY29uLWJ0biBpZWVlc2EtaW50ZXJlc3QtZm9ybV9faWNvbi1idG4tLWRlbGV0ZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlUXVlc3Rpb24ocXVlc3Rpb24ucXVlc3Rpb25JZClcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVsZXRlUXVlc3Rpb25BcmlhTGFiZWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNSAzVjRIMjBWNkgxOVYxOUMxOSAyMC4xIDE4LjEgMjEgMTcgMjFIN0M1LjkgMjEgNSAyMC4xIDUgMTlWNkg0VjRIOVYzSDE1Wk03IDE5SDE3VjZIN1YxOVpNOSA4SDExVjE3SDlWOFpNMTUgOEgxM1YxN0gxNVY4WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxpZWVlc2EtY3VzdG9tLXF1ZXN0aW9uLWVkaXRvclxyXG4gICAgICAgICAgKm5nSWY9XCJlZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb24ucXVlc3Rpb25JZFwiXHJcbiAgICAgICAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgKHNhdmUpPVwib25TYXZlUXVlc3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2FuY2VsKT1cIm9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb24ucXVlc3Rpb25JZClcIlxyXG4gICAgICAgID48L2llZWVzYS1jdXN0b20tcXVlc3Rpb24tZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19mb290ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBnYXAtM1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2FuY2VsXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNhbmNlbExhYmVsXCJcclxuICAgID5cclxuICAgICAge3sgY2FuY2VsTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cImlzRm9ybUVuYWJsZWRcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcHJldmlld1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhIWVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgKGNsaWNrKT1cIm9uUHJldmlldygpXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2aWV3TGFiZWxcIlxyXG4gICAgPlxyXG4gICAgICB7eyBwcmV2aWV3TGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19