@tuki-io/tuki-widgets 0.0.219-dev.6 → 0.0.219-dev.62
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/contact-center/cc-import/cc-import.module.d.ts +13 -0
- package/contact-center/cc-import/cc-import.service.d.ts +85 -0
- package/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.d.ts +56 -0
- package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.d.ts +77 -0
- package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.d.ts +3 -0
- package/contact-center/cc-import/constants/cc-import.constants.d.ts +37 -0
- package/contact-center/cc-import/mock/cc-import.mock.d.ts +4 -0
- package/contact-center/cc-import/types/cc-import.d.ts +73 -0
- package/contact-center/cc-import/types/uccx.d.ts +109 -0
- package/contact-center/cc-readiness/cc-readiness.module.d.ts +3 -3
- package/contact-center/public-api.d.ts +8 -0
- package/contact-center/shared/api.endpoints.d.ts +25 -0
- package/contact-center/shared/api.service.d.ts +3 -1
- package/contact-center/shared/components/card/card.component.d.ts +13 -0
- package/contact-center/shared/dcp-api.service.d.ts +15 -0
- package/contact-center/shared/shared.module.d.ts +11 -5
- package/di2mt/api/api.endpoints.d.ts +3 -0
- package/esm2020/contact-center/cc-import/cc-import.module.mjs +45 -0
- package/esm2020/contact-center/cc-import/cc-import.service.mjs +228 -0
- package/esm2020/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.mjs +144 -0
- package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.mjs +243 -0
- package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.mjs +3 -0
- package/esm2020/contact-center/cc-import/constants/cc-import.constants.mjs +62 -0
- package/esm2020/contact-center/cc-import/mock/cc-import.mock.mjs +78 -0
- package/esm2020/contact-center/cc-import/types/cc-import.mjs +2 -0
- package/esm2020/contact-center/cc-import/types/uccx.mjs +24 -0
- package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +7 -6
- package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +5 -5
- package/esm2020/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.mjs +2 -2
- package/esm2020/contact-center/public-api.mjs +9 -1
- package/esm2020/contact-center/shared/api.endpoints.mjs +26 -1
- package/esm2020/contact-center/shared/api.service.mjs +8 -3
- package/esm2020/contact-center/shared/components/card/card.component.mjs +24 -0
- package/esm2020/contact-center/shared/dcp-api.service.mjs +26 -0
- package/esm2020/contact-center/shared/shared.module.mjs +15 -5
- package/esm2020/di2mt/api/api.endpoints.mjs +4 -1
- package/esm2020/locations/public-api.mjs +8 -0
- package/esm2020/locations/src/app.constants.mjs +18 -0
- package/esm2020/locations/src/location-confirm-dialog/location-confirm-dialog.component.mjs +23 -0
- package/esm2020/locations/src/locations.component.mjs +398 -0
- package/esm2020/locations/src/locations.module.mjs +42 -0
- package/esm2020/locations/src/material.module.mjs +55 -0
- package/esm2020/locations/src/services/api.service.mjs +67 -0
- package/esm2020/locations/src/services/locations.service.mjs +69 -0
- package/esm2020/locations/src/types/location.mjs +2 -0
- package/esm2020/locations/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/locations/tuki-io-tuki-widgets-locations.mjs +5 -0
- package/esm2020/meetings/public-api.mjs +8 -0
- package/esm2020/meetings/src/app.constants.mjs +9 -0
- package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +107 -0
- package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +98 -0
- package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +110 -0
- package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +65 -0
- package/esm2020/meetings/src/material.module.mjs +76 -0
- package/esm2020/meetings/src/meetings.component.mjs +65 -0
- package/esm2020/meetings/src/meetings.module.mjs +51 -0
- package/esm2020/meetings/src/services/api.service.mjs +67 -0
- package/esm2020/meetings/src/services/live-meetings.service.mjs +178 -0
- package/esm2020/meetings/src/services/meeting-spaces.service.mjs +102 -0
- package/esm2020/meetings/src/types/live-meeting.mjs +2 -0
- package/esm2020/meetings/src/types/meeting-space.mjs +2 -0
- package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/meetings/tuki-io-tuki-widgets-meetings.mjs +5 -0
- package/esm2020/shared/public-api.mjs +4 -0
- package/esm2020/shared/src/ui/material.module.mjs +188 -0
- package/esm2020/shared/src/ui/shared.module.mjs +36 -0
- package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
- package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
- package/esm2020/shared/src/ui/ui.module.mjs +37 -0
- package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
- package/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
- package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
- package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +2 -1
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +8 -6
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
- package/esm2020/user-device-manage/public-api.mjs +4 -1
- package/esm2020/user-device-manage/src/app.constants.mjs +9 -3
- package/esm2020/user-device-manage/src/associate-lines/associate-lines.component.mjs +311 -0
- package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
- package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +2 -2
- package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +34 -17
- package/esm2020/user-device-manage/src/device-settings/device-settings.component.mjs +207 -0
- package/esm2020/user-device-manage/src/line-key-config/line-key-config.component.mjs +401 -0
- package/esm2020/user-device-manage/src/services/device.service.mjs +32 -2
- package/esm2020/user-device-manage/src/services/user.service.mjs +34 -6
- package/esm2020/user-device-manage/src/user-device-manage.module.mjs +19 -7
- package/esm2020/user-manage/src/app.constants.mjs +8 -1
- package/esm2020/user-manage/src/classes/simplified-user.mjs +19 -4
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
- package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
- package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +9 -5
- package/esm2020/user-manage/src/material.module.mjs +21 -7
- package/esm2020/user-manage/src/services/dcp-api.service.mjs +79 -0
- package/esm2020/user-manage/src/services/site-settings.service.mjs +11 -4
- package/esm2020/user-manage/src/services/user.service.mjs +94 -19
- package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +12 -7
- package/esm2020/user-manage/src/user-manage-widget.component.mjs +90 -39
- package/esm2020/user-manage/src/user-manage.module.mjs +14 -4
- package/esm2020/user-manage/src/user-summary/user-summary.component.mjs +30 -0
- package/esm2020/users-list/src/app.constants.mjs +2 -1
- package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
- package/esm2020/users-list/src/classes/user-list.mjs +2 -1
- package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
- package/esm2020/users-list/src/users-list.component.mjs +100 -17
- package/esm2020/workspaces/public-api.mjs +8 -0
- package/esm2020/workspaces/src/app.constants.mjs +27 -0
- package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
- package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +96 -0
- package/esm2020/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.mjs +66 -0
- package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +56 -0
- package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +130 -0
- package/esm2020/workspaces/src/material.module.mjs +83 -0
- package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
- package/esm2020/workspaces/src/services/api.service.mjs +67 -0
- package/esm2020/workspaces/src/services/workspace-detail.service.mjs +169 -0
- package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
- package/esm2020/workspaces/src/services/workspaces.service.mjs +152 -0
- package/esm2020/workspaces/src/types/workspace.mjs +4 -0
- package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/workspaces/src/utils/device-icon.mjs +13 -0
- package/esm2020/workspaces/src/utils/workspace-name.mjs +8 -0
- package/esm2020/workspaces/src/workspaces.component.mjs +322 -0
- package/esm2020/workspaces/src/workspaces.module.mjs +54 -0
- package/esm2020/workspaces/tuki-io-tuki-widgets-workspaces.mjs +5 -0
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +998 -127
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -0
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs +679 -0
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +894 -0
- package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
- package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +111 -32
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +1013 -48
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +380 -89
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +121 -22
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +1292 -0
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +989 -127
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -0
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs +672 -0
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +902 -0
- package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
- package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +104 -28
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +996 -47
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +366 -82
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +120 -22
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +1294 -0
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
- package/locations/index.d.ts +5 -0
- package/locations/public-api.d.ts +2 -0
- package/locations/src/app.constants.d.ts +10 -0
- package/locations/src/location-confirm-dialog/location-confirm-dialog.component.d.ts +15 -0
- package/locations/src/locations.component.d.ts +92 -0
- package/locations/src/locations.module.d.ts +13 -0
- package/locations/src/material.module.d.ts +12 -0
- package/locations/src/services/api.service.d.ts +18 -0
- package/locations/src/services/locations.service.d.ts +25 -0
- package/locations/src/types/location.d.ts +30 -0
- package/locations/src/utils/app-loader/app-loader.d.ts +6 -0
- package/meetings/index.d.ts +5 -0
- package/meetings/public-api.d.ts +2 -0
- package/meetings/src/app.constants.d.ts +8 -0
- package/meetings/src/components/live-meetings/live-meeting/live-meeting.component.d.ts +34 -0
- package/meetings/src/components/live-meetings/live-meetings.component.d.ts +43 -0
- package/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.d.ts +39 -0
- package/meetings/src/components/meeting-spaces/meeting-spaces.component.d.ts +27 -0
- package/meetings/src/material.module.d.ts +15 -0
- package/meetings/src/meetings.component.d.ts +29 -0
- package/meetings/src/meetings.module.d.ts +16 -0
- package/meetings/src/services/api.service.d.ts +18 -0
- package/meetings/src/services/live-meetings.service.d.ts +9 -0
- package/meetings/src/services/meeting-spaces.service.d.ts +16 -0
- package/meetings/src/types/live-meeting.d.ts +71 -0
- package/meetings/src/types/meeting-space.d.ts +52 -0
- package/meetings/src/utils/app-loader/app-loader.d.ts +6 -0
- package/package.json +33 -1
- package/shared/index.d.ts +5 -0
- package/shared/public-api.d.ts +3 -0
- package/shared/src/ui/material.module.d.ts +28 -0
- package/shared/src/ui/shared.module.d.ts +10 -0
- package/{user-device-manage/src/shared/tk-page-section/page-section.component.d.ts → shared/src/ui/tk-page-section/tk-page-section.component.d.ts} +1 -1
- package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
- package/shared/src/ui/ui.module.d.ts +11 -0
- package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
- package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
- package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
- package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
- package/user-device-manage/public-api.d.ts +3 -0
- package/user-device-manage/src/app.constants.d.ts +6 -0
- package/user-device-manage/src/associate-lines/associate-lines.component.d.ts +95 -0
- package/user-device-manage/src/classes/device.d.ts +15 -0
- package/user-device-manage/src/classes/deviceProfile.d.ts +5 -0
- package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
- package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +1 -0
- package/user-device-manage/src/device-manage-widget.component.d.ts +6 -1
- package/user-device-manage/src/device-settings/device-settings.component.d.ts +53 -0
- package/user-device-manage/src/line-key-config/line-key-config.component.d.ts +84 -0
- package/user-device-manage/src/services/device.service.d.ts +6 -1
- package/user-device-manage/src/services/user.service.d.ts +2 -1
- package/user-device-manage/src/user-device-manage.module.d.ts +12 -10
- package/user-manage/src/app.constants.d.ts +7 -0
- package/user-manage/src/classes/simplified-user.d.ts +17 -1
- package/user-manage/src/device-list/device-list.component.d.ts +2 -0
- package/user-manage/src/material.module.d.ts +3 -1
- package/user-manage/src/services/dcp-api.service.d.ts +21 -0
- package/user-manage/src/services/user.service.d.ts +19 -1
- package/user-manage/src/user-calling/user-calling.component.d.ts +3 -2
- package/user-manage/src/user-manage-widget.component.d.ts +14 -2
- package/user-manage/src/user-manage.module.d.ts +9 -7
- package/user-manage/src/user-summary/user-summary.component.d.ts +10 -0
- package/users-list/src/app.constants.d.ts +1 -0
- package/users-list/src/classes/simlified-user.d.ts +1 -1
- package/users-list/src/classes/user-list.d.ts +4 -0
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
- package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
- package/users-list/src/users-list.component.d.ts +6 -1
- package/workspaces/index.d.ts +5 -0
- package/workspaces/public-api.d.ts +2 -0
- package/workspaces/src/app.constants.d.ts +25 -0
- package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
- package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +34 -0
- package/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.d.ts +25 -0
- package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +20 -0
- package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +43 -0
- package/workspaces/src/material.module.d.ts +16 -0
- package/workspaces/src/services/api-webex.service.d.ts +6 -0
- package/workspaces/src/services/api.service.d.ts +18 -0
- package/workspaces/src/services/workspace-detail.service.d.ts +22 -0
- package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
- package/workspaces/src/services/workspaces.service.d.ts +11 -0
- package/workspaces/src/types/workspace.d.ts +439 -0
- package/workspaces/src/utils/app-loader/app-loader.d.ts +6 -0
- package/workspaces/src/utils/device-icon.d.ts +1 -0
- package/workspaces/src/utils/workspace-name.d.ts +1 -0
- package/workspaces/src/workspaces.component.d.ts +75 -0
- package/workspaces/src/workspaces.module.d.ts +17 -0
- package/contact-center/cc-readiness/components/card/card.component.d.ts +0 -6
- package/esm2020/contact-center/cc-readiness/components/card/card.component.mjs +0 -13
- package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
|
@@ -9,6 +9,7 @@ export class DeviceService {
|
|
|
9
9
|
constructor(apiService) {
|
|
10
10
|
this.apiService = apiService;
|
|
11
11
|
this.dataPending = false;
|
|
12
|
+
this.siteDirectoryNumbers = [];
|
|
12
13
|
}
|
|
13
14
|
hasUnsavedChanges(device, originDevice) {
|
|
14
15
|
if (device?.lineAssociationsHasChanges) {
|
|
@@ -40,9 +41,22 @@ export class DeviceService {
|
|
|
40
41
|
return this.apiService.fetch(API.LEAN_USER_DEVICES_CONVERSATION_START.replace(':siteId', String(siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))));
|
|
41
42
|
}
|
|
42
43
|
getSlotsByButtonTemplate(siteId, buttonTemplateName) {
|
|
43
|
-
return this.apiService.fetch(API.LINE_SLOTS.replace(':siteId', String(siteId)), { name: buttonTemplateName }
|
|
44
|
+
return this.apiService.fetch(API.LINE_SLOTS.replace(':siteId', String(siteId)), { name: buttonTemplateName });
|
|
44
45
|
// .pipe(this.handleError(true, true));
|
|
45
46
|
}
|
|
47
|
+
getDeviceDefaults(siteId, deviceType) {
|
|
48
|
+
return this.apiService.fetch(API.DEVICE_DEFAULTS.replace(':siteId', String(siteId)).replace(':deviceType', deviceType), {});
|
|
49
|
+
// .pipe(this.handleError(true, true));
|
|
50
|
+
}
|
|
51
|
+
getAllSiteDirectoryNumbers(siteId) {
|
|
52
|
+
return this.apiService.fetch(API.ALL_SITE_DIRECTORY_NUMBERS.replace(':siteId', String(siteId)), {})
|
|
53
|
+
.pipe(map((directoryNumbers) => {
|
|
54
|
+
this.siteDirectoryNumbers = directoryNumbers || [];
|
|
55
|
+
if (!this.siteDirectoryNumbers.includes(' '))
|
|
56
|
+
this.siteDirectoryNumbers.unshift(' ');
|
|
57
|
+
return this.siteDirectoryNumbers;
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
46
60
|
putDeviceFields(siteId, deviceName, token, body) {
|
|
47
61
|
console.log('userToken = ', token);
|
|
48
62
|
const URL = API.UPDATE_DEVICE_FIELDS
|
|
@@ -53,6 +67,22 @@ export class DeviceService {
|
|
|
53
67
|
return this.apiService.post(URL, body);
|
|
54
68
|
// .pipe(this.handleError(true, true));
|
|
55
69
|
}
|
|
70
|
+
updateSpeedDialLines(siteId, deviceName, userToken, body) {
|
|
71
|
+
const URL = API.UPDATE_DEVICE_SPEED_DIAL_LINES
|
|
72
|
+
.replace(':siteId', String(siteId))
|
|
73
|
+
.replace(':deviceName', deviceName)
|
|
74
|
+
.replace(':userToken', userToken);
|
|
75
|
+
return this.apiService.post(URL, body);
|
|
76
|
+
// .pipe(this.handleError(true, true));
|
|
77
|
+
}
|
|
78
|
+
updateBlfSpeedDialLines(siteId, deviceName, userToken, body) {
|
|
79
|
+
const URL = API.UPDATE_DEVICE_BLF_SPEED_DIAL_LINES
|
|
80
|
+
.replace(':siteId', String(siteId))
|
|
81
|
+
.replace(':deviceName', deviceName)
|
|
82
|
+
.replace(':userToken', userToken);
|
|
83
|
+
return this.apiService.post(URL, body);
|
|
84
|
+
// .pipe(this.handleError(true, true));
|
|
85
|
+
}
|
|
56
86
|
updateAvailableSlots(siteId, device) {
|
|
57
87
|
if (!device) {
|
|
58
88
|
throw throwError(() => new Error('test'));
|
|
@@ -80,4 +110,4 @@ DeviceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
|
|
|
80
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceService, decorators: [{
|
|
81
111
|
type: Injectable
|
|
82
112
|
}], ctorParameters: function () { return [{ type: i1.APIService }]; } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1kZXZpY2UtbWFuYWdlL3NyYy9zZXJ2aWNlcy9kZXZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFIaEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFLcEIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxZQUFvQjtRQUMzRCxJQUFJLE1BQU0sRUFBRSwwQkFBMEIsRUFBRTtZQUN0QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxNQUFNLElBQUksWUFBWSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQ2xHO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sMkJBQTJCLENBQUMsTUFBYyxFQUFFLFlBQW9CO1FBQ3JFLElBQUksTUFBTSxJQUFJLFlBQVksRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUM7U0FDdEg7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsY0FBc0I7UUFDakUsc0NBQXNDO1FBQ3RDLGtFQUFrRTtRQUNsRSxrRkFBa0Y7UUFDbEYsZ0JBQWdCO1FBQ2hCLDhGQUE4RjtRQUM5RixnQkFBZ0I7UUFDaEIsOEdBQThHO1FBRTlHLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxRQUFRLEVBQzFILENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxvQ0FBb0MsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUN4RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0ssQ0FBQztJQUVNLHdCQUF3QixDQUFDLE1BQWMsRUFBRSxrQkFBMEI7UUFDeEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUMvRyx1Q0FBdUM7SUFDM0MsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhLEVBQUUsSUFBUztRQUNqRixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsb0JBQW9CO2FBQ2pDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDO2FBQ2xDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDcEMsdUNBQXVDO0lBQzNDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUN4RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQzFCLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLE1BQU0sQ0FBQyxjQUFjLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQzNCLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBeUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ILE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDO2FBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQy9HLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDSCx1Q0FBdUM7SUFDM0MsQ0FBQzs7MkdBbEZVLGFBQWE7K0dBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU29ydGluZ1V0aWxzU2VydmljZSB9IGZyb20gJy4vc29ydGluZy11dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnV0dG9udGVtcGxhdGUsIERldmljZSB9IGZyb20gJy4uL2NsYXNzZXMvZGV2aWNlJztcclxuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi4vY2xhc3Nlcy9saW5lLWFzc29jaWF0aW9uLWludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEZXZpY2VTZXJ2aWNlIHtcclxuICBhdmFpbGFibGVTbG90cyE6IG51bWJlcltdO1xyXG4gIGxpbmVTbG90c0xpc3QhOiBhbnk7XHJcbiAgYXZhaWxhYmxlTGluZVNsb3RzTGlzdCE6IGFueTtcclxuICBkYXRhUGVuZGluZyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYXNVbnNhdmVkQ2hhbmdlcyhkZXZpY2U6IERldmljZSwgb3JpZ2luRGV2aWNlOiBEZXZpY2UpOiBib29sZWFuIHtcclxuICAgIGlmIChkZXZpY2U/LmxpbmVBc3NvY2lhdGlvbnNIYXNDaGFuZ2VzKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGRldmljZSAmJiBvcmlnaW5EZXZpY2UpIHtcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRldmljZS5nZXRTYXZhYmxlRGF0YSgpKSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luRGV2aWNlLmdldFNhdmFibGVEYXRhKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0RldmljZUluZm9VbnNhdmVkQ2hhbmdlcyhkZXZpY2U6IERldmljZSwgb3JpZ2luRGV2aWNlOiBEZXZpY2UpOiBib29sZWFuIHtcclxuICAgIGlmIChkZXZpY2UgJiYgb3JpZ2luRGV2aWNlKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkZXZpY2UuZ2V0RGV2aWNlSW5mb1NhdmFibGVEYXRhKCkpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5EZXZpY2UuZ2V0RGV2aWNlSW5mb1NhdmFibGVEYXRhKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFUb1VwZGF0ZURldmljZShkZXZpY2U6IERldmljZSwgb3JpZ2luYWxEZXZpY2U6IERldmljZSkge1xyXG4gICAgLy8gLS0tIHRvIGV4Y2x1ZGUgbmV3TGluZXMgZnJvbSB1cGRhdGVcclxuICAgIC8vIGNvbnN0IGRldlRvVXBkYXRlID0gbmV3IERldmljZShkZXZpY2UsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgLy8gY29uc3Qgb3JpZ2luYWxEZXZUb1VwZGF0ZSA9IG5ldyBEZXZpY2Uob3JpZ2luYWxEZXZpY2UsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgLy8gLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gZGV2VG9VcGRhdGUubGluZUFzc29jaWF0aW9ucyA9IGRldlRvVXBkYXRlLmxpbmVBc3NvY2lhdGlvbnM/LmZpbHRlcihsaW5lID0+IGxpbmUubGluZVBraWQpO1xyXG4gICAgLy8gLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gb3JpZ2luYWxEZXZUb1VwZGF0ZS5saW5lQXNzb2NpYXRpb25zID0gb3JpZ2luYWxEZXZUb1VwZGF0ZS5saW5lQXNzb2NpYXRpb25zPy5maWx0ZXIobGluZSA9PiBsaW5lLmxpbmVQa2lkKTtcclxuXHJcbiAgICBjb25zdCBib2R5ID0gU29ydGluZ1V0aWxzU2VydmljZS5kaWZmKG9yaWdpbmFsRGV2aWNlLmdldERldmljZUluZm9TYXZhYmxlRGF0YSgpLCBkZXZpY2UuZ2V0RGV2aWNlSW5mb1NhdmFibGVEYXRhKCksICdkZXZpY2UnLFxyXG4gICAgICBbJ3NwZWVkRGlhbHMnLCAnYnVzeUxhbXBGaWVsZHMnXSk7XHJcbiAgICByZXR1cm4gYm9keTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaExlYW5Vc2VyRGV2aWNlc0NvbnZlcnNhdGlvbkJ5SWQodXNlcklkOiBzdHJpbmcsIHNpdGVJZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MRUFOX1VTRVJfREVWSUNFU19DT05WRVJTQVRJT05fU1RBUlQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNsb3RzQnlCdXR0b25UZW1wbGF0ZShzaXRlSWQ6IG51bWJlciwgYnV0dG9uVGVtcGxhdGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJ1dHRvbnRlbXBsYXRlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MSU5FX1NMT1RTLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSksIHtuYW1lOiBidXR0b25UZW1wbGF0ZU5hbWV9LCB0cnVlKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXREZXZpY2VGaWVsZHMoc2l0ZUlkOiBudW1iZXIsIGRldmljZU5hbWU6IHN0cmluZywgdG9rZW46IHN0cmluZywgYm9keTogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygndXNlclRva2VuID0gJywgdG9rZW4pO1xyXG4gICAgY29uc3QgVVJMID0gQVBJLlVQREFURV9ERVZJQ0VfRklFTERTXHJcbiAgICAgIC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpXHJcbiAgICAgIC5yZXBsYWNlKCc6ZGV2aWNlTmFtZScsIGRldmljZU5hbWUpXHJcbiAgICAgIC5yZXBsYWNlKCc6dG9rZW4nLCB0b2tlbik7XHJcbiAgICBjb25zb2xlLmxvZygndXJsID0gJywgVVJMKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChVUkwsIGJvZHkpXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZUF2YWlsYWJsZVNsb3RzKHNpdGVJZDogbnVtYmVyLCBkZXZpY2U6IERldmljZSk6IGFueSB7XHJcbiAgICBpZiAoIWRldmljZSkge1xyXG4gICAgICB0aHJvdyB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcigndGVzdCcpKTtcclxuICAgIH1cclxuICAgIGlmICghZGV2aWNlLmJ1dHRvblRlbXBsYXRlKSB7XHJcbiAgICAgIHRocm93IHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCd0ZXN0JykpO1xyXG4gICAgfVxyXG4gICAgaWYgKGRldmljZS5idXR0b25UZW1wbGF0ZSA9PT0gJycpIHtcclxuICAgICAgZGV2aWNlLmF2YWlsYWJsZVNsb3RzID0gW107XHJcbiAgICAgIHJldHVybiBvZihkZXZpY2UpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXhpc3RpbmdQb3NpdGlvbnMgPSBkZXZpY2UubGluZUFzc29jaWF0aW9ucy5tYXAoKGxpbmVBc3NvY2lhdGlvbjogTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlKSA9PiBsaW5lQXNzb2NpYXRpb24ucG9zaXRpb24pO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U2xvdHNCeUJ1dHRvblRlbXBsYXRlKHNpdGVJZCwgZGV2aWNlLmJ1dHRvblRlbXBsYXRlKVxyXG4gICAgICAucGlwZShtYXAoKGJ1dHRvblRlbXBsYXRlOiBCdXR0b250ZW1wbGF0ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGluZVNsb3RzTGlzdCA9IGJ1dHRvblRlbXBsYXRlLmxpbmVTbG90cztcclxuICAgICAgICBkZXZpY2UuYXZhaWxhYmxlU2xvdHMgPSB0aGlzLmxpbmVTbG90c0xpc3QuZmlsdGVyKChwb3NpdGlvbjogbnVtYmVyKSA9PiAhZXhpc3RpbmdQb3NpdGlvbnMuaW5jbHVkZXMocG9zaXRpb24pKTtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZUxpbmVTbG90c0xpc3QgPSBkZXZpY2UuYXZhaWxhYmxlU2xvdHMuc2xpY2UoKTtcclxuICAgICAgICByZXR1cm4gZGV2aWNlO1xyXG4gICAgICB9KSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1kZXZpY2UtbWFuYWdlL3NyYy9zZXJ2aWNlcy9kZXZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sYUFBYTtJQU94QixZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKaEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIseUJBQW9CLEdBQWEsRUFBRSxDQUFDO0lBS3BDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxNQUFjLEVBQUUsWUFBb0I7UUFDM0QsSUFBSSxNQUFNLEVBQUUsMEJBQTBCLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksTUFBTSxJQUFJLFlBQVksRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztTQUNsRztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLDJCQUEyQixDQUFDLE1BQWMsRUFBRSxZQUFvQjtRQUNyRSxJQUFJLE1BQU0sSUFBSSxZQUFZLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxD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O1lBQzFCLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLE1BQU0sQ0FBQyxjQUFjLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQzNCLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBeUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ILE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDO2FBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQy9HLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDSCx1Q0FBdUM7SUFDM0MsQ0FBQzs7MkdBbkhVLGFBQWE7K0dBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU29ydGluZ1V0aWxzU2VydmljZSB9IGZyb20gJy4vc29ydGluZy11dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmxmU3BlZWREaWFsTGluZVVwZGF0ZSwgQnV0dG9udGVtcGxhdGUsIERldmljZSwgU3BlZWREaWFsTGluZVVwZGF0ZSB9IGZyb20gJy4uL2NsYXNzZXMvZGV2aWNlJztcclxuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi4vY2xhc3Nlcy9saW5lLWFzc29jaWF0aW9uLWludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEZXZpY2VTZXJ2aWNlIHtcclxuICBhdmFpbGFibGVTbG90cyE6IG51bWJlcltdO1xyXG4gIGxpbmVTbG90c0xpc3QhOiBhbnk7XHJcbiAgYXZhaWxhYmxlTGluZVNsb3RzTGlzdCE6IGFueTtcclxuICBkYXRhUGVuZGluZyA9IGZhbHNlO1xyXG4gIHNpdGVEaXJlY3RvcnlOdW1iZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYXNVbnNhdmVkQ2hhbmdlcyhkZXZpY2U6IERldmljZSwgb3JpZ2luRGV2aWNlOiBEZXZpY2UpOiBib29sZWFuIHtcclxuICAgIGlmIChkZXZpY2U/LmxpbmVBc3NvY2lhdGlvbnNIYXNDaGFuZ2VzKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGRldmljZSAmJiBvcmlnaW5EZXZpY2UpIHtcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRldmljZS5nZXRTYXZhYmxlRGF0YSgpKSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luRGV2aWNlLmdldFNhdmFibGVEYXRhKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0RldmljZUluZm9VbnNhdmVkQ2hhbmdlcyhkZXZpY2U6IERldmljZSwgb3JpZ2luRGV2aWNlOiBEZXZpY2UpOiBib29sZWFuIHtcclxuICAgIGlmIChkZXZpY2UgJiYgb3JpZ2luRGV2aWNlKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkZXZpY2UuZ2V0RGV2aWNlSW5mb1NhdmFibGVEYXRhKCkpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5EZXZpY2UuZ2V0RGV2aWNlSW5mb1NhdmFibGVEYXRhKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFUb1VwZGF0ZURldmljZShkZXZpY2U6IERldmljZSwgb3JpZ2luYWxEZXZpY2U6IERldmljZSkge1xyXG4gICAgLy8gLS0tIHRvIGV4Y2x1ZGUgbmV3TGluZXMgZnJvbSB1cGRhdGVcclxuICAgIC8vIGNvbnN0IGRldlRvVXBkYXRlID0gbmV3IERldmljZShkZXZpY2UsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgLy8gY29uc3Qgb3JpZ2luYWxEZXZUb1VwZGF0ZSA9IG5ldyBEZXZpY2Uob3JpZ2luYWxEZXZpY2UsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgLy8gLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gZGV2VG9VcGRhdGUubGluZUFzc29jaWF0aW9ucyA9IGRldlRvVXBkYXRlLmxpbmVBc3NvY2lhdGlvbnM/LmZpbHRlcihsaW5lID0+IGxpbmUubGluZVBraWQpO1xyXG4gICAgLy8gLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gb3JpZ2luYWxEZXZUb1VwZGF0ZS5saW5lQXNzb2NpYXRpb25zID0gb3JpZ2luYWxEZXZUb1VwZGF0ZS5saW5lQXNzb2NpYXRpb25zPy5maWx0ZXIobGluZSA9PiBsaW5lLmxpbmVQa2lkKTtcclxuXHJcbiAgICBjb25zdCBib2R5ID0gU29ydGluZ1V0aWxzU2VydmljZS5kaWZmKG9yaWdpbmFsRGV2aWNlLmdldERldmljZUluZm9TYXZhYmxlRGF0YSgpLCBkZXZpY2UuZ2V0RGV2aWNlSW5mb1NhdmFibGVEYXRhKCksICdkZXZpY2UnLFxyXG4gICAgICBbJ3NwZWVkRGlhbHMnLCAnYnVzeUxhbXBGaWVsZHMnXSk7XHJcbiAgICByZXR1cm4gYm9keTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaExlYW5Vc2VyRGV2aWNlc0NvbnZlcnNhdGlvbkJ5SWQodXNlcklkOiBzdHJpbmcsIHNpdGVJZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MRUFOX1VTRVJfREVWSUNFU19DT05WRVJTQVRJT05fU1RBUlQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNsb3RzQnlCdXR0b25UZW1wbGF0ZShzaXRlSWQ6IG51bWJlciwgYnV0dG9uVGVtcGxhdGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJ1dHRvbnRlbXBsYXRlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MSU5FX1NMT1RTLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSksIHtuYW1lOiBidXR0b25UZW1wbGF0ZU5hbWV9KVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREZXZpY2VEZWZhdWx0cyhzaXRlSWQ6IG51bWJlciwgZGV2aWNlVHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLkRFVklDRV9ERUZBVUxUUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpLnJlcGxhY2UoJzpkZXZpY2VUeXBlJywgZGV2aWNlVHlwZSksIHt9KVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBbGxTaXRlRGlyZWN0b3J5TnVtYmVycyhzaXRlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLkFMTF9TSVRFX0RJUkVDVE9SWV9OVU1CRVJTLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSksIHt9KVxyXG4gICAgICAucGlwZShtYXAoKGRpcmVjdG9yeU51bWJlcnM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zaXRlRGlyZWN0b3J5TnVtYmVycyA9IGRpcmVjdG9yeU51bWJlcnMgfHwgW107XHJcbiAgICAgICAgaWYoIXRoaXMuc2l0ZURpcmVjdG9yeU51bWJlcnMuaW5jbHVkZXMoJyAnKSkgdGhpcy5zaXRlRGlyZWN0b3J5TnVtYmVycy51bnNoaWZ0KCcgJyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l0ZURpcmVjdG9yeU51bWJlcnM7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXREZXZpY2VGaWVsZHMoc2l0ZUlkOiBudW1iZXIsIGRldmljZU5hbWU6IHN0cmluZywgdG9rZW46IHN0cmluZywgYm9keTogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygndXNlclRva2VuID0gJywgdG9rZW4pO1xyXG4gICAgY29uc3QgVVJMID0gQVBJLlVQREFURV9ERVZJQ0VfRklFTERTXHJcbiAgICAgIC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpXHJcbiAgICAgIC5yZXBsYWNlKCc6ZGV2aWNlTmFtZScsIGRldmljZU5hbWUpXHJcbiAgICAgIC5yZXBsYWNlKCc6dG9rZW4nLCB0b2tlbik7XHJcbiAgICBjb25zb2xlLmxvZygndXJsID0gJywgVVJMKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChVUkwsIGJvZHkpXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNwZWVkRGlhbExpbmVzKHNpdGVJZDogbnVtYmVyLCBkZXZpY2VOYW1lOiBzdHJpbmcsIHVzZXJUb2tlbjogc3RyaW5nLCBib2R5OiBTcGVlZERpYWxMaW5lVXBkYXRlW10pIHtcclxuICAgIGNvbnN0IFVSTCA9IEFQSS5VUERBVEVfREVWSUNFX1NQRUVEX0RJQUxfTElORVNcclxuICAgICAgLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSlcclxuICAgICAgLnJlcGxhY2UoJzpkZXZpY2VOYW1lJywgZGV2aWNlTmFtZSlcclxuICAgICAgLnJlcGxhY2UoJzp1c2VyVG9rZW4nLCB1c2VyVG9rZW4pO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFVSTCwgYm9keSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQmxmU3BlZWREaWFsTGluZXMoc2l0ZUlkOiBudW1iZXIsIGRldmljZU5hbWU6IHN0cmluZywgdXNlclRva2VuOiBzdHJpbmcsIGJvZHk6IEJsZlNwZWVkRGlhbExpbmVVcGRhdGVbXSkge1xyXG4gICAgY29uc3QgVVJMID0gQVBJLlVQREFURV9ERVZJQ0VfQkxGX1NQRUVEX0RJQUxfTElORVNcclxuICAgICAgLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSlcclxuICAgICAgLnJlcGxhY2UoJzpkZXZpY2VOYW1lJywgZGV2aWNlTmFtZSlcclxuICAgICAgLnJlcGxhY2UoJzp1c2VyVG9rZW4nLCB1c2VyVG9rZW4pO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFVSTCwgYm9keSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQXZhaWxhYmxlU2xvdHMoc2l0ZUlkOiBudW1iZXIsIGRldmljZTogRGV2aWNlKTogYW55IHtcclxuICAgIGlmICghZGV2aWNlKSB7XHJcbiAgICAgIHRocm93IHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCd0ZXN0JykpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkZXZpY2UuYnV0dG9uVGVtcGxhdGUpIHtcclxuICAgICAgdGhyb3cgdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ3Rlc3QnKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZGV2aWNlLmJ1dHRvblRlbXBsYXRlID09PSAnJykge1xyXG4gICAgICBkZXZpY2UuYXZhaWxhYmxlU2xvdHMgPSBbXTtcclxuICAgICAgcmV0dXJuIG9mKGRldmljZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBleGlzdGluZ1Bvc2l0aW9ucyA9IGRldmljZS5saW5lQXNzb2NpYXRpb25zLm1hcCgobGluZUFzc29jaWF0aW9uOiBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2UpID0+IGxpbmVBc3NvY2lhdGlvbi5wb3NpdGlvbik7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTbG90c0J5QnV0dG9uVGVtcGxhdGUoc2l0ZUlkLCBkZXZpY2UuYnV0dG9uVGVtcGxhdGUpXHJcbiAgICAgIC5waXBlKG1hcCgoYnV0dG9uVGVtcGxhdGU6IEJ1dHRvbnRlbXBsYXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5saW5lU2xvdHNMaXN0ID0gYnV0dG9uVGVtcGxhdGUubGluZVNsb3RzO1xyXG4gICAgICAgIGRldmljZS5hdmFpbGFibGVTbG90cyA9IHRoaXMubGluZVNsb3RzTGlzdC5maWx0ZXIoKHBvc2l0aW9uOiBudW1iZXIpID0+ICFleGlzdGluZ1Bvc2l0aW9ucy5pbmNsdWRlcyhwb3NpdGlvbikpO1xyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlTGluZVNsb3RzTGlzdCA9IGRldmljZS5hdmFpbGFibGVTbG90cy5zbGljZSgpO1xyXG4gICAgICAgIHJldHVybiBkZXZpY2U7XHJcbiAgICAgIH0pKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -90,19 +90,22 @@ export class UserService {
|
|
|
90
90
|
}));
|
|
91
91
|
// .pipe(this.handleError(false, true));
|
|
92
92
|
}
|
|
93
|
-
fetchDIUserDevice(siteId, userId, deviceType) {
|
|
93
|
+
fetchDIUserDevice(siteId, userId, deviceType, deviceName) {
|
|
94
94
|
this.siteId = siteId;
|
|
95
95
|
this.userId = userId;
|
|
96
96
|
return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
|
|
97
|
-
.pipe(
|
|
97
|
+
.pipe(switchMap((result) => {
|
|
98
98
|
const user = result && Object.values(result)[0];
|
|
99
99
|
const userToken = result && Object.keys(result)[0];
|
|
100
|
+
let foundDevice;
|
|
100
101
|
if (user) {
|
|
101
102
|
this._userToken = userToken;
|
|
102
103
|
this._userName = user.firstName;
|
|
103
104
|
this._userLastName = user.lastName;
|
|
104
105
|
this._cucmId = user.cucmId;
|
|
105
|
-
|
|
106
|
+
foundDevice = deviceName
|
|
107
|
+
? user.devices.find((device) => device.name === deviceName)
|
|
108
|
+
: user.devices.find((device) => device.deviceType === deviceType);
|
|
106
109
|
if (foundDevice) {
|
|
107
110
|
this._userDevice = new DeviceProfile({
|
|
108
111
|
...foundDevice,
|
|
@@ -120,8 +123,12 @@ export class UserService {
|
|
|
120
123
|
index: line && line.index || undefined,
|
|
121
124
|
position: line && line.position || undefined,
|
|
122
125
|
textLabel: line && line.textLabel || '',
|
|
126
|
+
displayLabel: line && line.displayLabel || '',
|
|
127
|
+
e164Mask: line && line.e164Mask || '',
|
|
123
128
|
alertingName: line && line.alertingName || '',
|
|
124
|
-
callerNumber: line && line.callerNumber || ''
|
|
129
|
+
callerNumber: line && line.callerNumber || '',
|
|
130
|
+
logMissedCall: line && line.logMissedCall || '',
|
|
131
|
+
callInfoDisplay: line && line.callInfoDisplay || undefined
|
|
125
132
|
};
|
|
126
133
|
}),
|
|
127
134
|
softwareVersion: foundDevice?.firmwareVersion
|
|
@@ -129,9 +136,30 @@ export class UserService {
|
|
|
129
136
|
}
|
|
130
137
|
}
|
|
131
138
|
this.originDevice = this._userDevice ? JSON.stringify(this._userDevice.getSavableData()) : '';
|
|
132
|
-
|
|
139
|
+
if (!foundDevice) {
|
|
140
|
+
return of(this._userDevice);
|
|
141
|
+
}
|
|
142
|
+
const commonPhoneConfigName = user?.devices?.[0]?.commonPhoneConfigName || '';
|
|
143
|
+
return this.getDeviceExtraOptions(this.siteId, foundDevice.name, commonPhoneConfigName)
|
|
144
|
+
.pipe(map((extraOptions) => {
|
|
145
|
+
if (this._userDevice) {
|
|
146
|
+
this._userDevice.loggedIntoHuntGroup = extraOptions?.loggedIntoHuntGroup;
|
|
147
|
+
this._userDevice.remoteDevice = extraOptions?.remoteDevice;
|
|
148
|
+
this._userDevice.hotlineDevice = extraOptions?.hotlineDevice;
|
|
149
|
+
this._userDevice.ignorePresentationIndicators = extraOptions?.ignorePresentationIndicators;
|
|
150
|
+
this._userDevice.useDevicePoolCgpnIngressDN = extraOptions?.useDevicePoolCgpnIngressDN;
|
|
151
|
+
}
|
|
152
|
+
return this._userDevice;
|
|
153
|
+
}));
|
|
133
154
|
}));
|
|
134
155
|
}
|
|
156
|
+
getDeviceExtraOptions(siteId, deviceName, commonPhoneConfigName) {
|
|
157
|
+
return this.apiService.fetch(API.DEVICE_EXTRA_OPTIONS
|
|
158
|
+
.replace(':siteId', String(siteId))
|
|
159
|
+
.replace(':deviceName', deviceName)
|
|
160
|
+
.replace(':commonPhoneConfigName', encodeURIComponent(commonPhoneConfigName)));
|
|
161
|
+
// .pipe(this.handleError(false, true));
|
|
162
|
+
}
|
|
135
163
|
getMacAddress(name) {
|
|
136
164
|
const macRegex = /^[A-Fa-f0-9]{12}$/;
|
|
137
165
|
let macAddress;
|
|
@@ -363,4 +391,4 @@ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
|
|
|
363
391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
|
|
364
392
|
type: Injectable
|
|
365
393
|
}], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.LineService }]; } });
|
|
366
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFJL0MsTUFBTSxPQUFPLFdBQVc7SUFhdEIsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUlELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBSUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFJRCxJQUFJLFVB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LFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6RCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ25ELHlFQUF5RTtnQkFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLE9BQU87YUFDUjtTQUNGO0lBQ0gsQ0FBQzs7eUdBOVpVLFdBQVc7NkdBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IERldmljZVByb2ZpbGUgfSBmcm9tICcuLi9jbGFzc2VzL2RldmljZVByb2ZpbGUnO1xyXG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICcuLy4uL2NsYXNzZXMvZGV2aWNlJztcclxuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uIH0gZnJvbSAnLi8uLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24nO1xyXG5pbXBvcnQgeyBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2UgfSBmcm9tICcuLy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTaW1wbGlmaWVkVXNlciB9IGZyb20gJy4vLi4vY2xhc3Nlcy9zaW1wbGlmaWVkLXVzZXInO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmVTZXJ2aWNlIH0gZnJvbSAnLi9saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTb3J0aW5nVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi9zb3J0aW5nLXV0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4vdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHNpdGVJZDogbnVtYmVyID0gLTE7XHJcbiAgdXNlcklkOiBzdHJpbmcgPSAnJztcclxuICB1c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcclxuICBoYXNFeGlzdGVkVXNlcklkID0gZmFsc2U7XHJcbiAgdXNlciE6IFNpbXBsaWZpZWRVc2VyO1xyXG4gIG9yaWdpblVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcclxuICBvcmlnaW5EZXZpY2UhOiBhbnk7XHJcbiAgb25Vc2VyTGluZVNhdmVkJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBvbkZldGNoVXNlclRva2VuJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfdXNlclRva2VuOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgZ2V0IHVzZXJUb2tlbigpIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VyVG9rZW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91c2VyTmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIGdldCB1c2VyTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXNlckxhc3ROYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgZ2V0IHVzZXJMYXN0TmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJMYXN0TmFtZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2N1Y21JZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGdldCBjdWNtSWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jdWNtSWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91c2VyRGV2aWNlOiBEZXZpY2VQcm9maWxlIHwgdW5kZWZpbmVkO1xyXG5cclxuICBnZXQgdXNlckRldmljZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VyRGV2aWNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmVBc3NvY2lhdGlvbigpOiBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2UgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckRldmljZSAmJiB0aGlzLnVzZXJEZXZpY2UubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXJEZXZpY2UubGluZUFzc29jaWF0aW9uc1swXTtcclxuICB9XHJcblxyXG4gIGdldCBvcmlnaW5MaW5lQXNzb2NpYXRpb24oKTogTGluZUFzc29jaWF0aW9uIHwgTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlIHtcclxuICAgIHJldHVybiB0aGlzLm9yaWdpbkRldmljZSAmJiBKU09OLnBhcnNlKHRoaXMub3JpZ2luRGV2aWNlKS5saW5lQXNzb2NpYXRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxpbmVTZXJ2aWNlOiBMaW5lU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zaXRlSWQpXHJcbiAgfVxyXG5cclxuICByZXNldExpbmVBc3NvY2lhdGlvbihkZXZpY2VJbmRleDogbnVtYmVyLCBsaW5lSW5kZXg6IG51bWJlciwgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBvcmlnaW5MaW5lID0gdGhpcy5vcmlnaW5Vc2VyPy5kZXZpY2VzW2RldmljZUluZGV4XT8ubGluZUFzc29jaWF0aW9uc1tsaW5lSW5kZXhdO1xyXG4gICAgaWYgKHRoaXMudXNlcj8uZGV2aWNlc1tkZXZpY2VJbmRleF0/LmxpbmVBc3NvY2lhdGlvbnNbbGluZUluZGV4XSAmJiBvcmlnaW5MaW5lKSB7XHJcbiAgICAgIHRoaXMudXNlci5kZXZpY2VzW2RldmljZUluZGV4XS5saW5lQXNzb2NpYXRpb25zW2xpbmVJbmRleF0gPSBuZXcgTGluZUFzc29jaWF0aW9uKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3JpZ2luTGluZS5nZXRGdWxsRGF0YSgpKSksIHZhbGlkYXRpb25TZXJ2aWNlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXREZXZpY2UoY3VycmVudERldmljZTogRGV2aWNlLCB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IG9yaWdpbkRldmljZSA9IHRoaXMub3JpZ2luVXNlci5kZXZpY2VzLmZpbmQoZGV2aWNlID0+IGRldmljZS5uYW1lID09PSBjdXJyZW50RGV2aWNlLm5hbWUpO1xyXG4gICAgY29uc3QgZGV2aWNlSW5kID0gdGhpcy51c2VyLmRldmljZXMuZmluZEluZGV4KGRldmljZSA9PiBkZXZpY2UubmFtZSA9PT0gY3VycmVudERldmljZS5uYW1lKTtcclxuICAgIGlmIChvcmlnaW5EZXZpY2UgJiYgZGV2aWNlSW5kID4gLTEpIHtcclxuICAgICAgY29uc3QgbGluZUFzc29jaWF0aW9ucyA9IHRoaXMudXNlci5kZXZpY2VzW2RldmljZUluZF0ubGluZUFzc29jaWF0aW9ucztcclxuICAgICAgdGhpcy51c2VyLmRldmljZXNbZGV2aWNlSW5kXSA9IG5ldyBEZXZpY2UoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvcmlnaW5EZXZpY2UuZ2V0Tm9MaW5lc0Z1bGxEYXRhKCkpKSwgdmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgICB0aGlzLnVzZXIuZGV2aWNlc1tkZXZpY2VJbmRdLmxpbmVBc3NvY2lhdGlvbnMgPSBsaW5lQXNzb2NpYXRpb25zO1xyXG4gICAgICBjb25zb2xlLmxvZygnZGV2aWNlIGFmdGVyIHJlc2V0ID0gJywgdGhpcy51c2VyLmRldmljZXNbZGV2aWNlSW5kXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hVc2VyVG9rZW4oc2l0ZUlkOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nLCB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIGlzU2V0TmV3VG9rZW5Pbmx5PzogYm9vbGVhbik6IGFueSB7XHJcbiAgICAvKmlmICh0aGlzLnNpdGVJZCA9PT0gc2l0ZUlkICYmIHRoaXMudXNlcklkID09PSB1c2VySWQgJiYgdGhpcy51c2VyKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLnVzZXIpO1xyXG4gICAgfSovXHJcbiAgICB0aGlzLnNpdGVJZCA9IHNpdGVJZDtcclxuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9UT0tFTi5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodXNlcklkKSkpKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IHJlc3VsdCAmJiBPYmplY3QudmFsdWVzKHJlc3VsdClbMF07XHJcbiAgICAgICAgY29uc3QgdXNlclRva2VuID0gcmVzdWx0ICYmIE9iamVjdC5rZXlzKHJlc3VsdClbMF07XHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgIGlmICghaXNTZXROZXdUb2tlbk9ubHkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTaW1wbGlmaWVkVXNlcih1c2VyLCB2YWxpZGF0aW9uU2VydmljZSwgdXNlclRva2VuKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VzZXJUb2tlbiA9IHVzZXJUb2tlbjtcclxuICAgICAgICAgICAgLy8gdGhpcy5vcmlnaW5Vc2VyLnRva2VuID0gdXNlci50b2tlbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25GZXRjaFVzZXJUb2tlbiQubmV4dCh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSkpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hESVVzZXJEZXZpY2Uoc2l0ZUlkOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nLCBkZXZpY2VUeXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2l0ZUlkID0gc2l0ZUlkO1xyXG4gICAgdGhpcy51c2VySWQgPSB1c2VySWQ7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5VU0VSX1RPS0VOLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB1c2VyID0gcmVzdWx0ICYmIE9iamVjdC52YWx1ZXMocmVzdWx0KVswXTtcclxuICAgICAgICBjb25zdCB1c2VyVG9rZW4gPSByZXN1bHQgJiYgT2JqZWN0LmtleXMocmVzdWx0KVswXTtcclxuXHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgIHRoaXMuX3VzZXJUb2tlbiA9IHVzZXJUb2tlbjtcclxuICAgICAgICAgIHRoaXMuX3VzZXJOYW1lID0gdXNlci5maXJzdE5hbWU7XHJcbiAgICAgICAgICB0aGlzLl91c2VyTGFzdE5hbWUgPSB1c2VyLmxhc3ROYW1lO1xyXG4gICAgICAgICAgdGhpcy5fY3VjbUlkID0gdXNlci5jdWNtSWQ7XHJcbiAgICAgICAgICBjb25zdCBmb3VuZERldmljZSA9IHVzZXIuZGV2aWNlcy5maW5kKChkZXZpY2U6IGFueSkgPT4gZGV2aWNlLmRldmljZVR5cGUgPT09IGRldmljZVR5cGUpO1xyXG4gICAgICAgICAgaWYoZm91bmREZXZpY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fdXNlckRldmljZSA9IG5ldyBEZXZpY2VQcm9maWxlKHtcclxuICAgICAgICAgICAgICAuLi5mb3VuZERldmljZSxcclxuICAgICAgICAgICAgICBtb2RlbDogZm91bmREZXZpY2U/LmRldmljZVR5cGUsXHJcbiAgICAgICAgICAgICAgbWFjQWRkcmVzczogdGhpcy5nZXRNYWNBZGRyZXNzKGZvdW5kRGV2aWNlLm5hbWUpLFxyXG4gICAgICAgICAgICAgIGxpbmVzOiBmb3VuZERldmljZT8ubGluZUFzc29jaWF0aW9ucz8ubWFwKChsaW5lOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZvdW5kTGluZSA9IHVzZXI/LmxpbmVzPy5maW5kKChsOiBhbnkpID0+IGwucGtpZCA9PT0gbGluZS5saW5lUGtpZCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBgJHt0aGlzLl91c2VyTmFtZX0gJHt0aGlzLl91c2VyTGFzdE5hbWV9YCxcclxuICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBsaW5lICYmIGxpbmUuZGlyZWN0b3J5TnVtYmVyICYmIGxpbmUuZGlyZWN0b3J5TnVtYmVyLnJvdXRlUGFydGl0aW9uTmFtZSAmJiBsaW5lLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXIgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgIG51bWJlcjogZm91bmRMaW5lICE9PSAtMSA/IGZvdW5kTGluZS5tYXBwZWREaWRzWzBdIDogJycsXHJcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBmb3VuZExpbmUgJiYgZm91bmRMaW5lLmRpZFBhdHRlcm5zICYmIGZvdW5kTGluZS5kaWRQYXR0ZXJuc1swXSA/IGZvdW5kTGluZS5kaWRQYXR0ZXJuc1swXS5kZXNjcmlwdGlvbiA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICByb3V0ZVBhcnRpdGlvbk5hbWU6IGxpbmUgJiYgbGluZS5kaXJlY3RvcnlOdW1iZXIucm91dGVQYXJ0aXRpb25OYW1lIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICBwa2lkOiBsaW5lICYmIGxpbmUubGluZVBraWQgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBsaW5lICYmIGxpbmUuaW5kZXggfHwgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogbGluZSAmJiBsaW5lLnBvc2l0aW9uIHx8IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgdGV4dExhYmVsOiBsaW5lICYmIGxpbmUudGV4dExhYmVsIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICBhbGVydGluZ05hbWU6IGxpbmUgJiYgbGluZS5hbGVydGluZ05hbWUgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgIGNhbGxlck51bWJlcjogbGluZSAmJiBsaW5lLmNhbGxlck51bWJlciB8fCAnJ1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICBzb2Z0d2FyZVZlcnNpb246IGZvdW5kRGV2aWNlPy5maXJtd2FyZVZlcnNpb25cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vcmlnaW5EZXZpY2UgPSB0aGlzLl91c2VyRGV2aWNlID8gSlNPTi5zdHJpbmdpZnkodGhpcy5fdXNlckRldmljZS5nZXRTYXZhYmxlRGF0YSgpKSA6ICcnO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyRGV2aWNlO1xyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TWFjQWRkcmVzcyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgbWFjUmVnZXggPSAvXltBLUZhLWYwLTldezEyfSQvO1xyXG4gICAgbGV0IG1hY0FkZHJlc3M7XHJcblxyXG4gICAgaWYgKG5hbWUubGVuZ3RoID09PSAxMiAmJiBtYWNSZWdleC50ZXN0KG5hbWUpKSB7XHJcbiAgICAgIG1hY0FkZHJlc3MgPSBuYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdHJpbW1lZCA9IG5hbWUuc2xpY2UoMyk7XHJcbiAgICAgIG1hY0FkZHJlc3MgPSBtYWNSZWdleC50ZXN0KHRyaW1tZWQpID8gdHJpbW1lZCA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWFjQWRkcmVzcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaFdlYmV4VXNlckRldmljZShjdXN0b21lcklkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nLCBkZXZpY2VUeXBlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBmb3JrSm9pbihbXHJcbiAgICAgIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuV0VCRVhfVVNFUl9UT0tFTi5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSksXHJcbiAgICAgIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuV0VCRVhfVVNFUl9ERVZJQ0VTLnJlcGxhY2UoJzpjdXN0b21lcklkJywgY3VzdG9tZXJJZCkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodXNlcklkKSkpKVxyXG4gICAgXSlcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLl91c2VyTmFtZSA9IHJlc3VsdHNbMF0uZmlyc3ROYW1lO1xyXG4gICAgICAgIHRoaXMuX3VzZXJMYXN0TmFtZSA9IHJlc3VsdHNbMF0ubGFzdE5hbWU7XHJcbiAgICAgICAgaWYocmVzdWx0c1sxXSkge1xyXG4gICAgICAgICAgY29uc3QgZm91bmREZXZpY2UgPSByZXN1bHRzWzFdLmRldmljZXMuZmluZCgoZGV2aWNlOiBhbnkpID0+IGRldmljZS5tb2RlbCA9PT0gZGV2aWNlVHlwZSk7XHJcbiAgICAgICAgICB0aGlzLl91c2VyRGV2aWNlID0gbmV3IERldmljZVByb2ZpbGUoe1xyXG4gICAgICAgICAgICAuLi5mb3VuZERldmljZSxcclxuICAgICAgICAgICAgbWFjQWRkcmVzczogZm91bmREZXZpY2UubWFjLFxyXG4gICAgICAgICAgICBtYXhMaW5lQ291bnQ6IGZvdW5kRGV2aWNlPy5kZXZpY2VNZW1iZXJzPy5tYXhMaW5lQ291bnQsXHJcbiAgICAgICAgICAgIGxpbmVzOiBmb3VuZERldmljZT8uZGV2aWNlTWVtYmVycz8ubWVtYmVycz8ubWFwKChtZW1iZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBgJHttZW1iZXIuZmlyc3ROYW1lfSAke21lbWJlci5sYXN0TmFtZX1gLFxyXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBtZW1iZXIuZXh0ZW5zaW9uXHJcbiAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyRGV2aWNlO1xyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVVc2VyRmllbGRzKGJvZHk6IGFueSk6IGFueSB7XHJcbiAgICBpZiAoIXRoaXMudXNlcklkIHx8ICF0aGlzLnNpdGVJZCB8fCAhdGhpcy51c2VyPy50b2tlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9VU0VSX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyVG9rZW4pLCBib2R5KVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hVc2VyQnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnVzZXJJZEV4aXN0UGVuZGluZyA9IHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5VU0VSX0JZX0lELnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudChpZCkpKSlcclxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hMZWFuVXNlckNvbnZlcnNhdGlvbkJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuTEVBTl9VU0VSX0NPTlZFUlNBVElPTl9TVEFSVC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoTGVhblVzZXJEZXZpY2VzQ29udmVyc2F0aW9uQnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MRUFOX1VTRVJfREVWSUNFU19DT05WRVJTQVRJT05fU1RBUlQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpKTtcclxuICB9XHJcbiAgcHVibGljIGZldGNoTGVhblVzZXJMaW5lc0NvbnZlcnNhdGlvbkJ5SWQoaWQ6IHN0cmluZywgbGVhblVzZXJEZXZpY2VzVG9rZW46IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuTEVBTl9VU0VSX0xJTkVTX0NPTlZFUlNBVElPTl9TVEFSVC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSlcclxuICAgICAgLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpLnJlcGxhY2UoJzpsZWFuVXNlckRldmljZXNUb2tlbicsIGxlYW5Vc2VyRGV2aWNlc1Rva2VuKSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBmZXRjaExlYW5Vc2VyU05SQ29udmVyc2F0aW9uQnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5MRUFOX1VTRVJfU05SX0NPTlZFUlNBVElPTl9TVEFSVC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBlcnNpc3RDYWNoZUNoYW5nZXMoKSB7XHJcbiAgICAvKmNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZXhjbHVkZURldmljZUV4dHJhT3B0aW9uczogdHJ1ZVxyXG4gICAgfTsqL1xyXG4gICAgcmV0dXJuIHRoaXMucHJvY2Vzc1VzZXJDaGFuZ2VzVG9DYWNoZSgpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlBFUlNJU1RfVVNFUl9DQUNIRS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyVG9rZW4pLCB7fSwge30pXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8gLnBpcGUobWFwKCh1c2VyKSA9PiB7XHJcbiAgICAgICAgICAvLyAgIC8vIHRoaXMuc2V0VXNlcih1c2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcclxuICAgICAgICAgIC8vICAgdGhpcy51c2VyLmhhc01vZGlmaWVkQ2FjaGUgPSBmYWxzZTtcclxuICAgICAgICAgIC8vIH0pKVxyXG4gICAgICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcm9jZXNzVXNlckNoYW5nZXNUb0NhY2hlKCk6IGFueSB7XHJcbiAgICBjb25zdCBjYWxscyA9IFtdO1xyXG4gICAgY29uc3QgYm9keSA9IFV0aWxzU2VydmljZS5kaWZmKHRoaXMub3JpZ2luVXNlci5nZXRVc2VyRGV0YWlsc1NhdmFibGVEYXRhKCksIHRoaXMudXNlci5nZXRVc2VyRGV0YWlsc1NhdmFibGVEYXRhKCksICd1c2VyJyk7XHJcbiAgICBpZiAoYm9keT8ubGVuZ3RoKSB7XHJcbiAgICAgIGNhbGxzLnB1c2godGhpcy51cGRhdGVVc2VyRmllbGRzKGJvZHkpKTtcclxuICAgIH1cclxuICAgIGlmICghY2FsbHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy51c2VyKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4oY2FsbHMpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2VzOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBBcGlVc2VyUmVzcG9uc2VcclxuICAgICAgICB0aGlzLmhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzKTtcclxuICAgICAgfSkpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVOZXdMaW5lKGxpbmU6IGFueSk6IGFueSB7XHJcbiAgICB0aGlzLmRlbGV0ZUxpbmUodGhpcy5zaXRlSWQsIGxpbmUucGtpZCwgZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMudXNlclRva2VuKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgVVJMID0gQVBJLlBFUlNJU1RfVVNFUl9DQUNIRS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyVG9rZW4pO1xyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5wb3N0KFVSTCwge30sIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bk5ld0xpbmVDcmVhdGlvbihsaW5lKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwZXJzaXN0VXNlckNhY2hlKCk6IGFueSB7XHJcbiAgICBjb25zdCBVUkwgPSBBUEkuUEVSU0lTVF9VU0VSX0NBQ0hFLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dG9rZW4nLCB0aGlzLnVzZXJUb2tlbik7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoVVJMLCB7fSwgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBydW5OZXdMaW5lQ3JlYXRpb24obGluZTogYW55KTogdm9pZCB7XHJcbiAgICAvLyBDUkVBVEUgTkVXIExJTkVcclxuICAgIGNvbnN0IG5ld0xpbmVCb2R5ID0gU29ydGluZ1V0aWxzU2VydmljZS5kaWZmKFxyXG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmdlbmVyYXRlTGluZUFzc29jaWF0aW9uRnJvbUxpbmUobnVsbCksXHJcbiAgICAgIHRoaXMubGluZVNlcnZpY2UuZ2VuZXJhdGVMaW5lQXNzb2NpYXRpb25Gcm9tTGluZShsaW5lKSxcclxuICAgICAgJ2RldmljZS5saW5lQXNzb2NpYXRpb25zJywgbnVsbFxyXG4gICAgKTtcclxuICAgIHRoaXMuYXNzb2NpYXRlTGluZVRvVXNlckRldmljZShcclxuICAgICAgdGhpcy5zaXRlSWQsXHJcbiAgICAgIHRoaXMudXNlckRldmljZSAmJiB0aGlzLnVzZXJEZXZpY2UubmFtZSB8fCAnJyxcclxuICAgICAgbmV3TGluZUJvZHksXHJcbiAgICAgIG51bGwsXHJcbiAgICAgIHRoaXMubGluZUFzc29jaWF0aW9uPy5jYWxsaW5nU2VhcmNoU3BhY2VcclxuICAgIClcclxuICAgIC5waXBlKHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IFVSTCA9IEFQSS5QRVJTSVNUX1VTRVJfQ0FDSEUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlclRva2VuKTtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFVSTCwge30sICk7XHJcbiAgICB9KSlcclxuICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlPy5jdXJyZW50VXBkYXRlZFVzZXIpIHtcclxuICAgICAgICBjb25zdCBsaW5lUGtJZCA9IHJlc3BvbnNlLmN1cnJlbnRVcGRhdGVkVXNlci5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zWzBdPy5saW5lUGtpZCB8fCByZXNwb25zZS5jdXJyZW50VXBkYXRlZFVzZXIuZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9uc1swXT8ubGluZUxvY2FsSWQ7XHJcbiAgICAgICAgZm9ya0pvaW4oW1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVMaW5lRmllbGRzKHRoaXMuc2l0ZUlkLCBsaW5lUGtJZCwgdGhpcy51c2VyVG9rZW4sIHRoaXMubGluZUFzc29jaWF0aW9uPy5hbGVydGluZ05hbWUpLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVEZXZpY2VGaWVsZHModGhpcy5zaXRlSWQsIHRoaXMudXNlckRldmljZSAmJiB0aGlzLnVzZXJEZXZpY2UubmFtZSB8fCAnJywgdGhpcy51c2VyVG9rZW4pXHJcbiAgICAgICAgXSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbERldmljZURhdGEgPSBKU09OLnBhcnNlKHRoaXMub3JpZ2luRGV2aWNlKTtcclxuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRGV2aWNlTGluZSA9IG9yaWdpbmFsRGV2aWNlRGF0YS5saW5lcy5maW5kKChvcmlnTGluZTogYW55KSA9PiBvcmlnTGluZS5wa2lkID09PSBsaW5lLnBraWQpO1xyXG4gICAgICAgICAgaWYob3JpZ2luYWxEZXZpY2VMaW5lKSB7XHJcbiAgICAgICAgICAgIG9yaWdpbmFsRGV2aWNlRGF0YS5leHRlbnNpb24gPSBsaW5lLmV4dGVuc2lvbjtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5EZXZpY2UgPSBKU09OLnN0cmluZ2lmeShvcmlnaW5hbERldmljZURhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vblVzZXJMaW5lU2F2ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICAvLyAtLS0tLVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZUxpbmUoc2l0ZUlkOiBudW1iZXIsIHBraWQ6IHN0cmluZywgdG9rZW46IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5kZWxldGUoQVBJLkRFTEVURV9MSU5FLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSkucmVwbGFjZSgnOnBraWQnLCBwa2lkKS5yZXBsYWNlKCc6dG9rZW4nLCBlbmNvZGVVUklDb21wb25lbnQodG9rZW4pKSwge30pXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgZmFsc2UpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhc3NvY2lhdGVMaW5lKHNpdGVJZDogbnVtYmVyLCBsaW5lUGtpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBkZXZpY2VOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZGVsZXRlKFxyXG4gICAgICBBUEkuRElTQVNTT0NJQVRFX0xJTkUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKVxyXG4gICAgICAgIC5yZXBsYWNlKCc6bGluZVBraWQnLCBsaW5lUGtpZClcclxuICAgICAgICAucmVwbGFjZSgnOmRldmljZU5hbWUnLCBkZXZpY2VOYW1lKVxyXG4gICAgICAgIC5yZXBsYWNlKCc6dG9rZW4nLCBlbmNvZGVVUklDb21wb25lbnQodG9rZW4pKSwge30pXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgZmFsc2UpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVMaW5lRmllbGRzKHNpdGVJZDogbnVtYmVyLCBwa2lkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGFsZXJ0aW5nTmFtZTogYW55KSB7XHJcbiAgICBjb25zdCBib2R5ID0gWydsaW5lLmRlc2NyaXB0aW9uPScsIGBsaW5lLmFsZXJ0aW5nTmFtZT0ke2FsZXJ0aW5nTmFtZX1gXTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuVVBEQVRFX0xJTkVfRklFTERTLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSkucmVwbGFjZSgnOnBraWQnLCBlbmNvZGVVUklDb21wb25lbnQocGtpZCkpLnJlcGxhY2UoJzp0b2tlbicsIGVuY29kZVVSSUNvbXBvbmVudCh0b2tlbikpLCBib2R5KVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlRGV2aWNlRmllbGRzKHNpdGVJZDogbnVtYmVyLCBkZXZpY2VOYW1lOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJvZHkgPSBbJ2RldmljZS5hc3NvY2lhdGVkRE5zLjA9bnVsbCddO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5VUERBVEVfREVWSUNFX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpLnJlcGxhY2UoJzpkZXZpY2VOYW1lJywgZGV2aWNlTmFtZSkucmVwbGFjZSgnOnRva2VuJywgZW5jb2RlVVJJQ29tcG9uZW50KHRva2VuKSksIGJvZHkpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tEZXN0aW5hdGlvbk51bWJlcihzaXRlSWQ6IHN0cmluZywgZGlyZWN0b3J5TnVtYmVyOiBzdHJpbmcsIHJvdXRlUGFydGl0aW9uTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGRudHlwZTogJ0VYVEVOU0lPTidcclxuICAgIH07XHJcbiAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICBkaXJlY3RvcnlOdW1iZXI6IGRpcmVjdG9yeU51bWJlcixcclxuICAgICAgcm91dGVQYXJ0aXRpb25OYW1lOiByb3V0ZVBhcnRpdGlvbk5hbWVcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLkNIRUNLX0RFU1RJTkFUSU9OX05VTUJFUi5yZXBsYWNlKCc6c2l0ZUlkJywgc2l0ZUlkKSwgYm9keSwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3NvY2lhdGVMaW5lVG9Vc2VyRGV2aWNlKHNpdGVJZDogbnVtYmVyLCBkZXZpY2VOYW1lOiBzdHJpbmcsIGJvZHk6IGFueSwgcGtpZDogYW55LCBjc3M6IGFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHt9O1xyXG4gICAgaWYgKHBraWQpIHtcclxuICAgICAgcGFyYW1zID0ge2xpbmVQa2lkOiBwa2lkfTtcclxuICAgIH1cclxuICAgIGlmIChjc3MpIHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBwYXJhbXNbJ2NzcyddID0gY3NzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5BU1NPQ0lBVEVfTElORS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpLnJlcGxhY2UoJzpkZXZpY2VOYW1lJywgZGV2aWNlTmFtZSlcclxuICAgICAgLnJlcGxhY2UoJzp0b2tlbicsIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnVzZXJUb2tlbikpLCBib2R5LCBwYXJhbXMpXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1Vuc2F2ZWRDaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuX3VzZXJEZXZpY2UgJiYgdGhpcy5vcmlnaW5EZXZpY2UpIHtcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuX3VzZXJEZXZpY2UuZ2V0U2F2YWJsZURhdGEoKSkgJiYgdGhpcy5vcmlnaW5EZXZpY2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0U2ltcGxpZmllZFVzZXIodXNlcjogYW55LCB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIHVzZXJUb2tlbj86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyID0gbmV3IFNpbXBsaWZpZWRVc2VyKHVzZXIsIHZhbGlkYXRpb25TZXJ2aWNlKTtcclxuICAgIGNvbnN0IGNvcGllZFVzZXIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcclxuICAgIHRoaXMub3JpZ2luVXNlciA9IG5ldyBTaW1wbGlmaWVkVXNlcihjb3BpZWRVc2VyLCB2YWxpZGF0aW9uU2VydmljZSk7XHJcbiAgICBpZiAoIXRoaXMudXNlclRva2VuICYmIHVzZXJUb2tlbikge1xyXG4gICAgICB0aGlzLl91c2VyVG9rZW4gPSB1c2VyVG9rZW47XHJcbiAgICAgIC8vIHRoaXMub3JpZ2luVXNlci50b2tlbiA9IHVzZXJUb2tlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlZGl0VHJhbnNsYXRpb25QYXR0ZXJuKFxyXG4gICAgICBjdWNtSWQ6IHN0cmluZyxcclxuICAgICAgb2xkcGF0dGVybjogc3RyaW5nLFxyXG4gICAgICBuZXdQYXR0ZXJuOiBzdHJpbmcsXHJcbiAgICAgIGV4dGVuc2lvbjogc3RyaW5nLFxyXG4gICAgICByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZyxcclxuICAgICAgZGVzY3JpcHRpb246IHN0cmluZyxcclxuICAgICkge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBvcmlnaW5hbHBhdHRlcm46IG9sZHBhdHRlcm4sXHJcbiAgICB9O1xyXG4gICAgY29uc3QgVVJMID0gQVBJLlRSQU5TTEFUSU9OX1BBVFRFUk5fQ1VDTS5yZXBsYWNlKCc6Y3VjbUlkJywgY3VjbUlkKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLnB1dChVUkwsIHsgY2FsbGVkUGFydHlUcmFuc2Zvcm1hdGlvbk1hc2s6IGV4dGVuc2lvbiwgcGF0dGVybjogbmV3UGF0dGVybiwgcm91dGVQYXJ0aXRpb25OYW1lOiByb3V0ZVBhcnRpdGlvbk5hbWUsIGRlc2NyaXB0aW9uIH0sIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbGluZVVwZGF0ZWQobGluZTogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBvcmlnaW5hbExpbmUgPSBKU09OLnBhcnNlKHRoaXMub3JpZ2luRGV2aWNlKS5saW5lc1tpbmRleF07XHJcbiAgICByZXR1cm4gb3JpZ2luYWxMaW5lLm51bWJlciAhPT0gbGluZS5udW1iZXIgfHwgb3JpZ2luYWxMaW5lLmV4dGVuc2lvbiAhPT0gbGluZS5leHRlbnNpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0T3JpZ2luYWxOdW1iZXIobGluZTogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZvdW5kTGluZSA9IEpTT04ucGFyc2UodGhpcy5vcmlnaW5EZXZpY2UpLmxpbmVzLmZpbmQoKG9yaWdMaW5lOiBhbnkpID0+IG9yaWdMaW5lLmV4dGVuc2lvbiA9PT0gbGluZS5leHRlbnNpb24gfHwgb3JpZ0xpbmUubnVtYmVyID09PSBsaW5lLm51bWJlcik7XHJcbiAgICByZXR1cm4gZm91bmRMaW5lLm51bWJlciB8fCAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU2F2ZVVzZXJSZXNwb25zZShyZXNwb25zZXM6IGFueSkge1xyXG4gICAgaWYgKCFyZXNwb25zZXM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBsZW4gPSByZXNwb25zZXMubGVuZ3RoLCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgaWYgKHJlc3BvbnNlc1tpXSAmJiByZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyKSB7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRVc2VyKHJlc3BvbnNlc1tpXS5jdXJyZW50VXBkYXRlZFVzZXIsIGZhbHNlLCB0aGlzLnVzZXIudG9rZW4pO1xyXG4gICAgICAgIHRoaXMudXNlci5oYXNNb2RpZmllZENhY2hlID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFJL0MsTUFBTSxPQUFPLFdBQVc7SUFhdEIsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUlELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBSUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFJRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELFlBQ1UsVUFBc0IsRUFDdEIsV0FBd0I7UUFEeEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWxEbEMsV0FBTSxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUl6QixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3RDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFL0IsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQU14QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBTXZCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBTTNCLFlBQU8sR0FBVyxFQUFFLENBQUM7SUF5QjdCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBRSxpQkFBb0M7UUFDL0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxVQUFVLEVBQUU7WUFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtTQUMxSjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsYUFBcUIsRUFBRSxpQkFBb0M7UUFDckUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUYsSUFBSSxZQUFZLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7WUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzVILElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1lBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNwRTtJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxpQkFBb0MsRUFBRSxpQkFBMkI7UUFDckg7O1dBRUc7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEosSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDNUQ7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7b0JBQzVCLHNDQUFzQztpQkFDdkM7Z0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDTCx3Q0FBd0M7SUFDMUMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxNQUFjLEVBQUUsVUFBa0IsRUFBRSxVQUFtQjtRQUM5RixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEosSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksV0FBZ0IsQ0FBQztZQUVyQixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDM0IsV0FBVyxHQUFHLFVBQVU7b0JBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7b0JBQ2hFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQztnQkFDekUsSUFBRyxXQUFXLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQzt3QkFDbkMsR0FBRyxXQUFXO3dCQUNkLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVTt3QkFDOUIsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQzt3QkFDaEQsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTs0QkFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMxRSxPQUFPO2dDQUNMLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQ0FDL0MsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLElBQUksRUFBRTtnQ0FDaEksTUFBTSxFQUFFLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQ0FDdkQsV0FBVyxFQUFFLFNBQVMsSUFBSSxTQUFTLENBQUMsV0FBVyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dDQUN2SCxrQkFBa0IsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO2dDQUN6RSxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRTtnQ0FDakMsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0NBQ3RDLFFBQVEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxTQUFTO2dDQUM1QyxTQUFTLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRTtnQ0FDdkMsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUU7Z0NBQzdDLFFBQVEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFO2dDQUNyQyxZQUFZLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRTtnQ0FDN0MsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUU7Z0NBQzdDLGFBQWEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFO2dDQUMvQyxlQUFlLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksU0FBUzs2QkFDM0QsQ0FBQTt3QkFDSCxDQUFDLENBQUM7d0JBQ0YsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlO3FCQUM5QyxDQUFDLENBQUE7aUJBQ0g7YUFDRjtZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU5RixJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDN0I7WUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsSUFBSSxFQUFFLENBQUM7WUFDOUUsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDO2lCQUNwRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBaUIsRUFBRSxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxXQUFtQixDQUFDLG1CQUFtQixHQUFHLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztvQkFDakYsSUFBSSxDQUFDLFdBQW1CLENBQUMsWUFBWSxHQUFHLFlBQVksRUFBRSxZQUFZLENBQUM7b0JBQ25FLElBQUksQ0FBQyxXQUFtQixDQUFDLGFBQWEsR0FBRyxZQUFZLEVBQUUsYUFBYSxDQUFDO29CQUNyRSxJQUFJLENBQUMsV0FBbUIsQ0FBQyw0QkFBNEIsR0FBRyxZQUFZLEVBQUUsNEJBQTRCLENBQUM7b0JBQ25HLElBQUksQ0FBQyxXQUFtQixDQUFDLDBCQUEwQixHQUFHLFlBQVksRUFBRSwwQkFBMEIsQ0FBQztpQkFDakc7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ1AsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQWMsRUFBRSxVQUFrQixFQUFFLHFCQUE2QjtRQUM1RixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0I7YUFDbEQsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbEMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7YUFDbEMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlFLHdDQUF3QztJQUM1QyxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVk7UUFDaEMsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDckMsSUFBSSxVQUFVLENBQUM7UUFFZixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsVUFBVSxHQUFHLElBQUksQ0FBQztTQUNuQjthQUFNO1lBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDM0Q7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsVUFBa0IsRUFBRSxNQUFjLEVBQUUsVUFBa0I7UUFDaEYsT0FBTyxRQUFRLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqSixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwSixDQUFDO2FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDekMsSUFBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2IsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUM7Z0JBQzFGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFhLENBQUM7b0JBQ25DLEdBQUcsV0FBVztvQkFDZCxVQUFVLEVBQUUsV0FBVyxDQUFDLEdBQUc7b0JBQzNCLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVk7b0JBQ3RELEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTt3QkFDOUQsT0FBTzs0QkFDTCxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7NEJBQzlDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzt5QkFDNUIsQ0FBQTtvQkFDSCxDQUFDLENBQUM7aUJBQ0gsQ0FBQyxDQUFBO2FBQ0g7WUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNQLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFTO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ3JELE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2pJLHdDQUF3QztJQUM1QyxDQUFDO0lBRU0sYUFBYSxDQUFDLEVBQVU7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEosSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRU0sNkJBQTZCLENBQUMsRUFBVTtRQUM3QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hLLENBQUM7SUFFTSxvQ0FBb0MsQ0FBQyxFQUFVO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEwsQ0FBQztJQUNNLGtDQUFrQyxDQUFDLEVBQVUsRUFBRSxvQkFBNEI7UUFDaEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDNUgsQ0FBQztJQUNNLGdDQUFnQyxDQUFDLEVBQVU7UUFDaEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1SyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCOztZQUVJO1FBQ0osT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUU7YUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ2xJLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFFaEIsQ0FBQyxDQUFDLENBQUE7WUFDRix3QkFBd0I7WUFDeEIsbURBQW1EO1lBQ25ELHdDQUF3QztZQUN4QyxNQUFNO1lBQ04sdUNBQXVDO1FBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRU0seUJBQXlCO1FBQzlCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0gsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNsQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEI7UUFFRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO1lBQzNCLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNMLHdDQUF3QztJQUUxQyxDQUFDO0lBRU0sV0FBVyxDQUFDLElBQVM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3hFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0csSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBRztpQkFDNUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdHLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBRyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxJQUFTO1FBQ2pDLGtCQUFrQjtRQUNsQixNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLEVBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLEVBQ3RELHlCQUF5QixFQUFFLElBQUksQ0FDaEMsQ0FBQztRQUNGLElBQUksQ0FBQyx5QkFBeUIsQ0FDNUIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFDN0MsV0FBVyxFQUNYLElBQUksRUFDSixJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUN6QzthQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25CLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3RyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUcsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQzthQUNGLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzNCLElBQUksUUFBUSxFQUFFLGtCQUFrQixFQUFFO2dCQUNoQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsSUFBSSxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQztnQkFDbkssUUFBUSxDQUFDO29CQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDO29CQUNoRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUNwRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7b0JBQzdCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3pELE1BQU0sa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pHLElBQUcsa0JBQWtCLEVBQUU7d0JBQ3JCLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQztxQkFDeEQ7b0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsUUFBUTtJQUNWLENBQUM7SUFFTSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxLQUFhO1FBQzNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZKLHdDQUF3QztJQUM1QyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBYyxFQUFFLFFBQWdCLEVBQUUsS0FBYSxFQUFFLFVBQWtCO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQzNCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyRCxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQzthQUM5QixPQUFPLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQzthQUNsQyxPQUFPLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDcEQsd0NBQXdDO0lBQzVDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBRSxZQUFpQjtRQUNwRixNQUFNLElBQUksR0FBRyxDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNsTCx3Q0FBd0M7SUFDNUMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE1BQWMsRUFBRSxVQUFrQixFQUFFLEtBQWE7UUFDekUsTUFBTSxJQUFJLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDOUssd0NBQXdDO0lBQzFDLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxNQUFjLEVBQUUsZUFBdUIsRUFBRSxrQkFBMEI7UUFDL0YsTUFBTSxNQUFNLEdBQUc7WUFDYixNQUFNLEVBQUUsV0FBVztTQUNwQixDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUc7WUFDWCxlQUFlLEVBQUUsZUFBZTtZQUNoQyxrQkFBa0IsRUFBRSxrQkFBa0I7U0FDdkMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxNQUFjLEVBQUUsVUFBa0IsRUFBRSxJQUFTLEVBQUUsSUFBUyxFQUFFLEdBQVE7UUFDakcsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxHQUFHLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxHQUFHLEVBQUU7WUFDUCxhQUFhO1lBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNyQjtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDO2FBQ2pILE9BQU8sQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3JFLHVDQUF1QztJQUMzQyxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMvRTtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVMsRUFBRSxpQkFBb0MsRUFBRSxTQUFrQjtRQUMxRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBQzVCLHFDQUFxQztTQUN0QztJQUNILENBQUM7SUFFTSxzQkFBc0IsQ0FDekIsTUFBYyxFQUNkLFVBQWtCLEVBQ2xCLFVBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLGtCQUEwQixFQUMxQixXQUFtQjtRQUVyQixNQUFNLE1BQU0sR0FBRztZQUNiLGVBQWUsRUFBRSxVQUFVO1NBQzVCLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5SSxDQUFDO0lBRU0sV0FBVyxDQUFDLElBQVMsRUFBRSxLQUFhO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxPQUFPLFlBQVksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUYsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVM7UUFDaEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hKLE9BQU8sU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQWM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsS0FBSyxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO2dCQUNuRCx5RUFBeUU7Z0JBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7O3lHQTdiVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBEZXZpY2VQcm9maWxlIH0gZnJvbSAnLi4vY2xhc3Nlcy9kZXZpY2VQcm9maWxlJztcclxuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSAnLi8uLi9jbGFzc2VzL2RldmljZSc7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbiB9IGZyb20gJy4vLi4vY2xhc3Nlcy9saW5lLWFzc29jaWF0aW9uJztcclxuaW1wb3J0IHsgTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi8uLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24taW50ZXJmYWNlJztcclxuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuLy4uL2NsYXNzZXMvc2ltcGxpZmllZC11c2VyJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMaW5lU2VydmljZSB9IGZyb20gJy4vbGluZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU29ydGluZ1V0aWxzU2VydmljZSB9IGZyb20gJy4vc29ydGluZy11dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBzaXRlSWQ6IG51bWJlciA9IC0xO1xyXG4gIHVzZXJJZDogc3RyaW5nID0gJyc7XHJcbiAgdXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XHJcbiAgaGFzRXhpc3RlZFVzZXJJZCA9IGZhbHNlO1xyXG4gIHVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcclxuICBvcmlnaW5Vc2VyITogU2ltcGxpZmllZFVzZXI7XHJcbiAgb3JpZ2luRGV2aWNlITogYW55O1xyXG4gIG9uVXNlckxpbmVTYXZlZCQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgb25GZXRjaFVzZXJUb2tlbiQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgX3VzZXJUb2tlbjogc3RyaW5nID0gJyc7XHJcblxyXG4gIGdldCB1c2VyVG9rZW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXNlclRva2VuO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXNlck5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBnZXQgdXNlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VyTmFtZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VzZXJMYXN0TmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIGdldCB1c2VyTGFzdE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VyTGFzdE5hbWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jdWNtSWQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBnZXQgY3VjbUlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VjbUlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXNlckRldmljZTogRGV2aWNlUHJvZmlsZSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IHVzZXJEZXZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXNlckRldmljZTtcclxuICB9XHJcblxyXG4gIGdldCBsaW5lQXNzb2NpYXRpb24oKTogTGluZUFzc29jaWF0aW9uSW50ZXJmYWNlIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJEZXZpY2UgJiYgdGhpcy51c2VyRGV2aWNlLmxpbmVBc3NvY2lhdGlvbnMgJiYgdGhpcy51c2VyRGV2aWNlLmxpbmVBc3NvY2lhdGlvbnNbMF07XHJcbiAgfVxyXG5cclxuICBnZXQgb3JpZ2luTGluZUFzc29jaWF0aW9uKCk6IExpbmVBc3NvY2lhdGlvbiB8IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5EZXZpY2UgJiYgSlNPTi5wYXJzZSh0aGlzLm9yaWdpbkRldmljZSkubGluZUFzc29jaWF0aW9uc1swXTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsaW5lU2VydmljZTogTGluZVNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2l0ZUlkKVxyXG4gIH1cclxuXHJcbiAgcmVzZXRMaW5lQXNzb2NpYXRpb24oZGV2aWNlSW5kZXg6IG51bWJlciwgbGluZUluZGV4OiBudW1iZXIsIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSk6IHZvaWQge1xyXG4gICAgY29uc3Qgb3JpZ2luTGluZSA9IHRoaXMub3JpZ2luVXNlcj8uZGV2aWNlc1tkZXZpY2VJbmRleF0/LmxpbmVBc3NvY2lhdGlvbnNbbGluZUluZGV4XTtcclxuICAgIGlmICh0aGlzLnVzZXI/LmRldmljZXNbZGV2aWNlSW5kZXhdPy5saW5lQXNzb2NpYXRpb25zW2xpbmVJbmRleF0gJiYgb3JpZ2luTGluZSkge1xyXG4gICAgICB0aGlzLnVzZXIuZGV2aWNlc1tkZXZpY2VJbmRleF0ubGluZUFzc29jaWF0aW9uc1tsaW5lSW5kZXhdID0gbmV3IExpbmVBc3NvY2lhdGlvbihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9yaWdpbkxpbmUuZ2V0RnVsbERhdGEoKSkpLCB2YWxpZGF0aW9uU2VydmljZSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0RGV2aWNlKGN1cnJlbnREZXZpY2U6IERldmljZSwgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBvcmlnaW5EZXZpY2UgPSB0aGlzLm9yaWdpblVzZXIuZGV2aWNlcy5maW5kKGRldmljZSA9PiBkZXZpY2UubmFtZSA9PT0gY3VycmVudERldmljZS5uYW1lKTtcclxuICAgIGNvbnN0IGRldmljZUluZCA9IHRoaXMudXNlci5kZXZpY2VzLmZpbmRJbmRleChkZXZpY2UgPT4gZGV2aWNlLm5hbWUgPT09IGN1cnJlbnREZXZpY2UubmFtZSk7XHJcbiAgICBpZiAob3JpZ2luRGV2aWNlICYmIGRldmljZUluZCA+IC0xKSB7XHJcbiAgICAgIGNvbnN0IGxpbmVBc3NvY2lhdGlvbnMgPSB0aGlzLnVzZXIuZGV2aWNlc1tkZXZpY2VJbmRdLmxpbmVBc3NvY2lhdGlvbnM7XHJcbiAgICAgIHRoaXMudXNlci5kZXZpY2VzW2RldmljZUluZF0gPSBuZXcgRGV2aWNlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3JpZ2luRGV2aWNlLmdldE5vTGluZXNGdWxsRGF0YSgpKSksIHZhbGlkYXRpb25TZXJ2aWNlKTtcclxuICAgICAgdGhpcy51c2VyLmRldmljZXNbZGV2aWNlSW5kXS5saW5lQXNzb2NpYXRpb25zID0gbGluZUFzc29jaWF0aW9ucztcclxuICAgICAgY29uc29sZS5sb2coJ2RldmljZSBhZnRlciByZXNldCA9ICcsIHRoaXMudXNlci5kZXZpY2VzW2RldmljZUluZF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoVXNlclRva2VuKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZywgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBpc1NldE5ld1Rva2VuT25seT86IGJvb2xlYW4pOiBhbnkge1xyXG4gICAgLyppZiAodGhpcy5zaXRlSWQgPT09IHNpdGVJZCAmJiB0aGlzLnVzZXJJZCA9PT0gdXNlcklkICYmIHRoaXMudXNlcikge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy51c2VyKTtcclxuICAgIH0qL1xyXG4gICAgdGhpcy5zaXRlSWQgPSBzaXRlSWQ7XHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHVzZXIgPSByZXN1bHQgJiYgT2JqZWN0LnZhbHVlcyhyZXN1bHQpWzBdO1xyXG4gICAgICAgIGNvbnN0IHVzZXJUb2tlbiA9IHJlc3VsdCAmJiBPYmplY3Qua2V5cyhyZXN1bHQpWzBdO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICBpZiAoIWlzU2V0TmV3VG9rZW5Pbmx5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U2ltcGxpZmllZFVzZXIodXNlciwgdmFsaWRhdGlvblNlcnZpY2UsIHVzZXJUb2tlbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl91c2VyVG9rZW4gPSB1c2VyVG9rZW47XHJcbiAgICAgICAgICAgIC8vIHRoaXMub3JpZ2luVXNlci50b2tlbiA9IHVzZXIudG9rZW47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLm9uRmV0Y2hVc2VyVG9rZW4kLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgIH0pKVxyXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoRElVc2VyRGV2aWNlKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZywgZGV2aWNlVHlwZTogc3RyaW5nLCBkZXZpY2VOYW1lPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNpdGVJZCA9IHNpdGVJZDtcclxuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9UT0tFTi5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodXNlcklkKSkpKVxyXG4gICAgICAucGlwZShzd2l0Y2hNYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IHJlc3VsdCAmJiBPYmplY3QudmFsdWVzKHJlc3VsdClbMF07XHJcbiAgICAgICAgY29uc3QgdXNlclRva2VuID0gcmVzdWx0ICYmIE9iamVjdC5rZXlzKHJlc3VsdClbMF07XHJcbiAgICAgICAgbGV0IGZvdW5kRGV2aWNlOiBhbnk7XHJcblxyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICB0aGlzLl91c2VyVG9rZW4gPSB1c2VyVG9rZW47XHJcbiAgICAgICAgICB0aGlzLl91c2VyTmFtZSA9IHVzZXIuZmlyc3ROYW1lO1xyXG4gICAgICAgICAgdGhpcy5fdXNlckxhc3ROYW1lID0gdXNlci5sYXN0TmFtZTtcclxuICAgICAgICAgIHRoaXMuX2N1Y21JZCA9IHVzZXIuY3VjbUlkO1xyXG4gICAgICAgICAgZm91bmREZXZpY2UgPSBkZXZpY2VOYW1lXHJcbiAgICAgICAgICAgID8gdXNlci5kZXZpY2VzLmZpbmQoKGRldmljZTogYW55KSA9PiBkZXZpY2UubmFtZSA9PT0gZGV2aWNlTmFtZSlcclxuICAgICAgICAgICAgOiB1c2VyLmRldmljZXMuZmluZCgoZGV2aWNlOiBhbnkpID0+IGRldmljZS5kZXZpY2VUeXBlID09PSBkZXZpY2VUeXBlKTtcclxuICAgICAgICAgIGlmKGZvdW5kRGV2aWNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VzZXJEZXZpY2UgPSBuZXcgRGV2aWNlUHJvZmlsZSh7XHJcbiAgICAgICAgICAgICAgLi4uZm91bmREZXZpY2UsXHJcbiAgICAgICAgICAgICAgbW9kZWw6IGZvdW5kRGV2aWNlPy5kZXZpY2VUeXBlLFxyXG4gICAgICAgICAgICAgIG1hY0FkZHJlc3M6IHRoaXMuZ2V0TWFjQWRkcmVzcyhmb3VuZERldmljZS5uYW1lKSxcclxuICAgICAgICAgICAgICBsaW5lczogZm91bmREZXZpY2U/LmxpbmVBc3NvY2lhdGlvbnM/Lm1hcCgobGluZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZExpbmUgPSB1c2VyPy5saW5lcz8uZmluZCgobDogYW55KSA9PiBsLnBraWQgPT09IGxpbmUubGluZVBraWQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgbmFtZTogYCR7dGhpcy5fdXNlck5hbWV9ICR7dGhpcy5fdXNlckxhc3ROYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbjogbGluZSAmJiBsaW5lLmRpcmVjdG9yeU51bWJlciAmJiBsaW5lLmRpcmVjdG9yeU51bWJlci5yb3V0ZVBhcnRpdGlvbk5hbWUgJiYgbGluZS5kaXJlY3RvcnlOdW1iZXIuZGlyZWN0b3J5TnVtYmVyIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICBudW1iZXI6IGZvdW5kTGluZSAhPT0gLTEgPyBmb3VuZExpbmUubWFwcGVkRGlkc1swXSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZm91bmRMaW5lICYmIGZvdW5kTGluZS5kaWRQYXR0ZXJucyAmJiBmb3VuZExpbmUuZGlkUGF0dGVybnNbMF0gPyBmb3VuZExpbmUuZGlkUGF0dGVybnNbMF0uZGVzY3JpcHRpb24gOiAnJyxcclxuICAgICAgICAgICAgICAgICAgcm91dGVQYXJ0aXRpb25OYW1lOiBsaW5lICYmIGxpbmUuZGlyZWN0b3J5TnVtYmVyLnJvdXRlUGFydGl0aW9uTmFtZSB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgcGtpZDogbGluZSAmJiBsaW5lLmxpbmVQa2lkIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICBpbmRleDogbGluZSAmJiBsaW5lLmluZGV4IHx8IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGxpbmUgJiYgbGluZS5wb3NpdGlvbiB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgIHRleHRMYWJlbDogbGluZSAmJiBsaW5lLnRleHRMYWJlbCB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheUxhYmVsOiBsaW5lICYmIGxpbmUuZGlzcGxheUxhYmVsIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICBlMTY0TWFzazogbGluZSAmJiBsaW5lLmUxNjRNYXNrIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICBhbGVydGluZ05hbWU6IGxpbmUgJiYgbGluZS5hbGVydGluZ05hbWUgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgIGNhbGxlck51bWJlcjogbGluZSAmJiBsaW5lLmNhbGxlck51bWJlciB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgbG9nTWlzc2VkQ2FsbDogbGluZSAmJiBsaW5lLmxvZ01pc3NlZENhbGwgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgIGNhbGxJbmZvRGlzcGxheTogbGluZSAmJiBsaW5lLmNhbGxJbmZvRGlzcGxheSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICBzb2Z0d2FyZVZlcnNpb246IGZvdW5kRGV2aWNlPy5maXJtd2FyZVZlcnNpb25cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vcmlnaW5EZXZpY2UgPSB0aGlzLl91c2VyRGV2aWNlID8gSlNPTi5zdHJpbmdpZnkodGhpcy5fdXNlckRldmljZS5nZXRTYXZhYmxlRGF0YSgpKSA6ICcnO1xyXG5cclxuICAgICAgICBpZiAoIWZvdW5kRGV2aWNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YodGhpcy5fdXNlckRldmljZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjb21tb25QaG9uZUNvbmZpZ05hbWUgPSB1c2VyPy5kZXZpY2VzPy5bMF0/LmNvbW1vblBob25lQ29uZmlnTmFtZSB8fCAnJztcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXREZXZpY2VFeHRyYU9wdGlvbnModGhpcy5zaXRlSWQsIGZvdW5kRGV2aWNlLm5hbWUsIGNvbW1vblBob25lQ29uZmlnTmFtZSlcclxuICAgICAgICAgIC5waXBlKG1hcCgoZXh0cmFPcHRpb25zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3VzZXJEZXZpY2UpIHtcclxuICAgICAgICAgICAgICAodGhpcy5fdXNlckRldmljZSBhcyBhbnkpLmxvZ2dlZEludG9IdW50R3JvdXAgPSBleHRyYU9wdGlvbnM/LmxvZ2dlZEludG9IdW50R3JvdXA7XHJcbiAgICAgICAgICAgICAgKHRoaXMuX3VzZXJEZXZpY2UgYXMgYW55KS5yZW1vdGVEZXZpY2UgPSBleHRyYU9wdGlvbnM/LnJlbW90ZURldmljZTtcclxuICAgICAgICAgICAgICAodGhpcy5fdXNlckRldmljZSBhcyBhbnkpLmhvdGxpbmVEZXZpY2UgPSBleHRyYU9wdGlvbnM/LmhvdGxpbmVEZXZpY2U7XHJcbiAgICAgICAgICAgICAgKHRoaXMuX3VzZXJEZXZpY2UgYXMgYW55KS5pZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzID0gZXh0cmFPcHRpb25zPy5pZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzO1xyXG4gICAgICAgICAgICAgICh0aGlzLl91c2VyRGV2aWNlIGFzIGFueSkudXNlRGV2aWNlUG9vbENncG5JbmdyZXNzRE4gPSBleHRyYU9wdGlvbnM/LnVzZURldmljZVBvb2xDZ3BuSW5ncmVzc0ROO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VyRGV2aWNlO1xyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREZXZpY2VFeHRyYU9wdGlvbnMoc2l0ZUlkOiBudW1iZXIsIGRldmljZU5hbWU6IHN0cmluZywgY29tbW9uUGhvbmVDb25maWdOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLkRFVklDRV9FWFRSQV9PUFRJT05TXHJcbiAgICAgIC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpXHJcbiAgICAgIC5yZXBsYWNlKCc6ZGV2aWNlTmFtZScsIGRldmljZU5hbWUpXHJcbiAgICAgIC5yZXBsYWNlKCc6Y29tbW9uUGhvbmVDb25maWdOYW1lJywgZW5jb2RlVVJJQ29tcG9uZW50KGNvbW1vblBob25lQ29uZmlnTmFtZSkpKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1hY0FkZHJlc3MobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IG1hY1JlZ2V4ID0gL15bQS1GYS1mMC05XXsxMn0kLztcclxuICAgIGxldCBtYWNBZGRyZXNzO1xyXG5cclxuICAgIGlmIChuYW1lLmxlbmd0aCA9PT0gMTIgJiYgbWFjUmVnZXgudGVzdChuYW1lKSkge1xyXG4gICAgICBtYWNBZGRyZXNzID0gbmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRyaW1tZWQgPSBuYW1lLnNsaWNlKDMpO1xyXG4gICAgICBtYWNBZGRyZXNzID0gbWFjUmVnZXgudGVzdCh0cmltbWVkKSA/IHRyaW1tZWQgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1hY0FkZHJlc3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hXZWJleFVzZXJEZXZpY2UoY3VzdG9tZXJJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZywgZGV2aWNlVHlwZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW1xyXG4gICAgICB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLldFQkVYX1VTRVJfVE9LRU4ucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBjdXN0b21lcklkKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpLFxyXG4gICAgICB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLldFQkVYX1VTRVJfREVWSUNFUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcclxuICAgIF0pXHJcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0czogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXNlck5hbWUgPSByZXN1bHRzWzBdLmZpcnN0TmFtZTtcclxuICAgICAgICB0aGlzLl91c2VyTGFzdE5hbWUgPSByZXN1bHRzWzBdLmxhc3ROYW1lO1xyXG4gICAgICAgIGlmKHJlc3VsdHNbMV0pIHtcclxuICAgICAgICAgIGNvbnN0IGZvdW5kRGV2aWNlID0gcmVzdWx0c1sxXS5kZXZpY2VzLmZpbmQoKGRldmljZTogYW55KSA9PiBkZXZpY2UubW9kZWwgPT09IGRldmljZVR5cGUpO1xyXG4gICAgICAgICAgdGhpcy5fdXNlckRldmljZSA9IG5ldyBEZXZpY2VQcm9maWxlKHtcclxuICAgICAgICAgICAgLi4uZm91bmREZXZpY2UsXHJcbiAgICAgICAgICAgIG1hY0FkZHJlc3M6IGZvdW5kRGV2aWNlLm1hYyxcclxuICAgICAgICAgICAgbWF4TGluZUNvdW50OiBmb3VuZERldmljZT8uZGV2aWNlTWVtYmVycz8ubWF4TGluZUNvdW50LFxyXG4gICAgICAgICAgICBsaW5lczogZm91bmREZXZpY2U/LmRldmljZU1lbWJlcnM/Lm1lbWJlcnM/Lm1hcCgobWVtYmVyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogYCR7bWVtYmVyLmZpcnN0TmFtZX0gJHttZW1iZXIubGFzdE5hbWV9YCxcclxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbjogbWVtYmVyLmV4dGVuc2lvblxyXG4gICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fdXNlckRldmljZTtcclxuICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVXNlckZpZWxkcyhib2R5OiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKCF0aGlzLnVzZXJJZCB8fCAhdGhpcy5zaXRlSWQgfHwgIXRoaXMudXNlcj8udG9rZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5VUERBVEVfVVNFUl9GSUVMRFMucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlclRva2VuKSwgYm9keSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoVXNlckJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9CWV9JRC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpXHJcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoTGVhblVzZXJDb252ZXJzYXRpb25CeUlkKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLkxFQU5fVVNFUl9DT05WRVJTQVRJT05fU1RBUlQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaExlYW5Vc2VyRGV2aWNlc0NvbnZlcnNhdGlvbkJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuTEVBTl9VU0VSX0RFVklDRVNfQ09OVkVSU0FUSU9OX1NUQVJULnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudChpZCkpKSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBmZXRjaExlYW5Vc2VyTGluZXNDb252ZXJzYXRpb25CeUlkKGlkOiBzdHJpbmcsIGxlYW5Vc2VyRGV2aWNlc1Rva2VuOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLkxFQU5fVVNFUl9MSU5FU19DT05WRVJTQVRJT05fU1RBUlQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpXHJcbiAgICAgIC5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudChpZCkpKS5yZXBsYWNlKCc6bGVhblVzZXJEZXZpY2VzVG9rZW4nLCBsZWFuVXNlckRldmljZXNUb2tlbikpO1xyXG4gIH1cclxuICBwdWJsaWMgZmV0Y2hMZWFuVXNlclNOUkNvbnZlcnNhdGlvbkJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuTEVBTl9VU0VSX1NOUl9DT05WRVJTQVRJT05fU1RBUlQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwZXJzaXN0Q2FjaGVDaGFuZ2VzKCkge1xyXG4gICAgLypjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGV4Y2x1ZGVEZXZpY2VFeHRyYU9wdGlvbnM6IHRydWVcclxuICAgIH07Ki9cclxuICAgIHJldHVybiB0aGlzLnByb2Nlc3NVc2VyQ2hhbmdlc1RvQ2FjaGUoKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5QRVJTSVNUX1VTRVJfQ0FDSEUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlclRva2VuKSwge30sIHt9KVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vIC5waXBlKG1hcCgodXNlcikgPT4ge1xyXG4gICAgICAgICAgLy8gICAvLyB0aGlzLnNldFVzZXIodXNlciwgZmFsc2UsIHRoaXMudXNlci50b2tlbik7XHJcbiAgICAgICAgICAvLyAgIHRoaXMudXNlci5oYXNNb2RpZmllZENhY2hlID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9KSlcclxuICAgICAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJvY2Vzc1VzZXJDaGFuZ2VzVG9DYWNoZSgpOiBhbnkge1xyXG4gICAgY29uc3QgY2FsbHMgPSBbXTtcclxuICAgIGNvbnN0IGJvZHkgPSBVdGlsc1NlcnZpY2UuZGlmZih0aGlzLm9yaWdpblVzZXIuZ2V0VXNlckRldGFpbHNTYXZhYmxlRGF0YSgpLCB0aGlzLnVzZXIuZ2V0VXNlckRldGFpbHNTYXZhYmxlRGF0YSgpLCAndXNlcicpO1xyXG4gICAgaWYgKGJvZHk/Lmxlbmd0aCkge1xyXG4gICAgICBjYWxscy5wdXNoKHRoaXMudXBkYXRlVXNlckZpZWxkcyhib2R5KSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNhbGxzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMudXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKGNhbGxzKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlczogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gQXBpVXNlclJlc3BvbnNlXHJcbiAgICAgICAgdGhpcy5oYW5kbGVTYXZlVXNlclJlc3BvbnNlKHJlc3BvbnNlcyk7XHJcbiAgICAgIH0pKVxyXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlTmV3TGluZShsaW5lOiBhbnkpOiBhbnkge1xyXG4gICAgdGhpcy5kZWxldGVMaW5lKHRoaXMuc2l0ZUlkLCBsaW5lLnBraWQsIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnVzZXJUb2tlbikpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IFVSTCA9IEFQSS5QRVJTSVNUX1VTRVJfQ0FDSEUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlclRva2VuKTtcclxuICAgICAgICB0aGlzLmFwaVNlcnZpY2UucG9zdChVUkwsIHt9LCApXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ydW5OZXdMaW5lQ3JlYXRpb24obGluZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGVyc2lzdFVzZXJDYWNoZSgpOiBhbnkge1xyXG4gICAgY29uc3QgVVJMID0gQVBJLlBFUlNJU1RfVVNFUl9DQUNIRS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyVG9rZW4pO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFVSTCwge30sICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcnVuTmV3TGluZUNyZWF0aW9uKGxpbmU6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gQ1JFQVRFIE5FVyBMSU5FXHJcbiAgICBjb25zdCBuZXdMaW5lQm9keSA9IFNvcnRpbmdVdGlsc1NlcnZpY2UuZGlmZihcclxuICAgICAgdGhpcy5saW5lU2VydmljZS5nZW5lcmF0ZUxpbmVBc3NvY2lhdGlvbkZyb21MaW5lKG51bGwpLFxyXG4gICAgICB0aGlzLmxpbmVTZXJ2aWNlLmdlbmVyYXRlTGluZUFzc29jaWF0aW9uRnJvbUxpbmUobGluZSksXHJcbiAgICAgICdkZXZpY2UubGluZUFzc29jaWF0aW9ucycsIG51bGxcclxuICAgICk7XHJcbiAgICB0aGlzLmFzc29jaWF0ZUxpbmVUb1VzZXJEZXZpY2UoXHJcbiAgICAgIHRoaXMuc2l0ZUlkLFxyXG4gICAgICB0aGlzLnVzZXJEZXZpY2UgJiYgdGhpcy51c2VyRGV2aWNlLm5hbWUgfHwgJycsXHJcbiAgICAgIG5ld0xpbmVCb2R5LFxyXG4gICAgICBudWxsLFxyXG4gICAgICB0aGlzLmxpbmVBc3NvY2lhdGlvbj8uY2FsbGluZ1NlYXJjaFNwYWNlXHJcbiAgICApXHJcbiAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICBjb25zdCBVUkwgPSBBUEkuUEVSU0lTVF9VU0VSX0NBQ0hFLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dG9rZW4nLCB0aGlzLnVzZXJUb2tlbik7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChVUkwsIHt9LCApO1xyXG4gICAgfSkpXHJcbiAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZT8uY3VycmVudFVwZGF0ZWRVc2VyKSB7XHJcbiAgICAgICAgY29uc3QgbGluZVBrSWQgPSByZXNwb25zZS5jdXJyZW50VXBkYXRlZFVzZXIuZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9uc1swXT8ubGluZVBraWQgfHwgcmVzcG9uc2UuY3VycmVudFVwZGF0ZWRVc2VyLmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/LmxpbmVMb2NhbElkO1xyXG4gICAgICAgIGZvcmtKb2luKFtcclxuICAgICAgICAgIHRoaXMudXBkYXRlTGluZUZpZWxkcyh0aGlzLnNpdGVJZCwgbGluZVBrSWQsIHRoaXMudXNlclRva2VuLCB0aGlzLmxpbmVBc3NvY2lhdGlvbj8uYWxlcnRpbmdOYW1lKSxcclxuICAgICAgICAgIHRoaXMudXBkYXRlRGV2aWNlRmllbGRzKHRoaXMuc2l0ZUlkLCB0aGlzLnVzZXJEZXZpY2UgJiYgdGhpcy51c2VyRGV2aWNlLm5hbWUgfHwgJycsIHRoaXMudXNlclRva2VuKVxyXG4gICAgICAgIF0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxEZXZpY2VEYXRhID0gSlNPTi5wYXJzZSh0aGlzLm9yaWdpbkRldmljZSk7XHJcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbERldmljZUxpbmUgPSBvcmlnaW5hbERldmljZURhdGEubGluZXMuZmluZCgob3JpZ0xpbmU6IGFueSkgPT4gb3JpZ0xpbmUucGtpZCA9PT0gbGluZS5wa2lkKTtcclxuICAgICAgICAgIGlmKG9yaWdpbmFsRGV2aWNlTGluZSkge1xyXG4gICAgICAgICAgICBvcmlnaW5hbERldmljZURhdGEuZXh0ZW5zaW9uID0gbGluZS5leHRlbnNpb247XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luRGV2aWNlID0gSlNPTi5zdHJpbmdpZnkob3JpZ2luYWxEZXZpY2VEYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25Vc2VyTGluZVNhdmVkJC5uZXh0KHRydWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgLy8gLS0tLS1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVMaW5lKHNpdGVJZDogbnVtYmVyLCBwa2lkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZGVsZXRlKEFQSS5ERUxFVEVfTElORS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpLnJlcGxhY2UoJzpwa2lkJywgcGtpZCkucmVwbGFjZSgnOnRva2VuJywgZW5jb2RlVVJJQ29tcG9uZW50KHRva2VuKSksIHt9KVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYXNzb2NpYXRlTGluZShzaXRlSWQ6IG51bWJlciwgbGluZVBraWQ6IHN0cmluZywgdG9rZW46IHN0cmluZywgZGV2aWNlTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZShcclxuICAgICAgQVBJLkRJU0FTU09DSUFURV9MSU5FLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSlcclxuICAgICAgICAucmVwbGFjZSgnOmxpbmVQa2lkJywgbGluZVBraWQpXHJcbiAgICAgICAgLnJlcGxhY2UoJzpkZXZpY2VOYW1lJywgZGV2aWNlTmFtZSlcclxuICAgICAgICAucmVwbGFjZSgnOnRva2VuJywgZW5jb2RlVVJJQ29tcG9uZW50KHRva2VuKSksIHt9KVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlTGluZUZpZWxkcyhzaXRlSWQ6IG51bWJlciwgcGtpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBhbGVydGluZ05hbWU6IGFueSkge1xyXG4gICAgY29uc3QgYm9keSA9IFsnbGluZS5kZXNjcmlwdGlvbj0nLCBgbGluZS5hbGVydGluZ05hbWU9JHthbGVydGluZ05hbWV9YF07XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9MSU5FX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpLnJlcGxhY2UoJzpwa2lkJywgZW5jb2RlVVJJQ29tcG9uZW50KHBraWQpKS5yZXBsYWNlKCc6dG9rZW4nLCBlbmNvZGVVUklDb21wb25lbnQodG9rZW4pKSwgYm9keSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCBmYWxzZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZURldmljZUZpZWxkcyhzaXRlSWQ6IG51bWJlciwgZGV2aWNlTmFtZTogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBib2R5ID0gWydkZXZpY2UuYXNzb2NpYXRlZEROcy4wPW51bGwnXTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuVVBEQVRFX0RFVklDRV9GSUVMRFMucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6ZGV2aWNlTmFtZScsIGRldmljZU5hbWUpLnJlcGxhY2UoJzp0b2tlbicsIGVuY29kZVVSSUNvbXBvbmVudCh0b2tlbikpLCBib2R5KVxyXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCBmYWxzZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrRGVzdGluYXRpb25OdW1iZXIoc2l0ZUlkOiBzdHJpbmcsIGRpcmVjdG9yeU51bWJlcjogc3RyaW5nLCByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBkbnR5cGU6ICdFWFRFTlNJT04nXHJcbiAgICB9O1xyXG4gICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgZGlyZWN0b3J5TnVtYmVyOiBkaXJlY3RvcnlOdW1iZXIsXHJcbiAgICAgIHJvdXRlUGFydGl0aW9uTmFtZTogcm91dGVQYXJ0aXRpb25OYW1lXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5DSEVDS19ERVNUSU5BVElPTl9OVU1CRVIucmVwbGFjZSgnOnNpdGVJZCcsIHNpdGVJZCksIGJvZHksIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNzb2NpYXRlTGluZVRvVXNlckRldmljZShzaXRlSWQ6IG51bWJlciwgZGV2aWNlTmFtZTogc3RyaW5nLCBib2R5OiBhbnksIHBraWQ6IGFueSwgY3NzOiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7fTtcclxuICAgIGlmIChwa2lkKSB7XHJcbiAgICAgIHBhcmFtcyA9IHtsaW5lUGtpZDogcGtpZH07XHJcbiAgICB9XHJcbiAgICBpZiAoY3NzKSB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgcGFyYW1zWydjc3MnXSA9IGNzcztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuQVNTT0NJQVRFX0xJTkUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6ZGV2aWNlTmFtZScsIGRldmljZU5hbWUpXHJcbiAgICAgIC5yZXBsYWNlKCc6dG9rZW4nLCBlbmNvZGVVUklDb21wb25lbnQodGhpcy51c2VyVG9rZW4pKSwgYm9keSwgcGFyYW1zKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYXNVbnNhdmVkQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLl91c2VyRGV2aWNlICYmIHRoaXMub3JpZ2luRGV2aWNlKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLl91c2VyRGV2aWNlLmdldFNhdmFibGVEYXRhKCkpICYmIHRoaXMub3JpZ2luRGV2aWNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNpbXBsaWZpZWRVc2VyKHVzZXI6IGFueSwgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCB1c2VyVG9rZW4/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlciA9IG5ldyBTaW1wbGlmaWVkVXNlcih1c2VyLCB2YWxpZGF0aW9uU2VydmljZSk7XHJcbiAgICBjb25zdCBjb3BpZWRVc2VyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICB0aGlzLm9yaWdpblVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIoY29waWVkVXNlciwgdmFsaWRhdGlvblNlcnZpY2UpO1xyXG4gICAgaWYgKCF0aGlzLnVzZXJUb2tlbiAmJiB1c2VyVG9rZW4pIHtcclxuICAgICAgdGhpcy5fdXNlclRva2VuID0gdXNlclRva2VuO1xyXG4gICAgICAvLyB0aGlzLm9yaWdpblVzZXIudG9rZW4gPSB1c2VyVG9rZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdFRyYW5zbGF0aW9uUGF0dGVybihcclxuICAgICAgY3VjbUlkOiBzdHJpbmcsXHJcbiAgICAgIG9sZHBhdHRlcm46IHN0cmluZyxcclxuICAgICAgbmV3UGF0dGVybjogc3RyaW5nLFxyXG4gICAgICBleHRlbnNpb246IHN0cmluZyxcclxuICAgICAgcm91dGVQYXJ0aXRpb25OYW1lOiBzdHJpbmcsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICApIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgb3JpZ2luYWxwYXR0ZXJuOiBvbGRwYXR0ZXJuLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IFVSTCA9IEFQSS5UUkFOU0xBVElPTl9QQVRURVJOX0NVQ00ucmVwbGFjZSgnOmN1Y21JZCcsIGN1Y21JZCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXHJcbiAgICAgIC5wdXQoVVJMLCB7IGNhbGxlZFBhcnR5VHJhbnNmb3JtYXRpb25NYXNrOiBleHRlbnNpb24sIHBhdHRlcm46IG5ld1BhdHRlcm4sIHJvdXRlUGFydGl0aW9uTmFtZTogcm91dGVQYXJ0aXRpb25OYW1lLCBkZXNjcmlwdGlvbiB9LCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxpbmVVcGRhdGVkKGxpbmU6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxMaW5lID0gSlNPTi5wYXJzZSh0aGlzLm9yaWdpbkRldmljZSkubGluZXNbaW5kZXhdO1xyXG4gICAgcmV0dXJuIG9yaWdpbmFsTGluZS5udW1iZXIgIT09IGxpbmUubnVtYmVyIHx8IG9yaWdpbmFsTGluZS5leHRlbnNpb24gIT09IGxpbmUuZXh0ZW5zaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE9yaWdpbmFsTnVtYmVyKGxpbmU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBmb3VuZExpbmUgPSBKU09OLnBhcnNlKHRoaXMub3JpZ2luRGV2aWNlKS5saW5lcy5maW5kKChvcmlnTGluZTogYW55KSA9PiBvcmlnTGluZS5leHRlbnNpb24gPT09IGxpbmUuZXh0ZW5zaW9uIHx8IG9yaWdMaW5lLm51bWJlciA9PT0gbGluZS5udW1iZXIpO1xyXG4gICAgcmV0dXJuIGZvdW5kTGluZS5udW1iZXIgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzOiBhbnkpIHtcclxuICAgIGlmICghcmVzcG9uc2VzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgbGVuID0gcmVzcG9uc2VzLmxlbmd0aCwgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGlmIChyZXNwb25zZXNbaV0gJiYgcmVzcG9uc2VzW2ldLmN1cnJlbnRVcGRhdGVkVXNlcikge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0VXNlcihyZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcclxuICAgICAgICB0aGlzLnVzZXIuaGFzTW9kaWZpZWRDYWNoZSA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -25,9 +25,11 @@ import { AssociatedLineRowComponent } from './device-associated-line/associated-
|
|
|
25
25
|
import { DeviceService } from './services/device.service';
|
|
26
26
|
import { InfoDialogComponent } from './confirm-dialog/info-dialog.component';
|
|
27
27
|
import { ValidationService } from './services/validation.service';
|
|
28
|
-
import { PageSectionComponent } from './shared/tk-page-section/page-section.component';
|
|
29
28
|
import { DeviceInfoComponent } from './device-info/device-info.component';
|
|
30
29
|
import { MacAddressPipe } from './pipes/mac-address.pipe';
|
|
30
|
+
import { DeviceSettingsComponent } from './device-settings/device-settings.component';
|
|
31
|
+
import { LineKeyConfigComponent } from './line-key-config/line-key-config.component';
|
|
32
|
+
import { AssociateLinesComponent } from './associate-lines/associate-lines.component';
|
|
31
33
|
import * as i0 from "@angular/core";
|
|
32
34
|
export class UserDeviceManageModule {
|
|
33
35
|
}
|
|
@@ -42,15 +44,20 @@ UserDeviceManageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
42
44
|
DeviceAssociatedLineDetailsBoxComponent,
|
|
43
45
|
AssociatedLineRowComponent,
|
|
44
46
|
InfoDialogComponent,
|
|
45
|
-
PageSectionComponent,
|
|
46
47
|
DeviceInfoComponent,
|
|
47
|
-
MacAddressPipe
|
|
48
|
+
MacAddressPipe,
|
|
49
|
+
DeviceSettingsComponent,
|
|
50
|
+
LineKeyConfigComponent,
|
|
51
|
+
AssociateLinesComponent], imports: [CommonModule,
|
|
48
52
|
BrowserModule,
|
|
49
53
|
BrowserAnimationsModule,
|
|
50
54
|
FormsModule,
|
|
51
55
|
ReactiveFormsModule,
|
|
52
56
|
HttpClientModule,
|
|
53
|
-
MaterialModule], exports: [DeviceManageWidgetComponent
|
|
57
|
+
MaterialModule], exports: [DeviceManageWidgetComponent,
|
|
58
|
+
DeviceSettingsComponent,
|
|
59
|
+
LineKeyConfigComponent,
|
|
60
|
+
AssociateLinesComponent] });
|
|
54
61
|
UserDeviceManageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserDeviceManageModule, providers: [
|
|
55
62
|
APIService,
|
|
56
63
|
UserService,
|
|
@@ -83,9 +90,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
83
90
|
DeviceAssociatedLineDetailsBoxComponent,
|
|
84
91
|
AssociatedLineRowComponent,
|
|
85
92
|
InfoDialogComponent,
|
|
86
|
-
PageSectionComponent,
|
|
87
93
|
DeviceInfoComponent,
|
|
88
94
|
MacAddressPipe,
|
|
95
|
+
DeviceSettingsComponent,
|
|
96
|
+
LineKeyConfigComponent,
|
|
97
|
+
AssociateLinesComponent,
|
|
89
98
|
],
|
|
90
99
|
imports: [
|
|
91
100
|
CommonModule,
|
|
@@ -109,8 +118,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
109
118
|
{ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }
|
|
110
119
|
],
|
|
111
120
|
exports: [
|
|
112
|
-
DeviceManageWidgetComponent
|
|
121
|
+
DeviceManageWidgetComponent,
|
|
122
|
+
DeviceSettingsComponent,
|
|
123
|
+
LineKeyConfigComponent,
|
|
124
|
+
AssociateLinesComponent
|
|
113
125
|
]
|
|
114
126
|
}]
|
|
115
127
|
}] });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kZXZpY2UtbWFuYWdlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL3VzZXItZGV2aWNlLW1hbmFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixF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Vzt3QkFDWCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztxQkFDckU7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLHVCQUF1QjtxQkFDeEI7aUJBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdXRpbHMvYXBwLWxvYWRlci9hcHAtbG9hZGVyJztcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyc2VwdG9ycy9hdXRoLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4vbWF0ZXJpYWwubW9kdWxlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZW1vdmVLeW5Gcm9tSUJNU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVtb3ZlS3luRnJvbUlCTS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2l0ZVNldHRpbmdzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2l0ZS1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF6eUxvYWRpbmdTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2xhenktbG9hZGluZy1zZWxlY3QvbGF6eS1sb2FkaW5nLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXZpY2VMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9kZXZpY2UtbGlzdC9kZXZpY2UtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZXZpY2VNYW5hZ2VXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2RldmljZS1tYW5hZ2Utd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERldmljZUFzc29jaWF0ZWRMaW5lQ29tcG9uZW50IH0gZnJvbSAnLi9kZXZpY2UtYXNzb2NpYXRlZC1saW5lL2RldmljZS1hc3NvY2lhdGVkLWxpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBEZXZpY2VBc3NvY2lhdGVkTGluZUV4dGVuc2lvbkNvbXBvbmVudFxyXG59IGZyb20gJy4vZGV2aWNlLWFzc29jaWF0ZWQtbGluZS9kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvbi9kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWV4dGVuc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIERldmljZUFzc29jaWF0ZWRMaW5lRGV0YWlsc0JveENvbXBvbmVudFxyXG59IGZyb20gJy4vZGV2aWNlLWFzc29jaWF0ZWQtbGluZS9kZXZpY2UtYXNzb2NpYXRlZC1saW5lLWRldGFpbHMtYm94L2RldmljZS1hc3NvY2lhdGVkLWxpbmUtZGV0YWlscy1ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzb2NpYXRlZExpbmVSb3dDb21wb25lbnQgfSBmcm9tICcuL2RldmljZS1hc3NvY2lhdGVkLWxpbmUvYXNzb2NpYXRlZC1saW5lLXJvdy9hc3NvY2lhdGVkLWxpbmUtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERldmljZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RldmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5mb0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS1kaWFsb2cvaW5mby1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERldmljZUluZm9Db21wb25lbnQgfSBmcm9tICcuL2RldmljZS1pbmZvL2RldmljZS1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hY0FkZHJlc3NQaXBlIH0gZnJvbSAnLi9waXBlcy9tYWMtYWRkcmVzcy5waXBlJztcclxuaW1wb3J0IHsgRGV2aWNlU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2RldmljZS1zZXR0aW5ncy9kZXZpY2Utc2V0dGluZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGluZUtleUNvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vbGluZS1rZXktY29uZmlnL2xpbmUta2V5LWNvbmZpZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NvY2lhdGVMaW5lc0NvbXBvbmVudCB9IGZyb20gJy4vYXNzb2NpYXRlLWxpbmVzL2Fzc29jaWF0ZS1saW5lcy5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFwcExvYWRlckNvbXBvbmVudCxcclxuICAgIE5vdGlmaWNhdGlvbnNDb21wb25lbnQsXHJcbiAgICBMYXp5TG9hZGluZ1NlbGVjdENvbXBvbmVudCxcclxuICAgIERldmljZUxpc3RDb21wb25lbnQsXHJcbiAgICBEZXZpY2VNYW5hZ2VXaWRnZXRDb21wb25lbnQsXHJcbiAgICBEZXZpY2VBc3NvY2lhdGVkTGluZUNvbXBvbmVudCxcclxuICAgIERldmljZUFzc29jaWF0ZWRMaW5lRXh0ZW5zaW9uQ29tcG9uZW50LFxyXG4gICAgRGV2aWNlQXNzb2NpYXRlZExpbmVEZXRhaWxzQm94Q29tcG9uZW50LFxyXG4gICAgQXNzb2NpYXRlZExpbmVSb3dDb21wb25lbnQsXHJcbiAgICBJbmZvRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgRGV2aWNlSW5mb0NvbXBvbmVudCxcclxuICAgIE1hY0FkZHJlc3NQaXBlLFxyXG4gICAgRGV2aWNlU2V0dGluZ3NDb21wb25lbnQsXHJcbiAgICBMaW5lS2V5Q29uZmlnQ29tcG9uZW50LFxyXG4gICAgQXNzb2NpYXRlTGluZXNDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCcm93c2VyTW9kdWxlLFxyXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEFQSVNlcnZpY2UsXHJcbiAgICBVc2VyU2VydmljZSxcclxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBSZW1vdmVLeW5Gcm9tSUJNU2VydmljZSxcclxuICAgIFNpdGVTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBEbnNTZXJ2aWNlLFxyXG4gICAgTGluZVNlcnZpY2UsXHJcbiAgICBEZXZpY2VTZXJ2aWNlLFxyXG4gICAgVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICB7cHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBBdXRoSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlfVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRGV2aWNlTWFuYWdlV2lkZ2V0Q29tcG9uZW50LFxyXG4gICAgRGV2aWNlU2V0dGluZ3NDb21wb25lbnQsXHJcbiAgICBMaW5lS2V5Q29uZmlnQ29tcG9uZW50LFxyXG4gICAgQXNzb2NpYXRlTGluZXNDb21wb25lbnRcclxuICBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckRldmljZU1hbmFnZU1vZHVsZSB7XHJcbn1cclxuIl19
|
|
@@ -20,6 +20,12 @@ export const API = {
|
|
|
20
20
|
UPDATE_LINE_FIELDS: "/api/provision/:siteId/lineFields/:pkid/:token",
|
|
21
21
|
UPDATE_DEVICE_FIELDS: "/api/provision/:siteId/deviceFields/:deviceName/:token",
|
|
22
22
|
TRANSLATION_PATTERN_CUCM: "/dcp/api/sites/:cucmId/translation-pattern",
|
|
23
|
+
LEAN_USER_CONVERSATION_START: "/api/provision/:siteId/leanUsers/:userId/leanUserDetailsToken",
|
|
24
|
+
LEAN_USER_DEVICES_CONVERSATION_START: "/api/provision/:siteId/leanUsers/:userId/leanUserDevicesToken",
|
|
25
|
+
LEAN_USER_LINES_CONVERSATION_START: "/api/provision/:siteId/leanUsers/:userId/:leanUserDevicesToken/leanUserLinesToken",
|
|
26
|
+
LEAN_USER_SNR_CONVERSATION_START: "/api/provision/:siteId/leanUsers/:userId/leanUserSNRToken",
|
|
27
|
+
UPDATE_LEAN_USER_FIELDS: "/api/provision/:siteId/leanUserFields/:leanUserDetailsToken/:leanUserLinesToken/:leanUserSNRToken",
|
|
28
|
+
USER_LOCATIONS: "/api/webex/locations/customers/:siteId",
|
|
23
29
|
};
|
|
24
30
|
export const REGEX_PATTERN = {
|
|
25
31
|
EMAIL: '^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))' +
|
|
@@ -52,4 +58,5 @@ export const RECORDING_MEDIA_SOURCE = [
|
|
|
52
58
|
"Gateway Preferred",
|
|
53
59
|
"Phone Preferred"
|
|
54
60
|
];
|
|
55
|
-
|
|
61
|
+
export const ON_PREM_ID = 2542;
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvYXBwLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakIsVUFBVSxFQUFFLDRDQUE0QztJQUN4RCxnQkFBZ0IsRUFBRSwrREFBK0Q7SUFDakYsa0JBQWtCLEVBQUUsdUVBQXVFO0lBQzNGLDRCQUE0QixFQUFFLHVFQUF1RTtJQUNyRyw4QkFBOEIsRUFBRSx3RUFBd0U7SUFDeEcsa0JBQWtCLEVBQUUsMENBQTBDO0lBQzlELGtCQUFrQixFQUFFLHdDQUF3QztJQUM1RCxVQUFVLEVBQUUsc0NBQXNDO0lBQ2xELGtCQUFrQixFQUFFLHdCQUF3QjtJQUM1QyxRQUFRLEVBQUUsMENBQTBDO0lBQ3BELFlBQVksRUFBRSw0Q0FBNEM7SUFDMUQsYUFBYSxFQUFFLDZDQUE2QztJQUM1RCxzQkFBc0IsRUFBRSwyQ0FBMkM7SUFDbkUsV0FBVyxFQUFFLGdEQUFnRDtJQUM3RCxpQkFBaUIsRUFBRSwyRUFBMkU7SUFDOUYsaUJBQWlCLEVBQUUsMENBQTBDO0lBQzdELGNBQWMsRUFBRSxpRUFBaUU7SUFDakYsd0JBQXdCLEVBQUUsaUNBQWlDO0lBQzNELGtCQUFrQixFQUFFLGdEQUFnRDtJQUNwRSxvQkFBb0IsRUFBRSx3REFBd0Q7SUFDOUUsd0JBQXdCLEVBQUUsNENBQTRDO0lBQ3RFLDRCQUE0QixFQUFFLCtEQUErRDtJQUM3RixvQ0FBb0MsRUFBRSwrREFBK0Q7SUFDckcsa0NBQWtDLEVBQUUsbUZBQW1GO0lBQ3ZILGdDQUFnQyxFQUFFLDJEQUEyRDtJQUM3Rix1QkFBdUIsRUFBRSxtR0FBbUc7SUFDNUgsY0FBYyxFQUFFLHdDQUF3QztDQUN6RCxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEtBQUssRUFBRSwwRUFBMEU7UUFDakYsK0NBQStDO1FBQy9DLHlEQUF5RDtDQUMxRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDakMsSUFBSSxFQUFFLEVBQUU7SUFDUixLQUFLLEVBQUUsQ0FBQztDQUNULENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxFQUFFO0lBQ0YsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLG1CQUFtQjtJQUNuQixpQkFBaUI7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVBJID0ge1xyXG4gIFVTRVJfVE9LRU46ICcvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL3VzZXJzLzp1c2VySWQvdG9rZW4nLFxyXG4gIFdFQkVYX1VTRVJfVE9LRU46ICcvYXBpL3dlYmV4L3Byb3Zpc2lvbmluZy9jdXN0b21lcnMvOmN1c3RvbWVySWQvcGVyc29ucy86dXNlcklkJyxcclxuICBXRUJFWF9VU0VSX0RFVklDRVM6ICcvYXBpL3dlYmV4L3Byb3Zpc2lvbmluZy9jdXN0b21lcnMvOmN1c3RvbWVySWQvcGVyc29ucy86dXNlcklkL2RldmljZXMnLFxyXG4gIFdFQkVYX1VTRVJfRElSRUNUT1JZX05VTUJFUlM6ICcvYXBpL3dlYmV4L3Byb3Zpc2lvbmluZy9jdXN0b21lcnMvOmN1c3RvbWVySWQvcGVyc29ucy86dXNlcklkL251bWJlcnMnLFxyXG4gIFdFQkVYX1VTRVJfRElSRUNUT1JZX0NBTExFUl9JRDogJy9hcGkvd2ViZXgvcHJvdmlzaW9uaW5nL2N1c3RvbWVycy86Y3VzdG9tZXJJZC9wZXJzb25zLzp1c2VySWQvY2FsbGVySWQnLFxyXG4gIFVQREFURV9VU0VSX0ZJRUxEUzogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlckZpZWxkcy86dG9rZW4nLFxyXG4gIFBFUlNJU1RfVVNFUl9DQUNIRTogJy9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvc2F2ZVVzZXIvOnRva2VuJyxcclxuICBVU0VSX0JZX0lEOiAnL2FwaS9wcm92aXNpb24vOnNpdGVJZC91c2Vycy86dXNlcklkJyxcclxuICBRVUlDS19VU0VSU19TRUFSQ0g6IFwiL2FwaS9zZWFyY2gvcXVpY2t1c2Vyc1wiLFxyXG4gIExPQ0FUSU9OOiBcIi9hcGkvcHJvdmlzaW9uL29wdGlvbnMvOnNpdGVJZC9sb2NhdGlvbnNcIixcclxuICBVU0VSX0xPQ0FMRVM6IFwiL2FwaS9wcm92aXNpb24vb3B0aW9ucy86c2l0ZUlkL3VzZXJsb2NhbGVzXCIsXHJcbiAgVVNFUl9QUk9GSUxFUzogXCIvYXBpL3Byb3Zpc2lvbi9vcHRpb25zLzpzaXRlSWQvdXNlcnByb2ZpbGVzXCIsXHJcbiAgQVZBSUxBQkxFX0ROX0lOX1JBTkdFUzogXCIvYXBpL3NpdGVzLzpzaXRlSWQvYXZhaWxhYmxlLWRuLWluLXJhbmdlc1wiLFxyXG4gIERFTEVURV9MSU5FOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvZGVsZXRlTGluZS86cGtpZC86dG9rZW5cIixcclxuICBESVNBU1NPQ0lBVEVfTElORTogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkLzpkZXZpY2VOYW1lL2RlbGV0ZUxpbmVBc3NvY2lhdGlvbi86bGluZVBraWQvOnRva2VuXCIsXHJcbiAgQ0hFQ0tfREVMRVRFX0xJTkU6IFwiL2FwaS9wcm92aXNpb24vOnNpdGVJZC9jaGVja2xpbmVkZWxldGlvblwiLFxyXG4gIEFTU09DSUFURV9MSU5FOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvOmRldmljZU5hbWUvY3JlYXRlTGluZUFzc29jaWF0aW9uLzp0b2tlblwiLFxyXG4gIENIRUNLX0RFU1RJTkFUSU9OX05VTUJFUjogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2NoZWNrLWRuXCIsXHJcbiAgVVBEQVRFX0xJTkVfRklFTERTOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvbGluZUZpZWxkcy86cGtpZC86dG9rZW5cIixcclxuICBVUERBVEVfREVWSUNFX0ZJRUxEUzogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2RldmljZUZpZWxkcy86ZGV2aWNlTmFtZS86dG9rZW5cIixcclxuICBUUkFOU0xBVElPTl9QQVRURVJOX0NVQ006IFwiL2RjcC9hcGkvc2l0ZXMvOmN1Y21JZC90cmFuc2xhdGlvbi1wYXR0ZXJuXCIsXHJcbiAgTEVBTl9VU0VSX0NPTlZFUlNBVElPTl9TVEFSVDogXCIvYXBpL3Byb3Zpc2lvbi86c2l0ZUlkL2xlYW5Vc2Vycy86dXNlcklkL2xlYW5Vc2VyRGV0YWlsc1Rva2VuXCIsXHJcbiAgTEVBTl9VU0VSX0RFVklDRVNfQ09OVkVSU0FUSU9OX1NUQVJUOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvbGVhblVzZXJzLzp1c2VySWQvbGVhblVzZXJEZXZpY2VzVG9rZW5cIixcclxuICBMRUFOX1VTRVJfTElORVNfQ09OVkVSU0FUSU9OX1NUQVJUOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvbGVhblVzZXJzLzp1c2VySWQvOmxlYW5Vc2VyRGV2aWNlc1Rva2VuL2xlYW5Vc2VyTGluZXNUb2tlblwiLFxyXG4gIExFQU5fVVNFUl9TTlJfQ09OVkVSU0FUSU9OX1NUQVJUOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvbGVhblVzZXJzLzp1c2VySWQvbGVhblVzZXJTTlJUb2tlblwiLFxyXG4gIFVQREFURV9MRUFOX1VTRVJfRklFTERTOiBcIi9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvbGVhblVzZXJGaWVsZHMvOmxlYW5Vc2VyRGV0YWlsc1Rva2VuLzpsZWFuVXNlckxpbmVzVG9rZW4vOmxlYW5Vc2VyU05SVG9rZW5cIixcclxuICBVU0VSX0xPQ0FUSU9OUzogXCIvYXBpL3dlYmV4L2xvY2F0aW9ucy9jdXN0b21lcnMvOnNpdGVJZFwiLFxyXG59O1xyXG5leHBvcnQgY29uc3QgUkVHRVhfUEFUVEVSTiA9IHtcclxuICBFTUFJTDogJ14oKFtePD4oKVxcXFxbXFxcXF1cXFxcXFxcXC4sOzpcXFxcc0BcIl0rKFxcXFwuW148PigpXFxcXFtcXFxcXVxcXFxcXFxcLiw7OlxcXFxzQFwiXSspKil8KFwiLitcIikpJyArXHJcbiAgJ0BbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYyfVthLXpBLVowLTldKScgK1xyXG4gICc/KD86XFxcXC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYyfVthLXpBLVowLTldKT8pKiQnXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgUEFHSU5BVElPTl9ERUZBVUxUUyA9IHtcclxuICBTSVpFOiAxMCxcclxuICBJTkRFWDogMFxyXG59XHJcbmV4cG9ydCBjb25zdCBQQUdJTkFUSU9OX1NJWkVfT1BUSU9OUyA9IFtcclxuICAxMCxcclxuICA1MCxcclxuICAxMDAsXHJcbiAgNTAwXHJcbl07XHJcbmV4cG9ydCBjb25zdCBDVUNTX1RPX0lHTk9SRSA9IFtcclxuICAxODksXHJcbiAgMTk0LFxyXG4gIDE5MSxcclxuICAxOTBcclxuXTtcclxuZXhwb3J0IGNvbnN0IENVQ01TX1RPX0lHTk9SRSA9IFtcclxuICAyNDksXHJcbiAgMjU1LFxyXG4gIDI1MSxcclxuICAyNTBcclxuXTtcclxuZXhwb3J0IGNvbnN0IFJFQ09SRElOR19NRURJQV9TT1VSQ0UgPSBbXHJcbiAgXCJHYXRld2F5IFByZWZlcnJlZFwiLFxyXG4gIFwiUGhvbmUgUHJlZmVycmVkXCJcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBPTl9QUkVNX0lEID0gMjU0MjsiXX0=
|