@tuki-io/tuki-widgets 0.0.219-dev.20 → 0.0.219-dev.23

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 (64) hide show
  1. package/esm2020/shared/public-api.mjs +4 -0
  2. package/esm2020/shared/src/ui/material.module.mjs +188 -0
  3. package/esm2020/shared/src/ui/shared.module.mjs +36 -0
  4. package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
  5. package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
  6. package/esm2020/shared/src/ui/ui.module.mjs +37 -0
  7. package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
  8. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +6 -4
  9. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  10. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +1 -4
  11. package/esm2020/user-manage/src/app.constants.mjs +7 -1
  12. package/esm2020/user-manage/src/classes/simplified-user.mjs +4 -3
  13. package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
  14. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
  15. package/esm2020/user-manage/src/material.module.mjs +14 -7
  16. package/esm2020/user-manage/src/services/user.service.mjs +53 -15
  17. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +3 -3
  18. package/esm2020/user-manage/src/user-manage-widget.component.mjs +16 -10
  19. package/esm2020/user-manage/src/user-manage.module.mjs +7 -3
  20. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  21. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
  22. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
  23. package/esm2020/users-list/src/users-list.component.mjs +4 -3
  24. package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
  25. package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  26. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +5 -3
  27. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  28. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
  29. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  30. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +104 -37
  31. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  32. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +21 -6
  33. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  34. package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
  35. package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  36. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +5 -3
  37. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  38. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
  39. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  40. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +104 -37
  41. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  42. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +20 -6
  43. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  44. package/package.json +9 -1
  45. package/shared/index.d.ts +5 -0
  46. package/shared/public-api.d.ts +3 -0
  47. package/shared/src/ui/material.module.d.ts +28 -0
  48. package/shared/src/ui/shared.module.d.ts +10 -0
  49. package/{user-device-manage/src/shared/tk-page-section/page-section.component.d.ts → shared/src/ui/tk-page-section/tk-page-section.component.d.ts} +1 -1
  50. package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
  51. package/shared/src/ui/ui.module.d.ts +11 -0
  52. package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
  53. package/user-device-manage/src/user-device-manage.module.d.ts +9 -10
  54. package/user-manage/src/app.constants.d.ts +6 -0
  55. package/user-manage/src/classes/simplified-user.d.ts +4 -1
  56. package/user-manage/src/device-list/device-list.component.d.ts +2 -0
  57. package/user-manage/src/material.module.d.ts +2 -1
  58. package/user-manage/src/services/user.service.d.ts +4 -0
  59. package/user-manage/src/user-manage-widget.component.d.ts +2 -0
  60. package/user-manage/src/user-manage.module.d.ts +2 -1
  61. package/users-list/src/classes/simlified-user.d.ts +1 -1
  62. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
  63. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
  64. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
@@ -76,10 +76,10 @@ export class UserCallingComponent {
76
76
  }
77
77
  }
78
78
  UserCallingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCallingComponent, deps: [{ token: i1.UserService }, { token: i2.DnsService }], target: i0.ɵɵFactoryTarget.Component });
