@tuki-io/tuki-widgets 0.0.183 → 0.0.186
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.
- package/esm2020/di2mt/api/api.endpoints.mjs +2 -2
- package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +20 -9
- package/esm2020/user-creation/src/classes/notification.mjs +32 -0
- package/esm2020/user-creation/src/environments/environment.mjs +11 -0
- package/esm2020/user-creation/src/shared/services/notification.service.mjs +62 -0
- package/esm2020/user-creation/src/user-creation.module.mjs +7 -1
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +14 -11
- package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +3 -3
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +17 -7
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +117 -10
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +2 -2
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2 -2
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +19 -8
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +117 -10
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +2 -2
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +2 -2
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/package.json +1 -1
- package/user-creation/src/classes/notification.d.ts +18 -0
- package/user-creation/src/environments/environment.d.ts +9 -0
- package/user-creation/src/shared/services/notification.service.d.ts +18 -0
- package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +3 -0
|
@@ -147,10 +147,10 @@ export class DeviceManageWidgetComponent {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
DeviceManageWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceManageWidgetComponent, deps: [{ token: i1.UserService }, { token: i2.DeviceService }, { token: i3.APIService }, { token: i4.LineService }, { token: i5.SiteSettingsService }, { token: i6.ValidationService }, { token: i7.MatDialog }, { token: i8.DnsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
-
DeviceManageWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceManageWidgetComponent, selector: "app-device-manage-widget", inputs: { token: "token", host: "host", siteId: "siteId", userId: "userId", isLdap: "isLdap", deviceName: "deviceName" }, outputs: { onSave: "onSave", onChange: "onChange", discardChanges: "discardChanges", goBack: "goBack" }, viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "\r\n\r\n<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!dataPending\">\r\n <!-- <div class=\"go-back-box\" (click)=\"onGoBack()\"> -->\r\n <div class=\"go-back-box\">\r\n <div class=\"go-back-box-container\">\r\n <span class=\"app-icon icon-webex-left-arrow\"></span>\r\n <span class=\"go-back-title\">Devices</span>\r\n </div>\r\n </div>\r\n\r\n <app-device-info \r\n [device]=\"device\" \r\n [firstName]=\"firstName\" \r\n [lastName]=\"lastName\"\r\n (onclickBack)=\"onGoBack()\"\r\n >\r\n \r\n </app-device-info>\r\n <div class=\"device-info\">\r\n\r\n <div class=\"device-info-part\">\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Details</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('maxLineCount')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Lines</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ (form?.get('macAddress')?.value | macAddress) || 'N/A' }}</span>\r\n <span class=\"extra-info\">MAC address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('ipAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Host IP address</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('remoteIpAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Remote IP address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">Cisco</span>\r\n <span class=\"extra-info\">Managed By</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Software</span>\r\n <div class=\"icon-bordered-wrapper\">\r\n <i class=\"icon configure-icon rem1\"></i>\r\n </div>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareVersion')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software Channel</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareChannel')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software version</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Tags</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\" style=\"flex-direction: column; gap: 1rem;\">\r\n <div class=\"tags-list-container\">\r\n <div *ngFor=\"let tag of tags; let i = index\" class=\"tag-label\">\r\n <span class=\"tag-desccription\">{{ tag }}</span>\r\n <i class=\"icon close-icon\" (click)=\"removeTag(i)\" style=\"width: 0.75rem; height: 0.75rem; flex: 0 0 auto;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"tags-list-container\">\r\n <button class=\"tag-label add-tag\" (click)=\"showInput()\">\r\n <span class=\"icon plus-icon\" style=\"width: 0.75rem; height: 0.75rem;\"></span>\r\n <span>Add tag</span>\r\n </button>\r\n <input \r\n #tagInput\r\n id=\"enter-tag-input\" \r\n *ngIf=\"isAdding\"\r\n [(ngModel)]=\"newTag\"\r\n (blur)=\"onBlur()\"\r\n type=\"text\"\r\n class=\"add-tag-input\" \r\n placeholder=\"Enter tag...\"\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n </div>\r\n\r\n <div class=\"device-info-part\">\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Issues & Information</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"description\">\r\n <i class=\"icon check-icon rem1\" style=\"filter: invert(26%) sepia(27%) saturate(1093%) hue-rotate(114deg) brightness(93%) contrast(90%);\"></i>\r\n <span class=\"text-description\">No reported issues at this time</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Hoteling</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <span class=\"text-description\">Allow this device to be used as a Hoteling Host by visiting guests.</span>\r\n <div class=\"toggle-wrapper\">\r\n <mat-slide-toggle class=\"custom-toggle\" name=\"logMissedCalls\" [formControl]=\"hotelingEnabled\"></mat-slide-toggle>\r\n <i class=\"icon info-icon rem1\" \r\n style=\"filter: invert(20%) sepia(99%) saturate(2065%) hue-rotate(197deg) brightness(92%) contrast(101%);\"\r\n [matTooltip]=\"'Enabling this device for Hoteling means that a guest (end user) can log into this host (workspace phone) and use this phone as if it were their own. This is useful when traveling to a remote office but still needing to place/receive calls with their telephone number and to access features normally available to them on their own office phone.'\"\r\n ></i>\r\n </div>\r\n <span class=\"text-description\">Limit the time a guest can use this phone to</span>\r\n <mat-select [formControl]=\"guestHoursLimit\">\r\n <mat-option *ngFor=\"let type of HOTELING_TIME_HOURS\" [value]=\"type\">\r\n {{type}}\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n </div>\r\n </section>\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device Management</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <p class=\"text-description\">The users and workspaces that appear on this device are displayed below in the order of appearance.</p>\r\n <div class=\"flex-column\">\r\n <span class=\"text-description\">To add and remove users and workspaces, select <b>Configure Lines.</b></span>\r\n <span class=\"text-description\">To customize the programmable Line Keys, select <b>Configure Layout.</b></span>\r\n <span class=\"text-description\">To set up the display settings and dialing options, select <b>Device Settings</b>.</span>\r\n </div>\r\n <table style=\"border-collapse:collapse;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Index #</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Name</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Number/Extension</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Appearances</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Registered</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"device?.lines && device?.lines.length\">\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\"\r\n \r\n *ngFor=\"let line of device.lines; let i = index\">\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\"></span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">{{line?.name}}</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <div style=\"width: 120px;\"\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onNumberChange($event, i)\">\r\n {{ line?.number || 'NA' }}\r\n </div> \r\n <span> / </span>\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onExtensionChange($event, i)\">\r\n {{ line?.extension }}\r\n </span> -->\r\n <app-device-associated-line-extension\r\n [control]=\"linesControls.at(i)\"\r\n [routePartition]=\"line.routePartitionName\"\r\n [directoryNumber]=\"line.directoryNumber\"\r\n [siteId]=\"siteId\"\r\n (onChange)=\"onExtensionChange($event, i)\">\r\n </app-device-associated-line-extension>\r\n </div>\r\n \r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">1</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <i class=\"icon warning-icon rem1\" [matTooltip]=\"'Unregistered'\"></i>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </tbody>\r\n </table>\r\n <div class=\"totals\">\r\n <span class=\"text-description\">15 of 16 total lines available</span>\r\n </div>\r\n <div class=\"configure-lines\">\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Lines</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Layout</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Device Settings</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Support</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <div class=\"configure-lines\">\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Meetings & Calls</span>\r\n <span class=\"label new\">New</span>\r\n <i class=\"icon info-icon rem1\"\r\n [matTooltip]=\"'Troubleshooting provides details about the device related to status, network activity, and call information.'\"\r\n ></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Go to troubleshooting</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Device Logs</span>\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Generate device logs and download them to your computer.'\"></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n </div>\r\n \r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.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}.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}.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}:host ::ng-deep .mat-form-field-wrapper{height:30px}:host ::ng-deep .mat-form-field-flex{height:30px}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:host :ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}:host ::ng-deep .mat-select{line-height:20px;max-width:175px;margin-left:2.75rem;border:2px solid gray;padding:.25rem .75rem;border-radius:8px}:host ::ng-deep .mat-option{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important;line-height:48px!important;height:48px!important;padding:0 10px!important;text-align:left!important;text-decoration:none!important;position:relative!important;cursor:pointer!important;outline:none!important;display:flex!important;flex-direction:row!important;max-width:100%!important;box-sizing:border-box!important;align-items:center!important;-webkit-tap-highlight-color:rgba(0,0,0,0)!important}:host ::ng-deep .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#bfe3ff;color:#000}:host ::ng-deep .mat-select-panel .mat-option:not(.search-input):hover{background:#daedfc}:host ::ng-deep .mat-form-field-infix{border-top:0px!important}:host ::ng-deep .mat-tab-group{font-family:Inter,sans-serif}:host ::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}:host ::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}:host ::ng-deep .mat-tab-labels{gap:30px}:host ::ng-deep .mat-progress-spinner{position:absolute!important;top:40%;left:45%}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.app-icon{transition:all .15s ease-out}.icon-webex-right-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2220%22 height%3D%2220%22 viewBox%3D%220 0 20 20%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-right%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M14.0812 9.66902L6.58119 2.16902C6.53813 2.12351 6.48638 2.0871 6.429 2.06193C6.37162 2.03677 6.30978 2.02336 6.24713 2.0225C6.18448 2.02165 6.1223 2.03336 6.06425 2.05695C6.00621 2.08053 5.95348 2.11552 5.90919 2.15983C5.8649 2.20415 5.82994 2.25689 5.80638 2.31495C5.78282 2.373 5.77113 2.43519 5.77202 2.49784C5.77291 2.56049 5.78634 2.62232 5.81153 2.67969C5.83673 2.73705 5.87316 2.78879 5.91869 2.83183L13.0874 10.0003L5.91869 17.169C5.87316 17.2121 5.83673 17.2638 5.81153 17.3212C5.78634 17.3785 5.77291 17.4404 5.77202 17.503C5.77113 17.5657 5.78282 17.6279 5.80638 17.6859C5.82994 17.744 5.8649 17.7967 5.90919 17.841C5.95348 17.8853 6.00621 17.9203 6.06425 17.9439C6.1223 17.9675 6.18448 17.9792 6.24713 17.9783C6.30978 17.9775 6.37162 17.9641 6.429 17.9389C6.48638 17.9138 6.53813 17.8773 6.58119 17.8318L14.0812 10.3318C14.1691 10.2439 14.2184 10.1247 14.2184 10.0004C14.2184 9.87613 14.1691 9.75692 14.0812 9.66902Z%22 fill%3D%22%230F0F0F%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-left%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.device-info{display:flex;gap:1rem;padding:1.5rem}.device-info .device-info-part{display:flex;flex-direction:column;gap:1rem;flex:1;min-width:0}.device-info .device-info-part .card{display:flex;flex-direction:column;padding:1rem 1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0}.device-info .device-info-part .card .header{display:flex;align-items:center;justify-content:space-between}.device-info .device-info-part .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif}.device-info .device-info-part .card .main-content{display:flex;flex-direction:column;min-width:0}.device-info .device-info-part .card .main-content .detail-row{display:flex;flex:1;padding:1rem 0;min-width:0}.device-info .device-info-part .card .main-content .detail-row .side{display:flex;flex-direction:column;flex:1}.device-info .device-info-part .card .main-content .detail-row .side .main-value{font-weight:500;font-size:.875rem}.device-info .device-info-part .card .main-content .detail-row .side .extra-info{font-weight:350;font-size:.75rem}.device-info .device-info-part .card .main-content .detail-row .description{display:flex;gap:.5rem;align-items:center}.device-info .device-info-part .card .main-content .detail-row .toggle-wrapper{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.device-info .device-info-part .card .main-content .detail-row .configure-lines{display:flex;flex-direction:column}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line{display:flex;align-items:center;justify-content:space-between;flex:1;padding:.5rem 0}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div{gap:.5rem;display:flex;align-items:center}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label{display:inline-flex;flex:0 0 auto;gap:.25rem;align-items:center;justify-content:center;overflow:hidden;padding:.25rem .5rem;border:.0625rem solid transparent;border-radius:.25rem;line-height:1;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label.new{font-size:.75rem;border-color:#30c9b0;background-color:#e9f7f3;color:#12615a}.device-info .device-info-part .card .main-content .tags-list-container{display:flex;gap:.5rem;flex-wrap:wrap;min-width:0}.device-info .device-info-part .card .main-content .tags-list-container .tag-label{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;gap:.5rem;height:40px;font-size:smaller;max-width:100%;min-width:0;overflow:hidden}.device-info .device-info-part .card .main-content .tags-list-container .tag-label .tag-desccription{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;height:40px;font-size:smaller;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important;margin-left:-99px}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input:focus-visible{outline:none}.device-info .device-info-part .card .main-content .add-tag{background-color:#fff!important}.device-info .device-info-part .card .main-content .add-tag:hover{color:#0353a8!important}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.icon-bordered-wrapper{display:flex;inline-size:1.5rem;border-radius:50rem;border:1px solid rgba(0,0,0,.5019607843);width:1.5rem;height:1.5rem;align-items:center;justify-content:center;cursor:pointer}.configure-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 10.25A5.75 5.75 0 1 0 21.75 16 5.756 5.756 0 0 0 16 10.25m0 10a4.25 4.25 0 1 1 0-8.5 4.25 4.25 0 0 1 0 8.5M28 13.25H25.67a.25.25 0 0 1-.231-.155l-.667-1.633a.25.25 0 0 1 .057-.273l1.66-1.631a1.75 1.75 0 0 0 .024-2.475l-1.4-1.427a1.753 1.753 0 0 0-2.476-.024l-1.665 1.635a.25.25 0 0 1-.273.053l-1.796-.754a.25.25 0 0 1-.154-.23V4A1.75 1.75 0 0 0 17 2.25h-2A1.75 1.75 0 0 0 13.25 4v2.331a.25.25 0 0 1-.155.232l-1.714.71a.25.25 0 0 1-.273-.054L9.459 5.571a1.75 1.75 0 0 0-2.475 0L5.57 6.985a1.75 1.75 0 0 0 0 2.474l1.65 1.649a.25.25 0 0 1 .054.272l-.712 1.716a.25.25 0 0 1-.23.154H4A1.75 1.75 0 0 0 2.25 15v2A1.75 1.75 0 0 0 4 18.75h2.332a.25.25 0 0 1 .23.155l.71 1.713a.25.25 0 0 1-.053.274L5.57 22.54a1.75 1.75 0 0 0 0 2.476l1.415 1.414a1.75 1.75 0 0 0 2.476 0l1.648-1.65a.25.25 0 0 1 .272-.054l1.716.712a.25.25 0 0 1 .153.23V28A1.75 1.75 0 0 0 15 29.75h2A1.75 1.75 0 0 0 18.75 28v-2.332a.25.25 0 0 1 .156-.231l1.715-.71a.25.25 0 0 1 .272.054l1.649 1.649a1.753 1.753 0 0 0 2.474 0l1.416-1.415a1.753 1.753 0 0 0-.002-2.475l-1.648-1.648a.25.25 0 0 1-.055-.273l.712-1.715a.25.25 0 0 1 .23-.154H28A1.75 1.75 0 0 0 29.75 17v-2A1.75 1.75 0 0 0 28 13.25m.25 3.75a.25.25 0 0 1-.25.25h-2.331a1.74 1.74 0 0 0-1.617 1.08l-.712 1.716a1.75 1.75 0 0 0 .38 1.907L25.37 23.6a.25.25 0 0 1 0 .355l-1.414 1.414a.25.25 0 0 1-.273.054.3.3 0 0 1-.08-.054l-1.65-1.65a1.74 1.74 0 0 0-1.907-.379l-1.713.71a1.74 1.74 0 0 0-1.082 1.617V28a.25.25 0 0 1-.25.25h-2a.25.25 0 0 1-.25-.25v-2.332a1.74 1.74 0 0 0-1.08-1.616l-1.716-.712a1.74 1.74 0 0 0-1.907.38L8.4 25.37a.25.25 0 0 1-.355 0L6.63 23.955a.25.25 0 0 1 0-.354l1.65-1.648a1.745 1.745 0 0 0 .379-1.908l-.71-1.714a1.74 1.74 0 0 0-1.617-1.08H4a.25.25 0 0 1-.25-.25v-2a.25.25 0 0 1 .25-.25h2.332a1.74 1.74 0 0 0 1.616-1.082l.712-1.715a1.75 1.75 0 0 0-.38-1.907L6.63 8.4a.25.25 0 0 1 0-.354l1.414-1.414a.25.25 0 0 1 .355 0l1.648 1.649a1.74 1.74 0 0 0 1.908.379l1.713-.71A1.74 1.74 0 0 0 14.75 6.33v-2.33a.25.25 0 0 1 .25-.25h2a.25.25 0 0 1 .25.25v2.334a1.75 1.75 0 0 0 1.073 1.614l1.796.754a1.75 1.75 0 0 0 1.903-.364h.001l1.666-1.636a.255.255 0 0 1 .355.003l1.4 1.428a.25.25 0 0 1-.004.354l-1.66 1.63a1.745 1.745 0 0 0-.396 1.91l.668 1.636a1.74 1.74 0 0 0 1.62 1.086H28a.25.25 0 0 1 .25.25z%22%2F%3E%3C%2Fsvg%3E\")}.arrow-right-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m22.53 15.47-12-12a.75.75 0 1 0-1.06 1.06L20.94 16 9.47 27.47a.75.75 0 1 0 1.06 1.06l12-12a.75.75 0 0 0 0-1.06%22%2F%3E%3C%2Fsvg%3E\")}.check-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 2.25A13.75 13.75 0 1 0 29.75 16 13.765 13.765 0 0 0 16 2.25m0 26A12.25 12.25 0 1 1 28.25 16 12.264 12.264 0 0 1 16 28.25M20.512 12.43l-6.472 5.547-2.509-2.521a.75.75 0 0 0-1.062 1.058l3 3.015a.75.75 0 0 0 1.02.04l7-6a.75.75 0 1 0-.977-1.139%22%2F%3E%3C%2Fsvg%3E\")}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.warning-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M29.379 23.624 18.382 4.625a2.75 2.75 0 0 0-4.764 0l-11 19A2.75 2.75 0 0 0 5 27.75h21.997a2.75 2.75 0 0 0 2.382-4.126m-1.3 2.001a1.24 1.24 0 0 1-1.082.625H5a1.25 1.25 0 0 1-1.082-1.874l10.999-19A1.25 1.25 0 0 1 16 4.75a1.25 1.25 0 0 1 1.083.626l10.997 19a1.24 1.24 0 0 1 0 1.25M16 23.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16 19.75a.75.75 0 0 0 .75-.75v-7a.75.75 0 1 0-1.5 0v7a.75.75 0 0 0 .75.75%22%2F%3E%3C%2Fsvg%3E\")}.plus-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M26 15.25h-9.25V6a.75.75 0 1 0-1.5 0v9.25H6a.75.75 0 1 0 0 1.5h9.25V26a.75.75 0 1 0 1.5 0v-9.25H26a.75.75 0 1 0 0-1.5%22%2F%3E%3C%2Fsvg%3E\")}.close-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m17.06 16 8.47-8.47a.75.75 0 0 0-.242-1.224.75.75 0 0 0-.819.163L16 14.94 7.53 6.47A.75.75 0 1 0 6.47 7.53L14.94 16l-8.47 8.47a.75.75 0 0 0 1.06 1.06L16 17.06l8.47 8.47a.75.75 0 1 0 1.06-1.06z%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem}.rem1-25{height:1.25rem;width:1.25rem}\n"], dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i11.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i15.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i16.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i17.DeviceAssociatedLineExtensionComponent, selector: "app-device-associated-line-extension", inputs: ["control", "routePartition", "directoryNumber", "siteId"], outputs: ["onChange"] }, { kind: "component", type: i18.DeviceInfoComponent, selector: "app-device-info", inputs: ["device", "firstName", "lastName", "active", "email", "position"], outputs: ["onclickBack"] }, { kind: "pipe", type: i19.MacAddressPipe, name: "macAddress" }] });
|
|
150
|
+
DeviceManageWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceManageWidgetComponent, selector: "app-device-manage-widget", inputs: { token: "token", host: "host", siteId: "siteId", userId: "userId", isLdap: "isLdap", deviceName: "deviceName" }, outputs: { onSave: "onSave", onChange: "onChange", discardChanges: "discardChanges", goBack: "goBack" }, viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "\r\n\r\n<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!dataPending\">\r\n <!-- <div class=\"go-back-box\" (click)=\"onGoBack()\"> -->\r\n <div class=\"go-back-box\">\r\n <div class=\"go-back-box-container\">\r\n <span class=\"app-icon icon-webex-left-arrow\"></span>\r\n <span class=\"go-back-title\">Devices</span>\r\n </div>\r\n </div>\r\n\r\n <app-device-info \r\n [device]=\"device\" \r\n [firstName]=\"firstName\" \r\n [lastName]=\"lastName\"\r\n (onclickBack)=\"onGoBack()\"\r\n >\r\n \r\n </app-device-info>\r\n <div class=\"device-info\">\r\n\r\n <div class=\"device-info-part\">\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Details</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('maxLineCount')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Lines</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ (form?.get('macAddress')?.value | macAddress) || 'N/A' }}</span>\r\n <span class=\"extra-info\">MAC address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('ipAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Host IP address</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('remoteIpAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Remote IP address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">Cisco</span>\r\n <span class=\"extra-info\">Managed By</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Software</span>\r\n <div class=\"icon-bordered-wrapper\">\r\n <i class=\"icon configure-icon rem1\"></i>\r\n </div>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareVersion')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software Channel</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareChannel')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software version</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Tags</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\" style=\"flex-direction: column; gap: 1rem;\">\r\n <div class=\"tags-list-container\">\r\n <div *ngFor=\"let tag of tags; let i = index\" class=\"tag-label\">\r\n <span class=\"tag-desccription\">{{ tag }}</span>\r\n <i class=\"icon close-icon\" (click)=\"removeTag(i)\" style=\"width: 0.75rem; height: 0.75rem; flex: 0 0 auto;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"tags-list-container\">\r\n <button class=\"tag-label add-tag\" (click)=\"showInput()\">\r\n <span class=\"icon plus-icon\" style=\"width: 0.75rem; height: 0.75rem;\"></span>\r\n <span>Add tag</span>\r\n </button>\r\n <input \r\n #tagInput\r\n id=\"enter-tag-input\" \r\n *ngIf=\"isAdding\"\r\n [(ngModel)]=\"newTag\"\r\n (blur)=\"onBlur()\"\r\n type=\"text\"\r\n class=\"add-tag-input\" \r\n placeholder=\"Enter tag...\"\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n </div>\r\n\r\n <div class=\"device-info-part\">\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Issues & Information</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"description\">\r\n <i class=\"icon check-icon rem1\" style=\"filter: invert(26%) sepia(27%) saturate(1093%) hue-rotate(114deg) brightness(93%) contrast(90%);\"></i>\r\n <span class=\"text-description\">No reported issues at this time</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Hoteling</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <span class=\"text-description\">Allow this device to be used as a Hoteling Host by visiting guests.</span>\r\n <div class=\"toggle-wrapper\">\r\n <mat-slide-toggle class=\"custom-toggle\" name=\"logMissedCalls\" [formControl]=\"hotelingEnabled\"></mat-slide-toggle>\r\n <i class=\"icon info-icon rem1\" \r\n style=\"filter: invert(20%) sepia(99%) saturate(2065%) hue-rotate(197deg) brightness(92%) contrast(101%);\"\r\n [matTooltip]=\"'Enabling this device for Hoteling means that a guest (end user) can log into this host (workspace phone) and use this phone as if it were their own. This is useful when traveling to a remote office but still needing to place/receive calls with their telephone number and to access features normally available to them on their own office phone.'\"\r\n ></i>\r\n </div>\r\n <span class=\"text-description\">Limit the time a guest can use this phone to</span>\r\n <mat-select [formControl]=\"guestHoursLimit\">\r\n <mat-option *ngFor=\"let type of HOTELING_TIME_HOURS\" [value]=\"type\">\r\n {{type}}\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n </div>\r\n </section>\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device Management</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <p class=\"text-description\">The users and workspaces that appear on this device are displayed below in the order of appearance.</p>\r\n <div class=\"flex-column\">\r\n <span class=\"text-description\">To add and remove users and workspaces, select <b>Configure Lines.</b></span>\r\n <span class=\"text-description\">To customize the programmable Line Keys, select <b>Configure Layout.</b></span>\r\n <span class=\"text-description\">To set up the display settings and dialing options, select <b>Device Settings</b>.</span>\r\n </div>\r\n <table style=\"border-collapse:collapse;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Index #</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Name</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Number/Extension</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Appearances</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Registered</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"device?.lines && device?.lines.length\">\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\"\r\n \r\n *ngFor=\"let line of device.lines; let i = index\">\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\"></span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">{{line?.name}}</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <div style=\"width: 120px;\"\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onNumberChange($event, i)\">\r\n {{ line?.number || 'NA' }}\r\n </div> \r\n <span> / </span>\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onExtensionChange($event, i)\">\r\n {{ line?.extension }}\r\n </span> -->\r\n <app-device-associated-line-extension\r\n [control]=\"linesControls.at(i)\"\r\n [routePartition]=\"line.routePartitionName\"\r\n [directoryNumber]=\"line.directoryNumber\"\r\n [siteId]=\"siteId\"\r\n (onChange)=\"onExtensionChange($event, i)\">\r\n </app-device-associated-line-extension>\r\n </div>\r\n \r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">1</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <i class=\"icon warning-icon rem1\" [matTooltip]=\"'Unregistered'\"></i>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </tbody>\r\n </table>\r\n <div class=\"totals\">\r\n <span class=\"text-description\">15 of 16 total lines available</span>\r\n </div>\r\n <div class=\"configure-lines\" style=\"opacity: 0.4; pointer-events: none;\">\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Lines</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Layout</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Device Settings</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Support</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <div class=\"configure-lines\" style=\"opacity: 0.4; pointer-events: none;\">\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Meetings & Calls</span>\r\n <span class=\"label new\">New</span>\r\n <i class=\"icon info-icon rem1\"\r\n [matTooltip]=\"'Troubleshooting provides details about the device related to status, network activity, and call information.'\"\r\n ></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Go to troubleshooting</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Device Logs</span>\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Generate device logs and download them to your computer.'\"></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n </div>\r\n \r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.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}.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}.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}:host ::ng-deep .mat-form-field-wrapper{height:30px}:host ::ng-deep .mat-form-field-flex{height:30px}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:host :ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}:host ::ng-deep .mat-select{line-height:20px;max-width:175px;margin-left:2.75rem;border:2px solid gray;padding:.25rem .75rem;border-radius:8px}:host ::ng-deep .mat-option{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important;line-height:48px!important;height:48px!important;padding:0 10px!important;text-align:left!important;text-decoration:none!important;position:relative!important;cursor:pointer!important;outline:none!important;display:flex!important;flex-direction:row!important;max-width:100%!important;box-sizing:border-box!important;align-items:center!important;-webkit-tap-highlight-color:rgba(0,0,0,0)!important}:host ::ng-deep .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#bfe3ff;color:#000}:host ::ng-deep .mat-select-panel .mat-option:not(.search-input):hover{background:#daedfc}:host ::ng-deep .mat-form-field-infix{border-top:0px!important}:host ::ng-deep .mat-tab-group{font-family:Inter,sans-serif}:host ::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}:host ::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}:host ::ng-deep .mat-tab-labels{gap:30px}:host ::ng-deep .mat-progress-spinner{position:absolute!important;top:40%;left:45%}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.app-icon{transition:all .15s ease-out}.icon-webex-right-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2220%22 height%3D%2220%22 viewBox%3D%220 0 20 20%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-right%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M14.0812 9.66902L6.58119 2.16902C6.53813 2.12351 6.48638 2.0871 6.429 2.06193C6.37162 2.03677 6.30978 2.02336 6.24713 2.0225C6.18448 2.02165 6.1223 2.03336 6.06425 2.05695C6.00621 2.08053 5.95348 2.11552 5.90919 2.15983C5.8649 2.20415 5.82994 2.25689 5.80638 2.31495C5.78282 2.373 5.77113 2.43519 5.77202 2.49784C5.77291 2.56049 5.78634 2.62232 5.81153 2.67969C5.83673 2.73705 5.87316 2.78879 5.91869 2.83183L13.0874 10.0003L5.91869 17.169C5.87316 17.2121 5.83673 17.2638 5.81153 17.3212C5.78634 17.3785 5.77291 17.4404 5.77202 17.503C5.77113 17.5657 5.78282 17.6279 5.80638 17.6859C5.82994 17.744 5.8649 17.7967 5.90919 17.841C5.95348 17.8853 6.00621 17.9203 6.06425 17.9439C6.1223 17.9675 6.18448 17.9792 6.24713 17.9783C6.30978 17.9775 6.37162 17.9641 6.429 17.9389C6.48638 17.9138 6.53813 17.8773 6.58119 17.8318L14.0812 10.3318C14.1691 10.2439 14.2184 10.1247 14.2184 10.0004C14.2184 9.87613 14.1691 9.75692 14.0812 9.66902Z%22 fill%3D%22%230F0F0F%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-left%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.device-info{display:flex;gap:1rem;padding:1.5rem}.device-info .device-info-part{display:flex;flex-direction:column;gap:1rem;flex:1;min-width:0}.device-info .device-info-part .card{display:flex;flex-direction:column;padding:1rem 1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0}.device-info .device-info-part .card .header{display:flex;align-items:center;justify-content:space-between}.device-info .device-info-part .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif}.device-info .device-info-part .card .main-content{display:flex;flex-direction:column;min-width:0}.device-info .device-info-part .card .main-content .detail-row{display:flex;flex:1;padding:1rem 0;min-width:0}.device-info .device-info-part .card .main-content .detail-row .side{display:flex;flex-direction:column;flex:1}.device-info .device-info-part .card .main-content .detail-row .side .main-value{font-weight:500;font-size:.875rem}.device-info .device-info-part .card .main-content .detail-row .side .extra-info{font-weight:350;font-size:.75rem}.device-info .device-info-part .card .main-content .detail-row .description{display:flex;gap:.5rem;align-items:center}.device-info .device-info-part .card .main-content .detail-row .toggle-wrapper{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.device-info .device-info-part .card .main-content .detail-row .configure-lines{display:flex;flex-direction:column}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line{display:flex;align-items:center;justify-content:space-between;flex:1;padding:.5rem 0}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div{gap:.5rem;display:flex;align-items:center}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label{display:inline-flex;flex:0 0 auto;gap:.25rem;align-items:center;justify-content:center;overflow:hidden;padding:.25rem .5rem;border:.0625rem solid transparent;border-radius:.25rem;line-height:1;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label.new{font-size:.75rem;border-color:#30c9b0;background-color:#e9f7f3;color:#12615a}.device-info .device-info-part .card .main-content .tags-list-container{display:flex;gap:.5rem;flex-wrap:wrap;min-width:0}.device-info .device-info-part .card .main-content .tags-list-container .tag-label{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;gap:.5rem;height:40px;font-size:smaller;max-width:100%;min-width:0;overflow:hidden}.device-info .device-info-part .card .main-content .tags-list-container .tag-label .tag-desccription{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;height:40px;font-size:smaller;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important;margin-left:-99px}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input:focus-visible{outline:none}.device-info .device-info-part .card .main-content .add-tag{background-color:#fff!important}.device-info .device-info-part .card .main-content .add-tag:hover{color:#0353a8!important}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.icon-bordered-wrapper{display:flex;inline-size:1.5rem;border-radius:50rem;border:1px solid rgba(0,0,0,.5019607843);width:1.5rem;height:1.5rem;align-items:center;justify-content:center;cursor:pointer}.configure-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 10.25A5.75 5.75 0 1 0 21.75 16 5.756 5.756 0 0 0 16 10.25m0 10a4.25 4.25 0 1 1 0-8.5 4.25 4.25 0 0 1 0 8.5M28 13.25H25.67a.25.25 0 0 1-.231-.155l-.667-1.633a.25.25 0 0 1 .057-.273l1.66-1.631a1.75 1.75 0 0 0 .024-2.475l-1.4-1.427a1.753 1.753 0 0 0-2.476-.024l-1.665 1.635a.25.25 0 0 1-.273.053l-1.796-.754a.25.25 0 0 1-.154-.23V4A1.75 1.75 0 0 0 17 2.25h-2A1.75 1.75 0 0 0 13.25 4v2.331a.25.25 0 0 1-.155.232l-1.714.71a.25.25 0 0 1-.273-.054L9.459 5.571a1.75 1.75 0 0 0-2.475 0L5.57 6.985a1.75 1.75 0 0 0 0 2.474l1.65 1.649a.25.25 0 0 1 .054.272l-.712 1.716a.25.25 0 0 1-.23.154H4A1.75 1.75 0 0 0 2.25 15v2A1.75 1.75 0 0 0 4 18.75h2.332a.25.25 0 0 1 .23.155l.71 1.713a.25.25 0 0 1-.053.274L5.57 22.54a1.75 1.75 0 0 0 0 2.476l1.415 1.414a1.75 1.75 0 0 0 2.476 0l1.648-1.65a.25.25 0 0 1 .272-.054l1.716.712a.25.25 0 0 1 .153.23V28A1.75 1.75 0 0 0 15 29.75h2A1.75 1.75 0 0 0 18.75 28v-2.332a.25.25 0 0 1 .156-.231l1.715-.71a.25.25 0 0 1 .272.054l1.649 1.649a1.753 1.753 0 0 0 2.474 0l1.416-1.415a1.753 1.753 0 0 0-.002-2.475l-1.648-1.648a.25.25 0 0 1-.055-.273l.712-1.715a.25.25 0 0 1 .23-.154H28A1.75 1.75 0 0 0 29.75 17v-2A1.75 1.75 0 0 0 28 13.25m.25 3.75a.25.25 0 0 1-.25.25h-2.331a1.74 1.74 0 0 0-1.617 1.08l-.712 1.716a1.75 1.75 0 0 0 .38 1.907L25.37 23.6a.25.25 0 0 1 0 .355l-1.414 1.414a.25.25 0 0 1-.273.054.3.3 0 0 1-.08-.054l-1.65-1.65a1.74 1.74 0 0 0-1.907-.379l-1.713.71a1.74 1.74 0 0 0-1.082 1.617V28a.25.25 0 0 1-.25.25h-2a.25.25 0 0 1-.25-.25v-2.332a1.74 1.74 0 0 0-1.08-1.616l-1.716-.712a1.74 1.74 0 0 0-1.907.38L8.4 25.37a.25.25 0 0 1-.355 0L6.63 23.955a.25.25 0 0 1 0-.354l1.65-1.648a1.745 1.745 0 0 0 .379-1.908l-.71-1.714a1.74 1.74 0 0 0-1.617-1.08H4a.25.25 0 0 1-.25-.25v-2a.25.25 0 0 1 .25-.25h2.332a1.74 1.74 0 0 0 1.616-1.082l.712-1.715a1.75 1.75 0 0 0-.38-1.907L6.63 8.4a.25.25 0 0 1 0-.354l1.414-1.414a.25.25 0 0 1 .355 0l1.648 1.649a1.74 1.74 0 0 0 1.908.379l1.713-.71A1.74 1.74 0 0 0 14.75 6.33v-2.33a.25.25 0 0 1 .25-.25h2a.25.25 0 0 1 .25.25v2.334a1.75 1.75 0 0 0 1.073 1.614l1.796.754a1.75 1.75 0 0 0 1.903-.364h.001l1.666-1.636a.255.255 0 0 1 .355.003l1.4 1.428a.25.25 0 0 1-.004.354l-1.66 1.63a1.745 1.745 0 0 0-.396 1.91l.668 1.636a1.74 1.74 0 0 0 1.62 1.086H28a.25.25 0 0 1 .25.25z%22%2F%3E%3C%2Fsvg%3E\")}.arrow-right-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m22.53 15.47-12-12a.75.75 0 1 0-1.06 1.06L20.94 16 9.47 27.47a.75.75 0 1 0 1.06 1.06l12-12a.75.75 0 0 0 0-1.06%22%2F%3E%3C%2Fsvg%3E\")}.check-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 2.25A13.75 13.75 0 1 0 29.75 16 13.765 13.765 0 0 0 16 2.25m0 26A12.25 12.25 0 1 1 28.25 16 12.264 12.264 0 0 1 16 28.25M20.512 12.43l-6.472 5.547-2.509-2.521a.75.75 0 0 0-1.062 1.058l3 3.015a.75.75 0 0 0 1.02.04l7-6a.75.75 0 1 0-.977-1.139%22%2F%3E%3C%2Fsvg%3E\")}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.warning-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M29.379 23.624 18.382 4.625a2.75 2.75 0 0 0-4.764 0l-11 19A2.75 2.75 0 0 0 5 27.75h21.997a2.75 2.75 0 0 0 2.382-4.126m-1.3 2.001a1.24 1.24 0 0 1-1.082.625H5a1.25 1.25 0 0 1-1.082-1.874l10.999-19A1.25 1.25 0 0 1 16 4.75a1.25 1.25 0 0 1 1.083.626l10.997 19a1.24 1.24 0 0 1 0 1.25M16 23.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16 19.75a.75.75 0 0 0 .75-.75v-7a.75.75 0 1 0-1.5 0v7a.75.75 0 0 0 .75.75%22%2F%3E%3C%2Fsvg%3E\")}.plus-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M26 15.25h-9.25V6a.75.75 0 1 0-1.5 0v9.25H6a.75.75 0 1 0 0 1.5h9.25V26a.75.75 0 1 0 1.5 0v-9.25H26a.75.75 0 1 0 0-1.5%22%2F%3E%3C%2Fsvg%3E\")}.close-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m17.06 16 8.47-8.47a.75.75 0 0 0-.242-1.224.75.75 0 0 0-.819.163L16 14.94 7.53 6.47A.75.75 0 1 0 6.47 7.53L14.94 16l-8.47 8.47a.75.75 0 0 0 1.06 1.06L16 17.06l8.47 8.47a.75.75 0 1 0 1.06-1.06z%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem}.rem1-25{height:1.25rem;width:1.25rem}\n"], dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i11.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i15.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i16.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i17.DeviceAssociatedLineExtensionComponent, selector: "app-device-associated-line-extension", inputs: ["control", "routePartition", "directoryNumber", "siteId"], outputs: ["onChange"] }, { kind: "component", type: i18.DeviceInfoComponent, selector: "app-device-info", inputs: ["device", "firstName", "lastName", "active", "email", "position"], outputs: ["onclickBack"] }, { kind: "pipe", type: i19.MacAddressPipe, name: "macAddress" }] });
|
|
151
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceManageWidgetComponent, decorators: [{
|
|
152
152
|
type: Component,
|
|
153
|
-
args: [{ selector: 'app-device-manage-widget', template: "\r\n\r\n<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!dataPending\">\r\n <!-- <div class=\"go-back-box\" (click)=\"onGoBack()\"> -->\r\n <div class=\"go-back-box\">\r\n <div class=\"go-back-box-container\">\r\n <span class=\"app-icon icon-webex-left-arrow\"></span>\r\n <span class=\"go-back-title\">Devices</span>\r\n </div>\r\n </div>\r\n\r\n <app-device-info \r\n [device]=\"device\" \r\n [firstName]=\"firstName\" \r\n [lastName]=\"lastName\"\r\n (onclickBack)=\"onGoBack()\"\r\n >\r\n \r\n </app-device-info>\r\n <div class=\"device-info\">\r\n\r\n <div class=\"device-info-part\">\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Details</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('maxLineCount')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Lines</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ (form?.get('macAddress')?.value | macAddress) || 'N/A' }}</span>\r\n <span class=\"extra-info\">MAC address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('ipAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Host IP address</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('remoteIpAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Remote IP address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">Cisco</span>\r\n <span class=\"extra-info\">Managed By</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Software</span>\r\n <div class=\"icon-bordered-wrapper\">\r\n <i class=\"icon configure-icon rem1\"></i>\r\n </div>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareVersion')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software Channel</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareChannel')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software version</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Tags</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\" style=\"flex-direction: column; gap: 1rem;\">\r\n <div class=\"tags-list-container\">\r\n <div *ngFor=\"let tag of tags; let i = index\" class=\"tag-label\">\r\n <span class=\"tag-desccription\">{{ tag }}</span>\r\n <i class=\"icon close-icon\" (click)=\"removeTag(i)\" style=\"width: 0.75rem; height: 0.75rem; flex: 0 0 auto;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"tags-list-container\">\r\n <button class=\"tag-label add-tag\" (click)=\"showInput()\">\r\n <span class=\"icon plus-icon\" style=\"width: 0.75rem; height: 0.75rem;\"></span>\r\n <span>Add tag</span>\r\n </button>\r\n <input \r\n #tagInput\r\n id=\"enter-tag-input\" \r\n *ngIf=\"isAdding\"\r\n [(ngModel)]=\"newTag\"\r\n (blur)=\"onBlur()\"\r\n type=\"text\"\r\n class=\"add-tag-input\" \r\n placeholder=\"Enter tag...\"\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n </div>\r\n\r\n <div class=\"device-info-part\">\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Issues & Information</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"description\">\r\n <i class=\"icon check-icon rem1\" style=\"filter: invert(26%) sepia(27%) saturate(1093%) hue-rotate(114deg) brightness(93%) contrast(90%);\"></i>\r\n <span class=\"text-description\">No reported issues at this time</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Hoteling</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <span class=\"text-description\">Allow this device to be used as a Hoteling Host by visiting guests.</span>\r\n <div class=\"toggle-wrapper\">\r\n <mat-slide-toggle class=\"custom-toggle\" name=\"logMissedCalls\" [formControl]=\"hotelingEnabled\"></mat-slide-toggle>\r\n <i class=\"icon info-icon rem1\" \r\n style=\"filter: invert(20%) sepia(99%) saturate(2065%) hue-rotate(197deg) brightness(92%) contrast(101%);\"\r\n [matTooltip]=\"'Enabling this device for Hoteling means that a guest (end user) can log into this host (workspace phone) and use this phone as if it were their own. This is useful when traveling to a remote office but still needing to place/receive calls with their telephone number and to access features normally available to them on their own office phone.'\"\r\n ></i>\r\n </div>\r\n <span class=\"text-description\">Limit the time a guest can use this phone to</span>\r\n <mat-select [formControl]=\"guestHoursLimit\">\r\n <mat-option *ngFor=\"let type of HOTELING_TIME_HOURS\" [value]=\"type\">\r\n {{type}}\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n </div>\r\n </section>\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device Management</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <p class=\"text-description\">The users and workspaces that appear on this device are displayed below in the order of appearance.</p>\r\n <div class=\"flex-column\">\r\n <span class=\"text-description\">To add and remove users and workspaces, select <b>Configure Lines.</b></span>\r\n <span class=\"text-description\">To customize the programmable Line Keys, select <b>Configure Layout.</b></span>\r\n <span class=\"text-description\">To set up the display settings and dialing options, select <b>Device Settings</b>.</span>\r\n </div>\r\n <table style=\"border-collapse:collapse;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Index #</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Name</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Number/Extension</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Appearances</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Registered</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"device?.lines && device?.lines.length\">\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\"\r\n \r\n *ngFor=\"let line of device.lines; let i = index\">\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\"></span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">{{line?.name}}</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <div style=\"width: 120px;\"\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onNumberChange($event, i)\">\r\n {{ line?.number || 'NA' }}\r\n </div> \r\n <span> / </span>\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onExtensionChange($event, i)\">\r\n {{ line?.extension }}\r\n </span> -->\r\n <app-device-associated-line-extension\r\n [control]=\"linesControls.at(i)\"\r\n [routePartition]=\"line.routePartitionName\"\r\n [directoryNumber]=\"line.directoryNumber\"\r\n [siteId]=\"siteId\"\r\n (onChange)=\"onExtensionChange($event, i)\">\r\n </app-device-associated-line-extension>\r\n </div>\r\n \r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">1</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <i class=\"icon warning-icon rem1\" [matTooltip]=\"'Unregistered'\"></i>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </tbody>\r\n </table>\r\n <div class=\"totals\">\r\n <span class=\"text-description\">15 of 16 total lines available</span>\r\n </div>\r\n <div class=\"configure-lines\">\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Lines</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Layout</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Device Settings</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Support</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <div class=\"configure-lines\">\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Meetings & Calls</span>\r\n <span class=\"label new\">New</span>\r\n <i class=\"icon info-icon rem1\"\r\n [matTooltip]=\"'Troubleshooting provides details about the device related to status, network activity, and call information.'\"\r\n ></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Go to troubleshooting</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Device Logs</span>\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Generate device logs and download them to your computer.'\"></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n </div>\r\n \r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.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}.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}.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}:host ::ng-deep .mat-form-field-wrapper{height:30px}:host ::ng-deep .mat-form-field-flex{height:30px}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:host :ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}:host ::ng-deep .mat-select{line-height:20px;max-width:175px;margin-left:2.75rem;border:2px solid gray;padding:.25rem .75rem;border-radius:8px}:host ::ng-deep .mat-option{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important;line-height:48px!important;height:48px!important;padding:0 10px!important;text-align:left!important;text-decoration:none!important;position:relative!important;cursor:pointer!important;outline:none!important;display:flex!important;flex-direction:row!important;max-width:100%!important;box-sizing:border-box!important;align-items:center!important;-webkit-tap-highlight-color:rgba(0,0,0,0)!important}:host ::ng-deep .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#bfe3ff;color:#000}:host ::ng-deep .mat-select-panel .mat-option:not(.search-input):hover{background:#daedfc}:host ::ng-deep .mat-form-field-infix{border-top:0px!important}:host ::ng-deep .mat-tab-group{font-family:Inter,sans-serif}:host ::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}:host ::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}:host ::ng-deep .mat-tab-labels{gap:30px}:host ::ng-deep .mat-progress-spinner{position:absolute!important;top:40%;left:45%}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.app-icon{transition:all .15s ease-out}.icon-webex-right-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2220%22 height%3D%2220%22 viewBox%3D%220 0 20 20%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-right%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M14.0812 9.66902L6.58119 2.16902C6.53813 2.12351 6.48638 2.0871 6.429 2.06193C6.37162 2.03677 6.30978 2.02336 6.24713 2.0225C6.18448 2.02165 6.1223 2.03336 6.06425 2.05695C6.00621 2.08053 5.95348 2.11552 5.90919 2.15983C5.8649 2.20415 5.82994 2.25689 5.80638 2.31495C5.78282 2.373 5.77113 2.43519 5.77202 2.49784C5.77291 2.56049 5.78634 2.62232 5.81153 2.67969C5.83673 2.73705 5.87316 2.78879 5.91869 2.83183L13.0874 10.0003L5.91869 17.169C5.87316 17.2121 5.83673 17.2638 5.81153 17.3212C5.78634 17.3785 5.77291 17.4404 5.77202 17.503C5.77113 17.5657 5.78282 17.6279 5.80638 17.6859C5.82994 17.744 5.8649 17.7967 5.90919 17.841C5.95348 17.8853 6.00621 17.9203 6.06425 17.9439C6.1223 17.9675 6.18448 17.9792 6.24713 17.9783C6.30978 17.9775 6.37162 17.9641 6.429 17.9389C6.48638 17.9138 6.53813 17.8773 6.58119 17.8318L14.0812 10.3318C14.1691 10.2439 14.2184 10.1247 14.2184 10.0004C14.2184 9.87613 14.1691 9.75692 14.0812 9.66902Z%22 fill%3D%22%230F0F0F%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-left%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.device-info{display:flex;gap:1rem;padding:1.5rem}.device-info .device-info-part{display:flex;flex-direction:column;gap:1rem;flex:1;min-width:0}.device-info .device-info-part .card{display:flex;flex-direction:column;padding:1rem 1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0}.device-info .device-info-part .card .header{display:flex;align-items:center;justify-content:space-between}.device-info .device-info-part .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif}.device-info .device-info-part .card .main-content{display:flex;flex-direction:column;min-width:0}.device-info .device-info-part .card .main-content .detail-row{display:flex;flex:1;padding:1rem 0;min-width:0}.device-info .device-info-part .card .main-content .detail-row .side{display:flex;flex-direction:column;flex:1}.device-info .device-info-part .card .main-content .detail-row .side .main-value{font-weight:500;font-size:.875rem}.device-info .device-info-part .card .main-content .detail-row .side .extra-info{font-weight:350;font-size:.75rem}.device-info .device-info-part .card .main-content .detail-row .description{display:flex;gap:.5rem;align-items:center}.device-info .device-info-part .card .main-content .detail-row .toggle-wrapper{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.device-info .device-info-part .card .main-content .detail-row .configure-lines{display:flex;flex-direction:column}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line{display:flex;align-items:center;justify-content:space-between;flex:1;padding:.5rem 0}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div{gap:.5rem;display:flex;align-items:center}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label{display:inline-flex;flex:0 0 auto;gap:.25rem;align-items:center;justify-content:center;overflow:hidden;padding:.25rem .5rem;border:.0625rem solid transparent;border-radius:.25rem;line-height:1;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label.new{font-size:.75rem;border-color:#30c9b0;background-color:#e9f7f3;color:#12615a}.device-info .device-info-part .card .main-content .tags-list-container{display:flex;gap:.5rem;flex-wrap:wrap;min-width:0}.device-info .device-info-part .card .main-content .tags-list-container .tag-label{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;gap:.5rem;height:40px;font-size:smaller;max-width:100%;min-width:0;overflow:hidden}.device-info .device-info-part .card .main-content .tags-list-container .tag-label .tag-desccription{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;height:40px;font-size:smaller;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important;margin-left:-99px}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input:focus-visible{outline:none}.device-info .device-info-part .card .main-content .add-tag{background-color:#fff!important}.device-info .device-info-part .card .main-content .add-tag:hover{color:#0353a8!important}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.icon-bordered-wrapper{display:flex;inline-size:1.5rem;border-radius:50rem;border:1px solid rgba(0,0,0,.5019607843);width:1.5rem;height:1.5rem;align-items:center;justify-content:center;cursor:pointer}.configure-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 10.25A5.75 5.75 0 1 0 21.75 16 5.756 5.756 0 0 0 16 10.25m0 10a4.25 4.25 0 1 1 0-8.5 4.25 4.25 0 0 1 0 8.5M28 13.25H25.67a.25.25 0 0 1-.231-.155l-.667-1.633a.25.25 0 0 1 .057-.273l1.66-1.631a1.75 1.75 0 0 0 .024-2.475l-1.4-1.427a1.753 1.753 0 0 0-2.476-.024l-1.665 1.635a.25.25 0 0 1-.273.053l-1.796-.754a.25.25 0 0 1-.154-.23V4A1.75 1.75 0 0 0 17 2.25h-2A1.75 1.75 0 0 0 13.25 4v2.331a.25.25 0 0 1-.155.232l-1.714.71a.25.25 0 0 1-.273-.054L9.459 5.571a1.75 1.75 0 0 0-2.475 0L5.57 6.985a1.75 1.75 0 0 0 0 2.474l1.65 1.649a.25.25 0 0 1 .054.272l-.712 1.716a.25.25 0 0 1-.23.154H4A1.75 1.75 0 0 0 2.25 15v2A1.75 1.75 0 0 0 4 18.75h2.332a.25.25 0 0 1 .23.155l.71 1.713a.25.25 0 0 1-.053.274L5.57 22.54a1.75 1.75 0 0 0 0 2.476l1.415 1.414a1.75 1.75 0 0 0 2.476 0l1.648-1.65a.25.25 0 0 1 .272-.054l1.716.712a.25.25 0 0 1 .153.23V28A1.75 1.75 0 0 0 15 29.75h2A1.75 1.75 0 0 0 18.75 28v-2.332a.25.25 0 0 1 .156-.231l1.715-.71a.25.25 0 0 1 .272.054l1.649 1.649a1.753 1.753 0 0 0 2.474 0l1.416-1.415a1.753 1.753 0 0 0-.002-2.475l-1.648-1.648a.25.25 0 0 1-.055-.273l.712-1.715a.25.25 0 0 1 .23-.154H28A1.75 1.75 0 0 0 29.75 17v-2A1.75 1.75 0 0 0 28 13.25m.25 3.75a.25.25 0 0 1-.25.25h-2.331a1.74 1.74 0 0 0-1.617 1.08l-.712 1.716a1.75 1.75 0 0 0 .38 1.907L25.37 23.6a.25.25 0 0 1 0 .355l-1.414 1.414a.25.25 0 0 1-.273.054.3.3 0 0 1-.08-.054l-1.65-1.65a1.74 1.74 0 0 0-1.907-.379l-1.713.71a1.74 1.74 0 0 0-1.082 1.617V28a.25.25 0 0 1-.25.25h-2a.25.25 0 0 1-.25-.25v-2.332a1.74 1.74 0 0 0-1.08-1.616l-1.716-.712a1.74 1.74 0 0 0-1.907.38L8.4 25.37a.25.25 0 0 1-.355 0L6.63 23.955a.25.25 0 0 1 0-.354l1.65-1.648a1.745 1.745 0 0 0 .379-1.908l-.71-1.714a1.74 1.74 0 0 0-1.617-1.08H4a.25.25 0 0 1-.25-.25v-2a.25.25 0 0 1 .25-.25h2.332a1.74 1.74 0 0 0 1.616-1.082l.712-1.715a1.75 1.75 0 0 0-.38-1.907L6.63 8.4a.25.25 0 0 1 0-.354l1.414-1.414a.25.25 0 0 1 .355 0l1.648 1.649a1.74 1.74 0 0 0 1.908.379l1.713-.71A1.74 1.74 0 0 0 14.75 6.33v-2.33a.25.25 0 0 1 .25-.25h2a.25.25 0 0 1 .25.25v2.334a1.75 1.75 0 0 0 1.073 1.614l1.796.754a1.75 1.75 0 0 0 1.903-.364h.001l1.666-1.636a.255.255 0 0 1 .355.003l1.4 1.428a.25.25 0 0 1-.004.354l-1.66 1.63a1.745 1.745 0 0 0-.396 1.91l.668 1.636a1.74 1.74 0 0 0 1.62 1.086H28a.25.25 0 0 1 .25.25z%22%2F%3E%3C%2Fsvg%3E\")}.arrow-right-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m22.53 15.47-12-12a.75.75 0 1 0-1.06 1.06L20.94 16 9.47 27.47a.75.75 0 1 0 1.06 1.06l12-12a.75.75 0 0 0 0-1.06%22%2F%3E%3C%2Fsvg%3E\")}.check-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 2.25A13.75 13.75 0 1 0 29.75 16 13.765 13.765 0 0 0 16 2.25m0 26A12.25 12.25 0 1 1 28.25 16 12.264 12.264 0 0 1 16 28.25M20.512 12.43l-6.472 5.547-2.509-2.521a.75.75 0 0 0-1.062 1.058l3 3.015a.75.75 0 0 0 1.02.04l7-6a.75.75 0 1 0-.977-1.139%22%2F%3E%3C%2Fsvg%3E\")}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.warning-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M29.379 23.624 18.382 4.625a2.75 2.75 0 0 0-4.764 0l-11 19A2.75 2.75 0 0 0 5 27.75h21.997a2.75 2.75 0 0 0 2.382-4.126m-1.3 2.001a1.24 1.24 0 0 1-1.082.625H5a1.25 1.25 0 0 1-1.082-1.874l10.999-19A1.25 1.25 0 0 1 16 4.75a1.25 1.25 0 0 1 1.083.626l10.997 19a1.24 1.24 0 0 1 0 1.25M16 23.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16 19.75a.75.75 0 0 0 .75-.75v-7a.75.75 0 1 0-1.5 0v7a.75.75 0 0 0 .75.75%22%2F%3E%3C%2Fsvg%3E\")}.plus-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M26 15.25h-9.25V6a.75.75 0 1 0-1.5 0v9.25H6a.75.75 0 1 0 0 1.5h9.25V26a.75.75 0 1 0 1.5 0v-9.25H26a.75.75 0 1 0 0-1.5%22%2F%3E%3C%2Fsvg%3E\")}.close-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m17.06 16 8.47-8.47a.75.75 0 0 0-.242-1.224.75.75 0 0 0-.819.163L16 14.94 7.53 6.47A.75.75 0 1 0 6.47 7.53L14.94 16l-8.47 8.47a.75.75 0 0 0 1.06 1.06L16 17.06l8.47 8.47a.75.75 0 1 0 1.06-1.06z%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem}.rem1-25{height:1.25rem;width:1.25rem}\n"] }]
|
|
153
|
+
args: [{ selector: 'app-device-manage-widget', template: "\r\n\r\n<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!dataPending\">\r\n <!-- <div class=\"go-back-box\" (click)=\"onGoBack()\"> -->\r\n <div class=\"go-back-box\">\r\n <div class=\"go-back-box-container\">\r\n <span class=\"app-icon icon-webex-left-arrow\"></span>\r\n <span class=\"go-back-title\">Devices</span>\r\n </div>\r\n </div>\r\n\r\n <app-device-info \r\n [device]=\"device\" \r\n [firstName]=\"firstName\" \r\n [lastName]=\"lastName\"\r\n (onclickBack)=\"onGoBack()\"\r\n >\r\n \r\n </app-device-info>\r\n <div class=\"device-info\">\r\n\r\n <div class=\"device-info-part\">\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Details</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('maxLineCount')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Lines</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ (form?.get('macAddress')?.value | macAddress) || 'N/A' }}</span>\r\n <span class=\"extra-info\">MAC address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('ipAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Host IP address</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('remoteIpAddress')?.value || 'N/A' }}</span>\r\n <span class=\"extra-info\">Remote IP address</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">Cisco</span>\r\n <span class=\"extra-info\">Managed By</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Software</span>\r\n <div class=\"icon-bordered-wrapper\">\r\n <i class=\"icon configure-icon rem1\"></i>\r\n </div>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side left-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareVersion')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software Channel</span>\r\n </div>\r\n <div class=\"side right-part\">\r\n <span class=\"main-value\">{{ form?.get('softwareChannel')?.value || 'N/A'}}</span>\r\n <span class=\"extra-info\">Software version</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Tags</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\" style=\"flex-direction: column; gap: 1rem;\">\r\n <div class=\"tags-list-container\">\r\n <div *ngFor=\"let tag of tags; let i = index\" class=\"tag-label\">\r\n <span class=\"tag-desccription\">{{ tag }}</span>\r\n <i class=\"icon close-icon\" (click)=\"removeTag(i)\" style=\"width: 0.75rem; height: 0.75rem; flex: 0 0 auto;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"tags-list-container\">\r\n <button class=\"tag-label add-tag\" (click)=\"showInput()\">\r\n <span class=\"icon plus-icon\" style=\"width: 0.75rem; height: 0.75rem;\"></span>\r\n <span>Add tag</span>\r\n </button>\r\n <input \r\n #tagInput\r\n id=\"enter-tag-input\" \r\n *ngIf=\"isAdding\"\r\n [(ngModel)]=\"newTag\"\r\n (blur)=\"onBlur()\"\r\n type=\"text\"\r\n class=\"add-tag-input\" \r\n placeholder=\"Enter tag...\"\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n </div>\r\n\r\n <div class=\"device-info-part\">\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Issues & Information</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"description\">\r\n <i class=\"icon check-icon rem1\" style=\"filter: invert(26%) sepia(27%) saturate(1093%) hue-rotate(114deg) brightness(93%) contrast(90%);\"></i>\r\n <span class=\"text-description\">No reported issues at this time</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Hoteling</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <span class=\"text-description\">Allow this device to be used as a Hoteling Host by visiting guests.</span>\r\n <div class=\"toggle-wrapper\">\r\n <mat-slide-toggle class=\"custom-toggle\" name=\"logMissedCalls\" [formControl]=\"hotelingEnabled\"></mat-slide-toggle>\r\n <i class=\"icon info-icon rem1\" \r\n style=\"filter: invert(20%) sepia(99%) saturate(2065%) hue-rotate(197deg) brightness(92%) contrast(101%);\"\r\n [matTooltip]=\"'Enabling this device for Hoteling means that a guest (end user) can log into this host (workspace phone) and use this phone as if it were their own. This is useful when traveling to a remote office but still needing to place/receive calls with their telephone number and to access features normally available to them on their own office phone.'\"\r\n ></i>\r\n </div>\r\n <span class=\"text-description\">Limit the time a guest can use this phone to</span>\r\n <mat-select [formControl]=\"guestHoursLimit\">\r\n <mat-option *ngFor=\"let type of HOTELING_TIME_HOURS\" [value]=\"type\">\r\n {{type}}\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n </div>\r\n </section>\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device Management</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <p class=\"text-description\">The users and workspaces that appear on this device are displayed below in the order of appearance.</p>\r\n <div class=\"flex-column\">\r\n <span class=\"text-description\">To add and remove users and workspaces, select <b>Configure Lines.</b></span>\r\n <span class=\"text-description\">To customize the programmable Line Keys, select <b>Configure Layout.</b></span>\r\n <span class=\"text-description\">To set up the display settings and dialing options, select <b>Device Settings</b>.</span>\r\n </div>\r\n <table style=\"border-collapse:collapse;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Index #</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Name</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Number/Extension</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Appearances</th>\r\n <th style=\"padding:10px 16px; font-size:.75rem; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Registered</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"device?.lines && device?.lines.length\">\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\"\r\n \r\n *ngFor=\"let line of device.lines; let i = index\">\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\"></span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">{{line?.name}}</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <div style=\"width: 120px;\"\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onNumberChange($event, i)\">\r\n {{ line?.number || 'NA' }}\r\n </div> \r\n <span> / </span>\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onExtensionChange($event, i)\">\r\n {{ line?.extension }}\r\n </span> -->\r\n <app-device-associated-line-extension\r\n [control]=\"linesControls.at(i)\"\r\n [routePartition]=\"line.routePartitionName\"\r\n [directoryNumber]=\"line.directoryNumber\"\r\n [siteId]=\"siteId\"\r\n (onChange)=\"onExtensionChange($event, i)\">\r\n </app-device-associated-line-extension>\r\n </div>\r\n \r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; color:#000000f2; padding:4px 14px; font-size:.875rem; font-weight:400;\">1</span>\r\n </td>\r\n <td style=\"padding: .25rem 1.25rem .25rem .75rem;; border-bottom:1px solid #e8e8e8;\">\r\n <i class=\"icon warning-icon rem1\" [matTooltip]=\"'Unregistered'\"></i>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </tbody>\r\n </table>\r\n <div class=\"totals\">\r\n <span class=\"text-description\">15 of 16 total lines available</span>\r\n </div>\r\n <div class=\"configure-lines\" style=\"opacity: 0.4; pointer-events: none;\">\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Lines</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Configure Layout</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <i class=\"icon configure-icon rem1-25\"></i>\r\n <span class=\"text-description\">Device Settings</span>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Support</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row flex-column gap-0_75\">\r\n <div class=\"configure-lines\" style=\"opacity: 0.4; pointer-events: none;\">\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Meetings & Calls</span>\r\n <span class=\"label new\">New</span>\r\n <i class=\"icon info-icon rem1\"\r\n [matTooltip]=\"'Troubleshooting provides details about the device related to status, network activity, and call information.'\"\r\n ></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Go to troubleshooting</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"line\">\r\n <div>\r\n <span class=\"text-description\">Device Logs</span>\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Generate device logs and download them to your computer.'\"></i>\r\n </div>\r\n <div style=\"cursor: pointer\">\r\n <span class=\"text-description\" style=\"font-weight: 500;\">Manage</span>\r\n <i class=\"icon arrow-right-icon rem1-25\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n </div>\r\n \r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";.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}.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}.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}:host ::ng-deep .mat-form-field-wrapper{height:30px}:host ::ng-deep .mat-form-field-flex{height:30px}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:host :ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}:host ::ng-deep .mat-select{line-height:20px;max-width:175px;margin-left:2.75rem;border:2px solid gray;padding:.25rem .75rem;border-radius:8px}:host ::ng-deep .mat-option{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important;line-height:48px!important;height:48px!important;padding:0 10px!important;text-align:left!important;text-decoration:none!important;position:relative!important;cursor:pointer!important;outline:none!important;display:flex!important;flex-direction:row!important;max-width:100%!important;box-sizing:border-box!important;align-items:center!important;-webkit-tap-highlight-color:rgba(0,0,0,0)!important}:host ::ng-deep .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#bfe3ff;color:#000}:host ::ng-deep .mat-select-panel .mat-option:not(.search-input):hover{background:#daedfc}:host ::ng-deep .mat-form-field-infix{border-top:0px!important}:host ::ng-deep .mat-tab-group{font-family:Inter,sans-serif}:host ::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}:host ::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}:host ::ng-deep .mat-tab-labels{gap:30px}:host ::ng-deep .mat-progress-spinner{position:absolute!important;top:40%;left:45%}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.app-icon{transition:all .15s ease-out}.icon-webex-right-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2220%22 height%3D%2220%22 viewBox%3D%220 0 20 20%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-right%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M14.0812 9.66902L6.58119 2.16902C6.53813 2.12351 6.48638 2.0871 6.429 2.06193C6.37162 2.03677 6.30978 2.02336 6.24713 2.0225C6.18448 2.02165 6.1223 2.03336 6.06425 2.05695C6.00621 2.08053 5.95348 2.11552 5.90919 2.15983C5.8649 2.20415 5.82994 2.25689 5.80638 2.31495C5.78282 2.373 5.77113 2.43519 5.77202 2.49784C5.77291 2.56049 5.78634 2.62232 5.81153 2.67969C5.83673 2.73705 5.87316 2.78879 5.91869 2.83183L13.0874 10.0003L5.91869 17.169C5.87316 17.2121 5.83673 17.2638 5.81153 17.3212C5.78634 17.3785 5.77291 17.4404 5.77202 17.503C5.77113 17.5657 5.78282 17.6279 5.80638 17.6859C5.82994 17.744 5.8649 17.7967 5.90919 17.841C5.95348 17.8853 6.00621 17.9203 6.06425 17.9439C6.1223 17.9675 6.18448 17.9792 6.24713 17.9783C6.30978 17.9775 6.37162 17.9641 6.429 17.9389C6.48638 17.9138 6.53813 17.8773 6.58119 17.8318L14.0812 10.3318C14.1691 10.2439 14.2184 10.1247 14.2184 10.0004C14.2184 9.87613 14.1691 9.75692 14.0812 9.66902Z%22 fill%3D%22%230F0F0F%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-left%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.device-info{display:flex;gap:1rem;padding:1.5rem}.device-info .device-info-part{display:flex;flex-direction:column;gap:1rem;flex:1;min-width:0}.device-info .device-info-part .card{display:flex;flex-direction:column;padding:1rem 1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0}.device-info .device-info-part .card .header{display:flex;align-items:center;justify-content:space-between}.device-info .device-info-part .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif}.device-info .device-info-part .card .main-content{display:flex;flex-direction:column;min-width:0}.device-info .device-info-part .card .main-content .detail-row{display:flex;flex:1;padding:1rem 0;min-width:0}.device-info .device-info-part .card .main-content .detail-row .side{display:flex;flex-direction:column;flex:1}.device-info .device-info-part .card .main-content .detail-row .side .main-value{font-weight:500;font-size:.875rem}.device-info .device-info-part .card .main-content .detail-row .side .extra-info{font-weight:350;font-size:.75rem}.device-info .device-info-part .card .main-content .detail-row .description{display:flex;gap:.5rem;align-items:center}.device-info .device-info-part .card .main-content .detail-row .toggle-wrapper{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}.device-info .device-info-part .card .main-content .detail-row .configure-lines{display:flex;flex-direction:column}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line{display:flex;align-items:center;justify-content:space-between;flex:1;padding:.5rem 0}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div{gap:.5rem;display:flex;align-items:center}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label{display:inline-flex;flex:0 0 auto;gap:.25rem;align-items:center;justify-content:center;overflow:hidden;padding:.25rem .5rem;border:.0625rem solid transparent;border-radius:.25rem;line-height:1;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .detail-row .configure-lines .line>div .label.new{font-size:.75rem;border-color:#30c9b0;background-color:#e9f7f3;color:#12615a}.device-info .device-info-part .card .main-content .tags-list-container{display:flex;gap:.5rem;flex-wrap:wrap;min-width:0}.device-info .device-info-part .card .main-content .tags-list-container .tag-label{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;gap:.5rem;height:40px;font-size:smaller;max-width:100%;min-width:0;overflow:hidden}.device-info .device-info-part .card .main-content .tags-list-container .tag-label .tag-desccription{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input{border:1px solid rgba(0,0,0,.2);display:flex;align-items:center;padding:8px 12px;border-radius:25px;color:#000000b3;background-color:#ededed;font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;height:40px;font-size:smaller;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important;margin-left:-99px}.device-info .device-info-part .card .main-content .tags-list-container .add-tag-input:focus-visible{outline:none}.device-info .device-info-part .card .main-content .add-tag{background-color:#fff!important}.device-info .device-info-part .card .main-content .add-tag:hover{color:#0353a8!important}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.icon-bordered-wrapper{display:flex;inline-size:1.5rem;border-radius:50rem;border:1px solid rgba(0,0,0,.5019607843);width:1.5rem;height:1.5rem;align-items:center;justify-content:center;cursor:pointer}.configure-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 10.25A5.75 5.75 0 1 0 21.75 16 5.756 5.756 0 0 0 16 10.25m0 10a4.25 4.25 0 1 1 0-8.5 4.25 4.25 0 0 1 0 8.5M28 13.25H25.67a.25.25 0 0 1-.231-.155l-.667-1.633a.25.25 0 0 1 .057-.273l1.66-1.631a1.75 1.75 0 0 0 .024-2.475l-1.4-1.427a1.753 1.753 0 0 0-2.476-.024l-1.665 1.635a.25.25 0 0 1-.273.053l-1.796-.754a.25.25 0 0 1-.154-.23V4A1.75 1.75 0 0 0 17 2.25h-2A1.75 1.75 0 0 0 13.25 4v2.331a.25.25 0 0 1-.155.232l-1.714.71a.25.25 0 0 1-.273-.054L9.459 5.571a1.75 1.75 0 0 0-2.475 0L5.57 6.985a1.75 1.75 0 0 0 0 2.474l1.65 1.649a.25.25 0 0 1 .054.272l-.712 1.716a.25.25 0 0 1-.23.154H4A1.75 1.75 0 0 0 2.25 15v2A1.75 1.75 0 0 0 4 18.75h2.332a.25.25 0 0 1 .23.155l.71 1.713a.25.25 0 0 1-.053.274L5.57 22.54a1.75 1.75 0 0 0 0 2.476l1.415 1.414a1.75 1.75 0 0 0 2.476 0l1.648-1.65a.25.25 0 0 1 .272-.054l1.716.712a.25.25 0 0 1 .153.23V28A1.75 1.75 0 0 0 15 29.75h2A1.75 1.75 0 0 0 18.75 28v-2.332a.25.25 0 0 1 .156-.231l1.715-.71a.25.25 0 0 1 .272.054l1.649 1.649a1.753 1.753 0 0 0 2.474 0l1.416-1.415a1.753 1.753 0 0 0-.002-2.475l-1.648-1.648a.25.25 0 0 1-.055-.273l.712-1.715a.25.25 0 0 1 .23-.154H28A1.75 1.75 0 0 0 29.75 17v-2A1.75 1.75 0 0 0 28 13.25m.25 3.75a.25.25 0 0 1-.25.25h-2.331a1.74 1.74 0 0 0-1.617 1.08l-.712 1.716a1.75 1.75 0 0 0 .38 1.907L25.37 23.6a.25.25 0 0 1 0 .355l-1.414 1.414a.25.25 0 0 1-.273.054.3.3 0 0 1-.08-.054l-1.65-1.65a1.74 1.74 0 0 0-1.907-.379l-1.713.71a1.74 1.74 0 0 0-1.082 1.617V28a.25.25 0 0 1-.25.25h-2a.25.25 0 0 1-.25-.25v-2.332a1.74 1.74 0 0 0-1.08-1.616l-1.716-.712a1.74 1.74 0 0 0-1.907.38L8.4 25.37a.25.25 0 0 1-.355 0L6.63 23.955a.25.25 0 0 1 0-.354l1.65-1.648a1.745 1.745 0 0 0 .379-1.908l-.71-1.714a1.74 1.74 0 0 0-1.617-1.08H4a.25.25 0 0 1-.25-.25v-2a.25.25 0 0 1 .25-.25h2.332a1.74 1.74 0 0 0 1.616-1.082l.712-1.715a1.75 1.75 0 0 0-.38-1.907L6.63 8.4a.25.25 0 0 1 0-.354l1.414-1.414a.25.25 0 0 1 .355 0l1.648 1.649a1.74 1.74 0 0 0 1.908.379l1.713-.71A1.74 1.74 0 0 0 14.75 6.33v-2.33a.25.25 0 0 1 .25-.25h2a.25.25 0 0 1 .25.25v2.334a1.75 1.75 0 0 0 1.073 1.614l1.796.754a1.75 1.75 0 0 0 1.903-.364h.001l1.666-1.636a.255.255 0 0 1 .355.003l1.4 1.428a.25.25 0 0 1-.004.354l-1.66 1.63a1.745 1.745 0 0 0-.396 1.91l.668 1.636a1.74 1.74 0 0 0 1.62 1.086H28a.25.25 0 0 1 .25.25z%22%2F%3E%3C%2Fsvg%3E\")}.arrow-right-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m22.53 15.47-12-12a.75.75 0 1 0-1.06 1.06L20.94 16 9.47 27.47a.75.75 0 1 0 1.06 1.06l12-12a.75.75 0 0 0 0-1.06%22%2F%3E%3C%2Fsvg%3E\")}.check-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M16 2.25A13.75 13.75 0 1 0 29.75 16 13.765 13.765 0 0 0 16 2.25m0 26A12.25 12.25 0 1 1 28.25 16 12.264 12.264 0 0 1 16 28.25M20.512 12.43l-6.472 5.547-2.509-2.521a.75.75 0 0 0-1.062 1.058l3 3.015a.75.75 0 0 0 1.02.04l7-6a.75.75 0 1 0-.977-1.139%22%2F%3E%3C%2Fsvg%3E\")}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.warning-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M29.379 23.624 18.382 4.625a2.75 2.75 0 0 0-4.764 0l-11 19A2.75 2.75 0 0 0 5 27.75h21.997a2.75 2.75 0 0 0 2.382-4.126m-1.3 2.001a1.24 1.24 0 0 1-1.082.625H5a1.25 1.25 0 0 1-1.082-1.874l10.999-19A1.25 1.25 0 0 1 16 4.75a1.25 1.25 0 0 1 1.083.626l10.997 19a1.24 1.24 0 0 1 0 1.25M16 23.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16 19.75a.75.75 0 0 0 .75-.75v-7a.75.75 0 1 0-1.5 0v7a.75.75 0 0 0 .75.75%22%2F%3E%3C%2Fsvg%3E\")}.plus-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M26 15.25h-9.25V6a.75.75 0 1 0-1.5 0v9.25H6a.75.75 0 1 0 0 1.5h9.25V26a.75.75 0 1 0 1.5 0v-9.25H26a.75.75 0 1 0 0-1.5%22%2F%3E%3C%2Fsvg%3E\")}.close-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22m17.06 16 8.47-8.47a.75.75 0 0 0-.242-1.224.75.75 0 0 0-.819.163L16 14.94 7.53 6.47A.75.75 0 1 0 6.47 7.53L14.94 16l-8.47 8.47a.75.75 0 0 0 1.06 1.06L16 17.06l8.47 8.47a.75.75 0 1 0 1.06-1.06z%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem}.rem1-25{height:1.25rem;width:1.25rem}\n"] }]
|
|
154
154
|
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.DeviceService }, { type: i3.APIService }, { type: i4.LineService }, { type: i5.SiteSettingsService }, { type: i6.ValidationService }, { type: i7.MatDialog }, { type: i8.DnsService }]; }, propDecorators: { onSave: [{
|
|
155
155
|
type: Output
|
|
156
156
|
}], onChange: [{
|
|
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
175
175
|
type: ViewChild,
|
|
176
176
|
args: ['tagInput']
|
|
177
177
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLW1hbmFnZS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLW1hbmFnZS13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLW1hbmFnZS13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBMEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRyxPQUFPLEVBQUUsUUFBUSxFQUFZLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCOUQsTUFBTSxPQUFPLDJCQUEyQjtJQTZCdEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsWUFDUyxXQUF3QixFQUN4QixhQUE0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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtQ29udHJvbE5hbWUsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuL2NsYXNzZXMvc2ltcGxpZmllZC11c2VyJztcclxuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uIH0gZnJvbSAnLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24nO1xyXG5pbXBvcnQgeyBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2UgfSBmcm9tICcuL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBEZXZpY2UsIERldmljZVZpZXdUeXBlIH0gZnJvbSAnLi9jbGFzc2VzL2RldmljZSc7XHJcbmltcG9ydCB7IGZpbmFsaXplLCBmb3JrSm9pbiwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEluZm9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbmZpcm0tZGlhbG9nL2luZm8tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kZXZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGluZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xpbmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNpdGVTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3NpdGUtc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUT0dHTEVfVFlQRVMgfSBmcm9tICcuL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kbnMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kZXZpY2UtbWFuYWdlLXdpZGdldCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZXZpY2UtbWFuYWdlLXdpZGdldC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV2aWNlTWFuYWdlV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGRpc2NhcmRDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBnb0JhY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaG9zdCE6IHN0cmluZztcclxuICBASW5wdXQoKSBzaXRlSWQhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdXNlcklkITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzTGRhcCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGV2aWNlTmFtZSE6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgndGFnSW5wdXQnKSB0YWdJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIGRhdGFQZW5kaW5nITogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwdWJsaWMgZGV2aWNlOiBhbnkgPSBudWxsO1xyXG4gIHB1YmxpYyB0b2tlbk9iajogYW55ID0gbnVsbDtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IEhPVEVMSU5HX1RJTUVfSE9VUlMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMjAgfSwgKF8sIGluZGV4KSA9PiBpbmRleCk7XHJcblxyXG4gIC8vIHB1YmxpYyByZWFkb25seSBob3RlbGluZ0xpbWl0VGltZSA9IG5ldyBGb3JtQ29udHJvbCgyNCk7XHJcbiAgcHVibGljIGxvZ01pc3NlZENhbGwgPSBuZXcgRm9ybUNvbnRyb2wodHJ1ZSk7XHJcblxyXG4gIHRhZ3M6IHN0cmluZ1tdID0gW107XHJcbiAgaXNBZGRpbmcgPSBmYWxzZTtcclxuICBuZXdUYWcgPSAnJztcclxuICBsaW5lc0NvbnRyb2xzID0gbmV3IEZvcm1BcnJheTxGb3JtQ29udHJvbDxzdHJpbmc+PihbXSk7XHJcblxyXG4gIGdldCBmaXJzdE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLnVzZXJOYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3ROYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS51c2VyTGFzdE5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9ybSgpOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlckRldmljZT8uZm9ybTtcclxuICB9XHJcblxyXG4gIGdldCBpc1dlYmV4KCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJleFVVSUQnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2ViZXhVVUlEJykgIT09ICdudWxsJztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHB1YmxpYyBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxpbmVTZXJ2aWNlOiBMaW5lU2VydmljZSxcclxuICAgIHB1YmxpYyBzaXRlU2V0dGluZ3NTZXJ2aWNlOiBTaXRlU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkbnNTZXJ2aWNlOiBEbnNTZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdDtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gJywgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCk7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIHNob3dJbnB1dCgpIHtcclxuICAgIHRoaXMuaXNBZGRpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIHdhaXQgdW50aWwgaW5wdXQgYXBwZWFycyBpbiBET01cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRhZ0lucHV0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5uZXdUYWcudHJpbSgpO1xyXG5cclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnRhZ3MucHVzaCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5uZXdUYWcgPSAnJztcclxuICAgIHRoaXMuaXNBZGRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVRhZyhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRhZ3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcblxyXG4gIGdldCBob3RlbGluZ0VuYWJsZWQoKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uZ2V0KCdob3RlbGluZycpPy5nZXQoJ2VuYWJsZWQnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBndWVzdEhvdXJzTGltaXQoKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uZ2V0KCdob3RlbGluZycpPy5nZXQoJ2d1ZXN0SG91cnNMaW1pdCcpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcmVxdWVzdDtcclxuICAgIGNvbnN0IGRldmljZVR5cGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZGV2aWNlVHlwZScpO1xyXG4gICAgLy8gY29uc3QgZGV2aWNlVHlwZSA9IHRoaXMuZGV2aWNlTmFtZTtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdpc1dlYmV4JykgPT09ICd0cnVlJykge1xyXG4gICAgICAvLyByZXF1ZXN0XHJcbiAgICAgIGNvbnN0IGN1c3RvbWVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VzdG9tZXJJZCcpO1xyXG4gICAgICBjb25zdCB3ZWJleElkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYmV4VVVJRCcpO1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy51c2VyU2VydmljZS5mZXRjaFdlYmV4VXNlckRldmljZShjdXN0b21lcklkISwgd2ViZXhJZCEsIGRldmljZVR5cGUhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLnVzZXJTZXJ2aWNlLmZldGNoRElVc2VyRGV2aWNlKHRoaXMuc2l0ZUlkLCB0aGlzLnVzZXJJZCwgZGV2aWNlVHlwZSEpO1xyXG4gICAgfVxyXG4gICAgcmVxdWVzdFxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlKSlcclxuICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmRldmljZSA9IGRhdGE7XHJcbiAgICAgIHRoaXMuaW5pdEZvcm1EYXRhKHRoaXMuZGV2aWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdEZvcm1EYXRhKGRldmljZTogYW55KSB7XHJcblxyXG4gICAgdGhpcy5saW5lc0NvbnRyb2xzID0gbmV3IEZvcm1BcnJheShcclxuICAgICAgdGhpcy5kZXZpY2UubGluZXMubWFwKChsaW5lOiBhbnkpID0+XHJcbiAgICAgICAgbmV3IEZvcm1Db250cm9sKFN0cmluZyhsaW5lLmV4dGVuc2lvbikgfHwgJycpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25OdW1iZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dC50cmltKCk7XHJcbiAgICB0aGlzLmRldmljZS5saW5lc1tpbmRleF0ubnVtYmVyID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkV4dGVuc2lvbkNoYW5nZSh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICAvLyBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dC50cmltKCk7XHJcbiAgICBjb25zdCBleHRlbnNpb24gPSB0aGlzLmRuc1NlcnZpY2UuZ2V0RG5WYWx1ZSh2YWx1ZSk7XHJcbiAgICBjb25zdCBudW1iZXIgPSB0aGlzLmRuc1NlcnZpY2UuZ2V0TWFwcGVkRGlkcyhleHRlbnNpb24sICcwJyk7XHJcbiAgICB0aGlzLmRldmljZS5saW5lc1tpbmRleF0uZXh0ZW5zaW9uID0gZXh0ZW5zaW9uO1xyXG4gICAgdGhpcy5kZXZpY2UubGluZXNbaW5kZXhdLm51bWJlciA9IG51bWJlciB8fCAnJztcclxuICAgIHRoaXMubGluZXNDb250cm9scy5hdChpbmRleCkuc2V0VmFsdWUoZXh0ZW5zaW9uKTtcclxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKSB8fCB0aGlzLmZvcm0/LmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVwZGF0ZWRMaW5lcyA9IHRoaXMuZGV2aWNlLmxpbmVzLmZpbHRlcigobGluZTogYW55LCBpbmRleDogYW55KSA9PiB0aGlzLnVzZXJTZXJ2aWNlLmxpbmVVcGRhdGVkKGxpbmUsIGluZGV4KSk7XHJcbiAgICB1cGRhdGVkTGluZXMuZm9yRWFjaCgobGluZTogYW55KSA9PiB0aGlzLnVzZXJTZXJ2aWNlLnNhdmVOZXdMaW5lKGxpbmUpKTtcclxuXHJcbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgICB9LCAyMDAwMCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25Hb0JhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmdvQmFjay5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG5cclxuPGFwcC1sb2FkZXIgKm5nSWY9XCJkYXRhUGVuZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuPGRpdiAqbmdJZj1cIiFkYXRhUGVuZGluZ1wiPlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cImdvLWJhY2stYm94XCIgKGNsaWNrKT1cIm9uR29CYWNrKClcIj4gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImdvLWJhY2stYm94XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ28tYmFjay1ib3gtY29udGFpbmVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gaWNvbi13ZWJleC1sZWZ0LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImdvLWJhY2stdGl0bGVcIj5EZXZpY2VzPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxhcHAtZGV2aWNlLWluZm8gXHJcbiAgICBbZGV2aWNlXT1cImRldmljZVwiIFxyXG4gICAgW2ZpcnN0TmFtZV09XCJmaXJzdE5hbWVcIiBcclxuICAgIFtsYXN0TmFtZV09XCJsYXN0TmFtZVwiXHJcbiAgICAob25jbGlja0JhY2spPVwib25Hb0JhY2soKVwiXHJcbiAgICA+XHJcbiAgICBcclxuICA8L2FwcC1kZXZpY2UtaW5mbz5cclxuICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWluZm9cIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWluZm8tcGFydFwiPlxyXG5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPkRldGFpbHM8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIGxlZnQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyBmb3JtPy5nZXQoJ21heExpbmVDb3VudCcpPy52YWx1ZSB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+TGluZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUgcmlnaHQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyAoZm9ybT8uZ2V0KCdtYWNBZGRyZXNzJyk/LnZhbHVlIHwgbWFjQWRkcmVzcykgfHwgJ04vQScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXh0cmEtaW5mb1wiPk1BQyBhZGRyZXNzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUgbGVmdC1wYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFpbi12YWx1ZVwiPnt7IGZvcm0/LmdldCgnaXBBZGRyZXNzJyk/LnZhbHVlIHx8ICdOL0EnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dHJhLWluZm9cIj5Ib3N0IElQIGFkZHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUgcmlnaHQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyBmb3JtPy5nZXQoJ3JlbW90ZUlwQWRkcmVzcycpPy52YWx1ZSB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+UmVtb3RlIElQIGFkZHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZSBsZWZ0LXBhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+Q2lzY288L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXh0cmEtaW5mb1wiPk1hbmFnZWQgQnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPlNvZnR3YXJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYm9yZGVyZWQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBjb25maWd1cmUtaWNvbiByZW0xXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIGxlZnQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyBmb3JtPy5nZXQoJ3NvZnR3YXJlVmVyc2lvbicpPy52YWx1ZSB8fCAnTi9BJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dHJhLWluZm9cIj5Tb2Z0d2FyZSBDaGFubmVsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIHJpZ2h0LXBhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+e3sgZm9ybT8uZ2V0KCdzb2Z0d2FyZUNoYW5uZWwnKT8udmFsdWUgfHwgJ04vQSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+U29mdHdhcmUgdmVyc2lvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+VGFnczwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCIgc3R5bGU9XCJmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDFyZW07XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3MtbGlzdC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3M7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInRhZy1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctZGVzY2NyaXB0aW9uXCI+e3sgdGFnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGNsb3NlLWljb25cIiAoY2xpY2spPVwicmVtb3ZlVGFnKGkpXCIgc3R5bGU9XCJ3aWR0aDogMC43NXJlbTsgaGVpZ2h0OiAwLjc1cmVtOyBmbGV4OiAwIDAgYXV0bztcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdzLWxpc3QtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWctbGFiZWwgYWRkLXRhZ1wiIChjbGljayk9XCJzaG93SW5wdXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIHBsdXMtaWNvblwiIHN0eWxlPVwid2lkdGg6IDAuNzVyZW07IGhlaWdodDogMC43NXJlbTtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZGQgdGFnPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3RhZ0lucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImVudGVyLXRhZy1pbnB1dFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0FkZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld1RhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZC10YWctaW5wdXRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgdGFnLi4uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWluZm8tcGFydFwiPlxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPklzc3VlcyAmIEluZm9ybWF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGNoZWNrLWljb24gcmVtMVwiIHN0eWxlPVwiZmlsdGVyOiBpbnZlcnQoMjYlKSBzZXBpYSgyNyUpIHNhdHVyYXRlKDEwOTMlKSBodWUtcm90YXRlKDExNGRlZykgYnJpZ2h0bmVzcyg5MyUpIGNvbnRyYXN0KDkwJSk7XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5ObyByZXBvcnRlZCBpc3N1ZXMgYXQgdGhpcyB0aW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+SG90ZWxpbmc8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvdyBmbGV4LWNvbHVtbiBnYXAtMF83NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiPkFsbG93IHRoaXMgZGV2aWNlIHRvIGJlIHVzZWQgYXMgYSBIb3RlbGluZyBIb3N0IGJ5IHZpc2l0aW5nIGd1ZXN0cy48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY3VzdG9tLXRvZ2dsZVwiIG5hbWU9XCJsb2dNaXNzZWRDYWxsc1wiIFtmb3JtQ29udHJvbF09XCJob3RlbGluZ0VuYWJsZWRcIj48L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBpbmZvLWljb24gcmVtMVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmaWx0ZXI6IGludmVydCgyMCUpIHNlcGlhKDk5JSkgc2F0dXJhdGUoMjA2NSUpIGh1ZS1yb3RhdGUoMTk3ZGVnKSBicmlnaHRuZXNzKDkyJSkgY29udHJhc3QoMTAxJSk7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidFbmFibGluZyB0aGlzIGRldmljZSBmb3IgSG90ZWxpbmcgbWVhbnMgdGhhdCBhIGd1ZXN0IChlbmQgdXNlcikgY2FuIGxvZyBpbnRvIHRoaXMgaG9zdCAod29ya3NwYWNlIHBob25lKSBhbmQgdXNlIHRoaXMgcGhvbmUgYXMgaWYgaXQgd2VyZSB0aGVpciBvd24uIFRoaXMgaXMgdXNlZnVsIHdoZW4gdHJhdmVsaW5nIHRvIGEgcmVtb3RlIG9mZmljZSBidXQgc3RpbGwgbmVlZGluZyB0byBwbGFjZS9yZWNlaXZlIGNhbGxzIHdpdGggdGhlaXIgdGVsZXBob25lIG51bWJlciBhbmQgdG8gYWNjZXNzIGZlYXR1cmVzIG5vcm1hbGx5IGF2YWlsYWJsZSB0byB0aGVtIG9uIHRoZWlyIG93biBvZmZpY2UgcGhvbmUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+TGltaXQgdGhlIHRpbWUgYSBndWVzdCBjYW4gdXNlIHRoaXMgcGhvbmUgdG88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImd1ZXN0SG91cnNMaW1pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBIT1RFTElOR19USU1FX0hPVVJTXCIgW3ZhbHVlXT1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dHlwZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+RGV2aWNlIE1hbmFnZW1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvdyBmbGV4LWNvbHVtbiBnYXAtMF83NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiPlRoZSB1c2VycyBhbmQgd29ya3NwYWNlcyB0aGF0IGFwcGVhciBvbiB0aGlzIGRldmljZSBhcmUgZGlzcGxheWVkIGJlbG93IGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+VG8gYWRkIGFuZCByZW1vdmUgdXNlcnMgYW5kIHdvcmtzcGFjZXMsIHNlbGVjdCA8Yj5Db25maWd1cmUgTGluZXMuPC9iPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+VG8gY3VzdG9taXplIHRoZSBwcm9ncmFtbWFibGUgTGluZSBLZXlzLCBzZWxlY3QgPGI+Q29uZmlndXJlIExheW91dC48L2I+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5UbyBzZXQgdXAgdGhlIGRpc3BsYXkgc2V0dGluZ3MgYW5kIGRpYWxpbmcgb3B0aW9ucywgc2VsZWN0IDxiPkRldmljZSBTZXR0aW5nczwvYj4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0YWJsZSBzdHlsZT1cImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNlZGVkZWQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+SW5kZXggIzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+TmFtZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+TnVtYmVyL0V4dGVuc2lvbjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+QXBwZWFyYW5jZXM8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwicGFkZGluZzoxMHB4IDE2cHg7IGZvbnQtc2l6ZTouNzVyZW07IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6IzU0NTQ1NDsgdGV4dC1hbGlnbjpsZWZ0OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4O1wiPlJlZ2lzdGVyZWQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXZpY2U/LmxpbmVzICYmIGRldmljZT8ubGluZXMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNmZmY7IGN1cnNvcjpwb2ludGVyO1wiIG9ubW91c2VvdmVyPVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZmFmYWZhJ1wiIG9ubW91c2VvdXQ9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmZmYnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmUgb2YgZGV2aWNlLmxpbmVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7IGNvbG9yOiMwMDAwMDBmMjsgcGFkZGluZzo0cHggMTRweDsgZm9udC1zaXplOi44NzVyZW07IGZvbnQtd2VpZ2h0OjQwMDtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAuMjVyZW0gMS4yNXJlbSAuMjVyZW0gLjc1cmVtOzsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OmlubGluZS1ibG9jazsgY29sb3I6IzAwMDAwMGYyOyBwYWRkaW5nOjRweCAxNHB4OyBmb250LXNpemU6Ljg3NXJlbTsgZm9udC13ZWlnaHQ6NDAwO1wiPnt7bGluZT8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMjBweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbnRlbnRlZGl0YWJsZV09XCIhaXNXZWJleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25OdW1iZXJDaGFuZ2UoJGV2ZW50LCBpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmU/Lm51bWJlciB8fCAnTkEnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4gJm5ic3A7LyZuYnNwOyA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29udGVudGVkaXRhYmxlXT1cIiFpc1dlYmV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkV4dGVuc2lvbkNoYW5nZSgkZXZlbnQsIGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZT8uZXh0ZW5zaW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJsaW5lc0NvbnRyb2xzLmF0KGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlUGFydGl0aW9uXT1cImxpbmUucm91dGVQYXJ0aXRpb25OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpcmVjdG9yeU51bWJlcl09XCJsaW5lLmRpcmVjdG9yeU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXRlSWRdPVwic2l0ZUlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uRXh0ZW5zaW9uQ2hhbmdlKCRldmVudCwgaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7IGNvbG9yOiMwMDAwMDBmMjsgcGFkZGluZzo0cHggMTRweDsgZm9udC1zaXplOi44NzVyZW07IGZvbnQtd2VpZ2h0OjQwMDtcIj4xPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiB3YXJuaW5nLWljb24gcmVtMVwiIFttYXRUb29sdGlwXT1cIidVbnJlZ2lzdGVyZWQnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj4xNSBvZiAxNiB0b3RhbCBsaW5lcyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1saW5lc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gY29uZmlndXJlLWljb24gcmVtMS0yNVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5Db25maWd1cmUgTGluZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA1MDA7XCI+TWFuYWdlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBhcnJvdy1yaWdodC1pY29uIHJlbTEtMjVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gY29uZmlndXJlLWljb24gcmVtMS0yNVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5Db25maWd1cmUgTGF5b3V0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXdlaWdodDogNTAwO1wiPk1hbmFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gYXJyb3ctcmlnaHQtaWNvbiByZW0xLTI1XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGNvbmZpZ3VyZS1pY29uIHJlbTEtMjVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+RGV2aWNlIFNldHRpbmdzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXdlaWdodDogNTAwO1wiPk1hbmFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gYXJyb3ctcmlnaHQtaWNvbiByZW0xLTI1XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+U3VwcG9ydDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93IGZsZXgtY29sdW1uIGdhcC0wXzc1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1saW5lc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5NZWV0aW5ncyAmIENhbGxzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgbmV3XCI+TmV3PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBpbmZvLWljb24gcmVtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidUcm91Ymxlc2hvb3RpbmcgcHJvdmlkZXMgZGV0YWlscyBhYm91dCB0aGUgZGV2aWNlIHJlbGF0ZWQgdG8gc3RhdHVzLCBuZXR3b3JrIGFjdGl2aXR5LCBhbmQgY2FsbCBpbmZvcm1hdGlvbi4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXdlaWdodDogNTAwO1wiPkdvIHRvIHRyb3VibGVzaG9vdGluZzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gYXJyb3ctcmlnaHQtaWNvbiByZW0xLTI1XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+RGV2aWNlIExvZ3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGluZm8taWNvbiByZW0xXCIgW21hdFRvb2x0aXBdPVwiJ0dlbmVyYXRlIGRldmljZSBsb2dzIGFuZCBkb3dubG9hZCB0aGVtIHRvIHlvdXIgY29tcHV0ZXIuJ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj5NYW5hZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGFycm93LXJpZ2h0LWljb24gcmVtMS0yNVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbiAgXHJcbjwvZGl2PiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLW1hbmFnZS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLW1hbmFnZS13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLW1hbmFnZS13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBMEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRyxPQUFPLEVBQUUsUUFBUSxFQUFZLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCOUQsTUFBTSxPQUFPLDJCQUEyQjtJQTZCdEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsWUFDUyxXQUF3QixFQUN4QixhQUE0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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtQ29udHJvbE5hbWUsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuL2NsYXNzZXMvc2ltcGxpZmllZC11c2VyJztcclxuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uIH0gZnJvbSAnLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24nO1xyXG5pbXBvcnQgeyBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2UgfSBmcm9tICcuL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBEZXZpY2UsIERldmljZVZpZXdUeXBlIH0gZnJvbSAnLi9jbGFzc2VzL2RldmljZSc7XHJcbmltcG9ydCB7IGZpbmFsaXplLCBmb3JrSm9pbiwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEluZm9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbmZpcm0tZGlhbG9nL2luZm8tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kZXZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGluZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xpbmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNpdGVTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3NpdGUtc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUT0dHTEVfVFlQRVMgfSBmcm9tICcuL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kbnMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kZXZpY2UtbWFuYWdlLXdpZGdldCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZXZpY2UtbWFuYWdlLXdpZGdldC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV2aWNlTWFuYWdlV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGRpc2NhcmRDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBnb0JhY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaG9zdCE6IHN0cmluZztcclxuICBASW5wdXQoKSBzaXRlSWQhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdXNlcklkITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzTGRhcCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGV2aWNlTmFtZSE6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgndGFnSW5wdXQnKSB0YWdJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIGRhdGFQZW5kaW5nITogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwdWJsaWMgZGV2aWNlOiBhbnkgPSBudWxsO1xyXG4gIHB1YmxpYyB0b2tlbk9iajogYW55ID0gbnVsbDtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IEhPVEVMSU5HX1RJTUVfSE9VUlMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMjAgfSwgKF8sIGluZGV4KSA9PiBpbmRleCk7XHJcblxyXG4gIC8vIHB1YmxpYyByZWFkb25seSBob3RlbGluZ0xpbWl0VGltZSA9IG5ldyBGb3JtQ29udHJvbCgyNCk7XHJcbiAgcHVibGljIGxvZ01pc3NlZENhbGwgPSBuZXcgRm9ybUNvbnRyb2wodHJ1ZSk7XHJcblxyXG4gIHRhZ3M6IHN0cmluZ1tdID0gW107XHJcbiAgaXNBZGRpbmcgPSBmYWxzZTtcclxuICBuZXdUYWcgPSAnJztcclxuICBsaW5lc0NvbnRyb2xzID0gbmV3IEZvcm1BcnJheTxGb3JtQ29udHJvbDxzdHJpbmc+PihbXSk7XHJcblxyXG4gIGdldCBmaXJzdE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLnVzZXJOYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3ROYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS51c2VyTGFzdE5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9ybSgpOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlckRldmljZT8uZm9ybTtcclxuICB9XHJcblxyXG4gIGdldCBpc1dlYmV4KCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJleFVVSUQnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2ViZXhVVUlEJykgIT09ICdudWxsJztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHB1YmxpYyBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxpbmVTZXJ2aWNlOiBMaW5lU2VydmljZSxcclxuICAgIHB1YmxpYyBzaXRlU2V0dGluZ3NTZXJ2aWNlOiBTaXRlU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkbnNTZXJ2aWNlOiBEbnNTZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdDtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gJywgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCk7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIHNob3dJbnB1dCgpIHtcclxuICAgIHRoaXMuaXNBZGRpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIHdhaXQgdW50aWwgaW5wdXQgYXBwZWFycyBpbiBET01cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRhZ0lucHV0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5uZXdUYWcudHJpbSgpO1xyXG5cclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnRhZ3MucHVzaCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5uZXdUYWcgPSAnJztcclxuICAgIHRoaXMuaXNBZGRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVRhZyhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRhZ3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcblxyXG4gIGdldCBob3RlbGluZ0VuYWJsZWQoKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uZ2V0KCdob3RlbGluZycpPy5nZXQoJ2VuYWJsZWQnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBndWVzdEhvdXJzTGltaXQoKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uZ2V0KCdob3RlbGluZycpPy5nZXQoJ2d1ZXN0SG91cnNMaW1pdCcpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcmVxdWVzdDtcclxuICAgIGNvbnN0IGRldmljZVR5cGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZGV2aWNlVHlwZScpO1xyXG4gICAgLy8gY29uc3QgZGV2aWNlVHlwZSA9IHRoaXMuZGV2aWNlTmFtZTtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdpc1dlYmV4JykgPT09ICd0cnVlJykge1xyXG4gICAgICAvLyByZXF1ZXN0XHJcbiAgICAgIGNvbnN0IGN1c3RvbWVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VzdG9tZXJJZCcpO1xyXG4gICAgICBjb25zdCB3ZWJleElkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYmV4VVVJRCcpO1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy51c2VyU2VydmljZS5mZXRjaFdlYmV4VXNlckRldmljZShjdXN0b21lcklkISwgd2ViZXhJZCEsIGRldmljZVR5cGUhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLnVzZXJTZXJ2aWNlLmZldGNoRElVc2VyRGV2aWNlKHRoaXMuc2l0ZUlkLCB0aGlzLnVzZXJJZCwgZGV2aWNlVHlwZSEpO1xyXG4gICAgfVxyXG4gICAgcmVxdWVzdFxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlKSlcclxuICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmRldmljZSA9IGRhdGE7XHJcbiAgICAgIHRoaXMuaW5pdEZvcm1EYXRhKHRoaXMuZGV2aWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdEZvcm1EYXRhKGRldmljZTogYW55KSB7XHJcblxyXG4gICAgdGhpcy5saW5lc0NvbnRyb2xzID0gbmV3IEZvcm1BcnJheShcclxuICAgICAgdGhpcy5kZXZpY2UubGluZXMubWFwKChsaW5lOiBhbnkpID0+XHJcbiAgICAgICAgbmV3IEZvcm1Db250cm9sKFN0cmluZyhsaW5lLmV4dGVuc2lvbikgfHwgJycpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25OdW1iZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dC50cmltKCk7XHJcbiAgICB0aGlzLmRldmljZS5saW5lc1tpbmRleF0ubnVtYmVyID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkV4dGVuc2lvbkNoYW5nZSh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICAvLyBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dC50cmltKCk7XHJcbiAgICBjb25zdCBleHRlbnNpb24gPSB0aGlzLmRuc1NlcnZpY2UuZ2V0RG5WYWx1ZSh2YWx1ZSk7XHJcbiAgICBjb25zdCBudW1iZXIgPSB0aGlzLmRuc1NlcnZpY2UuZ2V0TWFwcGVkRGlkcyhleHRlbnNpb24sICcwJyk7XHJcbiAgICB0aGlzLmRldmljZS5saW5lc1tpbmRleF0uZXh0ZW5zaW9uID0gZXh0ZW5zaW9uO1xyXG4gICAgdGhpcy5kZXZpY2UubGluZXNbaW5kZXhdLm51bWJlciA9IG51bWJlciB8fCAnJztcclxuICAgIHRoaXMubGluZXNDb250cm9scy5hdChpbmRleCkuc2V0VmFsdWUoZXh0ZW5zaW9uKTtcclxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKSB8fCB0aGlzLmZvcm0/LmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVwZGF0ZWRMaW5lcyA9IHRoaXMuZGV2aWNlLmxpbmVzLmZpbHRlcigobGluZTogYW55LCBpbmRleDogYW55KSA9PiB0aGlzLnVzZXJTZXJ2aWNlLmxpbmVVcGRhdGVkKGxpbmUsIGluZGV4KSk7XHJcbiAgICB1cGRhdGVkTGluZXMuZm9yRWFjaCgobGluZTogYW55KSA9PiB0aGlzLnVzZXJTZXJ2aWNlLnNhdmVOZXdMaW5lKGxpbmUpKTtcclxuXHJcbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgICB9LCAyMDAwMCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25Hb0JhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmdvQmFjay5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG5cclxuPGFwcC1sb2FkZXIgKm5nSWY9XCJkYXRhUGVuZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuPGRpdiAqbmdJZj1cIiFkYXRhUGVuZGluZ1wiPlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cImdvLWJhY2stYm94XCIgKGNsaWNrKT1cIm9uR29CYWNrKClcIj4gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImdvLWJhY2stYm94XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ28tYmFjay1ib3gtY29udGFpbmVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gaWNvbi13ZWJleC1sZWZ0LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImdvLWJhY2stdGl0bGVcIj5EZXZpY2VzPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxhcHAtZGV2aWNlLWluZm8gXHJcbiAgICBbZGV2aWNlXT1cImRldmljZVwiIFxyXG4gICAgW2ZpcnN0TmFtZV09XCJmaXJzdE5hbWVcIiBcclxuICAgIFtsYXN0TmFtZV09XCJsYXN0TmFtZVwiXHJcbiAgICAob25jbGlja0JhY2spPVwib25Hb0JhY2soKVwiXHJcbiAgICA+XHJcbiAgICBcclxuICA8L2FwcC1kZXZpY2UtaW5mbz5cclxuICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWluZm9cIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWluZm8tcGFydFwiPlxyXG5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPkRldGFpbHM8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIGxlZnQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyBmb3JtPy5nZXQoJ21heExpbmVDb3VudCcpPy52YWx1ZSB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+TGluZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUgcmlnaHQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyAoZm9ybT8uZ2V0KCdtYWNBZGRyZXNzJyk/LnZhbHVlIHwgbWFjQWRkcmVzcykgfHwgJ04vQScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXh0cmEtaW5mb1wiPk1BQyBhZGRyZXNzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUgbGVmdC1wYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFpbi12YWx1ZVwiPnt7IGZvcm0/LmdldCgnaXBBZGRyZXNzJyk/LnZhbHVlIHx8ICdOL0EnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dHJhLWluZm9cIj5Ib3N0IElQIGFkZHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUgcmlnaHQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyBmb3JtPy5nZXQoJ3JlbW90ZUlwQWRkcmVzcycpPy52YWx1ZSB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+UmVtb3RlIElQIGFkZHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZSBsZWZ0LXBhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+Q2lzY288L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXh0cmEtaW5mb1wiPk1hbmFnZWQgQnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPlNvZnR3YXJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYm9yZGVyZWQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBjb25maWd1cmUtaWNvbiByZW0xXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIGxlZnQtcGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tdmFsdWVcIj57eyBmb3JtPy5nZXQoJ3NvZnR3YXJlVmVyc2lvbicpPy52YWx1ZSB8fCAnTi9BJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dHJhLWluZm9cIj5Tb2Z0d2FyZSBDaGFubmVsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIHJpZ2h0LXBhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+e3sgZm9ybT8uZ2V0KCdzb2Z0d2FyZUNoYW5uZWwnKT8udmFsdWUgfHwgJ04vQSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+U29mdHdhcmUgdmVyc2lvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+VGFnczwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCIgc3R5bGU9XCJmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDFyZW07XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3MtbGlzdC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3M7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInRhZy1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctZGVzY2NyaXB0aW9uXCI+e3sgdGFnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGNsb3NlLWljb25cIiAoY2xpY2spPVwicmVtb3ZlVGFnKGkpXCIgc3R5bGU9XCJ3aWR0aDogMC43NXJlbTsgaGVpZ2h0OiAwLjc1cmVtOyBmbGV4OiAwIDAgYXV0bztcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdzLWxpc3QtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWctbGFiZWwgYWRkLXRhZ1wiIChjbGljayk9XCJzaG93SW5wdXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIHBsdXMtaWNvblwiIHN0eWxlPVwid2lkdGg6IDAuNzVyZW07IGhlaWdodDogMC43NXJlbTtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZGQgdGFnPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3RhZ0lucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImVudGVyLXRhZy1pbnB1dFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0FkZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld1RhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZC10YWctaW5wdXRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgdGFnLi4uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlLWluZm8tcGFydFwiPlxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPklzc3VlcyAmIEluZm9ybWF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGNoZWNrLWljb24gcmVtMVwiIHN0eWxlPVwiZmlsdGVyOiBpbnZlcnQoMjYlKSBzZXBpYSgyNyUpIHNhdHVyYXRlKDEwOTMlKSBodWUtcm90YXRlKDExNGRlZykgYnJpZ2h0bmVzcyg5MyUpIGNvbnRyYXN0KDkwJSk7XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5ObyByZXBvcnRlZCBpc3N1ZXMgYXQgdGhpcyB0aW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+SG90ZWxpbmc8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvdyBmbGV4LWNvbHVtbiBnYXAtMF83NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiPkFsbG93IHRoaXMgZGV2aWNlIHRvIGJlIHVzZWQgYXMgYSBIb3RlbGluZyBIb3N0IGJ5IHZpc2l0aW5nIGd1ZXN0cy48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY3VzdG9tLXRvZ2dsZVwiIG5hbWU9XCJsb2dNaXNzZWRDYWxsc1wiIFtmb3JtQ29udHJvbF09XCJob3RlbGluZ0VuYWJsZWRcIj48L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBpbmZvLWljb24gcmVtMVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmaWx0ZXI6IGludmVydCgyMCUpIHNlcGlhKDk5JSkgc2F0dXJhdGUoMjA2NSUpIGh1ZS1yb3RhdGUoMTk3ZGVnKSBicmlnaHRuZXNzKDkyJSkgY29udHJhc3QoMTAxJSk7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidFbmFibGluZyB0aGlzIGRldmljZSBmb3IgSG90ZWxpbmcgbWVhbnMgdGhhdCBhIGd1ZXN0IChlbmQgdXNlcikgY2FuIGxvZyBpbnRvIHRoaXMgaG9zdCAod29ya3NwYWNlIHBob25lKSBhbmQgdXNlIHRoaXMgcGhvbmUgYXMgaWYgaXQgd2VyZSB0aGVpciBvd24uIFRoaXMgaXMgdXNlZnVsIHdoZW4gdHJhdmVsaW5nIHRvIGEgcmVtb3RlIG9mZmljZSBidXQgc3RpbGwgbmVlZGluZyB0byBwbGFjZS9yZWNlaXZlIGNhbGxzIHdpdGggdGhlaXIgdGVsZXBob25lIG51bWJlciBhbmQgdG8gYWNjZXNzIGZlYXR1cmVzIG5vcm1hbGx5IGF2YWlsYWJsZSB0byB0aGVtIG9uIHRoZWlyIG93biBvZmZpY2UgcGhvbmUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+TGltaXQgdGhlIHRpbWUgYSBndWVzdCBjYW4gdXNlIHRoaXMgcGhvbmUgdG88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImd1ZXN0SG91cnNMaW1pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBIT1RFTElOR19USU1FX0hPVVJTXCIgW3ZhbHVlXT1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dHlwZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+RGV2aWNlIE1hbmFnZW1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvdyBmbGV4LWNvbHVtbiBnYXAtMF83NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiPlRoZSB1c2VycyBhbmQgd29ya3NwYWNlcyB0aGF0IGFwcGVhciBvbiB0aGlzIGRldmljZSBhcmUgZGlzcGxheWVkIGJlbG93IGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+VG8gYWRkIGFuZCByZW1vdmUgdXNlcnMgYW5kIHdvcmtzcGFjZXMsIHNlbGVjdCA8Yj5Db25maWd1cmUgTGluZXMuPC9iPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+VG8gY3VzdG9taXplIHRoZSBwcm9ncmFtbWFibGUgTGluZSBLZXlzLCBzZWxlY3QgPGI+Q29uZmlndXJlIExheW91dC48L2I+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5UbyBzZXQgdXAgdGhlIGRpc3BsYXkgc2V0dGluZ3MgYW5kIGRpYWxpbmcgb3B0aW9ucywgc2VsZWN0IDxiPkRldmljZSBTZXR0aW5nczwvYj4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0YWJsZSBzdHlsZT1cImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNlZGVkZWQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+SW5kZXggIzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+TmFtZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+TnVtYmVyL0V4dGVuc2lvbjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOi43NXJlbTsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+QXBwZWFyYW5jZXM8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwicGFkZGluZzoxMHB4IDE2cHg7IGZvbnQtc2l6ZTouNzVyZW07IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6IzU0NTQ1NDsgdGV4dC1hbGlnbjpsZWZ0OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4O1wiPlJlZ2lzdGVyZWQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXZpY2U/LmxpbmVzICYmIGRldmljZT8ubGluZXMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNmZmY7IGN1cnNvcjpwb2ludGVyO1wiIG9ubW91c2VvdmVyPVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZmFmYWZhJ1wiIG9ubW91c2VvdXQ9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmZmYnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmUgb2YgZGV2aWNlLmxpbmVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7IGNvbG9yOiMwMDAwMDBmMjsgcGFkZGluZzo0cHggMTRweDsgZm9udC1zaXplOi44NzVyZW07IGZvbnQtd2VpZ2h0OjQwMDtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAuMjVyZW0gMS4yNXJlbSAuMjVyZW0gLjc1cmVtOzsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OmlubGluZS1ibG9jazsgY29sb3I6IzAwMDAwMGYyOyBwYWRkaW5nOjRweCAxNHB4OyBmb250LXNpemU6Ljg3NXJlbTsgZm9udC13ZWlnaHQ6NDAwO1wiPnt7bGluZT8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMjBweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbnRlbnRlZGl0YWJsZV09XCIhaXNXZWJleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25OdW1iZXJDaGFuZ2UoJGV2ZW50LCBpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmU/Lm51bWJlciB8fCAnTkEnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4gJm5ic3A7LyZuYnNwOyA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29udGVudGVkaXRhYmxlXT1cIiFpc1dlYmV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkV4dGVuc2lvbkNoYW5nZSgkZXZlbnQsIGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZT8uZXh0ZW5zaW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJsaW5lc0NvbnRyb2xzLmF0KGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlUGFydGl0aW9uXT1cImxpbmUucm91dGVQYXJ0aXRpb25OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpcmVjdG9yeU51bWJlcl09XCJsaW5lLmRpcmVjdG9yeU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXRlSWRdPVwic2l0ZUlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uRXh0ZW5zaW9uQ2hhbmdlKCRldmVudCwgaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7IGNvbG9yOiMwMDAwMDBmMjsgcGFkZGluZzo0cHggMTRweDsgZm9udC1zaXplOi44NzVyZW07IGZvbnQtd2VpZ2h0OjQwMDtcIj4xPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogLjI1cmVtIDEuMjVyZW0gLjI1cmVtIC43NXJlbTs7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiB3YXJuaW5nLWljb24gcmVtMVwiIFttYXRUb29sdGlwXT1cIidVbnJlZ2lzdGVyZWQnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj4xNSBvZiAxNiB0b3RhbCBsaW5lcyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS1saW5lc1wiIHN0eWxlPVwib3BhY2l0eTogMC40OyBwb2ludGVyLWV2ZW50czogbm9uZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGNvbmZpZ3VyZS1pY29uIHJlbTEtMjVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+Q29uZmlndXJlIExpbmVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXdlaWdodDogNTAwO1wiPk1hbmFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gYXJyb3ctcmlnaHQtaWNvbiByZW0xLTI1XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGNvbmZpZ3VyZS1pY29uIHJlbTEtMjVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+Q29uZmlndXJlIExheW91dDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj5NYW5hZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGFycm93LXJpZ2h0LWljb24gcmVtMS0yNVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBjb25maWd1cmUtaWNvbiByZW0xLTI1XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiPkRldmljZSBTZXR0aW5nczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDUwMDtcIj5NYW5hZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGFycm93LXJpZ2h0LWljb24gcmVtMS0yNVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPlN1cHBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvdyBmbGV4LWNvbHVtbiBnYXAtMF83NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtbGluZXNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuNDsgcG9pbnRlci1ldmVudHM6IG5vbmU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvblwiPk1lZXRpbmdzICYgQ2FsbHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBuZXdcIj5OZXc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGluZm8taWNvbiByZW0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ1Ryb3VibGVzaG9vdGluZyBwcm92aWRlcyBkZXRhaWxzIGFib3V0IHRoZSBkZXZpY2UgcmVsYXRlZCB0byBzdGF0dXMsIG5ldHdvcmsgYWN0aXZpdHksIGFuZCBjYWxsIGluZm9ybWF0aW9uLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA1MDA7XCI+R28gdG8gdHJvdWJsZXNob290aW5nPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBhcnJvdy1yaWdodC1pY29uIHJlbTEtMjVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5EZXZpY2UgTG9nczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gaW5mby1pY29uIHJlbTFcIiBbbWF0VG9vbHRpcF09XCInR2VuZXJhdGUgZGV2aWNlIGxvZ3MgYW5kIGRvd25sb2FkIHRoZW0gdG8geW91ciBjb21wdXRlci4nXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXdlaWdodDogNTAwO1wiPk1hbmFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gYXJyb3ctcmlnaHQtaWNvbiByZW0xLTI1XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuICBcclxuPC9kaXY+Il19
|