qms-angular 1.0.55 → 1.0.56
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/bundles/qms-angular.umd.js +4003 -12241
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/app-icon/app-icon.module.js +16 -29
- package/esm2015/lib/components/app-icon/icon-registry.service.js +7 -9
- package/esm2015/lib/components/badges/qms-badges.component.js +15 -24
- package/esm2015/lib/components/badges/qms-badges.module.js +18 -33
- package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +16 -28
- package/esm2015/lib/components/banner/qms-banner/qms-banner.module.js +19 -36
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +16 -28
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +19 -36
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +13 -19
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.module.js +17 -30
- package/esm2015/lib/components/breadcrumb/breadcrumb-direction-icon.directive.js +10 -11
- package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +17 -20
- package/esm2015/lib/components/breadcrumb/breadcrumb.js +28 -40
- package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +26 -50
- package/esm2015/lib/components/button/button-toggle.js +85 -120
- package/esm2015/lib/components/button/button.js +78 -86
- package/esm2015/lib/components/button/button.module.js +27 -51
- package/esm2015/lib/components/comment/comment.js +18 -29
- package/esm2015/lib/components/dialog/dialog.js +28 -38
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +16 -24
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.js +31 -71
- package/esm2015/lib/components/list/list.js +89 -101
- package/esm2015/lib/components/list/list.module.js +50 -94
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +29 -55
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.module.js +20 -39
- package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +22 -32
- package/esm2015/lib/components/qms-stepper/qms-stepper.module.js +25 -35
- package/esm2015/lib/components/related/content/related-content.component.js +12 -19
- package/esm2015/lib/components/related/list-other-related/list-related.component.js +25 -29
- package/esm2015/lib/components/related/popup/related-popup.component.js +33 -50
- package/esm2015/lib/components/related/related.module.js +43 -96
- package/esm2015/lib/components/related/risk/analysis/analysis.component.js +17 -23
- package/esm2015/lib/components/related/risk/list/list.component.js +18 -22
- package/esm2015/lib/components/related/risk/result/result.component.js +16 -23
- package/esm2015/lib/components/related/service/related-global.service.js +6 -7
- package/esm2015/lib/components/related/sidenav/sidenav.component.js +12 -21
- package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +18 -22
- package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +18 -22
- package/esm2015/lib/components/reports/qms-reports.module.js +20 -29
- package/esm2015/lib/components/rich-text/rich-text.js +32 -47
- package/esm2015/lib/components/rich-text/rich-text.module.js +21 -35
- package/esm2015/lib/components/select-dialog/select-dialog.js +16 -31
- package/esm2015/lib/components/select-include-children/select-include-children.component.js +33 -47
- package/esm2015/lib/components/select-include-children/select-include-children.module.js +33 -78
- package/esm2015/lib/components/select-include-children/services/select-global.service.js +6 -7
- package/esm2015/lib/components/suffix-field/suffix-field.directive.js +21 -22
- package/esm2015/lib/components/table/table-action.js +31 -31
- package/esm2015/lib/components/table/table.module.js +21 -37
- package/esm2015/lib/components/test-only/test-only.component.js +11 -14
- package/esm2015/lib/components/tooltip/tooltip.js +19 -24
- package/esm2015/lib/components/tooltip/tooltip.module.js +20 -38
- package/esm2015/lib/components/tree/tree.component.js +33 -46
- package/esm2015/lib/components/tree/tree.module.js +30 -69
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +16 -22
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.js +31 -71
- package/esm2015/lib/directives/chip-input/chip-input-chip-list.directive.js +13 -13
- package/esm2015/lib/directives/chip-input/chip-input-field.directive.js +10 -11
- package/esm2015/lib/directives/chip-input/chip-input-select-dropdown.directive.js +10 -11
- package/esm2015/lib/directives/chip-input/chip-input-select-field.directive.js +14 -17
- package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +13 -14
- package/esm2015/lib/directives/chips/chip-body.directive.js +10 -11
- package/esm2015/lib/directives/chips/chip.directive.js +13 -13
- package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +14 -16
- package/esm2015/lib/directives/file-upload/file-upload-attachment-list.directive.js +10 -11
- package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +16 -19
- package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +14 -16
- package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +20 -26
- package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +15 -19
- package/esm2015/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.js +10 -11
- package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +18 -25
- package/esm2015/lib/directives/file-upload/file-upload.directive.js +20 -24
- package/esm2015/lib/directives/form.directive.js +51 -48
- package/esm2015/lib/directives/margin.directive.js +14 -15
- package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +10 -11
- package/esm2015/lib/directives/range-slider/range-slider.directive.js +14 -17
- package/esm2015/lib/directives/scroll-selected/scroll-to-selected.directive.js +15 -16
- package/esm2015/lib/directives/scrollbar/scrollbar.directive.js +13 -13
- package/esm2015/lib/directives/search-field.directive.js +22 -21
- package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer.directive.js +10 -11
- package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +14 -15
- package/esm2015/lib/directives/tab/tab-group.directive.js +10 -11
- package/esm2015/lib/directives/tab/tab-label.directive.js +10 -11
- package/esm2015/lib/directives/text-block/text-block-line.directive.js +16 -20
- package/esm2015/lib/directives/text-block/text-block.directive.js +14 -17
- package/esm2015/lib/directives/tooltip/tooltip-image.directive.js +13 -14
- package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +22 -35
- package/esm2015/lib/material-module.js +16 -35
- package/esm2015/lib/model/en.js +4 -35
- package/esm2015/lib/model/no.js +3 -34
- package/esm2015/lib/pipe/dateFormat.pipe.js +10 -11
- package/esm2015/lib/qms-angular.component.js +11 -13
- package/esm2015/lib/qms-angular.module.js +121 -232
- package/esm2015/lib/qms-angular.service.js +8 -9
- package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +12 -32
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +1 -5
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +1 -10
- package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +1 -2
- package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
- package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +16 -23
- package/esm2015/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.js +19 -34
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +53 -577
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +35 -69
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +8 -12
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +30 -39
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +18 -22
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +20 -29
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +18 -22
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +23 -35
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +20 -30
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +18 -27
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor-base.component.js +4 -7
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +44 -118
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +55 -131
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.js +10 -10
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +26 -66
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.js +8 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.js +9 -9
- package/esm2015/lib/services/translation-registry.service.js +8 -9
- package/esm2015/lib/shared.module.js +4 -9
- package/esm2015/public-api.js +1 -16
- package/esm2015/qms-angular.js +9 -1
- package/fesm2015/qms-angular.js +3031 -11134
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/app-icon/app-icon.module.d.ts +0 -7
- package/lib/components/app-icon/icon-registry.service.d.ts +0 -3
- package/lib/components/badges/qms-badges.component.d.ts +0 -3
- package/lib/components/badges/qms-badges.module.d.ts +0 -9
- package/lib/components/banner/qms-banner/qms-banner.component.d.ts +0 -3
- package/lib/components/banner/qms-banner/qms-banner.module.d.ts +0 -10
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +0 -3
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.d.ts +0 -10
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.component.d.ts +0 -3
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.module.d.ts +0 -8
- package/lib/components/breadcrumb/breadcrumb-direction-icon.directive.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb.module.d.ts +0 -13
- package/lib/components/button/button-toggle.d.ts +0 -5
- package/lib/components/button/button.d.ts +0 -7
- package/lib/components/button/button.module.d.ts +0 -9
- package/lib/components/comment/comment.d.ts +0 -3
- package/lib/components/dialog/dialog.d.ts +0 -5
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +0 -3
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.d.ts +0 -16
- package/lib/components/list/list.d.ts +0 -15
- package/lib/components/list/list.module.d.ts +0 -11
- package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +0 -3
- package/lib/components/qms-app-bar/qms-app-bar.module.d.ts +0 -12
- package/lib/components/qms-stepper/qms-stepper.component.d.ts +0 -3
- package/lib/components/qms-stepper/qms-stepper.module.d.ts +0 -8
- package/lib/components/related/content/related-content.component.d.ts +0 -3
- package/lib/components/related/list-other-related/list-related.component.d.ts +0 -3
- package/lib/components/related/popup/related-popup.component.d.ts +0 -3
- package/lib/components/related/related.module.d.ts +0 -29
- package/lib/components/related/risk/analysis/analysis.component.d.ts +0 -3
- package/lib/components/related/risk/list/list.component.d.ts +0 -3
- package/lib/components/related/risk/result/result.component.d.ts +0 -3
- package/lib/components/related/service/related-global.service.d.ts +0 -3
- package/lib/components/related/sidenav/sidenav.component.d.ts +0 -3
- package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +0 -3
- package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +0 -3
- package/lib/components/reports/qms-reports.module.d.ts +0 -7
- package/lib/components/rich-text/rich-text.d.ts +0 -3
- package/lib/components/rich-text/rich-text.module.d.ts +0 -8
- package/lib/components/select-dialog/select-dialog.d.ts +0 -3
- package/lib/components/select-include-children/select-include-children.component.d.ts +0 -3
- package/lib/components/select-include-children/select-include-children.module.d.ts +0 -25
- package/lib/components/select-include-children/services/select-global.service.d.ts +0 -3
- package/lib/components/suffix-field/suffix-field.directive.d.ts +0 -5
- package/lib/components/table/table-action.d.ts +0 -5
- package/lib/components/table/table.module.d.ts +0 -8
- package/lib/components/test-only/test-only.component.d.ts +0 -3
- package/lib/components/tooltip/tooltip.d.ts +0 -3
- package/lib/components/tooltip/tooltip.module.d.ts +0 -9
- package/lib/components/tree/tree.component.d.ts +0 -3
- package/lib/components/tree/tree.module.d.ts +0 -22
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +0 -3
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.d.ts +0 -16
- package/lib/directives/chip-input/chip-input-chip-list.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-field.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-dropdown.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-field.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +0 -3
- package/lib/directives/chips/chip-body.directive.d.ts +0 -3
- package/lib/directives/chips/chip.directive.d.ts +0 -3
- package/lib/directives/dropdown-menu/dropdown-item.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-attachment-list.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-display.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple-selector.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-selector.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload.directive.d.ts +0 -5
- package/lib/directives/form.directive.d.ts +0 -11
- package/lib/directives/margin.directive.d.ts +0 -3
- package/lib/directives/range-slider/range-slider-lockup.directive.d.ts +0 -3
- package/lib/directives/range-slider/range-slider.directive.d.ts +0 -3
- package/lib/directives/scroll-selected/scroll-to-selected.directive.d.ts +0 -3
- package/lib/directives/scrollbar/scrollbar.directive.d.ts +0 -3
- package/lib/directives/search-field.directive.d.ts +0 -5
- package/lib/directives/side-sheet/drawer-content.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer-header-action.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer-header.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer.directive.d.ts +0 -3
- package/lib/directives/tab/tab-group-advanced.directive.d.ts +0 -3
- package/lib/directives/tab/tab-group.directive.d.ts +0 -3
- package/lib/directives/tab/tab-label.directive.d.ts +0 -3
- package/lib/directives/text-block/text-block-line.directive.d.ts +0 -3
- package/lib/directives/text-block/text-block.directive.d.ts +0 -3
- package/lib/directives/tooltip/tooltip-image.directive.d.ts +0 -3
- package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +0 -3
- package/lib/material-module.d.ts +0 -12
- package/lib/model/en.d.ts +0 -31
- package/lib/model/no.d.ts +0 -31
- package/lib/pipe/dateFormat.pipe.d.ts +0 -3
- package/lib/qms-angular.component.d.ts +0 -3
- package/lib/qms-angular.module.d.ts +0 -49
- package/lib/qms-angular.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +2 -2
- package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +0 -4
- package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +0 -9
- package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +0 -1
- package/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -88
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +2 -11
- package/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.d.ts +0 -4
- package/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/qms-ckeditor-base.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +0 -8
- package/lib/qms-ckeditor-components/qms-ckeditor.module.d.ts +0 -44
- package/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +0 -4
- package/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.d.ts +0 -3
- package/lib/services/translation-registry.service.d.ts +0 -3
- package/lib/shared.module.d.ts +0 -4
- package/lib.theme.scss +0 -8
- package/package.json +2 -1
- package/public-api.d.ts +0 -14
- package/qms-angular.d.ts +8 -1
- package/qms-angular.metadata.json +1 -0
- package/src/assets/jointjs/scss/bpmn.scss +35 -36
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
- package/src/assets/qms-ckeditor-plugin/package-lock.json +12177 -17
- package/src/assets/qms-ckeditor-plugin/package.json +0 -1
- package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +3 -22
- package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +5 -24
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +1 -7
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +0 -20
- package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +87 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +43 -47
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +108 -72
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +3 -4
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +0 -13
- package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +8 -8
- package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +24 -23
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +50 -1
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
- package/src/lib/components/tree/tree.component.scss +1 -1
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +1 -15
- package/src/lib/qms-ckeditor-components/styles/_layout.scss +0 -24
- package/src/lib/qms-ckeditor-components/styles/_modules.scss +0 -8
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +0 -7
- package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +0 -8
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.js +0 -16
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/halo-service.js +0 -105
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.js +0 -3762
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +0 -68
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +0 -372
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.js +0 -1041
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.js +0 -326
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.js +0 -318
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.js +0 -80
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +0 -9
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +0 -9
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +0 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +0 -43
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +0 -322
- package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +0 -8
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +0 -26
- package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +0 -6
- package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +0 -6
- package/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.d.ts +0 -14
- package/lib/qms-ckeditor-components/common/flowchart/service/halo-service.d.ts +0 -48
- package/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.d.ts +0 -18
- package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +0 -17
- package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +0 -62
- package/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.d.ts +0 -1183
- package/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.d.ts +0 -216
- package/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.d.ts +0 -61
- package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +0 -36
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +0 -18
- package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +0 -44
- package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +0 -13
- package/src/assets/images/ckeditor5.svg +0 -1
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Regular.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/OFL.txt +0 -92
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Regular.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/OFL.txt +0 -93
- package/src/assets/jointjs/fonts/Roboto_Condensed/LICENSE.txt +0 -202
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf +0 -0
- package/src/assets/jointjs/images/delete-icon-modern.png +0 -0
- package/src/assets/jointjs/images/image-icon1.svg +0 -1
- package/src/assets/jointjs/images/image-icon2.svg +0 -6
- package/src/assets/jointjs/images/image-icon3.svg +0 -11
- package/src/assets/jointjs/images/image-icon4.svg +0 -8
- package/src/assets/jointjs/images/member-female.png +0 -0
- package/src/assets/jointjs/images/member-male.png +0 -0
- package/src/assets/jointjs/images/no-color-icon.svg +0 -72
- package/src/assets/jointjs/images/reset-icon-modern.png +0 -0
- package/src/assets/jointjs/images/save-icon-modern.png +0 -0
- package/src/assets/jointjs/images/to-front-icon-modern.png +0 -0
- package/src/assets/jointjs/images/toback-icon-modern.png +0 -0
- package/src/assets/jointjs/images/toolbar-icons-dark.woff +0 -0
- package/src/assets/jointjs/images/toolbar-icons-material.png +0 -0
- package/src/assets/jointjs/images/toolbar-icons-modern.png +0 -0
- package/src/assets/jointjs/images/transparent-icon.svg +0 -50
- package/src/assets/jointjs/scss/style.dark.scss +0 -233
- package/src/assets/jointjs/scss/style.material.scss +0 -234
- package/src/assets/jointjs/scss/style.modern.scss +0 -225
- package/src/assets/jointjs/scss/style.scss +0 -216
- package/src/assets/jointjs/scss/theme-picker.scss +0 -21
- package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +0 -28
- package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +0 -63
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/openimagemapcommand.js +0 -58
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +0 -507
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +0 -1
- package/src/lib/components/select-one/select-one.component.scss +0 -240
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +0 -16
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +0 -5
- package/src/themes/_non-bg-srcollbar.scss +0 -4
@@ -1,37 +1,25 @@
|
|
1
|
-
import { Component, Inject, ViewChild } from '@angular/core';
|
2
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
1
|
+
import { ChangeDetectorRef, Component, Inject, ViewChild, Renderer2 } from '@angular/core';
|
2
|
+
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
3
3
|
import { takeUntil } from 'rxjs/operators';
|
4
|
+
import { TranslateLibraryService } from '../../../services/translation-registry.service';
|
4
5
|
import { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';
|
6
|
+
import { QMSCKEditorImageMap } from '../../models/qms-ckeditor-imagemap.model';
|
5
7
|
import { LinkType } from '../../common/enums/link-type.enum';
|
6
8
|
import { ProtocolTypeName } from '../../common/enums/protocol-type.enum';
|
7
9
|
import { TargetTypeName } from '../../common/enums/target-type.enum';
|
8
10
|
import { ImageModeName } from '../../common/enums/image-mode.enum';
|
11
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
12
|
+
import { MatIconRegistry } from '@angular/material/icon';
|
9
13
|
import { IconSvg } from '../../common/constants/iconSvg.constants';
|
10
14
|
import { QMSCKEditorImageMapLib } from './qms-ckeditor-imagemap.lib';
|
11
15
|
import { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';
|
12
16
|
import QMSCKEditorParamter from '../../common/models/qms-ckeditor-parameter.model';
|
17
|
+
import { QMSCKEditorLinkService } from '../../services/qms-ckeditor-link.service';
|
13
18
|
import { QMSCKEditorRelatedComponent } from '../qms-ckeditor-relation/qmsckeditor-related.component';
|
14
19
|
import { LinkAttachmentComponent } from '../qms-ckeditor-link/attachments/link-attachment.component';
|
15
20
|
import { LinkAnchor } from '../../common/enums/link-anchor.enum';
|
16
21
|
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
17
22
|
import { invalidURLValidator } from './qms-ckeditor-imagemap.validator';
|
18
|
-
import * as i0 from "@angular/core";
|
19
|
-
import * as i1 from "@angular/material/dialog";
|
20
|
-
import * as i2 from "../../../services/translation-registry.service";
|
21
|
-
import * as i3 from "../../services/qms-ckeditor-link.service";
|
22
|
-
import * as i4 from "@angular/material/icon";
|
23
|
-
import * as i5 from "@angular/platform-browser";
|
24
|
-
import * as i6 from "@angular/material/expansion";
|
25
|
-
import * as i7 from "@angular/material/button-toggle";
|
26
|
-
import * as i8 from "@angular/material/form-field";
|
27
|
-
import * as i9 from "@angular/material/select";
|
28
|
-
import * as i10 from "@angular/material/core";
|
29
|
-
import * as i11 from "@angular/material/button";
|
30
|
-
import * as i12 from "@angular/forms";
|
31
|
-
import * as i13 from "@angular/common";
|
32
|
-
import * as i14 from "@angular/material/tooltip";
|
33
|
-
import * as i15 from "@angular/material/input";
|
34
|
-
import * as i16 from "../../models/qms-ckeditor-imagemap.model";
|
35
23
|
export class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
|
36
24
|
constructor(renderer, cdr, dialog, translate, linkService, dialogRef, data, iconRegistry, sanitizer) {
|
37
25
|
super();
|
@@ -511,23 +499,26 @@ export class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
|
|
511
499
|
this.dialogRef.close();
|
512
500
|
}
|
513
501
|
}
|
514
|
-
QMSCKEditorImageMapComponent
|
515
|
-
QMSCKEditorImageMapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: QMSCKEditorImageMapComponent, selector: "app-qmsck-imagemap", viewQueries: [{ propertyName: "myImageRef", first: true, predicate: ["myImage"], descendants: true }, { propertyName: "myStatusRef", first: true, predicate: ["myStatus"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div id=\"qmsckeditor-imagemap\" class=\"qmsckeditor qmsckeditor__imagemap__container\">\r\n <div id=\"qmsckeditor-imagemap-header\">\r\n <span id=\"qmsckeditor-imagemap-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-imagemap-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-imagemap_002_001\">\r\n {{ LANG.QMSCKEDITOR.IMAGE_MAP_PROPERTIES }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-content\">\r\n <div id=\"qmsckeditor-imagemap-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel id=\"qmsckeditor-imagemap-panel\" [expanded]=\"true\" (opened)=\"(true)\" (closed)=\"(false)\">\r\n <div id=\"qmsckeditor-imagemap-panel_001\">\r\n <div id=\"qmsckeditor-imagemap-panel_001_001\" class=\"qmsckeditor__imagemap__information\">\r\n <form [formGroup]=\"imageMapFormGroup\">\r\n <div class=\"row\">\r\n <div class=\"col-9\">\r\n <mat-button-toggle-group [(ngModel)]=\"selectedMode\" formControlName=\"modeList\"\r\n (change)=\"onModeChange($event)\">\r\n <mat-button-toggle *ngFor=\"let mode of modes\" [value]=\"mode.id\"\r\n [matTooltip]=\"mode.name\">\r\n <mat-icon color=\"red\" [svgIcon]=\"mode.icon\" aria-hidden=\"true\">\r\n </mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n <span style=\"margin-left: 15px;\" #myStatus></span>\r\n </div>\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ZOOM }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedZoom\" formControlName=\"zoomList\"\r\n (ngModelChange)=\"onZoomChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let zoomType of zoomTypes\" [value]=\"zoomType.id\">\r\n {{ zoomType.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLinkType\" formControlName=\"linkTypeList\"\r\n (ngModelChange)=\"onLinkTypeChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-3\" *ngIf=\"selectedLinkType === 0\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\"\r\n (ngModelChange)=\"onTargetChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 1\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorTextList\"\r\n (ngModelChange)=\"onAnchorTextChange()\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\" disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 0\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\"\r\n (ngModelChange)=\"onProtocolChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-5\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\"\r\n (ngModelChange)=\"onUrlChange()\" (keyup)=\"onUrlKeyup()\" />\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('required')\">{{\r\n LANG.QMSCKEDITOR.REQUIRED_URL }}\r\n </mat-error>\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('invalidURL')\">{{\r\n LANG.QMSCKEDITOR.INVALID_URL }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"row button__groups\">\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_002\" class=\"qmsckeditor__imagemap__map\">\r\n <img #myImage [src]=\"imageMapData.imageUrl\">\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_003\" class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4\">\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"removeMap()\">\r\n {{ LANG.QMSCKEDITOR.REMOVE_MAP }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"save()\">\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pl-0\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"cancel()\">\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n</div>", styles: [".mt-n4{margin-top:-4px!important}.mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt8{margin-top:8px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt24{margin-top:24px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.pa0{padding:0!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fs32{font-size:32px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:470px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.qmsckeditor__imagemap__container .mat-form-field{width:100%}.qmsckeditor__imagemap__container .qmsckeditor__imagemap__information{position:relative}.qmsckeditor__imagemap__container .qmsckeditor__imagemap__map{overflow:auto;width:800px;min-height:371px;position:relative;max-height:460px}.qmsckeditor__imagemap__container .mat-button-toggle-checked{border:1px solid #000!important}.qmsckeditor__imagemap__container .hidden{visibility:hidden}"], components: [{ type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i12.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i14.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i8.MatLabel, selector: "mat-label" }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.MatError, selector: "mat-error", inputs: ["id"] }] });
|
516
|
-
|
517
|
-
type: Component,
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAvcW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAvcW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUMsU0FBUyxFQUFjLE1BQU0sRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FB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QyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7eUhBMWhCUSw0QkFBNEIsOE1BcUR6QixlQUFlOzZHQXJEbEIsNEJBQTRCLGtSQzdEekMsNDVVQW1KTTsyRkR0Rk8sNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSx3Q0FBd0M7b0JBQ3JELFNBQVMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDO2lCQUN4RDs7MEJBc0RRLE1BQU07MkJBQUMsZUFBZTtxR0FaM0IsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFNBQVM7Z0JBSXBCLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9ySW1hZ2VNYXAgfSBmcm9tICcuLi8uLi9tb2RlbHMvcW1zLWNrZWRpdG9yLWltYWdlbWFwLm1vZGVsJztcclxuaW1wb3J0IHsgTGlua1R5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bXMvbGluay10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBQcm90b2NvbFR5cGVOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL3Byb3RvY29sLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFRhcmdldFR5cGVOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL3RhcmdldC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBJbWFnZU1vZGVOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL2ltYWdlLW1vZGUuZW51bSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgSWNvblN2ZyB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb25zdGFudHMvaWNvblN2Zy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckltYWdlTWFwTGliIH0gZnJvbSAnLi9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAubGliJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXJlbGF0aW9uLm1vZGVsJztcclxuaW1wb3J0IFFNU0NLRWRpdG9yUGFyYW10ZXIgZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItcGFyYW1ldGVyLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JMaW5rU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci1saW5rLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclJlbGF0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9xbXMtY2tlZGl0b3ItcmVsYXRpb24vcW1zY2tlZGl0b3ItcmVsYXRlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaW5rQXR0YWNobWVudENvbXBvbmVudCB9IGZyb20gJy4uL3Ftcy1ja2VkaXRvci1saW5rL2F0dGFjaG1lbnRzL2xpbmstYXR0YWNobWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckxpbmtBbmNob3JEb2N1bWVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLWxpbmstYW5jaG9yLWRvY3VtZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgTGlua0FuY2hvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtcy9saW5rLWFuY2hvci5lbnVtJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaW52YWxpZFVSTFZhbGlkYXRvciB9IGZyb20gJy4vcW1zLWNrZWRpdG9yLWltYWdlbWFwLnZhbGlkYXRvcic7XHJcblxyXG5pbnRlcmZhY2UgSUxpbmtUeXBlIHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJVGFyZ2V0IHtcclxuICAgIGlkOiBUYXJnZXRUeXBlTmFtZTtcclxuICAgIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElQcm90b2NvbCB7XHJcbiAgICBpZDogUHJvdG9jb2xUeXBlTmFtZTtcclxuICAgIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElNb2RlIHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJWm9vbVR5cGUge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElBbmNob3Ige1xyXG4gICAgdmFsdWU6IG51bWJlcjtcclxuICAgIHZpZXdWYWx1ZTogc3RyaW5nO1xyXG4gICAgYW5jaG9yVmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1xbXNjay1pbWFnZW1hcCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Ftcy1ja2VkaXRvci1pbWFnZW1hcC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNDS0VkaXRvckltYWdlTWFwQ29tcG9uZW50IGV4dGVuZHMgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIExBTkc6IGFueTtcclxuICAgIGltYWdlTWFwRm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBpbWFnZU1hcERhdGE6IFFNU0NLRWRpdG9ySW1hZ2VNYXA7XHJcbiAgICBsaW5rVHlwZXM6IElMaW5rVHlwZVtdID0gW107XHJcbiAgICB0YXJnZXRzOiBJVGFyZ2V0W10gPSBbXTtcclxuICAgIHByb3RvY29sczogSVByb3RvY29sW10gPSBbXTtcclxuICAgIG1vZGVzOiBJTW9kZVtdID0gW107XHJcbiAgICB6b29tVHlwZXM6IElab29tVHlwZVtdID0gW107XHJcbiAgICB1cmwgPSAnJztcclxuICAgIHByb2Nlc3NlZFVybCA9ICcnO1xyXG4gICAgc2VsZWN0ZWRNb2RlOiBJbWFnZU1vZGVOYW1lID0gSW1hZ2VNb2RlTmFtZS5SZWN0YW5nbGU7XHJcbiAgICBzZWxlY3RlZExpbmtUeXBlOiBMaW5rVHlwZSA9IExpbmtUeXBlLnVybDtcclxuICAgIHNlbGVjdGVkVGFyZ2V0OiBUYXJnZXRUeXBlTmFtZSA9IFRhcmdldFR5cGVOYW1lLm5ldztcclxuICAgIHNlbGVjdGVkUHJvdG9jb2w6IFByb3RvY29sVHlwZU5hbWUgfCBzdHJpbmcgPSBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICBzZWxlY3RlZFpvb20gPSAxLjA7XHJcblxyXG4gICAgcHJvdG9jb2xSZWdleDogUmVnRXhwID0gL14oaHR0cHxodHRwc3xmdHB8bmV3cyk6XFwvXFwvKD89LikvaTtcclxuICAgIGphdmFzY3JpcHRMaW5rUmVnZXg6IFJlZ0V4cCA9IC9qYXZhc2NyaXB0XFw6L2k7XHJcblxyXG4gICAgZG9jdW1lbnRJZCA9IDA7XHJcbiAgICAvL2FuY2hvclRpdGxlID0gJyc7XHJcbiAgICBhbmNob3JUZXh0ID0gJyc7XHJcbiAgICAvL2FuY2hvckJ5TmFtZSA9ICcnO1xyXG4gICAgYWR2aXNvcnlUaXRsZSA9ICcnO1xyXG5cclxuICAgIGlzVXJsUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgbmF0dXJhbEltYWdlV2lkdGggPSAwO1xyXG4gICAgbmF0dXJhbEltYWdlSGVpZ2h0ID0gMDtcclxuICAgIGN1cnJlbnRBcmVhSWQgPSAtMTtcclxuICAgIG15SW1hZ2VNYXA6IFFNU0NLRWRpdG9ySW1hZ2VNYXBMaWI7XHJcbiAgICBzaG93SW1hZ2VNYXBJbmZvcm1hdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIGFuY2hvckRvY3VtZW50czogUU1TQ0tFZGl0b3JMaW5rQW5jaG9yRG9jdW1lbnRbXSA9IFtdO1xyXG4gICAgYW5jaG9yczogSUFuY2hvcltdO1xyXG4gICAgZWRpdG9yQW5jaG9yczogSUFuY2hvcltdO1xyXG4gICAgLy9kb2N1bWVudEFuY2hvcnM6IElBbmNob3JbXTtcclxuXHJcbiAgICBpbWFnZUxpc3RlbmVyczogYW55W10gPSBbXTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdteUltYWdlJylcclxuICAgIG15SW1hZ2VSZWY6IEVsZW1lbnRSZWY8SFRNTEltYWdlRWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbXlTdGF0dXMnKVxyXG4gICAgbXlTdGF0dXNSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsaW5rU2VydmljZTogUU1TQ0tFZGl0b3JMaW5rU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UU1TQ0tFZGl0b3JJbWFnZU1hcENvbXBvbmVudD4sXHJcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvckltYWdlTWFwLFxyXG4gICAgICAgIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgICAgIHNhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VNYXBEYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLm5hdHVyYWxJbWFnZUhlaWdodCA9IHRoaXMuaW1hZ2VNYXBEYXRhLmltYWdlSGVpZ2h0O1xyXG4gICAgICAgIHRoaXMubmF0dXJhbEltYWdlV2lkdGggPSB0aGlzLmltYWdlTWFwRGF0YS5pbWFnZVdpZHRoO1xyXG4gICAgICAgIHRoaXMuaW5pdEZvcm1Db250cm9sKCk7XHJcbiAgICAgICAgdGhpcy5pbml0U3ZnSWNvbnMoaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpbml0RGVmYXVsdFZhbHVlcygpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTGlua1R5cGUgPSBMaW5rVHlwZS51cmw7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldCA9IFRhcmdldFR5cGVOYW1lLm5ldztcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICAgICAgdGhpcy51cmwgPSAnJztcclxuICAgICAgICB0aGlzLnByb2Nlc3NlZFVybCA9ICcnO1xyXG4gICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yVGV4dCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRTdmdJY29ucyhpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSwgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcclxuICAgICAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3ZlY3Rvci1wb2ludGVyJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEljb25TdmcuVkVDVE9SX1BPSU5URVIpKTtcclxuICAgICAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3ZlY3Rvci1jaXJjbGUnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoSWNvblN2Zy5WRUNUT1JfQ0lSQ0xFKSk7XHJcbiAgICAgICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCd2ZWN0b3ItcmVjdGFuZ2xlJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEljb25TdmcuVkVDVE9SX1JFQ1RBTkdMRSkpO1xyXG4gICAgICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgndmVjdG9yLXBvbHlnb24nLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoSWNvblN2Zy5WRUNUT1JfUE9MWUdPTikpO1xyXG4gICAgICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgndmVjdG9yLXJlbW92ZScsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChJY29uU3ZnLlZFQ1RPUl9SRU1PVkUpKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0Rm9ybUNvbnRyb2woKSB7XHJcbiAgICAgICAgY29uc3QgdmFsaWF0aW9uQ29udHJvbHMgPSB7XHJcbiAgICAgICAgICAgIHRhcmdldExpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBwcm90b2NvbExpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBhbmNob3JUZXh0TGlzdDogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAgICAgICAgIG1vZGVMaXN0OiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgICAgICAgem9vbUxpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBsaW5rVHlwZUxpc3Q6IG5ldyBGb3JtQ29udHJvbCgpXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAodGhpcy5pbWFnZU1hcERhdGEubGlua0phdmFTY3JpcHRMaW5rc0FsbG93ZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB2YWxpYXRpb25Db250cm9sc1sndXJsJ10gPSBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsaWF0aW9uQ29udHJvbHNbJ3VybCddID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaW52YWxpZFVSTFZhbGlkYXRvcih0aGlzLmphdmFzY3JpcHRMaW5rUmVnZXgpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW1hZ2VNYXBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHZhbGlhdGlvbkNvbnRyb2xzKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0TGlua1R5cGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGlua1R5cGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlua1R5cGVzLnB1c2goeyBpZDogTGlua1R5cGUudXJsLCBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuTElOS19VUkwgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubGlua1R5cGVzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IExpbmtUeXBlLmFuY2hvclRleHQsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuTElOS19BTkNIT1JfSU5fVEVYVFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFRhcmdldCgpIHtcclxuICAgICAgICBpZiAodGhpcy50YXJnZXRzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHsgaWQ6IFRhcmdldFR5cGVOYW1lLm5ldywgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlRBUlRHRVRfTkVXIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMucHVzaCh7IGlkOiBUYXJnZXRUeXBlTmFtZS5zYW1lLCBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuVEFSR0VUX1NBTUUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRQcm90b2NvbCgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm90b2NvbHMpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7IGlkOiBQcm90b2NvbFR5cGVOYW1lLmh0dHAsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9IVFRQIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnByb3RvY29scy5wdXNoKHsgaWQ6IFByb3RvY29sVHlwZU5hbWUuaHR0cHMsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9IVFRQUyB9KTtcclxuICAgICAgICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7IGlkOiBQcm90b2NvbFR5cGVOYW1lLmZ0cCwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX0ZUUCB9KTtcclxuICAgICAgICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7IGlkOiBQcm90b2NvbFR5cGVOYW1lLm5ld3MsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9ORVcgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvdG9jb2xzLnB1c2goeyBpZDogUHJvdG9jb2xUeXBlTmFtZS5vdGhlciwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX09USEVSIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TW9kZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubW9kZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2Rlcy5wdXNoKHsgaWQ6IEltYWdlTW9kZU5hbWUuUG9pbnRlciwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLklNQUdFX01PREVfUE9JTlRFUiwgaWNvbjogXCJ2ZWN0b3ItcG9pbnRlclwiIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVzLnB1c2goeyBpZDogSW1hZ2VNb2RlTmFtZS5SZWN0YW5nbGUsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5JTUFHRV9NT0RFX1JFQ1RBTkdMRSwgaWNvbjogXCJ2ZWN0b3ItcmVjdGFuZ2xlXCIgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZXMucHVzaCh7IGlkOiBJbWFnZU1vZGVOYW1lLkNpcmNsZSwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLklNQUdFX01PREVfQ0lSQ0xFLCBpY29uOiBcInZlY3Rvci1jaXJjbGVcIiB9KTtcclxuICAgICAgICAgICAgdGhpcy5tb2Rlcy5wdXNoKHsgaWQ6IEltYWdlTW9kZU5hbWUuUG9seWdvbiwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLklNQUdFX01PREVfUE9MWUdPTiwgaWNvbjogXCJ2ZWN0b3ItcG9seWdvblwiIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVzLnB1c2goeyBpZDogSW1hZ2VNb2RlTmFtZS5SZW1vdmUsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5JTUFHRV9NT0RFX1JFTU9WRSwgaWNvbjogXCJ2ZWN0b3ItcmVtb3ZlXCIgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRab29tVHlwZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuem9vbVR5cGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVR5cGVzLnB1c2goeyBpZDogMC4yNSwgbmFtZTogXCIyNSVcIiB9KTtcclxuICAgICAgICAgICAgdGhpcy56b29tVHlwZXMucHVzaCh7IGlkOiAwLjUsIG5hbWU6IFwiNTAlXCIgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVR5cGVzLnB1c2goeyBpZDogMS4wLCBuYW1lOiBcIjEwMCVcIiB9KTtcclxuICAgICAgICAgICAgdGhpcy56b29tVHlwZXMucHVzaCh7IGlkOiAyLjAsIG5hbWU6IFwiMjAwJVwiIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UeXBlcy5wdXNoKHsgaWQ6IDMuMCwgbmFtZTogXCIzMDAlXCIgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRBbmNob3IoKSB7XHJcbiAgICAgICAgdGhpcy5hbmNob3JzID0gW107XHJcbiAgICAgICAgdGhpcy5hbmNob3JzID0gW3sgdmFsdWU6IDAsIHZpZXdWYWx1ZTogJycsIGFuY2hvclZhbHVlOiBMaW5rQW5jaG9yLkJsYW5rIH1dO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmluaXRMaW5rVHlwZSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdFRhcmdldCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdFByb3RvY29sKCk7XHJcbiAgICAgICAgdGhpcy5pbml0TW9kZXMoKTtcclxuICAgICAgICB0aGlzLmluaXRab29tVHlwZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlTGlzdGVuZXJzICYmIHRoaXMuaW1hZ2VMaXN0ZW5lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlTGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGlzdGVuZXIoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uSW1hZ2VMb2FkKCkge1xyXG4gICAgICAgIHRoaXMubmF0dXJhbEltYWdlSGVpZ2h0ID0gdGhpcy5uYXR1cmFsSW1hZ2VIZWlnaHQgIT0gMCA/IHRoaXMubmF0dXJhbEltYWdlSGVpZ2h0IDogdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQubmF0dXJhbEhlaWdodDtcclxuICAgICAgICB0aGlzLm5hdHVyYWxJbWFnZVdpZHRoID0gdGhpcy5uYXR1cmFsSW1hZ2VXaWR0aCAhPSAwID8gdGhpcy5uYXR1cmFsSW1hZ2VXaWR0aCA6IHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aDtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRJbWFnZVNpemUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5teUltYWdlTWFwLnNldE1hcEpzb24oe1xyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmltYWdlTWFwRGF0YS5uYW1lLFxyXG4gICAgICAgICAgICBhcmVhczogdGhpcy5pbWFnZU1hcERhdGEuYXJlYXNcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VNYXBEYXRhLmFyZWFzICYmIHRoaXMuaW1hZ2VNYXBEYXRhLmFyZWFzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlTWFwLmJsdXJBcmVhKHRoaXMubXlJbWFnZU1hcC5jdXJyZW50aWQpO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuY3VycmVudGlkID0gMDtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlTWFwLnNlbGVjdGVkSWQgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0QXJlYSh0aGlzLm15SW1hZ2VNYXAuYXJlYXNbMF0pO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuaGlnaGxpZ2h0QXJlYSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLm15SW1hZ2VSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZUxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LCAnbG9hZCcsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25JbWFnZUxvYWQoKTtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQXZvaWQgZHJhZyZkcm9wIG9mIHRoZSBpbWFnZVxyXG4gICAgICAgIHRoaXMubXlJbWFnZU1hcCA9IG5ldyBRTVNDS0VkaXRvckltYWdlTWFwTGliKHtcclxuICAgICAgICAgICAgY3VzdG9tX2NhbGxiYWNrczoge1xyXG4gICAgICAgICAgICAgICAgXCJvbkFkZEFyZWFcIjogdGhpcy5vbkFkZEFyZWEuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICdvblNlbGVjdEFyZWEnOiB0aGlzLm9uU2VsZWN0QXJlYS5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgJ29uUmVtb3ZlQXJlYSc6IHRoaXMub25SZW1vdmVBcmVhLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICAnb25TdGF0dXNNZXNzYWdlJzogdGhpcy5vblN0YXR1c01lc3NhZ2UuYmluZCh0aGlzKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWFnZUVsZW1lbnQ6IHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICBib3VuZGluZ19ib3g6IGZhbHNlLFxyXG4gICAgICAgICAgICBDTF9EUkFXX1NIQVBFOiAnI0YwMCcsXHJcbiAgICAgICAgICAgIENMX05PUk1fU0hBUEU6ICcjQUFBJyxcclxuICAgICAgICAgICAgQ0xfSElHSExJR0hUX1NIQVBFOiAnI0YwMCcsXHJcbiAgICAgICAgICAgIHN0cmluZ3M6IHtcclxuICAgICAgICAgICAgICAgIFwiUE9MWUdPTl9EUkFXXCI6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QT0xZR09OX0RSQVcsXHJcbiAgICAgICAgICAgICAgICBcIlJFQ1RBTkdMRV9EUkFXXCI6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5SRUNUQU5HTEVfRFJBVyxcclxuICAgICAgICAgICAgICAgIFwiU1FVQVJFX0RSQVdcIjogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlNRVUFSRV9EUkFXLFxyXG4gICAgICAgICAgICAgICAgJ1JFQURZJzogJycsXHJcbiAgICAgICAgICAgICAgICAnUkVDVEFOR0xFX01PVkUnOiAnJyxcclxuICAgICAgICAgICAgICAgICdSRUNUQU5HTEVfUkVTSVpFX1RPUCc6ICcnLFxyXG4gICAgICAgICAgICAgICAgJ1JFQ1RBTkdMRV9SRVNJWkVfUklHSFQnOiAnJyxcclxuICAgICAgICAgICAgICAgICdSRUNUQU5HTEVfUkVTSVpFX0JPVFRPTSc6ICcnLFxyXG4gICAgICAgICAgICAgICAgJ1JFQ1RBTkdMRV9SRVNJWkVfTEVGVCc6ICcnLFxyXG4gICAgICAgICAgICAgICAgJ1NRVUFSRV9NT1ZFJzogJycsXHJcbiAgICAgICAgICAgICAgICAnU1FVQVJFX1JFU0laRV9UT1AnOiAnJyxcclxuICAgICAgICAgICAgICAgICdTUVVBUkVfUkVTSVpFX1JJR0hUJzogJycsXHJcbiAgICAgICAgICAgICAgICAnU1FVQVJFX1JFU0laRV9CT1RUT00nOiAnJyxcclxuICAgICAgICAgICAgICAgICdTUVVBUkVfUkVTSVpFX0xFRlQnOiAnJyxcclxuICAgICAgICAgICAgICAgICdQT0xZR09OX01PVkUnOiAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VMaW5rVXJsKHVybDogc3RyaW5nLCBkZWZhdWx0UHJvdG9jb2xOYW1lPzogUHJvdG9jb2xUeXBlTmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gdGhpcy5wcm90b2NvbFJlZ2V4LmV4ZWModXJsKTtcclxuICAgICAgICBpZiAocHJvdG9jb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRVcmwgPSB1cmwuc3Vic3RyKHByb3RvY29sWzBdLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5wcm9jZXNzZWRVcmw7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm90b2NvbCA9IHByb3RvY29sWzBdLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmphdmFzY3JpcHRMaW5rUmVnZXgudGVzdCh1cmwpICYmICF0aGlzLmltYWdlTWFwRGF0YS5saW5rSmF2YVNjcmlwdExpbmtzQWxsb3dlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkVXJsID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5wcm9jZXNzZWRVcmw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRVcmwgPSB1cmw7XHJcbiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5wcm9jZXNzZWRVcmw7XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuc2VsZWN0ZWRQcm90b2NvbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID0gZGVmYXVsdFByb3RvY29sTmFtZSB8fCBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RBcmVhKGFyZWEpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRBcmVhSWQgPSBhcmVhLmFpZDtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZU1hcEluZm9ybWF0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RlID09IEltYWdlTW9kZU5hbWUuUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5yZW1vdmVBcmVhKHRoaXMuY3VycmVudEFyZWFJZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGFyZWEuYWhyZWYubWF0Y2goL14jKC4qKSQvKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbmNob3JUZXh0ID0gYXJlYS5haHJlZi5zbGljZSgxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9IExpbmtUeXBlLmFuY2hvclRleHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGlua1R5cGUgPSBMaW5rVHlwZS51cmw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnNlTGlua1VybChhcmVhLmFocmVmKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0ID0gYXJlYS5hdGFyZ2V0O1xyXG4gICAgICAgICAgICB0aGlzLmFkdmlzb3J5VGl0bGUgPSBhcmVhLmFhbHQ7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25SZW1vdmVBcmVhKCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudEFyZWFJZCA9IC0xO1xyXG4gICAgICAgIHRoaXMuc2hvd0ltYWdlTWFwSW5mb3JtYXRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVNYXAoKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50QXJlYUlkID0gLTE7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2VNYXBJbmZvcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubXlJbWFnZU1hcC5yZW1vdmVBbGxBcmVhcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3RhdHVzTWVzc2FnZSh0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5teVN0YXR1c1JlZikge1xyXG4gICAgICAgICAgICB0aGlzLm15U3RhdHVzUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGV4dCB8fCAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25VcmxLZXl1cCgpIHtcclxuICAgICAgICB0aGlzLmlzVXJsUHJvY2Vzc2luZyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudXJsICE9IHRoaXMucHJvY2Vzc2VkVXJsKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyc2VMaW5rVXJsKHRoaXMudXJsKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBcmVhVmFsdWVzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzVXJsUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXJsQ2hhbmdlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1VybFByb2Nlc3NpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5vblVybEtleXVwKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQW5jaG9yVGV4dENoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFyZWFWYWx1ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblByb3RvY29sQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVGFyZ2V0Q2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQWRkQXJlYShpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50QXJlYUlkID0gaWQ7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2VNYXBJbmZvcm1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pbml0RGVmYXVsdFZhbHVlcygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUFyZWFWYWx1ZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFyZWFJZCA+IC0xKSB7XHJcbiAgICAgICAgICAgIHZhciBhaHJlZiA9IHRoaXMuYnVpbGRVcmxXaXRoUHJvdG9jb2woKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PSBMaW5rVHlwZS5hbmNob3JUZXh0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuYXJlYXNbdGhpcy5jdXJyZW50QXJlYUlkXS5hdGFyZ2V0ID0gVGFyZ2V0VHlwZU5hbWUuc2FtZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5hcmVhc1t0aGlzLmN1cnJlbnRBcmVhSWRdLmFhbHQgPSB0aGlzLmFuY2hvclRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuYXJlYXNbdGhpcy5jdXJyZW50QXJlYUlkXS5hdGFyZ2V0ID0gdGhpcy5zZWxlY3RlZFRhcmdldCB8fCBUYXJnZXRUeXBlTmFtZS5uZXc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuYXJlYXNbdGhpcy5jdXJyZW50QXJlYUlkXS5hYWx0ID0gdGhpcy5hZHZpc29yeVRpdGxlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5hcmVhc1t0aGlzLmN1cnJlbnRBcmVhSWRdLmFocmVmID0gYWhyZWY7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkVXJsV2l0aFByb3RvY29sKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTGlua1R5cGUgPT0gTGlua1R5cGUuYW5jaG9yVGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyMnICsgKHRoaXMuYW5jaG9yVGV4dCB8fCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghIXRoaXMucHJvY2Vzc2VkVXJsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgKyB0aGlzLnByb2Nlc3NlZFVybDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZURpYWxvZygpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW9kZUNoYW5nZShlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZSA9IGUudmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RlID09IEltYWdlTW9kZU5hbWUuUG9pbnRlciB8fCB0aGlzLnNlbGVjdGVkTW9kZSA9PSBJbWFnZU1vZGVOYW1lLlJlbW92ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuaXNfZHJhd2luZyA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5uZXh0U2hhcGUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2RlZmF1bHQnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlTWFwLm5leHRTaGFwZSA9IHRoaXMuc2VsZWN0ZWRNb2RlO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnY3Jvc3NoYWlyJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25ab29tQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0SW1hZ2VTaXplKCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXlJbWFnZU1hcCkge1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuc2NhbGVBbGxBcmVhcyh0aGlzLnNlbGVjdGVkWm9vbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uTGlua1R5cGVDaGFuZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PT0gTGlua1R5cGUuYW5jaG9yVGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldEVkaXRvckFuY2hvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZUFyZWFWYWx1ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFZGl0b3JBbmNob3IoKSB7XHJcbiAgICAgICAgdGhpcy5hbmNob3JEb2N1bWVudHMgPSBbXTtcclxuICAgICAgICBpZiAodGhpcy5pbWFnZU1hcERhdGEuZWRpdG9yQ29udGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmFuY2hvckRvY3VtZW50cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICAgICAgZW50aXR5SWQ6IDAsXHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudElkOiAwLFxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRUeXBlSWQ6IDAsXHJcbiAgICAgICAgICAgICAgICByaWNoVGV4dDogdGhpcy5pbWFnZU1hcERhdGEuZWRpdG9yQ29udGVudFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXRBbmNob3JEb2N1bWVudCh0aGlzLmFuY2hvckRvY3VtZW50cyk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JBbmNob3JzID0gdGhpcy5hbmNob3JzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEltYWdlU2l6ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5teUltYWdlUmVmKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5uYXR1cmFsSW1hZ2VXaWR0aCAqIHRoaXMuc2VsZWN0ZWRab29tO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLm5hdHVyYWxJbWFnZUhlaWdodCAqIHRoaXMuc2VsZWN0ZWRab29tO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBgJHt3aWR0aH1weDtgKTtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1weDtgKTtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9IHRoaXMuc2VsZWN0ZWRNb2RlID09IEltYWdlTW9kZU5hbWUuUG9pbnRlciB8fCB0aGlzLnNlbGVjdGVkTW9kZSA9PSBJbWFnZU1vZGVOYW1lLlJlbW92ZSA/ICdkZWZhdWx0JyA6ICdjcm9zc2hhaXInO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlSGFuZGJvb2soaXNPbmx5RG9jdW1lbnQ6IGJvb2xlYW4sIGlzQW5jaG9yRG9jdW1lbnQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yUmVsYXRpb24oKTtcclxuICAgICAgICBkYXRhLmlzT25seURvY3VtZW50ID0gaXNPbmx5RG9jdW1lbnQ7XHJcbiAgICAgICAgZGF0YS5pc0VuYWJsZUZvbGRlciA9ICFpc09ubHlEb2N1bWVudDtcclxuICAgICAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JSZWxhdGVkQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnNjUwcHgnLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICc2NTBweCcsXHJcbiAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlXHJcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0FuY2hvckRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRJZCA9IHJlc3VsdC5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzLmFuY2hvclRpdGxlID0gYCR7cmVzdWx0LnRpdGxlfSgke3Jlc3VsdC5pZH0pYDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbmNob3JEb2N1bWVudChyZXN1bHQuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFyc2VMaW5rVXJsKHJlc3VsdC51cmwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLm90aGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYWR2aXNvcnlUaXRsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZHZpc29yeVRpdGxlID0gcmVzdWx0LnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBbmNob3JEb2N1bWVudChkb2N1bWVudElkOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmxpbmtTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRBbmNob3JEb2N1bWVudExpc3QoZG9jdW1lbnRJZClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3JEb2N1bWVudHMgPSByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBbmNob3JEb2N1bWVudCh0aGlzLmFuY2hvckRvY3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy90aGlzLmRvY3VtZW50QW5jaG9ycyA9IHRoaXMuYW5jaG9ycztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3JEb2N1bWVudHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFuY2hvckRvY3VtZW50KHRoaXMuYW5jaG9yRG9jdW1lbnRzKTtcclxuICAgICAgICAgICAgICAgICAgICAvL3RoaXMuZG9jdW1lbnRBbmNob3JzID0gdGhpcy5hbmNob3JzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBbmNob3JEb2N1bWVudChhbmNob3JEb2N1bWVudDogUU1TQ0tFZGl0b3JMaW5rQW5jaG9yRG9jdW1lbnRbXSkge1xyXG4gICAgICAgIHRoaXMuaW5pdEFuY2hvcigpO1xyXG4gICAgICAgIGxldCBpZCA9IDM7XHJcbiAgICAgICAgaWYgKGFuY2hvckRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIGFuY2hvckRvY3VtZW50LmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGUucmljaFRleHQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb21Db250ZW50ID0gZGl2O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYVRhZ3MgPSBkb21Db250ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYVRhZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYVRhZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnID0gYVRhZ3NbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWcubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFuY2hvcnMuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHguYW5jaG9yVmFsdWUgPT09IHRhZy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3JzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdWYWx1ZTogdGFnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclZhbHVlOiB0YWcubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmFuY2hvcnMucHVzaCh7XHJcbiAgICAgICAgLy8gICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIC8vICAgICB2aWV3VmFsdWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5BTkNIT1JfQVRUQUNITUVOVCxcclxuICAgICAgICAvLyAgICAgYW5jaG9yVmFsdWU6IExpbmtBbmNob3IuQXR0YWNobWVudFxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIC8vIHRoaXMuYW5jaG9ycy5wdXNoKHtcclxuICAgICAgICAvLyAgICAgdmFsdWU6IDIsXHJcbiAgICAgICAgLy8gICAgIHZpZXdWYWx1ZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLkFOQ0hPUl9SRUxBVEVEX0RPQ1VNRU5ULFxyXG4gICAgICAgIC8vICAgICBhbmNob3JWYWx1ZTogTGlua0FuY2hvci5SZWxhdGVkXHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGF0dGFjaG1lbnQoKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBRTVNDS0VkaXRvclBhcmFtdGVyKCk7XHJcbiAgICAgICAgZGF0YS5tb2R1bGUgPSB0aGlzLmltYWdlTWFwRGF0YS5tb2R1bGU7XHJcbiAgICAgICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMuaW1hZ2VNYXBEYXRhLmVudGl0eUlkO1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihMaW5rQXR0YWNobWVudENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICB3aWR0aDogJzY1MHB4JyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAnNjUwcHgnLFxyXG4gICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxyXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnNlTGlua1VybChyZXN1bHQudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLm90aGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5hZHZpc29yeVRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9IHJlc3VsdC50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBcmVhVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMubXlJbWFnZU1hcC5nZXRNYXBKc29uKCk7XHJcbiAgICAgICAgZGF0YS5pbWFnZUhlaWdodCA9IHRoaXMubmF0dXJhbEltYWdlSGVpZ2h0O1xyXG4gICAgICAgIGRhdGEuaW1hZ2VXaWR0aCA9IHRoaXMubmF0dXJhbEltYWdlV2lkdGg7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cInFtc2NrZWRpdG9yLWltYWdlbWFwXCIgY2xhc3M9XCJxbXNja2VkaXRvciBxbXNja2VkaXRvcl9faW1hZ2VtYXBfX2NvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLWltYWdlbWFwLWhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGlkPVwicW1zY2tlZGl0b3ItaW1hZ2VtYXAtaGVhZGVyXzAwMVwiIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cInFtc2NrZWRpdG9yIGJ1dHRvbl9fY2xvc2VcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbG9zZURpYWxvZygpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJxbXNja2VkaXRvci1pbWFnZW1hcC1oZWFkZXJfMDAyXCIgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8aDIgaWQ9XCJxbXNja2VkaXRvci1pbWFnZW1hcF8wMDJfMDAxXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBMQU5HLlFNU0NLRURJVE9SLklNQUdFX01BUF9QUk9QRVJUSUVTIH19XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJxbXNja2VkaXRvci1pbWFnZW1hcC1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLWltYWdlbWFwLWNvbnRlbnRfMDAxXCIgY2xhc3M9XCJjb2wtMTIgbXQtMSBwbC0yIHByLTJcIj5cclxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwgaWQ9XCJxbXNja2VkaXRvci1pbWFnZW1hcC1wYW5lbFwiIFtleHBhbmRlZF09XCJ0cnVlXCIgKG9wZW5lZCk9XCIodHJ1ZSlcIiAoY2xvc2VkKT1cIihmYWxzZSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJxbXNja2VkaXRvci1pbWFnZW1hcC1wYW5lbF8wMDFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwicW1zY2tlZGl0b3ItaW1hZ2VtYXAtcGFuZWxfMDAxXzAwMVwiIGNsYXNzPVwicW1zY2tlZGl0b3JfX2ltYWdlbWFwX19pbmZvcm1hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImltYWdlTWFwRm9ybUdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTW9kZVwiIGZvcm1Db250cm9sTmFtZT1cIm1vZGVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Nb2RlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgbW9kZSBvZiBtb2Rlc1wiIFt2YWx1ZV09XCJtb2RlLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJtb2RlLm5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJyZWRcIiBbc3ZnSWNvbl09XCJtb2RlLmljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJtYXJnaW4tbGVmdDogMTVweDtcIiAjbXlTdGF0dXM+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImNvbC0xMiBwbC0zIHByLTMgcGItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57eyBMQU5HLlFNU0NLRURJVE9SLlpPT00gfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRab29tXCIgZm9ybUNvbnRyb2xOYW1lPVwiem9vbUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uWm9vbUNoYW5nZSgpXCIgZGlzYWJsZU9wdGlvbkNlbnRlcmluZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgem9vbVR5cGUgb2Ygem9vbVR5cGVzXCIgW3ZhbHVlXT1cInpvb21UeXBlLmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHpvb21UeXBlLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6ICFzaG93SW1hZ2VNYXBJbmZvcm1hdGlvbn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJjb2wtMTIgcGwtMyBwci0zIHBiLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgTEFORy5RTVNDS0VESVRPUi5MSU5LX1RZUEUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRMaW5rVHlwZVwiIGZvcm1Db250cm9sTmFtZT1cImxpbmtUeXBlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25MaW5rVHlwZUNoYW5nZSgpXCIgZGlzYWJsZU9wdGlvbkNlbnRlcmluZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rVHlwZXNcIiBbdmFsdWVdPVwibGluay5pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCIgKm5nSWY9XCJzZWxlY3RlZExpbmtUeXBlID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiY29sLTEyIHBsLTMgcHItMyBwYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7IExBTkcuUU1TQ0tFRElUT1IuVEFSR0VUIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGFyZ2V0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGFyZ2V0TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UYXJnZXRDaGFuZ2UoKVwiIGRpc2FibGVPcHRpb25DZW50ZXJpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRhcmdldCBvZiB0YXJnZXRzXCIgW3ZhbHVlXT1cInRhcmdldC5pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0YXJnZXQubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogIXNob3dJbWFnZU1hcEluZm9ybWF0aW9ufVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZExpbmtUeXBlID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiY29sLTEyIHBsLTMgcHItXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7IExBTkcuUU1TQ0tFRElUT1IuQU5DSE9SX0JZX05BTUUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiYW5jaG9yVGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImFuY2hvclRleHRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkFuY2hvclRleHRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBlZGl0b3JBbmNob3Igb2YgZWRpdG9yQW5jaG9yc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJlZGl0b3JBbmNob3IuYW5jaG9yVmFsdWVcIiBkaXNhYmxlT3B0aW9uQ2VudGVyaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlZGl0b3JBbmNob3Iudmlld1ZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiAhc2hvd0ltYWdlTWFwSW5mb3JtYXRpb259XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkTGlua1R5cGUgPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJjb2wtMTIgcGwtMyBwci0zIHBiLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFByb3RvY29sXCIgZm9ybUNvbnRyb2xOYW1lPVwicHJvdG9jb2xMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblByb3RvY29sQ2hhbmdlKClcIiBkaXNhYmxlT3B0aW9uQ2VudGVyaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm90b2NvbCBvZiBwcm90b2NvbHNcIiBbdmFsdWVdPVwicHJvdG9jb2wuaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvdG9jb2wubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJjb2wtMTIgcGwtMyBwci0zIHBiLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgTEFORy5RTVNDS0VESVRPUi5MSU5LX1VSTCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwidXJsXCIgbmFtZT1cInVybFwiIGZvcm1Db250cm9sTmFtZT1cInVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25VcmxDaGFuZ2UoKVwiIChrZXl1cCk9XCJvblVybEtleXVwKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImltYWdlTWFwRm9ybUdyb3VwLmdldCgndXJsJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExBTkcuUU1TQ0tFRElUT1IuUkVRVUlSRURfVVJMIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpbWFnZU1hcEZvcm1Hcm91cC5nZXQoJ3VybCcpLmhhc0Vycm9yKCdpbnZhbGlkVVJMJylcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExBTkcuUU1TQ0tFRElUT1IuSU5WQUxJRF9VUkwgfX08L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBidXR0b25fX2dyb3Vwc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNhdmVcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImF0dGFjaG1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBMQU5HLlFNU0NLRURJVE9SLkFUVEFDSE1FTlQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNhdmVcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImVIYW5kYm9vayhmYWxzZSwgZmFsc2UpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IExBTkcuUU1TQ0tFRElUT1IuSEFOREJPT0sgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLWltYWdlbWFwLXBhbmVsXzAwMV8wMDJcIiBjbGFzcz1cInFtc2NrZWRpdG9yX19pbWFnZW1hcF9fbWFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgI215SW1hZ2UgW3NyY109XCJpbWFnZU1hcERhdGEuaW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwicW1zY2tlZGl0b3ItaW1hZ2VtYXAtcGFuZWxfMDAxXzAwM1wiIGNsYXNzPVwicW1zY2tlZGl0b3IgYnV0dG9uX19ncm91cHMgcm93IG1yLTAgbWwtMCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCBwci0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZVwiIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlTWFwKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBMQU5HLlFNU0NLRURJVE9SLlJFTU9WRV9NQVAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IHByLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlXCIgbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJzYXZlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBMQU5HLlFNU0NLRURJVE9SLlNBVkUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IHBsLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWxcIiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgTEFORy5RTVNDS0VESVRPUi5DQU5DRUwgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
502
|
+
QMSCKEditorImageMapComponent.decorators = [
|
503
|
+
{ type: Component, args: [{
|
504
|
+
selector: 'app-qmsck-imagemap',
|
505
|
+
template: "<div id=\"qmsckeditor-imagemap\" class=\"qmsckeditor qmsckeditor__imagemap__container\">\r\n <div id=\"qmsckeditor-imagemap-header\">\r\n <span id=\"qmsckeditor-imagemap-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-imagemap-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-imagemap_002_001\">\r\n {{ LANG.QMSCKEDITOR.IMAGE_MAP_PROPERTIES }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-content\">\r\n <div id=\"qmsckeditor-imagemap-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel id=\"qmsckeditor-imagemap-panel\" [expanded]=\"true\" (opened)=\"(true)\" (closed)=\"(false)\">\r\n <div id=\"qmsckeditor-imagemap-panel_001\">\r\n <div id=\"qmsckeditor-imagemap-panel_001_001\" class=\"qmsckeditor__imagemap__information\">\r\n <form [formGroup]=\"imageMapFormGroup\">\r\n <div class=\"row\">\r\n <div class=\"col-9\">\r\n <mat-button-toggle-group [(ngModel)]=\"selectedMode\" formControlName=\"modeList\"\r\n (change)=\"onModeChange($event)\">\r\n <mat-button-toggle *ngFor=\"let mode of modes\" [value]=\"mode.id\"\r\n [matTooltip]=\"mode.name\">\r\n <mat-icon color=\"red\" [svgIcon]=\"mode.icon\" aria-hidden=\"true\">\r\n </mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n <span style=\"margin-left: 15px;\" #myStatus></span>\r\n </div>\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ZOOM }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedZoom\" formControlName=\"zoomList\"\r\n (ngModelChange)=\"onZoomChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let zoomType of zoomTypes\" [value]=\"zoomType.id\">\r\n {{ zoomType.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLinkType\" formControlName=\"linkTypeList\"\r\n (ngModelChange)=\"onLinkTypeChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-3\" *ngIf=\"selectedLinkType === 0\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\"\r\n (ngModelChange)=\"onTargetChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 1\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorTextList\"\r\n (ngModelChange)=\"onAnchorTextChange()\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\" disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 0\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\"\r\n (ngModelChange)=\"onProtocolChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-5\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\"\r\n (ngModelChange)=\"onUrlChange()\" (keyup)=\"onUrlKeyup()\" />\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('required')\">{{\r\n LANG.QMSCKEDITOR.REQUIRED_URL }}\r\n </mat-error>\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('invalidURL')\">{{\r\n LANG.QMSCKEDITOR.INVALID_URL }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"row button__groups\">\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_002\" class=\"qmsckeditor__imagemap__map\">\r\n <img #myImage [src]=\"imageMapData.imageUrl\">\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_003\" class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4\">\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"removeMap()\">\r\n {{ LANG.QMSCKEDITOR.REMOVE_MAP }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"save()\">\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pl-0\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"cancel()\">\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n</div>",
|
506
|
+
styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:470px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .page-break,.qmsckeditor__imagemap__container .mat-form-field{width:100%}.qmsckeditor__imagemap__container .qmsckeditor__imagemap__information{position:relative}.qmsckeditor__imagemap__container .qmsckeditor__imagemap__map{overflow:auto;width:800px;min-height:371px;position:relative;max-height:460px}.qmsckeditor__imagemap__container .mat-button-toggle-checked{border:1px solid #000!important}.qmsckeditor__imagemap__container .hidden{visibility:hidden}"]
|
507
|
+
},] }
|
508
|
+
];
|
509
|
+
QMSCKEditorImageMapComponent.ctorParameters = () => [
|
510
|
+
{ type: Renderer2 },
|
511
|
+
{ type: ChangeDetectorRef },
|
512
|
+
{ type: MatDialog },
|
513
|
+
{ type: TranslateLibraryService },
|
514
|
+
{ type: QMSCKEditorLinkService },
|
515
|
+
{ type: MatDialogRef },
|
516
|
+
{ type: QMSCKEditorImageMap, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
|
517
|
+
{ type: MatIconRegistry },
|
518
|
+
{ type: DomSanitizer }
|
519
|
+
];
|
520
|
+
QMSCKEditorImageMapComponent.propDecorators = {
|
521
|
+
myImageRef: [{ type: ViewChild, args: ['myImage',] }],
|
522
|
+
myStatusRef: [{ type: ViewChild, args: ['myStatus',] }]
|
523
|
+
};
|
524
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAvcW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQVUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFz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Q0FBQyxrQkFBa0IsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7O1lBL2hCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsczZVQUFxRDs7YUFFeEQ7OztZQTVEK0YsU0FBUztZQUE5RSxpQkFBaUI7WUFDbkMsU0FBUztZQUVULHVCQUF1QjtZQWF2QixzQkFBc0I7WUFmWCxZQUFZO1lBSXZCLG1CQUFtQix1QkE2R25CLE1BQU0sU0FBQyxlQUFlO1lBdkd0QixlQUFlO1lBRGYsWUFBWTs7O3lCQTJGaEIsU0FBUyxTQUFDLFNBQVM7MEJBR25CLFNBQVMsU0FBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9ySW1hZ2VNYXAgfSBmcm9tICcuLi8uLi9tb2RlbHMvcW1zLWNrZWRpdG9yLWltYWdlbWFwLm1vZGVsJztcclxuaW1wb3J0IHsgTGlua1R5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bXMvbGluay10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBQcm90b2NvbFR5cGVOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL3Byb3RvY29sLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFRhcmdldFR5cGVOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL3RhcmdldC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBJbWFnZU1vZGVOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL2ltYWdlLW1vZGUuZW51bSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgSWNvblN2ZyB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb25zdGFudHMvaWNvblN2Zy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckltYWdlTWFwTGliIH0gZnJvbSAnLi9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAubGliJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXJlbGF0aW9uLm1vZGVsJztcclxuaW1wb3J0IFFNU0NLRWRpdG9yUGFyYW10ZXIgZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItcGFyYW1ldGVyLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JMaW5rU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci1saW5rLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclJlbGF0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9xbXMtY2tlZGl0b3ItcmVsYXRpb24vcW1zY2tlZGl0b3ItcmVsYXRlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaW5rQXR0YWNobWVudENvbXBvbmVudCB9IGZyb20gJy4uL3Ftcy1ja2VkaXRvci1saW5rL2F0dGFjaG1lbnRzL2xpbmstYXR0YWNobWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckxpbmtBbmNob3JEb2N1bWVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLWxpbmstYW5jaG9yLWRvY3VtZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgTGlua0FuY2hvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtcy9saW5rLWFuY2hvci5lbnVtJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaW52YWxpZFVSTFZhbGlkYXRvciB9IGZyb20gJy4vcW1zLWNrZWRpdG9yLWltYWdlbWFwLnZhbGlkYXRvcic7XHJcblxyXG5pbnRlcmZhY2UgSUxpbmtUeXBlIHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJVGFyZ2V0IHtcclxuICAgIGlkOiBUYXJnZXRUeXBlTmFtZTtcclxuICAgIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElQcm90b2NvbCB7XHJcbiAgICBpZDogUHJvdG9jb2xUeXBlTmFtZTtcclxuICAgIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElNb2RlIHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJWm9vbVR5cGUge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElBbmNob3Ige1xyXG4gICAgdmFsdWU6IG51bWJlcjtcclxuICAgIHZpZXdWYWx1ZTogc3RyaW5nO1xyXG4gICAgYW5jaG9yVmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1xbXNjay1pbWFnZW1hcCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Ftcy1ja2VkaXRvci1pbWFnZW1hcC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNDS0VkaXRvckltYWdlTWFwQ29tcG9uZW50IGV4dGVuZHMgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIExBTkc6IGFueTtcclxuICAgIGltYWdlTWFwRm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBpbWFnZU1hcERhdGE6IFFNU0NLRWRpdG9ySW1hZ2VNYXA7XHJcbiAgICBsaW5rVHlwZXM6IElMaW5rVHlwZVtdID0gW107XHJcbiAgICB0YXJnZXRzOiBJVGFyZ2V0W10gPSBbXTtcclxuICAgIHByb3RvY29sczogSVByb3RvY29sW10gPSBbXTtcclxuICAgIG1vZGVzOiBJTW9kZVtdID0gW107XHJcbiAgICB6b29tVHlwZXM6IElab29tVHlwZVtdID0gW107XHJcbiAgICB1cmwgPSAnJztcclxuICAgIHByb2Nlc3NlZFVybCA9ICcnO1xyXG4gICAgc2VsZWN0ZWRNb2RlOiBJbWFnZU1vZGVOYW1lID0gSW1hZ2VNb2RlTmFtZS5SZWN0YW5nbGU7XHJcbiAgICBzZWxlY3RlZExpbmtUeXBlOiBMaW5rVHlwZSA9IExpbmtUeXBlLnVybDtcclxuICAgIHNlbGVjdGVkVGFyZ2V0OiBUYXJnZXRUeXBlTmFtZSA9IFRhcmdldFR5cGVOYW1lLm5ldztcclxuICAgIHNlbGVjdGVkUHJvdG9jb2w6IFByb3RvY29sVHlwZU5hbWUgfCBzdHJpbmcgPSBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICBzZWxlY3RlZFpvb20gPSAxLjA7XHJcblxyXG4gICAgcHJvdG9jb2xSZWdleDogUmVnRXhwID0gL14oaHR0cHxodHRwc3xmdHB8bmV3cyk6XFwvXFwvKD89LikvaTtcclxuICAgIGphdmFzY3JpcHRMaW5rUmVnZXg6IFJlZ0V4cCA9IC9qYXZhc2NyaXB0XFw6L2k7XHJcblxyXG4gICAgZG9jdW1lbnRJZCA9IDA7XHJcbiAgICAvL2FuY2hvclRpdGxlID0gJyc7XHJcbiAgICBhbmNob3JUZXh0ID0gJyc7XHJcbiAgICAvL2FuY2hvckJ5TmFtZSA9ICcnO1xyXG4gICAgYWR2aXNvcnlUaXRsZSA9ICcnO1xyXG5cclxuICAgIGlzVXJsUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgbmF0dXJhbEltYWdlV2lkdGggPSAwO1xyXG4gICAgbmF0dXJhbEltYWdlSGVpZ2h0ID0gMDtcclxuICAgIGN1cnJlbnRBcmVhSWQgPSAtMTtcclxuICAgIG15SW1hZ2VNYXA6IFFNU0NLRWRpdG9ySW1hZ2VNYXBMaWI7XHJcbiAgICBzaG93SW1hZ2VNYXBJbmZvcm1hdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIGFuY2hvckRvY3VtZW50czogUU1TQ0tFZGl0b3JMaW5rQW5jaG9yRG9jdW1lbnRbXSA9IFtdO1xyXG4gICAgYW5jaG9yczogSUFuY2hvcltdO1xyXG4gICAgZWRpdG9yQW5jaG9yczogSUFuY2hvcltdO1xyXG4gICAgLy9kb2N1bWVudEFuY2hvcnM6IElBbmNob3JbXTtcclxuXHJcbiAgICBpbWFnZUxpc3RlbmVyczogYW55W10gPSBbXTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdteUltYWdlJylcclxuICAgIG15SW1hZ2VSZWY6IEVsZW1lbnRSZWY8SFRNTEltYWdlRWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbXlTdGF0dXMnKVxyXG4gICAgbXlTdGF0dXNSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsaW5rU2VydmljZTogUU1TQ0tFZGl0b3JMaW5rU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UU1TQ0tFZGl0b3JJbWFnZU1hcENvbXBvbmVudD4sXHJcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvckltYWdlTWFwLFxyXG4gICAgICAgIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgICAgIHNhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VNYXBEYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLm5hdHVyYWxJbWFnZUhlaWdodCA9IHRoaXMuaW1hZ2VNYXBEYXRhLmltYWdlSGVpZ2h0O1xyXG4gICAgICAgIHRoaXMubmF0dXJhbEltYWdlV2lkdGggPSB0aGlzLmltYWdlTWFwRGF0YS5pbWFnZVdpZHRoO1xyXG4gICAgICAgIHRoaXMuaW5pdEZvcm1Db250cm9sKCk7XHJcbiAgICAgICAgdGhpcy5pbml0U3ZnSWNvbnMoaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpbml0RGVmYXVsdFZhbHVlcygpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTGlua1R5cGUgPSBMaW5rVHlwZS51cmw7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldCA9IFRhcmdldFR5cGVOYW1lLm5ldztcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICAgICAgdGhpcy51cmwgPSAnJztcclxuICAgICAgICB0aGlzLnByb2Nlc3NlZFVybCA9ICcnO1xyXG4gICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yVGV4dCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRTdmdJY29ucyhpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSwgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcclxuICAgICAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3ZlY3Rvci1wb2ludGVyJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEljb25TdmcuVkVDVE9SX1BPSU5URVIpKTtcclxuICAgICAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3ZlY3Rvci1jaXJjbGUnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoSWNvblN2Zy5WRUNUT1JfQ0lSQ0xFKSk7XHJcbiAgICAgICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCd2ZWN0b3ItcmVjdGFuZ2xlJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEljb25TdmcuVkVDVE9SX1JFQ1RBTkdMRSkpO1xyXG4gICAgICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgndmVjdG9yLXBvbHlnb24nLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoSWNvblN2Zy5WRUNUT1JfUE9MWUdPTikpO1xyXG4gICAgICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgndmVjdG9yLXJlbW92ZScsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChJY29uU3ZnLlZFQ1RPUl9SRU1PVkUpKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0Rm9ybUNvbnRyb2woKSB7XHJcbiAgICAgICAgY29uc3QgdmFsaWF0aW9uQ29udHJvbHMgPSB7XHJcbiAgICAgICAgICAgIHRhcmdldExpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBwcm90b2NvbExpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBhbmNob3JUZXh0TGlzdDogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAgICAgICAgIG1vZGVMaXN0OiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgICAgICAgem9vbUxpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBsaW5rVHlwZUxpc3Q6IG5ldyBGb3JtQ29udHJvbCgpXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAodGhpcy5pbWFnZU1hcERhdGEubGlua0phdmFTY3JpcHRMaW5rc0FsbG93ZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB2YWxpYXRpb25Db250cm9sc1sndXJsJ10gPSBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsaWF0aW9uQ29udHJvbHNbJ3VybCddID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaW52YWxpZFVSTFZhbGlkYXRvcih0aGlzLmphdmFzY3JpcHRMaW5rUmVnZXgpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW1hZ2VNYXBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHZhbGlhdGlvbkNvbnRyb2xzKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0TGlua1R5cGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGlua1R5cGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlua1R5cGVzLnB1c2goeyBpZDogTGlua1R5cGUudXJsLCBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuTElOS19VUkwgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubGlua1R5cGVzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IExpbmtUeXBlLmFuY2hvclRleHQsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuTElOS19BTkNIT1JfSU5fVEVYVFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFRhcmdldCgpIHtcclxuICAgICAgICBpZiAodGhpcy50YXJnZXRzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHsgaWQ6IFRhcmdldFR5cGVOYW1lLm5ldywgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlRBUlRHRVRfTkVXIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMucHVzaCh7IGlkOiBUYXJnZXRUeXBlTmFtZS5zYW1lLCBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuVEFSR0VUX1NBTUUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRQcm90b2NvbCgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm90b2NvbHMpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7IGlkOiBQcm90b2NvbFR5cGVOYW1lLmh0dHAsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9IVFRQIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnByb3RvY29scy5wdXNoKHsgaWQ6IFByb3RvY29sVHlwZU5hbWUuaHR0cHMsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9IVFRQUyB9KTtcclxuICAgICAgICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7IGlkOiBQcm90b2NvbFR5cGVOYW1lLmZ0cCwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX0ZUUCB9KTtcclxuICAgICAgICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7IGlkOiBQcm90b2NvbFR5cGVOYW1lLm5ld3MsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9ORVcgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvdG9jb2xzLnB1c2goeyBpZDogUHJvdG9jb2xUeXBlTmFtZS5vdGhlciwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX09USEVSIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TW9kZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubW9kZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2Rlcy5wdXNoKHsgaWQ6IEltYWdlTW9kZU5hbWUuUG9pbnRlciwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLklNQUdFX01PREVfUE9JTlRFUiwgaWNvbjogXCJ2ZWN0b3ItcG9pbnRlclwiIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVzLnB1c2goeyBpZDogSW1hZ2VNb2RlTmFtZS5SZWN0YW5nbGUsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5JTUFHRV9NT0RFX1JFQ1RBTkdMRSwgaWNvbjogXCJ2ZWN0b3ItcmVjdGFuZ2xlXCIgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZXMucHVzaCh7IGlkOiBJbWFnZU1vZGVOYW1lLkNpcmNsZSwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLklNQUdFX01PREVfQ0lSQ0xFLCBpY29uOiBcInZlY3Rvci1jaXJjbGVcIiB9KTtcclxuICAgICAgICAgICAgdGhpcy5tb2Rlcy5wdXNoKHsgaWQ6IEltYWdlTW9kZU5hbWUuUG9seWdvbiwgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLklNQUdFX01PREVfUE9MWUdPTiwgaWNvbjogXCJ2ZWN0b3ItcG9seWdvblwiIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVzLnB1c2goeyBpZDogSW1hZ2VNb2RlTmFtZS5SZW1vdmUsIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5JTUFHRV9NT0RFX1JFTU9WRSwgaWNvbjogXCJ2ZWN0b3ItcmVtb3ZlXCIgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRab29tVHlwZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuem9vbVR5cGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVR5cGVzLnB1c2goeyBpZDogMC4yNSwgbmFtZTogXCIyNSVcIiB9KTtcclxuICAgICAgICAgICAgdGhpcy56b29tVHlwZXMucHVzaCh7IGlkOiAwLjUsIG5hbWU6IFwiNTAlXCIgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbVR5cGVzLnB1c2goeyBpZDogMS4wLCBuYW1lOiBcIjEwMCVcIiB9KTtcclxuICAgICAgICAgICAgdGhpcy56b29tVHlwZXMucHVzaCh7IGlkOiAyLjAsIG5hbWU6IFwiMjAwJVwiIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnpvb21UeXBlcy5wdXNoKHsgaWQ6IDMuMCwgbmFtZTogXCIzMDAlXCIgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRBbmNob3IoKSB7XHJcbiAgICAgICAgdGhpcy5hbmNob3JzID0gW107XHJcbiAgICAgICAgdGhpcy5hbmNob3JzID0gW3sgdmFsdWU6IDAsIHZpZXdWYWx1ZTogJycsIGFuY2hvclZhbHVlOiBMaW5rQW5jaG9yLkJsYW5rIH1dO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmluaXRMaW5rVHlwZSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdFRhcmdldCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdFByb3RvY29sKCk7XHJcbiAgICAgICAgdGhpcy5pbml0TW9kZXMoKTtcclxuICAgICAgICB0aGlzLmluaXRab29tVHlwZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlTGlzdGVuZXJzICYmIHRoaXMuaW1hZ2VMaXN0ZW5lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlTGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGlzdGVuZXIoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uSW1hZ2VMb2FkKCkge1xyXG4gICAgICAgIHRoaXMubmF0dXJhbEltYWdlSGVpZ2h0ID0gdGhpcy5uYXR1cmFsSW1hZ2VIZWlnaHQgIT0gMCA/IHRoaXMubmF0dXJhbEltYWdlSGVpZ2h0IDogdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQubmF0dXJhbEhlaWdodDtcclxuICAgICAgICB0aGlzLm5hdHVyYWxJbWFnZVdpZHRoID0gdGhpcy5uYXR1cmFsSW1hZ2VXaWR0aCAhPSAwID8gdGhpcy5uYXR1cmFsSW1hZ2VXaWR0aCA6IHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aDtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRJbWFnZVNpemUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5teUltYWdlTWFwLnNldE1hcEpzb24oe1xyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmltYWdlTWFwRGF0YS5uYW1lLFxyXG4gICAgICAgICAgICBhcmVhczogdGhpcy5pbWFnZU1hcERhdGEuYXJlYXNcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VNYXBEYXRhLmFyZWFzICYmIHRoaXMuaW1hZ2VNYXBEYXRhLmFyZWFzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlTWFwLmJsdXJBcmVhKHRoaXMubXlJbWFnZU1hcC5jdXJyZW50aWQpO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuY3VycmVudGlkID0gMDtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlTWFwLnNlbGVjdGVkSWQgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0QXJlYSh0aGlzLm15SW1hZ2VNYXAuYXJlYXNbMF0pO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuaGlnaGxpZ2h0QXJlYSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLm15SW1hZ2VSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZUxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LCAnbG9hZCcsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25JbWFnZUxvYWQoKTtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQXZvaWQgZHJhZyZkcm9wIG9mIHRoZSBpbWFnZVxyXG4gICAgICAgIHRoaXMubXlJbWFnZU1hcCA9IG5ldyBRTVNDS0VkaXRvckltYWdlTWFwTGliKHtcclxuICAgICAgICAgICAgY3VzdG9tX2NhbGxiYWNrczoge1xyXG4gICAgICAgICAgICAgICAgXCJvbkFkZEFyZWFcIjogdGhpcy5vbkFkZEFyZWEuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICdvblNlbGVjdEFyZWEnOiB0aGlzLm9uU2VsZWN0QXJlYS5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgJ29uUmVtb3ZlQXJlYSc6IHRoaXMub25SZW1vdmVBcmVhLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICAnb25TdGF0dXNNZXNzYWdlJzogdGhpcy5vblN0YXR1c01lc3NhZ2UuYmluZCh0aGlzKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbWFnZUVsZW1lbnQ6IHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICBib3VuZGluZ19ib3g6IGZhbHNlLFxyXG4gICAgICAgICAgICBDTF9EUkFXX1NIQVBFOiAnI0YwMCcsXHJcbiAgICAgICAgICAgIENMX05PUk1fU0hBUEU6ICcjQUFBJyxcclxuICAgICAgICAgICAgQ0xfSElHSExJR0hUX1NIQVBFOiAnI0YwMCcsXHJcbiAgICAgICAgICAgIHN0cmluZ3M6IHtcclxuICAgICAgICAgICAgICAgIFwiUE9MWUdPTl9EUkFXXCI6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QT0xZR09OX0RSQVcsXHJcbiAgICAgICAgICAgICAgICBcIlJFQ1RBTkdMRV9EUkFXXCI6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5SRUNUQU5HTEVfRFJBVyxcclxuICAgICAgICAgICAgICAgIFwiU1FVQVJFX0RSQVdcIjogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlNRVUFSRV9EUkFXLFxyXG4gICAgICAgICAgICAgICAgJ1JFQURZJzogJycsXHJcbiAgICAgICAgICAgICAgICAnUkVDVEFOR0xFX01PVkUnOiAnJyxcclxuICAgICAgICAgICAgICAgICdSRUNUQU5HTEVfUkVTSVpFX1RPUCc6ICcnLFxyXG4gICAgICAgICAgICAgICAgJ1JFQ1RBTkdMRV9SRVNJWkVfUklHSFQnOiAnJyxcclxuICAgICAgICAgICAgICAgICdSRUNUQU5HTEVfUkVTSVpFX0JPVFRPTSc6ICcnLFxyXG4gICAgICAgICAgICAgICAgJ1JFQ1RBTkdMRV9SRVNJWkVfTEVGVCc6ICcnLFxyXG4gICAgICAgICAgICAgICAgJ1NRVUFSRV9NT1ZFJzogJycsXHJcbiAgICAgICAgICAgICAgICAnU1FVQVJFX1JFU0laRV9UT1AnOiAnJyxcclxuICAgICAgICAgICAgICAgICdTUVVBUkVfUkVTSVpFX1JJR0hUJzogJycsXHJcbiAgICAgICAgICAgICAgICAnU1FVQVJFX1JFU0laRV9CT1RUT00nOiAnJyxcclxuICAgICAgICAgICAgICAgICdTUVVBUkVfUkVTSVpFX0xFRlQnOiAnJyxcclxuICAgICAgICAgICAgICAgICdQT0xZR09OX01PVkUnOiAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VMaW5rVXJsKHVybDogc3RyaW5nLCBkZWZhdWx0UHJvdG9jb2xOYW1lPzogUHJvdG9jb2xUeXBlTmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gdGhpcy5wcm90b2NvbFJlZ2V4LmV4ZWModXJsKTtcclxuICAgICAgICBpZiAocHJvdG9jb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRVcmwgPSB1cmwuc3Vic3RyKHByb3RvY29sWzBdLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5wcm9jZXNzZWRVcmw7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm90b2NvbCA9IHByb3RvY29sWzBdLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmphdmFzY3JpcHRMaW5rUmVnZXgudGVzdCh1cmwpICYmICF0aGlzLmltYWdlTWFwRGF0YS5saW5rSmF2YVNjcmlwdExpbmtzQWxsb3dlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkVXJsID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5wcm9jZXNzZWRVcmw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRVcmwgPSB1cmw7XHJcbiAgICAgICAgICAgIHRoaXMudXJsID0gdGhpcy5wcm9jZXNzZWRVcmw7XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuc2VsZWN0ZWRQcm90b2NvbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID0gZGVmYXVsdFByb3RvY29sTmFtZSB8fCBQcm90b2NvbFR5cGVOYW1lLmh0dHA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RBcmVhKGFyZWEpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRBcmVhSWQgPSBhcmVhLmFpZDtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZU1hcEluZm9ybWF0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RlID09IEltYWdlTW9kZU5hbWUuUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5yZW1vdmVBcmVhKHRoaXMuY3VycmVudEFyZWFJZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGFyZWEuYWhyZWYubWF0Y2goL14jKC4qKSQvKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbmNob3JUZXh0ID0gYXJlYS5haHJlZi5zbGljZSgxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9IExpbmtUeXBlLmFuY2hvclRleHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGlua1R5cGUgPSBMaW5rVHlwZS51cmw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnNlTGlua1VybChhcmVhLmFocmVmKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0ID0gYXJlYS5hdGFyZ2V0O1xyXG4gICAgICAgICAgICB0aGlzLmFkdmlzb3J5VGl0bGUgPSBhcmVhLmFhbHQ7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25SZW1vdmVBcmVhKCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudEFyZWFJZCA9IC0xO1xyXG4gICAgICAgIHRoaXMuc2hvd0ltYWdlTWFwSW5mb3JtYXRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVNYXAoKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50QXJlYUlkID0gLTE7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2VNYXBJbmZvcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubXlJbWFnZU1hcC5yZW1vdmVBbGxBcmVhcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3RhdHVzTWVzc2FnZSh0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5teVN0YXR1c1JlZikge1xyXG4gICAgICAgICAgICB0aGlzLm15U3RhdHVzUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGV4dCB8fCAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25VcmxLZXl1cCgpIHtcclxuICAgICAgICB0aGlzLmlzVXJsUHJvY2Vzc2luZyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudXJsICE9IHRoaXMucHJvY2Vzc2VkVXJsKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyc2VMaW5rVXJsKHRoaXMudXJsKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBcmVhVmFsdWVzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzVXJsUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXJsQ2hhbmdlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1VybFByb2Nlc3NpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5vblVybEtleXVwKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQW5jaG9yVGV4dENoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFyZWFWYWx1ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblByb3RvY29sQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVGFyZ2V0Q2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQWRkQXJlYShpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50QXJlYUlkID0gaWQ7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2VNYXBJbmZvcm1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pbml0RGVmYXVsdFZhbHVlcygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUFyZWFWYWx1ZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFyZWFJZCA+IC0xKSB7XHJcbiAgICAgICAgICAgIHZhciBhaHJlZiA9IHRoaXMuYnVpbGRVcmxXaXRoUHJvdG9jb2woKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PSBMaW5rVHlwZS5hbmNob3JUZXh0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuYXJlYXNbdGhpcy5jdXJyZW50QXJlYUlkXS5hdGFyZ2V0ID0gVGFyZ2V0VHlwZU5hbWUuc2FtZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5hcmVhc1t0aGlzLmN1cnJlbnRBcmVhSWRdLmFhbHQgPSB0aGlzLmFuY2hvclRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuYXJlYXNbdGhpcy5jdXJyZW50QXJlYUlkXS5hdGFyZ2V0ID0gdGhpcy5zZWxlY3RlZFRhcmdldCB8fCBUYXJnZXRUeXBlTmFtZS5uZXc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuYXJlYXNbdGhpcy5jdXJyZW50QXJlYUlkXS5hYWx0ID0gdGhpcy5hZHZpc29yeVRpdGxlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5hcmVhc1t0aGlzLmN1cnJlbnRBcmVhSWRdLmFocmVmID0gYWhyZWY7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkVXJsV2l0aFByb3RvY29sKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTGlua1R5cGUgPT0gTGlua1R5cGUuYW5jaG9yVGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyMnICsgKHRoaXMuYW5jaG9yVGV4dCB8fCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghIXRoaXMucHJvY2Vzc2VkVXJsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgKyB0aGlzLnByb2Nlc3NlZFVybDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZURpYWxvZygpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW9kZUNoYW5nZShlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZSA9IGUudmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RlID09IEltYWdlTW9kZU5hbWUuUG9pbnRlciB8fCB0aGlzLnNlbGVjdGVkTW9kZSA9PSBJbWFnZU1vZGVOYW1lLlJlbW92ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuaXNfZHJhd2luZyA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZU1hcC5uZXh0U2hhcGUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2RlZmF1bHQnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlTWFwLm5leHRTaGFwZSA9IHRoaXMuc2VsZWN0ZWRNb2RlO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnY3Jvc3NoYWlyJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25ab29tQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0SW1hZ2VTaXplKCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXlJbWFnZU1hcCkge1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VNYXAuc2NhbGVBbGxBcmVhcyh0aGlzLnNlbGVjdGVkWm9vbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uTGlua1R5cGVDaGFuZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PT0gTGlua1R5cGUuYW5jaG9yVGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldEVkaXRvckFuY2hvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZUFyZWFWYWx1ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFZGl0b3JBbmNob3IoKSB7XHJcbiAgICAgICAgdGhpcy5hbmNob3JEb2N1bWVudHMgPSBbXTtcclxuICAgICAgICBpZiAodGhpcy5pbWFnZU1hcERhdGEuZWRpdG9yQ29udGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmFuY2hvckRvY3VtZW50cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICAgICAgZW50aXR5SWQ6IDAsXHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudElkOiAwLFxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRUeXBlSWQ6IDAsXHJcbiAgICAgICAgICAgICAgICByaWNoVGV4dDogdGhpcy5pbWFnZU1hcERhdGEuZWRpdG9yQ29udGVudFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXRBbmNob3JEb2N1bWVudCh0aGlzLmFuY2hvckRvY3VtZW50cyk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JBbmNob3JzID0gdGhpcy5hbmNob3JzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEltYWdlU2l6ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5teUltYWdlUmVmKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5uYXR1cmFsSW1hZ2VXaWR0aCAqIHRoaXMuc2VsZWN0ZWRab29tO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLm5hdHVyYWxJbWFnZUhlaWdodCAqIHRoaXMuc2VsZWN0ZWRab29tO1xyXG4gICAgICAgICAgICB0aGlzLm15SW1hZ2VSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBgJHt3aWR0aH1weDtgKTtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1weDtgKTtcclxuICAgICAgICAgICAgdGhpcy5teUltYWdlUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XHJcbiAgICAgICAgICAgIHRoaXMubXlJbWFnZVJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9IHRoaXMuc2VsZWN0ZWRNb2RlID09IEltYWdlTW9kZU5hbWUuUG9pbnRlciB8fCB0aGlzLnNlbGVjdGVkTW9kZSA9PSBJbWFnZU1vZGVOYW1lLlJlbW92ZSA/ICdkZWZhdWx0JyA6ICdjcm9zc2hhaXInO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlSGFuZGJvb2soaXNPbmx5RG9jdW1lbnQ6IGJvb2xlYW4sIGlzQW5jaG9yRG9jdW1lbnQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yUmVsYXRpb24oKTtcclxuICAgICAgICBkYXRhLmlzT25seURvY3VtZW50ID0gaXNPbmx5RG9jdW1lbnQ7XHJcbiAgICAgICAgZGF0YS5pc0VuYWJsZUZvbGRlciA9ICFpc09ubHlEb2N1bWVudDtcclxuICAgICAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JSZWxhdGVkQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnNjUwcHgnLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICc2NTBweCcsXHJcbiAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlXHJcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0FuY2hvckRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRJZCA9IHJlc3VsdC5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzLmFuY2hvclRpdGxlID0gYCR7cmVzdWx0LnRpdGxlfSgke3Jlc3VsdC5pZH0pYDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbmNob3JEb2N1bWVudChyZXN1bHQuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFyc2VMaW5rVXJsKHJlc3VsdC51cmwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLm90aGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYWR2aXNvcnlUaXRsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZHZpc29yeVRpdGxlID0gcmVzdWx0LnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQXJlYVZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBbmNob3JEb2N1bWVudChkb2N1bWVudElkOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmxpbmtTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRBbmNob3JEb2N1bWVudExpc3QoZG9jdW1lbnRJZClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3JEb2N1bWVudHMgPSByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBbmNob3JEb2N1bWVudCh0aGlzLmFuY2hvckRvY3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy90aGlzLmRvY3VtZW50QW5jaG9ycyA9IHRoaXMuYW5jaG9ycztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3JEb2N1bWVudHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFuY2hvckRvY3VtZW50KHRoaXMuYW5jaG9yRG9jdW1lbnRzKTtcclxuICAgICAgICAgICAgICAgICAgICAvL3RoaXMuZG9jdW1lbnRBbmNob3JzID0gdGhpcy5hbmNob3JzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBbmNob3JEb2N1bWVudChhbmNob3JEb2N1bWVudDogUU1TQ0tFZGl0b3JMaW5rQW5jaG9yRG9jdW1lbnRbXSkge1xyXG4gICAgICAgIHRoaXMuaW5pdEFuY2hvcigpO1xyXG4gICAgICAgIGxldCBpZCA9IDM7XHJcbiAgICAgICAgaWYgKGFuY2hvckRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIGFuY2hvckRvY3VtZW50LmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGUucmljaFRleHQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb21Db250ZW50ID0gZGl2O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYVRhZ3MgPSBkb21Db250ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYVRhZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYVRhZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnID0gYVRhZ3NbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWcubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFuY2hvcnMuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHguYW5jaG9yVmFsdWUgPT09IHRhZy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3JzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdWYWx1ZTogdGFnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclZhbHVlOiB0YWcubmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmFuY2hvcnMucHVzaCh7XHJcbiAgICAgICAgLy8gICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIC8vICAgICB2aWV3VmFsdWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5BTkNIT1JfQVRUQUNITUVOVCxcclxuICAgICAgICAvLyAgICAgYW5jaG9yVmFsdWU6IExpbmtBbmNob3IuQXR0YWNobWVudFxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIC8vIHRoaXMuYW5jaG9ycy5wdXNoKHtcclxuICAgICAgICAvLyAgICAgdmFsdWU6IDIsXHJcbiAgICAgICAgLy8gICAgIHZpZXdWYWx1ZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLkFOQ0hPUl9SRUxBVEVEX0RPQ1VNRU5ULFxyXG4gICAgICAgIC8vICAgICBhbmNob3JWYWx1ZTogTGlua0FuY2hvci5SZWxhdGVkXHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGF0dGFjaG1lbnQoKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBRTVNDS0VkaXRvclBhcmFtdGVyKCk7XHJcbiAgICAgICAgZGF0YS5tb2R1bGUgPSB0aGlzLmltYWdlTWFwRGF0YS5tb2R1bGU7XHJcbiAgICAgICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMuaW1hZ2VNYXBEYXRhLmVudGl0eUlkO1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihMaW5rQXR0YWNobWVudENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICB3aWR0aDogJzY1MHB4JyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAnNjUwcHgnLFxyXG4gICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxyXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnNlTGlua1VybChyZXN1bHQudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBQcm90b2NvbFR5cGVOYW1lLm90aGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5hZHZpc29yeVRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9IHJlc3VsdC50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBcmVhVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMubXlJbWFnZU1hcC5nZXRNYXBKc29uKCk7XHJcbiAgICAgICAgZGF0YS5pbWFnZUhlaWdodCA9IHRoaXMubmF0dXJhbEltYWdlSGVpZ2h0O1xyXG4gICAgICAgIGRhdGEuaW1hZ2VXaWR0aCA9IHRoaXMubmF0dXJhbEltYWdlV2lkdGg7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
@@ -1,16 +1,11 @@
|
|
1
1
|
import { Component, Inject } from '@angular/core';
|
2
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
2
|
+
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
3
|
+
import { TranslateLibraryService } from '../../../../services/translation-registry.service';
|
3
4
|
import { takeUntil } from 'rxjs/operators';
|
4
5
|
import { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';
|
6
|
+
import { QMSCKEditorLinkService } from '../../../services/qms-ckeditor-link.service';
|
5
7
|
import QMSCKEditorParamter from '../../../common/models/qms-ckeditor-parameter.model';
|
6
8
|
import { CKEditorModule } from '../../../common/enums/module.enum';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "@angular/material/dialog";
|
9
|
-
import * as i2 from "../../../../services/translation-registry.service";
|
10
|
-
import * as i3 from "../../../services/qms-ckeditor-link.service";
|
11
|
-
import * as i4 from "@angular/material/icon";
|
12
|
-
import * as i5 from "@angular/material/card";
|
13
|
-
import * as i6 from "@angular/common";
|
14
9
|
export class LinkAttachmentComponent extends QMSCKEditorBaseComponent {
|
15
10
|
constructor(dialog, translate, linkService, dialogRef, data) {
|
16
11
|
super();
|
@@ -61,17 +56,18 @@ export class LinkAttachmentComponent extends QMSCKEditorBaseComponent {
|
|
61
56
|
this.dialogRef.close(this.linkUrl);
|
62
57
|
}
|
63
58
|
}
|
64
|
-
LinkAttachmentComponent
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
59
|
+
LinkAttachmentComponent.decorators = [
|
60
|
+
{ type: Component, args: [{
|
61
|
+
selector: 'link-attachment',
|
62
|
+
template: "<div\r\n id=\"qmsckeditor_link_attachment\"\r\n class=\"qmsckeditor qmsckeditor__link__attachment__container\"\r\n>\r\n <div id=\"qmsckeditor_link_attachment_header\">\r\n <span\r\n id=\"qmsckeditor_link_attachment_header_001\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor_link_attachment_header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor_link_attachment_header_002_001\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div\r\n id=\"qmsckeditor_link_attachment_content\"\r\n class=\"qmsckeditor template-content height\"\r\n >\r\n <div id=\"qmsckeditor_link_attachment_content_001\" class=\"mt-1 pl-2 pr-2\">\r\n <mat-card\r\n class=\"qmsckeditor card col-12\"\r\n *ngFor=\"let attachment of attachments\"\r\n >\r\n <div\r\n class=\"row\"\r\n (click)=\"\r\n onSelectedAttachment(attachment.extraId, attachment.fileName)\r\n \"\r\n >\r\n <div class=\"qmsckeditor__cursor col-12\">\r\n <div class=\"col-12 pl-0 title\">\r\n <span>{{ attachment.fileName }}</span>\r\n </div>\r\n <div class=\"col-12 pl-0 content\">\r\n <span>{{ attachment.extraId }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
63
|
+
styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:470px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .page-break{width:100%}"]
|
64
|
+
},] }
|
65
|
+
];
|
66
|
+
LinkAttachmentComponent.ctorParameters = () => [
|
67
|
+
{ type: MatDialog },
|
68
|
+
{ type: TranslateLibraryService },
|
69
|
+
{ type: QMSCKEditorLinkService },
|
70
|
+
{ type: MatDialogRef },
|
71
|
+
{ type: QMSCKEditorParamter, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
|
72
|
+
];
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItbGluay9hdHRhY2htZW50cy9saW5rLWF0dGFjaG1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLG1CQUFtQixNQUFNLHFEQUFxRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQVluRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXdCO0lBUW5FLFlBQ1UsTUFBaUIsRUFDakIsU0FBa0MsRUFDbEMsV0FBbUMsRUFDcEMsU0FBZ0QsRUFDdkIsSUFBeUI7UUFFekQsS0FBSyxFQUFFLENBQUM7UUFOQSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQXlCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFxQjtRQVgzRCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGtDQUE2QixHQUFHLEtBQUssQ0FBQztRQUN0QyxnQkFBVyxHQUFnQyxFQUFFLENBQUM7UUFXNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN0RixJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQy9DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSw2QkFBc0M7UUFDdEYsSUFBSSxDQUFDLFdBQVc7YUFDYixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLDZCQUE2QixDQUFDO2FBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBZSxFQUFFLFFBQWdCO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN0QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyw4QkFBOEIsT0FBTyxFQUFFLENBQUM7YUFDNUQ7aUJBQ0ksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLHlDQUF5QyxPQUFPLEVBQUUsQ0FBQzthQUN2RTtZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs7WUE3REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHdoREFBK0M7O2FBRWhEOzs7WUFsQlEsU0FBUztZQUNULHVCQUF1QjtZQUl2QixzQkFBc0I7WUFMWCxZQUFZO1lBTXpCLG1CQUFtQix1QkEwQnJCLE1BQU0sU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgUU1TQ0tFZGl0b3JMaW5rQXR0YWNobWVudCBmcm9tICcuLi8uLi8uLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1saW5rLWF0dGFjaG1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9xbXMtY2tlZGl0b3ItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckxpbmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWxpbmsuc2VydmljZSc7XHJcbmltcG9ydCBRTVNDS0VkaXRvclBhcmFtdGVyIGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXBhcmFtZXRlci5tb2RlbCc7XHJcbmltcG9ydCB7IENLRWRpdG9yTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW1zL21vZHVsZS5lbnVtJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGlua1VybCB7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaW5rLWF0dGFjaG1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xpbmstYXR0YWNobWVudC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW5rQXR0YWNobWVudENvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgTEFORzogYW55O1xyXG4gIG1vZHVsZSA9IDA7XHJcbiAgZW50aXR5SWQgPSAnJztcclxuICBzdXBwb3J0RmlsZUFyY2hpdmVBdHRhY2htZW50cyA9IGZhbHNlO1xyXG4gIGF0dGFjaG1lbnRzOiBRTVNDS0VkaXRvckxpbmtBdHRhY2htZW50W10gPSBbXTtcclxuICBsaW5rVXJsOiBMaW5rVXJsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxpbmtTZXJ2aWNlOiBRTVNDS0VkaXRvckxpbmtTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPExpbmtBdHRhY2htZW50Q29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUU1TQ0tFZGl0b3JQYXJhbXRlclxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMubW9kdWxlID0gZGF0YS5tb2R1bGU7XHJcbiAgICB0aGlzLmVudGl0eUlkID0gZGF0YS5lbnRpdHlJZDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5nZXRBdHRhY2htZW50TGlzdCh0aGlzLm1vZHVsZSwgdGhpcy5lbnRpdHlJZCwgdGhpcy5zdXBwb3J0RmlsZUFyY2hpdmVBdHRhY2htZW50cyk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlRGlhbG9nKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGdldEF0dGFjaG1lbnRMaXN0KG1vZHVsZTogbnVtYmVyLCBpdGVtSWQ6IHN0cmluZywgc3VwcG9ydEZpbGVBcmNoaXZlQXR0YWNobWVudHM6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubGlua1NlcnZpY2VcclxuICAgICAgLmdldEF0dGFjaG1lbnRMaXN0KG1vZHVsZSwgaXRlbUlkLCBzdXBwb3J0RmlsZUFyY2hpdmVBdHRhY2htZW50cylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudHMgPSByZXNwb25zZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZEF0dGFjaG1lbnQoZXh0cmFJZDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmxpbmtVcmwgPSB7IHVybDogJycsIHRpdGxlOiAnJyB9O1xyXG4gICAgaWYgKGV4dHJhSWQpIHtcclxuICAgICAgaWYgKHRoaXMubW9kdWxlID09PSBDS0VkaXRvck1vZHVsZS5kb2N1bWVudCkge1xyXG4gICAgICAgIHRoaXMubGlua1VybC51cmwgPSBgL2FwaS9GaWxlL0dldEZpbGU/ZW50aXR5SWQ9JHtleHRyYUlkfWA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5tb2R1bGUgPT09IENLRWRpdG9yTW9kdWxlLnByb2Nlc3MpIHtcclxuICAgICAgICB0aGlzLmxpbmtVcmwudXJsID0gYC9hcGkvcHJvY2Vzc2VzL0dldEZpbGVDb250ZW50cz9maWxlSWQ9JHtleHRyYUlkfWA7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5saW5rVXJsLnRpdGxlID0gZmlsZU5hbWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmxpbmtVcmwpO1xyXG4gIH1cclxufVxyXG4iXX0=
|