79
- UserCallingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserCallingComponent, selector: "app-user-calling", inputs: { siteId: "siteId", userId: "userId", primaryLineDirectoryNumber: "primaryLineDirectoryNumber" }, outputs: { onExtensionChange: "onExtensionChange" }, ngImport: i0, template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl?.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl?.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] });
79
+ UserCallingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserCallingComponent, selector: "app-user-calling", inputs: { siteId: "siteId", userId: "userId", primaryLineDirectoryNumber: "primaryLineDirectoryNumber" }, outputs: { onExtensionChange: "onExtensionChange" }, ngImport: i0, template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl?.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] });
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCallingComponent, decorators: [{
81
81
  type: Component,
82
- args: [{ selector: 'app-user-calling', template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl?.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl?.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] }]
82
+ args: [{ selector: 'app-user-calling', template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl?.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] }]
83
83
  }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.DnsService }]; }, propDecorators: { siteId: [{
84
84
  type: Input
85
85
  }], userId: [{
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
89
89
  }], onExtensionChange: [{
90
90
  type: Output
91
91
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jYWxsaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1jYWxsaW5nL3VzZXItY2FsbGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1tYW5hZ2Uvc3JjL3VzZXItY2FsbGluZy91c2VyLWNhbGxpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWEvRSxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLDBCQUEwQjtJQUMxQiw4R0FBOEc7SUFDOUcsSUFBSTtJQUVKLElBQUksT0FBTztRQUNULE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQWdCLENBQUM7UUFDakUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FB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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3NpbXBsaWZpZWQtdXNlcic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbiB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERuc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kbnMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWNhbGxpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWNhbGxpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItY2FsbGluZy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckNhbGxpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHNpdGVJZCE6IG51bWJlcjtcclxuICBASW5wdXQoKSB1c2VySWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJpbWFyeUxpbmVEaXJlY3RvcnlOdW1iZXIhOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIG9uRXh0ZW5zaW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgcHVibGljIGRhdGFQZW5kaW5nITogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIC8vIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXSAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZm9ybTtcclxuICAvLyB9XHJcblxyXG4gIGdldCBpc1dlYmV4KCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJleFVVSUQnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2ViZXhVVUlEJykgIT09ICdudWxsJztcclxuICB9XHJcblxyXG4gIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtPy5nZXQoJ2RpcmVjdG9yeU51bWJlcicpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcGhvbmVOdW1iZXJWYWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0gJiYgdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zLmxlbmd0aCAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zWzBdPy5tYXBwZWREaWRzICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHMubGVuZ3RoICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHNbMF07XHJcbiAgfVxyXG5cclxuICBnZXQgbGluZUFzc29jaWF0aW9uKCk6IExpbmVBc3NvY2lhdGlvbiB8IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXIoKTogU2ltcGxpZmllZFVzZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRuc1NlcnZpY2U6IERuc1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJpbWFyeUxpbmVEZXZpY2UgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldFByaW1hcnlMaW5lRGV2aWNlKHRoaXMucHJpbWFyeUxpbmVEaXJlY3RvcnlOdW1iZXIpO1xyXG4gICAgaWYgKHByaW1hcnlMaW5lRGV2aWNlKSB7XHJcbiAgICAgIHRoaXMuZm9ybSA9IHByaW1hcnlMaW5lRGV2aWNlLmxpbmVBc3NvY2lhdGlvbnNbMF0/LmZvcm07XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIG9uRXh0ZW5zaW9uTGluZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS50cmltKCk7XHJcbiAgICAodGhpcy51c2VyU2VydmljZT8udXNlciAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5saW5lcyAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5saW5lc1swXT8ubWFwcGVkRGlkc1swXSkgPyB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIubGluZXNbMF0ubWFwcGVkRGlkc1swXSA9IHZhbHVlIDogdm9pZCAwO1xyXG4gICAgdGhpcy5vbkV4dGVuc2lvbkNoYW5nZS5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgb25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dC50cmltKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubGluZUFzc29jaWF0aW9uICYmIHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlciA9IHZhbHVlO1xyXG4gICAgICB0aGlzLm9uRXh0ZW5zaW9uQ2hhbmdlLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VGaWVsZCh0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRva2VuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgICh0aGlzLnVzZXJTZXJ2aWNlLnVzZXIgYXMgYW55KVt0b2tlbl0gPSB0aGlzLmZvcm0/LmdldCh0b2tlbik/LnZhbHVlO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVFZGl0TW9kZSgpIHtcclxuICAgIHRoaXMudXNlclNlcnZpY2UudXNlci50b2dnbGVFZGl0TW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2F2aW5nRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMudXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKSB8fCB0aGlzLnVzZXJTZXJ2aWNlLmhhc0V4aXN0ZWRVc2VySWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VFeHRlbnNpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGluZUFzc29jaWF0aW9uICYmIHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmRuc1NlcnZpY2UuZ2V0TnVtYmVyUmFuZ2UoU3RyaW5nKHRoaXMuc2l0ZUlkKSwgdGhpcy51c2VySWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIGNvbXBsZXRlOiAodjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGU6IGFueSkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSAgICBOVU1CRVJTIEJPWCAtLT5cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHBhZGRpbmc6IDI0cHggMDsgZ2FwOiAyNHB4O1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8tYm94IHVzZXItZGV0YWlscy1ib3hcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICA8aDMgY2xhc3M9XCJ1c2VyLWJveC10aXRsZVwiIHN0eWxlPVwid2lkdGg6IDE4MHB4O1wiPk51bWJlcnM8L2gzPlxyXG4gICAgPGRpdiBzdHlsZT1cImZsZXg6MTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XCI+XHJcbiAgICAgIDwhLS0gRGlyZWN0b3J5IG51bWJlcnMgc2VjdGlvbiAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgcGFkZGluZzoxNnB4IDA7XCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDoxNzBweDsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXNpemU6MTRweDsgY29sb3I6IzEyMTIxMjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3Bhbj5EaXJlY3RvcnkgbnVtYmVyczwvc3Bhbj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2luZm8tY2lyY2xlLXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1wiPlxyXG4gICAgICAgICAgPCEtLSBUYWJsZSAtLT5cclxuICAgICAgICAgIDx0YWJsZSBzdHlsZT1cIndpZHRoOjEwMCU7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgbWFyZ2luLWJvdHRvbToxNnB4O1wiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZDojZWRlZGVkO1wiPlxyXG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwicGFkZGluZzoxMHB4IDE2cHg7IGZvbnQtc2l6ZToxM3B4OyBmb250LXdlaWdodDo0MDA7IGNvbG9yOiM1NDU0NTQ7IHRleHQtYWxpZ246bGVmdDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5UeXBlPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCAxNnB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+UGhvbmUgbnVtYmVyPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCAxNnB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+RXh0ZW5zaW9uPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCA4cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7IHdpZHRoOjMwcHg7XCI+PC90aD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZDojZmZmOyBjdXJzb3I6cG9pbnRlcjtcIiBvbm1vdXNlb3Zlcj1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2ZhZmFmYSdcIiBvbm1vdXNlb3V0PVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZmZmJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzoxMnB4IDE2cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6I2U4ZjRmYzsgY29sb3I6IzExNzBhODsgcGFkZGluZzo0cHggMTRweDsgYm9yZGVyLXJhZGl1czoxNHB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBib3JkZXI6MXB4IHNvbGlkICNiOGQ5ZWQ7XCI+UHJpbWFyeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjEycHggMTZweDsgY29sb3I6IzMzMzsgZm9udC1zaXplOjE0cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkV4dGVuc2lvbkxpbmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkV4dGVuc2lvbkxpbmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicGhvbmVOdW1iZXJWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvZm9jdXNcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6MTJweCAxNnB4OyBjb2xvcjojMzMzOyBmb250LXNpemU6MTRweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkRpcmVjdG9yeU51bWJlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtQ29udHJvbD8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb250ZW50ZWRpdGFibGVdPVwiIWlzV2ViZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZm9ybUNvbnRyb2w/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC41cmVtO1wiIHNyYz1cImFzc2V0cy9pY29ucy9jb3B5LXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjE5cHggOHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGxpbmUtaGVpZ2h0OjA7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBzdHlsZT1cIndpZHRoOjE2cHg7IGhlaWdodDoxNnB4OyBjb2xvcjojMjIyMjIyOyB0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IHRyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MDtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0yOC43MDggOS4yOTNhMSAxIDAgMCAwLTEuNDE1IDBMMTYgMjAuNTg2IDQuNzA3IDkuMjkzYTEgMSAwIDAgMC0xLjQxNCAxLjQxNGwxMiAxMmExIDEgMCAwIDAgMS40MTQgMGwxMi0xMmExIDEgMCAwIDAgMC0xLjQxNFwiLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPCEtLSBBZGQgc2Vjb25kYXJ5IG51bWJlciBidXR0b24gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGRpc2FibGVkXHJcbiAgICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNjNGM0YzQ7IHBhZGRpbmc6OHB4IDIwcHg7IGJvcmRlci1yYWRpdXM6MThweDsgZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjQwMDsgY3Vyc29yOm5vdC1hbGxvd2VkOyBjb2xvcjojMzMzOyBvcGFjaXR5OjAuNjtcIlxyXG4gICAgICAgICAgICBvbm1vdXNlb3Zlcj1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2VkZWRlZCdcIlxyXG4gICAgICAgICAgICBvbm1vdXNlb3V0PVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZmZmJ1wiPlxyXG4gICAgICAgICAgICBBZGQgc2Vjb25kYXJ5IG51bWJlclxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBzdHlsZT1cImhlaWdodDoxcHg7IGJhY2tncm91bmQ6I2U4ZThlODsgbWFyZ2luOjhweCAwO1wiPjwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBDYWxsZXIgSUQgc2VjdGlvbiAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBwYWRkaW5nOjE2cHggMDsgY3Vyc29yOnBvaW50ZXI7XCIgb25tb3VzZW92ZXI9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmYWZhZmEnXCIgb25tb3VzZW91dD1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0ndHJhbnNwYXJlbnQnXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDoxNzBweDsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXNpemU6MTRweDsgY29sb3I6IzEyMTIxMjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3Bhbj5DYWxsZXIgSUQ8L3NwYW4+XHJcbiAgICAgICAgICA8aW1nIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC41cmVtO1wiIHNyYz1cImFzc2V0cy9pY29ucy9pbmZvLWNpcmNsZS1yZWd1bGFyLnN2Z1wiIHdpZHRoPVwiMTZcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxO1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjhweDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgc3R5bGU9XCJ3aWR0aDoxNnB4OyBoZWlnaHQ6MTZweDsgY29sb3I6IzIyMjIyMjsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjsgZGlzcGxheTpibG9jazsgbWFyZ2luOjA7XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTI4LjcwOCA5LjI5M2ExIDEgMCAwIDAtMS40MTUgMEwxNiAyMC41ODYgNC43MDcgOS4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0bDEyIDEyYTEgMSAwIDAgMCAxLjQxNCAwbDEyLTEyYTEgMSAwIDAgMCAwLTEuNDE0XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OjFweDsgYmFja2dyb3VuZDojZThlOGU4OyBtYXJnaW46OHB4IDA7XCI+PC9kaXY+XHJcblxyXG4gICAgICA8IS0tIEVtZXJnZW5jeSBjYWxsYmFjayBudW1iZXIgc2VjdGlvbiAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgcGFkZGluZzoxNnB4IDA7IGN1cnNvcjpwb2ludGVyO1wiIG9ubW91c2VvdmVyPVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZmFmYWZhJ1wiIG9ubW91c2VvdXQ9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9J3RyYW5zcGFyZW50J1wiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJtaW4td2lkdGg6MTcwcHg7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zaXplOjE0cHg7IGNvbG9yOiMxMjEyMTI7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDtcIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj5FbWVyZ2VuY3kgY2FsbGJhY2s8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+bnVtYmVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2luZm8tY2lyY2xlLXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgcGFkZGluZy10b3A6MnB4O1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lcy1jaXJjbGVcIiBzdHlsZT1cImNvbG9yOiNjNjI4Mjg7IG1hcmdpbi1yaWdodDo4cHg7IG1hcmdpbi10b3A6IDJweDsgZm9udC1zaXplOjE0cHg7XCI+PC9pPlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjojYzYyODI4OyBmb250LXNpemU6MTNweDsgbGluZS1oZWlnaHQ6MS40O1wiPkFsbCBjYWxscyB3aWxsIGJlIGJsb2NrZWQgaWYgdGhlcmUncyBubyBFQ0JOLCBhc3NpZ24gYSBwaG9uZSBudW1iZXIgdG8gdGhpcyB1c2VyIG9yIHNldCB0aGUgbG9jYXRpb24gZGVmYXVsdCBFQ0JOLjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1yaWdodDo4cHg7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIHN0eWxlPVwid2lkdGg6MTZweDsgaGVpZ2h0OjE2cHg7IGNvbG9yOiMyMjIyMjI7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjowO1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0yOC43MDggOS4yOTNhMSAxIDAgMCAwLTEuNDE1IDBMMTYgMjAuNTg2IDQuNzA3IDkuMjkzYTEgMSAwIDAgMC0xLjQxNCAxLjQxNGwxMiAxMmExIDEgMCAwIDAgMS40MTQgMGwxMi0xMmExIDEgMCAwIDAgMC0xLjQxNFwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gdXNlci1jYWxsaW5nLWV4dGVuc2lvblxyXG4gICAgKm5nSWY9XCJmb3JtQ29udHJvbFwiXHJcbiAgICBbc2l0ZUlkXT1cInRoaXMuc2l0ZUlkXCJcclxuICAgICAgICAgICAgICBbY29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgW3JvdXRlUGFydGl0aW9uXT1cInRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlci5yb3V0ZVBhcnRpdGlvbk5hbWVcIlxyXG4gICAgICAgICAgICAgIFtkaXJlY3RvcnlOdW1iZXJdPVwidGhpcy5saW5lQXNzb2NpYXRpb24uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlclwiXHJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uRGlyZWN0b3J5TnVtYmVyQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9hcHAtdXNlci1jYWxsaW5nLWV4dGVuc2lvbj4gLS0+XHJcbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jYWxsaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1jYWxsaW5nL3VzZXItY2FsbGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1tYW5hZ2Uvc3JjL3VzZXItY2FsbGluZy91c2VyLWNhbGxpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWEvRSxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLDBCQUEwQjtJQUMxQiw4R0FBOEc7SUFDOUcsSUFBSTtJQUVKLElBQUksT0FBTztRQUNULE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQWdCLENBQUM7UUFDakUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FB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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3NpbXBsaWZpZWQtdXNlcic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbiB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERuc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kbnMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWNhbGxpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWNhbGxpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItY2FsbGluZy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckNhbGxpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHNpdGVJZCE6IG51bWJlcjtcclxuICBASW5wdXQoKSB1c2VySWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJpbWFyeUxpbmVEaXJlY3RvcnlOdW1iZXIhOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIG9uRXh0ZW5zaW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgcHVibGljIGRhdGFQZW5kaW5nITogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIC8vIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXSAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZm9ybTtcclxuICAvLyB9XHJcblxyXG4gIGdldCBpc1dlYmV4KCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJleFVVSUQnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2ViZXhVVUlEJykgIT09ICdudWxsJztcclxuICB9XHJcblxyXG4gIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtPy5nZXQoJ2RpcmVjdG9yeU51bWJlcicpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcGhvbmVOdW1iZXJWYWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0gJiYgdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zLmxlbmd0aCAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zWzBdPy5tYXBwZWREaWRzICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHMubGVuZ3RoICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHNbMF07XHJcbiAgfVxyXG5cclxuICBnZXQgbGluZUFzc29jaWF0aW9uKCk6IExpbmVBc3NvY2lhdGlvbiB8IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXIoKTogU2ltcGxpZmllZFVzZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRuc1NlcnZpY2U6IERuc1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJpbWFyeUxpbmVEZXZpY2UgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldFByaW1hcnlMaW5lRGV2aWNlKHRoaXMucHJpbWFyeUxpbmVEaXJlY3RvcnlOdW1iZXIpO1xyXG4gICAgaWYgKHByaW1hcnlMaW5lRGV2aWNlKSB7XHJcbiAgICAgIHRoaXMuZm9ybSA9IHByaW1hcnlMaW5lRGV2aWNlLmxpbmVBc3NvY2lhdGlvbnNbMF0/LmZvcm07XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIG9uRXh0ZW5zaW9uTGluZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS50cmltKCk7XHJcbiAgICAodGhpcy51c2VyU2VydmljZT8udXNlciAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5saW5lcyAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5saW5lc1swXT8ubWFwcGVkRGlkc1swXSkgPyB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIubGluZXNbMF0ubWFwcGVkRGlkc1swXSA9IHZhbHVlIDogdm9pZCAwO1xyXG4gICAgdGhpcy5vbkV4dGVuc2lvbkNoYW5nZS5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgb25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dC50cmltKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubGluZUFzc29jaWF0aW9uICYmIHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlciA9IHZhbHVlO1xyXG4gICAgICB0aGlzLm9uRXh0ZW5zaW9uQ2hhbmdlLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VGaWVsZCh0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRva2VuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgICh0aGlzLnVzZXJTZXJ2aWNlLnVzZXIgYXMgYW55KVt0b2tlbl0gPSB0aGlzLmZvcm0/LmdldCh0b2tlbik/LnZhbHVlO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVFZGl0TW9kZSgpIHtcclxuICAgIHRoaXMudXNlclNlcnZpY2UudXNlci50b2dnbGVFZGl0TW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2F2aW5nRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMudXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKSB8fCB0aGlzLnVzZXJTZXJ2aWNlLmhhc0V4aXN0ZWRVc2VySWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VFeHRlbnNpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGluZUFzc29jaWF0aW9uICYmIHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmRuc1NlcnZpY2UuZ2V0TnVtYmVyUmFuZ2UoU3RyaW5nKHRoaXMuc2l0ZUlkKSwgdGhpcy51c2VySWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIGNvbXBsZXRlOiAodjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGU6IGFueSkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSAgICBOVU1CRVJTIEJPWCAtLT5cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHBhZGRpbmc6IDI0cHggMDsgZ2FwOiAyNHB4O1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8tYm94IHVzZXItZGV0YWlscy1ib3hcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICA8aDMgY2xhc3M9XCJ1c2VyLWJveC10aXRsZVwiIHN0eWxlPVwid2lkdGg6IDE4MHB4O1wiPk51bWJlcnM8L2gzPlxyXG4gICAgPGRpdiBzdHlsZT1cImZsZXg6MTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XCI+XHJcbiAgICAgIDwhLS0gRGlyZWN0b3J5IG51bWJlcnMgc2VjdGlvbiAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgcGFkZGluZzoxNnB4IDA7XCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDoxNzBweDsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXNpemU6MTRweDsgY29sb3I6IzEyMTIxMjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3Bhbj5EaXJlY3RvcnkgbnVtYmVyczwvc3Bhbj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2luZm8tY2lyY2xlLXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1wiPlxyXG4gICAgICAgICAgPCEtLSBUYWJsZSAtLT5cclxuICAgICAgICAgIDx0YWJsZSBzdHlsZT1cIndpZHRoOjEwMCU7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgbWFyZ2luLWJvdHRvbToxNnB4O1wiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZDojZWRlZGVkO1wiPlxyXG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwicGFkZGluZzoxMHB4IDE2cHg7IGZvbnQtc2l6ZToxM3B4OyBmb250LXdlaWdodDo0MDA7IGNvbG9yOiM1NDU0NTQ7IHRleHQtYWxpZ246bGVmdDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5UeXBlPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCAxNnB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+UGhvbmUgbnVtYmVyPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCAxNnB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+RXh0ZW5zaW9uPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCA4cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7IHdpZHRoOjMwcHg7XCI+PC90aD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZDojZmZmOyBjdXJzb3I6cG9pbnRlcjtcIiBvbm1vdXNlb3Zlcj1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2ZhZmFmYSdcIiBvbm1vdXNlb3V0PVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZmZmJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzoxMnB4IDE2cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6I2U4ZjRmYzsgY29sb3I6IzExNzBhODsgcGFkZGluZzo0cHggMTRweDsgYm9yZGVyLXJhZGl1czoxNHB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBib3JkZXI6MXB4IHNvbGlkICNiOGQ5ZWQ7XCI+UHJpbWFyeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjEycHggMTZweDsgY29sb3I6IzMzMzsgZm9udC1zaXplOjE0cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkV4dGVuc2lvbkxpbmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkV4dGVuc2lvbkxpbmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicGhvbmVOdW1iZXJWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvZm9jdXNcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6MTJweCAxNnB4OyBjb2xvcjojMzMzOyBmb250LXNpemU6MTRweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkRpcmVjdG9yeU51bWJlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtQ29udHJvbC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvZm9jdXNcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbnRlbnRlZGl0YWJsZV09XCIhaXNXZWJleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkRpcmVjdG9yeU51bWJlckNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBmb3JtQ29udHJvbD8udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2NvcHktcmVndWxhci5zdmdcIiB3aWR0aD1cIjE2XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6MTlweCA4cHg7IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbGluZS1oZWlnaHQ6MDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIHN0eWxlPVwid2lkdGg6MTZweDsgaGVpZ2h0OjE2cHg7IGNvbG9yOiMyMjIyMjI7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjowO1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTI4LjcwOCA5LjI5M2ExIDEgMCAwIDAtMS40MTUgMEwxNiAyMC41ODYgNC43MDcgOS4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0bDEyIDEyYTEgMSAwIDAgMCAxLjQxNCAwbDEyLTEyYTEgMSAwIDAgMCAwLTEuNDE0XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8IS0tIEFkZCBzZWNvbmRhcnkgbnVtYmVyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2M0YzRjNDsgcGFkZGluZzo4cHggMjBweDsgYm9yZGVyLXJhZGl1czoxOHB4OyBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NDAwOyBjdXJzb3I6bm90LWFsbG93ZWQ7IGNvbG9yOiMzMzM7IG9wYWNpdHk6MC42O1wiXHJcbiAgICAgICAgICAgIG9ubW91c2VvdmVyPVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZWRlZGVkJ1wiXHJcbiAgICAgICAgICAgIG9ubW91c2VvdXQ9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmZmYnXCI+XHJcbiAgICAgICAgICAgIEFkZCBzZWNvbmRhcnkgbnVtYmVyXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OjFweDsgYmFja2dyb3VuZDojZThlOGU4OyBtYXJnaW46OHB4IDA7XCI+PC9kaXY+XHJcblxyXG4gICAgICA8IS0tIENhbGxlciBJRCBzZWN0aW9uIC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6MTZweCAwOyBjdXJzb3I6cG9pbnRlcjtcIiBvbm1vdXNlb3Zlcj1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2ZhZmFmYSdcIiBvbm1vdXNlb3V0PVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPSd0cmFuc3BhcmVudCdcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWluLXdpZHRoOjE3MHB4OyBmb250LXdlaWdodDo0MDA7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojMTIxMjEyOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgIDxzcGFuPkNhbGxlciBJRDwvc3Bhbj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2luZm8tY2lyY2xlLXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6OHB4OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBzdHlsZT1cIndpZHRoOjE2cHg7IGhlaWdodDoxNnB4OyBjb2xvcjojMjIyMjIyOyB0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IHRyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MDtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMjguNzA4IDkuMjkzYTEgMSAwIDAgMC0xLjQxNSAwTDE2IDIwLjU4NiA0LjcwNyA5LjI5M2ExIDEgMCAwIDAtMS40MTQgMS40MTRsMTIgMTJhMSAxIDAgMCAwIDEuNDE0IDBsMTItMTJhMSAxIDAgMCAwIDAtMS40MTRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kOiNlOGU4ZTg7IG1hcmdpbjo4cHggMDtcIj48L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gRW1lcmdlbmN5IGNhbGxiYWNrIG51bWJlciBzZWN0aW9uIC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBwYWRkaW5nOjE2cHggMDsgY3Vyc29yOnBvaW50ZXI7XCIgb25tb3VzZW92ZXI9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmYWZhZmEnXCIgb25tb3VzZW91dD1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0ndHJhbnNwYXJlbnQnXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDoxNzBweDsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXNpemU6MTRweDsgY29sb3I6IzEyMTIxMjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1wiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuPkVtZXJnZW5jeSBjYWxsYmFjazwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj5udW1iZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGltZyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAuNXJlbTtcIiBzcmM9XCJhc3NldHMvaWNvbnMvaW5mby1jaXJjbGUtcmVndWxhci5zdmdcIiB3aWR0aD1cIjE2XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBwYWRkaW5nLXRvcDoycHg7XCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZVwiIHN0eWxlPVwiY29sb3I6I2M2MjgyODsgbWFyZ2luLXJpZ2h0OjhweDsgbWFyZ2luLXRvcDogMnB4OyBmb250LXNpemU6MTRweDtcIj48L2k+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiNjNjI4Mjg7IGZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxLjQ7XCI+QWxsIGNhbGxzIHdpbGwgYmUgYmxvY2tlZCBpZiB0aGVyZSdzIG5vIEVDQk4sIGFzc2lnbiBhIHBob25lIG51bWJlciB0byB0aGlzIHVzZXIgb3Igc2V0IHRoZSBsb2NhdGlvbiBkZWZhdWx0IEVDQk4uPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjhweDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgc3R5bGU9XCJ3aWR0aDoxNnB4OyBoZWlnaHQ6MTZweDsgY29sb3I6IzIyMjIyMjsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjsgZGlzcGxheTpibG9jazsgbWFyZ2luOjA7XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTI4LjcwOCA5LjI5M2ExIDEgMCAwIDAtMS40MTUgMEwxNiAyMC41ODYgNC43MDcgOS4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0bDEyIDEyYTEgMSAwIDAgMCAxLjQxNCAwbDEyLTEyYTEgMSAwIDAgMCAwLTEuNDE0XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSB1c2VyLWNhbGxpbmctZXh0ZW5zaW9uXHJcbiAgICAqbmdJZj1cImZvcm1Db250cm9sXCJcclxuICAgIFtzaXRlSWRdPVwidGhpcy5zaXRlSWRcIlxyXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgICBbcm91dGVQYXJ0aXRpb25dPVwidGhpcy5saW5lQXNzb2NpYXRpb24uZGlyZWN0b3J5TnVtYmVyLnJvdXRlUGFydGl0aW9uTmFtZVwiXHJcbiAgICAgICAgICAgICAgW2RpcmVjdG9yeU51bWJlcl09XCJ0aGlzLmxpbmVBc3NvY2lhdGlvbi5kaXJlY3RvcnlOdW1iZXIuZGlyZWN0b3J5TnVtYmVyXCJcclxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC11c2VyLWNhbGxpbmctZXh0ZW5zaW9uPiAtLT5cclxuIl19