nuxeo-development-framework 4.3.1 → 4.3.3
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/nuxeo-development-framework.umd.js +4365 -3037
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/charts/chart.const.js +3 -0
- package/esm2015/lib/components/charts/chart.token.js +3 -0
- package/esm2015/lib/components/charts/charts.module.js +19 -0
- package/esm2015/lib/components/charts/components/base-chart.component.js +44 -0
- package/esm2015/lib/components/charts/components/chart.component.js +135 -0
- package/esm2015/lib/components/charts/components/data-chart.component.js +169 -0
- package/esm2015/lib/components/charts/components/index.js +4 -0
- package/esm2015/lib/components/charts/defaults/bar.js +18 -0
- package/esm2015/lib/components/charts/defaults/doughnut.js +18 -0
- package/esm2015/lib/components/charts/defaults/index.js +5 -0
- package/esm2015/lib/components/charts/defaults/line.js +36 -0
- package/esm2015/lib/components/charts/defaults/pie.js +20 -0
- package/esm2015/lib/components/charts/index.js +10 -0
- package/esm2015/lib/components/charts/models/index.js +5 -0
- package/esm2015/lib/components/charts/models/options.js +2 -0
- package/esm2015/lib/components/charts/models/plugins-options.js +2 -0
- package/esm2015/lib/components/charts/models/response.js +2 -0
- package/esm2015/lib/components/charts/models/statistic-request-config.js +2 -0
- package/esm2015/lib/components/charts/plugins/doughnut-center-text.js +25 -0
- package/esm2015/lib/components/charts/plugins/doughnut-empty-state.js +34 -0
- package/esm2015/lib/components/charts/plugins/index.js +4 -0
- package/esm2015/lib/components/charts/plugins/legend-margin.js +16 -0
- package/esm2015/lib/components/charts/services/index.js +2 -0
- package/esm2015/lib/components/charts/services/statistic.service.js +75 -0
- package/esm2015/lib/components/charts/utility/colors.js +79 -0
- package/esm2015/lib/components/charts/utility/common.js +7 -0
- package/esm2015/lib/components/charts/utility/index.js +3 -0
- package/esm2015/lib/components/comments/comments.module.js +9 -5
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +30 -23
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +28 -34
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +22 -22
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +16 -18
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +6 -6
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +3 -2
- package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +33 -29
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +32 -24
- package/esm2015/lib/components/diagrams/components/connection-label.component.js +1 -1
- package/esm2015/lib/components/diagrams/directive/diagram.directive.js +2 -3
- package/esm2015/lib/components/diagrams/editor/customize.js +11 -14
- package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +21 -34
- package/esm2015/lib/components/diagrams/editor/path-plugin.js +11 -10
- package/esm2015/lib/components/diagrams/models/base-node.model.js +2 -1
- package/esm2015/lib/components/diagrams/models/connection.model.js +1 -1
- package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/random.js +9 -3
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +9 -11
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +17 -7
- package/esm2015/lib/components/documents/components/documents/documents.component.js +1 -1
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +45 -40
- package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +21 -17
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +98 -92
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +22 -10
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +8 -4
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +28 -29
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +16 -3
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +26 -18
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -2
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +13 -10
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +3 -3
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +68 -29
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +60 -42
- package/esm2015/lib/components/file-manger/components/copy/copy.component.js +66 -36
- package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +40 -13
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +238 -200
- package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +14 -12
- package/esm2015/lib/components/file-manger/components/delete/delete.component.js +49 -20
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +45 -43
- package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +63 -36
- package/esm2015/lib/components/file-manger/components/move/move.component.js +61 -31
- package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +81 -81
- package/esm2015/lib/components/file-manger/components/rename/rename.component.js +58 -30
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +99 -66
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +95 -75
- package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +15 -11
- package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +54 -23
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +24 -24
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +266 -264
- package/esm2015/lib/components/file-manger/file-manger.module.js +39 -35
- package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
- package/esm2015/lib/components/notifications/components/base-notifications.component.js +2 -16
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +3 -3
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +24 -4
- package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +3 -2
- package/esm2015/lib/components/notifications/models/notification-message.mode.js +1 -1
- package/esm2015/lib/components/notifications/models/notifications-list-options.js +1 -1
- package/esm2015/lib/components/notifications/services/notifications.service.js +23 -17
- package/esm2015/lib/components/notifications/services/socket.service.js +13 -5
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +107 -90
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +100 -57
- package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +36 -52
- package/esm2015/lib/components/permissions/permissions.module.js +23 -7
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
- package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +37 -0
- package/esm2015/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.js +88 -0
- package/esm2015/lib/components/table/dynamic-component.js +59 -0
- package/esm2015/lib/components/table/page-sizes-list/page-sizes-list.component.js +38 -0
- package/esm2015/lib/components/table/table/table.component.js +39 -21
- package/esm2015/lib/components/table/table.module.js +22 -18
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +11 -6
- package/esm2015/lib/core/services/callApi/call-api.service.js +23 -6
- package/esm2015/lib/shared/components/base/base-selector.component.js +1 -1
- package/esm2015/lib/shared/components/base/base.component.js +5 -5
- package/esm2015/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.js +8 -4
- package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +11 -7
- package/esm2015/lib/shared/services/base/http-base.service.js +10 -19
- package/esm2015/lib/shared-services/dialog-mangment.service.js +66 -21
- package/esm2015/lib/shared-services/shared-docs.service.js +20 -26
- package/esm2015/public-api.js +8 -2
- package/fesm2015/nuxeo-development-framework.js +3555 -2277
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/charts/chart.const.d.ts +2 -0
- package/lib/components/charts/chart.token.d.ts +8 -0
- package/lib/components/charts/charts.module.d.ts +9 -0
- package/lib/components/charts/components/base-chart.component.d.ts +21 -0
- package/lib/components/charts/components/chart.component.d.ts +28 -0
- package/lib/components/charts/components/data-chart.component.d.ts +39 -0
- package/lib/components/charts/components/index.d.ts +3 -0
- package/lib/components/charts/defaults/bar.d.ts +2 -0
- package/lib/components/charts/defaults/doughnut.d.ts +2 -0
- package/lib/components/charts/defaults/index.d.ts +4 -0
- package/lib/components/charts/defaults/line.d.ts +2 -0
- package/lib/components/charts/defaults/pie.d.ts +2 -0
- package/lib/components/charts/index.d.ts +9 -0
- package/lib/components/charts/models/index.d.ts +4 -0
- package/lib/components/charts/models/options.d.ts +12 -0
- package/lib/components/charts/models/plugins-options.d.ts +18 -0
- package/lib/components/charts/models/response.d.ts +5 -0
- package/lib/components/charts/models/statistic-request-config.d.ts +30 -0
- package/lib/components/charts/plugins/doughnut-center-text.d.ts +2 -0
- package/lib/components/charts/plugins/doughnut-empty-state.d.ts +2 -0
- package/lib/components/charts/plugins/index.d.ts +3 -0
- package/lib/components/charts/plugins/legend-margin.d.ts +2 -0
- package/lib/components/charts/services/index.d.ts +1 -0
- package/lib/components/charts/services/statistic.service.d.ts +23 -0
- package/lib/components/charts/utility/colors.d.ts +11 -0
- package/lib/components/charts/utility/common.d.ts +4 -0
- package/lib/components/charts/utility/index.d.ts +2 -0
- package/lib/components/comments/comments.module.d.ts +2 -1
- package/lib/components/comments/components/comment-item/comment-item.component.d.ts +3 -1
- package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts +8 -5
- package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts +8 -8
- package/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.d.ts +5 -5
- package/lib/components/correspondence-relation/correspondence-relation.module.d.ts +3 -2
- package/lib/components/diagrams/editor/customize.d.ts +7 -7
- package/lib/components/diagrams/editor/overrides/connection-path.transformers.d.ts +2 -5
- package/lib/components/diagrams/models/base-node.model.d.ts +1 -1
- package/lib/components/diagrams/models/connection.model.d.ts +2 -1
- package/lib/components/diagrams/types/common.type.d.ts +4 -0
- package/lib/components/diagrams/types/diagram-config.type.d.ts +7 -7
- package/lib/components/diagrams/types/node-definition.d.ts +1 -0
- package/lib/components/diagrams/utilities/random.d.ts +1 -1
- package/lib/components/documents/components/document-upload/document-upload.component.d.ts +3 -1
- package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +11 -10
- package/lib/components/dynamic-chart/dynamic-chart.module.d.ts +5 -6
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.d.ts +6 -2
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.d.ts +2 -1
- package/lib/components/dynamic-form/components/department-form/department-form.component.d.ts +4 -4
- package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts +5 -1
- package/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.d.ts +3 -1
- package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +5 -1
- package/lib/components/dynamic-form/dynamic-form.module.d.ts +2 -1
- package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +29 -11
- package/lib/components/file-manger/components/add-to-collection/add-to-collection.component.d.ts +11 -5
- package/lib/components/file-manger/components/copy/copy.component.d.ts +11 -4
- package/lib/components/file-manger/components/create-directory/create-directory.component.d.ts +9 -4
- package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts +13 -19
- package/lib/components/file-manger/components/creation-type/creation-type.component.d.ts +6 -4
- package/lib/components/file-manger/components/delete/delete.component.d.ts +11 -4
- package/lib/components/file-manger/components/folder-modal/folder-modal.component.d.ts +9 -11
- package/lib/components/file-manger/components/loan-request/loan-request.component.d.ts +11 -5
- package/lib/components/file-manger/components/move/move.component.d.ts +11 -4
- package/lib/components/file-manger/components/publish-dialog/publish-dialog.component.d.ts +12 -10
- package/lib/components/file-manger/components/rename/rename.component.d.ts +11 -5
- package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +9 -8
- package/lib/components/file-manger/components/share-dialog/share-dialog.component.d.ts +6 -7
- package/lib/components/file-manger/components/template-modal/template-modal.component.d.ts +4 -3
- package/lib/components/file-manger/components/transfer-doc/transfer-doc.component.d.ts +11 -4
- package/lib/components/file-manger/components/update-modal/update-modal.component.d.ts +9 -8
- package/lib/components/file-manger/file-manager.abstract.d.ts +24 -22
- package/lib/components/file-manger/file-manger.module.d.ts +2 -1
- package/lib/components/notifications/components/base-notifications.component.d.ts +2 -8
- package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +1 -1
- package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +4 -1
- package/lib/components/notifications/models/notification-message.mode.d.ts +1 -0
- package/lib/components/notifications/models/notifications-list-options.d.ts +4 -0
- package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +8 -6
- package/lib/components/permissions/permissions/permissions.component.d.ts +3 -1
- package/lib/components/permissions/permissions-template/permissions-template.component.d.ts +3 -3
- package/lib/components/permissions/permissions.module.d.ts +2 -1
- package/lib/components/spell-checker-field/spell-checker-field.module.d.ts +10 -0
- package/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.d.ts +24 -0
- package/lib/components/table/dynamic-component.d.ts +20 -0
- package/lib/components/table/page-sizes-list/page-sizes-list.component.d.ts +15 -0
- package/lib/components/table/table/table.component.d.ts +15 -6
- package/lib/components/table/table.module.d.ts +14 -10
- package/lib/components/vocabulary/services/vocabulary-api.service.d.ts +2 -2
- package/lib/core/services/callApi/call-api.service.d.ts +8 -1
- package/lib/shared/components/base/base-selector.component.d.ts +4 -4
- package/lib/shared/components/base/base.component.d.ts +5 -5
- package/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.d.ts +2 -1
- package/lib/shared/components/nuxeo-dialog/nuxeo.dialog.d.ts +2 -1
- package/lib/shared/services/base/http-base.service.d.ts +3 -1
- package/lib/shared-services/dialog-mangment.service.d.ts +5 -1
- package/lib/shared-services/shared-docs.service.d.ts +3 -1
- package/package.json +3 -4
- package/public-api.d.ts +7 -1
- package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +0 -164
- package/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.d.ts +0 -33
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewEncapsulation
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "../../../core/services/nuxeo/nuxeo.service";
|
|
4
5
|
import * as i2 from "../../../configuration/app-config.service";
|
|
@@ -10,11 +11,18 @@ import * as i7 from "../../dynamic-view/department-viewer/department-viewer.comp
|
|
|
10
11
|
import * as i8 from "@angular/material/menu";
|
|
11
12
|
import * as i9 from "../../dynamic-view/date-viewer/date-viewer.component";
|
|
12
13
|
import * as i10 from "../dynamic-column/dynamic-column.component";
|
|
13
|
-
import * as i11 from "
|
|
14
|
-
import * as i12 from "
|
|
15
|
-
import * as i13 from "
|
|
16
|
-
import * as i14 from "@
|
|
17
|
-
import * as i15 from "
|
|
14
|
+
import * as i11 from "../dynamic-component";
|
|
15
|
+
import * as i12 from "@angular/common";
|
|
16
|
+
import * as i13 from "../../../directive/permissions/permissions.directive";
|
|
17
|
+
import * as i14 from "@angular/material/tooltip";
|
|
18
|
+
import * as i15 from "@ngx-translate/core";
|
|
19
|
+
import * as i16 from "../../../pipes/localized-date.pipe";
|
|
20
|
+
const TABLE_MODE = {
|
|
21
|
+
list: 'list',
|
|
22
|
+
card: 'card',
|
|
23
|
+
dynamicCard: 'dynamicCard',
|
|
24
|
+
custom: 'custom'
|
|
25
|
+
};
|
|
18
26
|
/**
|
|
19
27
|
* this component is a multi-purpose dynamically generated dumb data table that can be configured to show any list of data,
|
|
20
28
|
* for more information on configuring the table
|
|
@@ -73,9 +81,9 @@ export class TableComponent {
|
|
|
73
81
|
this.rowCursor = false;
|
|
74
82
|
/** Max full width in PX | auto */
|
|
75
83
|
this.fullWidth = 'auto';
|
|
76
|
-
|
|
77
|
-
this.tableMode =
|
|
78
|
-
this.format =
|
|
84
|
+
this.tableModes = TABLE_MODE;
|
|
85
|
+
this.tableMode = TABLE_MODE.list;
|
|
86
|
+
this.format = 'MMMM d, y';
|
|
79
87
|
this.defultSort = null;
|
|
80
88
|
this.highlightSelectedCard = false;
|
|
81
89
|
/** allow multiselect rows with checkbox */
|
|
@@ -87,7 +95,8 @@ export class TableComponent {
|
|
|
87
95
|
this.disabledActions = false;
|
|
88
96
|
this.isArabic = false;
|
|
89
97
|
this.tableWidth = 'auto';
|
|
90
|
-
this.
|
|
98
|
+
this.tableColumnsSub = new BehaviorSubject([]);
|
|
99
|
+
this.tableColumns$ = this.tableColumnsSub.asObservable();
|
|
91
100
|
this.selected = [];
|
|
92
101
|
this.pageNumber = 1;
|
|
93
102
|
this.responsiveView = false;
|
|
@@ -96,10 +105,19 @@ export class TableComponent {
|
|
|
96
105
|
this.format = this.appConfig.myConfiguration['dateFormate'];
|
|
97
106
|
this.statusIcons = this.appConfig.myConfiguration['statusIcons'];
|
|
98
107
|
this.directionIcons = this.appConfig.myConfiguration['directionIcons'];
|
|
99
|
-
this.langSubscription = this.translation.isArabic.subscribe(res => {
|
|
108
|
+
this.langSubscription = this.translation.isArabic.subscribe((res) => {
|
|
100
109
|
this.isArabic = res;
|
|
101
110
|
});
|
|
102
111
|
}
|
|
112
|
+
get tableColumns() {
|
|
113
|
+
return this.tableColumnsSub.getValue();
|
|
114
|
+
}
|
|
115
|
+
ngOnChanges(changes) {
|
|
116
|
+
var _a, _b;
|
|
117
|
+
if (changes.columns && !((_a = changes === null || changes === void 0 ? void 0 : changes.columns) === null || _a === void 0 ? void 0 : _a.isFirstChange())) {
|
|
118
|
+
this.tableColumnsSub.next((_b = changes.columns) === null || _b === void 0 ? void 0 : _b.currentValue);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
103
121
|
ngOnInit() {
|
|
104
122
|
this.onResize(window.innerWidth);
|
|
105
123
|
}
|
|
@@ -121,7 +139,7 @@ export class TableComponent {
|
|
|
121
139
|
if (!this.disabledActions)
|
|
122
140
|
this.actionOnRow.emit({
|
|
123
141
|
type: actionType,
|
|
124
|
-
row: singleRow
|
|
142
|
+
row: singleRow
|
|
125
143
|
});
|
|
126
144
|
}
|
|
127
145
|
// handle checkbox if table has ones
|
|
@@ -139,7 +157,7 @@ export class TableComponent {
|
|
|
139
157
|
onSort(event) {
|
|
140
158
|
let sort = {
|
|
141
159
|
sortBy: event.column.headerClass,
|
|
142
|
-
sortOrder: event.newValue
|
|
160
|
+
sortOrder: event.newValue
|
|
143
161
|
};
|
|
144
162
|
this.onSorting.emit(sort);
|
|
145
163
|
}
|
|
@@ -154,19 +172,17 @@ export class TableComponent {
|
|
|
154
172
|
this.tableWidth = this.fullWidth;
|
|
155
173
|
}
|
|
156
174
|
if (width < 768) {
|
|
157
|
-
this.
|
|
158
|
-
this.tableColumns = this.responsiveColumns;
|
|
175
|
+
this.tableColumnsSub.next(this.responsiveColumns);
|
|
159
176
|
this.responsiveView = true;
|
|
160
177
|
}
|
|
161
178
|
else {
|
|
162
179
|
this.responsiveView = false;
|
|
163
|
-
this.
|
|
164
|
-
this.tableColumns = this.columns;
|
|
180
|
+
this.tableColumnsSub.next(this.columns);
|
|
165
181
|
}
|
|
166
182
|
}
|
|
167
183
|
cardSelected(card) {
|
|
168
184
|
if (this.highlightSelectedCard) {
|
|
169
|
-
this.rows.map(row => {
|
|
185
|
+
this.rows.map((row) => {
|
|
170
186
|
row['isSelected'] = false;
|
|
171
187
|
});
|
|
172
188
|
card['isSelected'] = true;
|
|
@@ -178,14 +194,14 @@ export class TableComponent {
|
|
|
178
194
|
}
|
|
179
195
|
}
|
|
180
196
|
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableComponent, deps: [{ token: i1.NuxeoService }, { token: i2.AppConfigService }, { token: i3.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
-
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, ngImport: i0, template: "<div class=\"iner-table-container\" [style]=\"'width:' + tableWidth\" *ngIf=\"tableMode === 'list' && !responsiveView\">\r\n <ngx-datatable\r\n [ngClass]=\"{'overflowVisible': customFirstRow}\"\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [summaryRow]=\"customFirstRow\"\r\n [columnMode]=\"'force'\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n >\r\n\r\n <ngx-datatable-column\r\n *ngIf=\"multiSelectRows\"\r\n [width]=\"30\"\r\n [sortable]=\"false\"\r\n [prop]=\"''\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n>\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n <!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\" /> -->\r\n <mat-checkbox color=\"primary\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\">\r\n </mat-checkbox>\r\n </ng-template>\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-value=\"value\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n <!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn($event)\" /> -->\r\n <mat-checkbox color=\"primary\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn(!allRowsSelected)\">\r\n </mat-checkbox>\r\n </ng-template>\r\n</ngx-datatable-column>\r\n <!-- | translate -->\r\n <ng-container *ngFor=\"let column of tableColumns; let i = index\">\r\n <ng-container *permission=\"{name: column.permission}\">\r\n <ngx-datatable-column *ngIf=\"column.display\" [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\" [prop]=\"column.prop\" [resizeable]=\"false\" [draggable]=\"false\"\r\n [maxWidth]=\"column.size\" [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n [summaryTemplate]=\"(customFirstRow) ? customRowTemplate : null\">\r\n <ng-template let-row=\"row\" let-value=\"value\" let-index=\"index\" ngx-datatable-cell-template>\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"value\" [dropdownId]=\"column.vocabularyId\">\r\n </cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ (value ? column.vocabularyId + '.' + value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ vocItemTranslationPrefix + value | translate }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer [noStyle]=\"true\" [value]=\"value\">\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">\r\n <span *ngIf=\"statusIcons && statusIcons !== {}\" class=\"status-icon {{statusIcons[value]}}\"></span>\r\n {{\"STATS.\" + value | translate }}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ \"role.\" + (value ? value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n <div [ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\" *ngIf=\"!showActionsAsMenu\">\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"></i>\r\n\r\n <i class=\"bi bi-plus-square\" matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\"></i>\r\n\r\n <span *ngFor=\"let action of column.actions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n <div [ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\" *ngIf=\"showActionsAsMenu\">\r\n <button class=\"action-menu-trigger\" [matMenuTriggerFor]=\"menu\" [disabled]=\"disabledActions\">\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n <button mat-menu-item (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\">\r\n <i class=\"bi bi-pencil-square edit-icon\"></i>\r\n <span class=\"action-text\">{{ 'UPDATE' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"performAction(row, 'delete')\" *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \">\r\n <i class=\"bi bi-trash\"></i>\r\n <span class=\"action-text\">{{ 'delete' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\">\r\n <i class=\"bi bi-plus-square\"></i>\r\n <span class=\"action-text\">{{ 'USER_MANGMENT.addToDepartment' | translate }}</span>\r\n </button>\r\n <ng-conttainer *ngFor=\"let action of column.actions\">\r\n <button (click)=\"performAction(row, action.actionName)\" *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n <i class=\"{{ action.icon }}\"></i>\r\n <span class=\"action-text\">{{ action.tooltip | translate }}</span>\r\n </button>\r\n </ng-conttainer>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer [withOutLabel]=\"true\" [value]=\"value\"></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <cts-dynamic-column [id]=\"column.template\" [column]=\"column\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <ng-container *permission=\"{ name: 'isFavorite', entity: row }\" >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"{{directionIcons ? directionIcons['incoming'] : 'bi bi-box-arrow-down'}}\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{directionIcons ? directionIcons['outgoing'] : 'bi bi-box-arrow-up outgoing'}}\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{directionIcons ? directionIcons['internal'] : 'bi bi-box-arrow-right internal'}}\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-template>\r\n <ng-template #customRowTemplate let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div class=\"w-full flex items-center justify-center overflow-visible\">\r\n <cts-dynamic-column [id]=\"column.custom1stCellTemplate\" [column]=\"column\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"responsiveView && tableMode !== 'card'\" (window:resize)=\"assignTableColumns($event)\">\r\n <div class=\"dynamic-cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\"\r\n *ngFor=\"let row of rows\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <!-- <div *ngIf=\"property.type === 'actions' && rows.length !== 0\" class=\"actions-wrapper\">\r\n <i class=\"bi bi-pencil-square edit-icon\" matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\"></i>\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'delete' | translate }}\" (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"></i>\r\n\r\n <i class=\"bi bi-plus-square\" matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\"></i>\r\n\r\n <span *ngFor=\"let action of property.actions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n </div> -->\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div class=\"memo-body\" *ngFor=\"let property of tableColumns\" (click)=\"cardSelected(row)\">\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value]}}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'owner'\">\r\n {{ row.properties[property.owner]?.[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate:format:(isArabic? 'ar-AR' : 'en-US') }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div *ngIf=\"property.type === 'status'\" class=\"value {{ row[property.value]}}\">{{\r\n \"STATS.\" + row[property.value] | translate\r\n }}</div>\r\n <div *ngIf=\"property.type === 'vocabulary'\" class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\"\r\n [dropdownId]=\"property.vocabularyId\">\r\n </cts-dropdown-viewer>\r\n </div>\r\n <div *ngIf=\"property.type === 'direction'\" (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ property.value }} {{ row.state }}\">\r\n <span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i class=\"bi bi-box-arrow-down\" *ngIf=\"row.type === 'IncomingCorrespondence'\"></i>\r\n <i class=\"bi bi-box-arrow-up outgoing\" *ngIf=\"row.type === 'OutgoingCorrespondence'\"></i>\r\n <i class=\"bi bi-box-arrow-right internal\" *ngIf=\"row.type === 'InternalCorrespondence'\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"property.type === 'custom'\">\r\n <cts-dynamic-column [id]=\"property.template\" [column]=\"property\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"tableColumns.length === 1\">\r\n <cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'card'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n <button *permission=\"{ name: 'deleteMemo', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'deleteMemo')\">\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"></i>\r\n </button>\r\n <button *permission=\"{ name: 'terminateDelegation', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'terminateDelegation')\">\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"></i>\r\n </button>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'memoPublished', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'delegationFinished', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'delegationActive', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"memo-body\" *ngFor=\"let property of columns\" (click)=\"cardSelected(row);cardFocused(i)\">\r\n <div class=\"key\" *ngIf=\"property.type !== 'default'\">{{ prefix + property.key | translate }}</div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"key\"\r\n *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n {{ row.properties[property.value].fullName }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{row.properties[property.value] | localizedDate:format:(isArabic? 'ar-AR' : 'en-US')}}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n {{ (row.properties[property.value] ? 'Yes':'No') | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"text\"\r\n *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"property.type === 'custom'\">\r\n <div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n {{ item | translate }} {{\", \" }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'dynamicCard'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\"\r\n *ngFor=\"let row of rows\">\r\n <div *ngIf=\"columns.length > 1\">\r\n <div class=\"memo-body\" *ngFor=\"let property of columns\" (click)=\"cardSelected(row)\">\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate:format:(isArabic? 'ar-AR' : 'en-US') }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"columns.length === 1\">\r\n <cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;width:100%!important;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{width:100%!important;height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center .datatable-body-cell{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:#ebb98e}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:16px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:#fff;width:24%}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:#fff;width:40%}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:#fff;width:31%}.dynamic-cards-container .single-card .memo-body .approved{background-color:#06a57e;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:#fff;width:23%}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;width:65%}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:#fff;width:37%}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:#fff;width:51%}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i7.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i10.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i13.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], pipes: { "translate": i14.TranslatePipe, "localizedDate": i15.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
197
|
+
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", componentName: "componentName", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n\tclass=\"iner-table-container\"\r\n\t[style]=\"'width:' + tableWidth\"\r\n\t*ngIf=\"tableMode === tableModes.list && !responsiveView\"\r\n>\r\n\t<ngx-datatable\r\n\t\t[ngClass]=\"{ overflowVisible: customFirstRow }\"\r\n\t\tclass=\"large-table\"\r\n\t\t[rows]=\"rows\"\r\n\t\t[summaryRow]=\"customFirstRow\"\r\n\t\t[columnMode]=\"'force'\"\r\n\t\t[externalSorting]=\"true\"\r\n\t\t(activate)=\"rowDetails($event)\"\r\n\t\t(select)=\"onSelect($event)\"\r\n\t\t(sort)=\"onSort($event)\"\r\n\t\t(window:resize)=\"assignTableColumns($event)\"\r\n\t\t[rowHeight]=\"'auto'\"\r\n\t\t[selected]=\"selected\"\r\n\t\t[selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n\t\t[sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n\t>\r\n\t\t<ngx-datatable-column\r\n\t\t\t*ngIf=\"multiSelectRows\"\r\n\t\t\t[width]=\"30\"\r\n\t\t\t[sortable]=\"false\"\r\n\t\t\t[prop]=\"''\"\r\n\t\t\t[canAutoResize]=\"false\"\r\n\t\t\t[draggable]=\"false\"\r\n\t\t\t[resizeable]=\"false\"\r\n\t\t>\r\n\t\t\t<ng-template\r\n\t\t\t\tngx-datatable-header-template\r\n\t\t\t\tlet-value=\"value\"\r\n\t\t\t\tlet-allRowsSelected=\"allRowsSelected\"\r\n\t\t\t\tlet-selectFn=\"selectFn\"\r\n\t\t\t>\r\n\t\t\t\t<!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\" /> -->\r\n\t\t\t\t<mat-checkbox color=\"primary\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\"> </mat-checkbox>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-template\r\n\t\t\t\tngx-datatable-cell-template\r\n\t\t\t\tlet-value=\"value\"\r\n\t\t\t\tlet-isSelected=\"isSelected\"\r\n\t\t\t\tlet-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n\t\t\t>\r\n\t\t\t\t<!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn($event)\" /> -->\r\n\t\t\t\t<mat-checkbox color=\"primary\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn(!allRowsSelected)\">\r\n\t\t\t\t</mat-checkbox>\r\n\t\t\t</ng-template>\r\n\t\t</ngx-datatable-column>\r\n\t\t<!-- | translate -->\r\n\t\t<ng-container *ngFor=\"let column of tableColumns$ | async; let i = index\">\r\n\t\t\t<ng-container *permission=\"{ name: column.permission }\">\r\n\t\t\t\t<ngx-datatable-column\r\n\t\t\t\t\t*ngIf=\"column.display\"\r\n\t\t\t\t\t[sortable]=\"column.sortable\"\r\n\t\t\t\t\t[name]=\"prefix + column.name | translate\"\r\n\t\t\t\t\t[prop]=\"column.prop\"\r\n\t\t\t\t\t[resizeable]=\"false\"\r\n\t\t\t\t\t[draggable]=\"false\"\r\n\t\t\t\t\t[maxWidth]=\"column?.size\"\r\n\t\t\t\t\t[headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n\t\t\t\t\t[summaryTemplate]=\"customFirstRow ? customRowTemplate : null\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template let-row=\"row\" let-value=\"value\" let-index=\"index\" ngx-datatable-cell-template>\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'text'\">\r\n\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t{{ value ? value : '--' }}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t<cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"value\" [dropdownId]=\"column.vocabularyId\">\r\n\t\t\t\t\t\t\t\t</cts-dropdown-viewer>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'VocCell'\">\r\n\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t{{ (value ? column.vocabularyId + '.' + value : '--') | translate }}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'VocItem'\">\r\n\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t{{ vocItemTranslationPrefix + value | translate }}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'department'\">\r\n\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t<cts-department-viewer [noStyle]=\"true\" [value]=\"value\"> </cts-department-viewer>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'status'\">\r\n\t\t\t\t\t\t\t<div class=\"status-wrapper\">\r\n\t\t\t\t\t\t\t\t<span class=\"value {{ value }}\">\r\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"statusIcons && statusIcons !== {}\" class=\"status-icon {{ statusIcons[value] }}\"></span>\r\n\t\t\t\t\t\t\t\t\t{{ 'STATS.' + value | translate }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'role'\">\r\n\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t{{ 'role.' + (value ? value : '--') | translate }}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t[ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\"\r\n\t\t\t\t\t\t\t\t*ngIf=\"!showActionsAsMenu\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\tclass=\"bi bi-pencil-square edit-icon\"\r\n\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'UPDATE' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'edit')\"\r\n\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table'\"\r\n\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\tclass=\"bi bi-trash\"\r\n\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'delete' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table' || entityType === 'department' || entityType === 'signers'\"\r\n\t\t\t\t\t\t\t\t></i>\r\n\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\tclass=\"bi bi-plus-square\"\r\n\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'users' && row.isInitial\"\r\n\t\t\t\t\t\t\t\t></i>\r\n\r\n\t\t\t\t\t\t\t\t<span *ngFor=\"let action of column.actions\">\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t<!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t[ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\"\r\n\t\t\t\t\t\t\t\t*ngIf=\"showActionsAsMenu\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<button class=\"action-menu-trigger\" [matMenuTriggerFor]=\"menu\" [disabled]=\"disabledActions\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"bi bi-three-dots-vertical\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t<mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n\t\t\t\t\t\t\t\t\t<button mat-menu-item (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\">\r\n\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-pencil-square edit-icon\"></i>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'UPDATE' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\tmat-menu-item\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table' || entityType === 'department' || entityType === 'signers'\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-trash\"></i>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'delete' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\tmat-menu-item\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'users' && row.isInitial\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-plus-square\"></i>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'USER_MANGMENT.addToDepartment' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t<ng-conttainer *ngFor=\"let action of column.actions\">\r\n\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"{{ action.icon }}\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ action.tooltip | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t</ng-conttainer>\r\n\t\t\t\t\t\t\t\t</mat-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'date'\">\r\n\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t<cts-date-viewer [withOutLabel]=\"true\" [value]=\"value\"></cts-date-viewer>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'custom'\">\r\n\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"column.template\" [column]=\"column\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'direction'\">\r\n\t\t\t\t\t\t\t<div (click)=\"iconSelected($event, row)\" class=\"status-wrapper {{ value }} {{ row.state }}\">\r\n\t\t\t\t\t\t\t\t<span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n\t\t\t\t\t\t\t\t\t<ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['incoming'] : 'bi bi-box-arrow-down' }}\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['outgoing'] : 'bi bi-box-arrow-up outgoing' }}\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['internal'] : 'bi bi-box-arrow-right internal' }}\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'InternalCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template #customRowTemplate let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n\t\t\t\t\t\t<div class=\"w-full flex items-center justify-center overflow-visible\">\r\n\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"column.custom1stCellTemplate\" [column]=\"column\" [context]=\"row\">\r\n\t\t\t\t\t\t\t</cts-dynamic-column>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</ngx-datatable-column>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"responsiveView && tableMode !== tableModes.card\" (window:resize)=\"assignTableColumns($event)\">\r\n\t<div class=\"dynamic-cards-container\">\r\n\t\t<div\r\n\t\t\tclass=\"single-card\"\r\n\t\t\t[ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n\t\t\t*ngFor=\"let row of rows\"\r\n\t\t>\r\n\t\t\t<div class=\"memo-title\">\r\n\t\t\t\t<span>\r\n\t\t\t\t\t{{ row.properties.referenceNumber }}\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"action-wrap\">\r\n\t\t\t\t\t<!-- <div *ngIf=\"property.type === 'actions' && rows.length !== 0\" class=\"actions-wrapper\">\r\n <i class=\"bi bi-pencil-square edit-icon\" matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\"></i>\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'delete' | translate }}\" (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"></i>\r\n\r\n <i class=\"bi bi-plus-square\" matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\"></i>\r\n\r\n <span *ngFor=\"let action of property.actions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n </div> -->\r\n\t\t\t\t\t<span class=\"action\" *ngFor=\"let action of tableActions\">\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"tableColumns.length > 1\">\r\n\t\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row)\">\r\n\t\t\t\t\t<div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n\t\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'owner'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.owner]?.[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate : format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'status'\" class=\"value {{ row[property.value] }}\">\r\n\t\t\t\t\t\t\t{{ 'STATS.' + row[property.value] | translate }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'vocabulary'\" class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t<cts-dropdown-viewer\r\n\t\t\t\t\t\t\t\t[withOutLabel]=\"true\"\r\n\t\t\t\t\t\t\t\t[value]=\"row.properties[property.value]\"\r\n\t\t\t\t\t\t\t\t[dropdownId]=\"property.vocabularyId\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t</cts-dropdown-viewer>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t*ngIf=\"property.type === 'direction'\"\r\n\t\t\t\t\t\t\t(click)=\"iconSelected($event, row)\"\r\n\t\t\t\t\t\t\tclass=\"status-wrapper {{ property.value }} {{ row.state }}\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n\t\t\t\t\t\t\t\t<ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-down\" *ngIf=\"row.type === 'IncomingCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-up outgoing\" *ngIf=\"row.type === 'OutgoingCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-right internal\" *ngIf=\"row.type === 'InternalCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'custom'\">\r\n\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"property.template\" [column]=\"property\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"iner-card-container {{ entityType }}\" (click)=\"cardSelected(row)\" *ngIf=\"tableColumns.length === 1\">\r\n\t\t\t<cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.card\">\r\n\t<div class=\"cards-container\">\r\n\t\t<div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n\t\t\t<div class=\"memo-title\">\r\n\t\t\t\t<span>\r\n\t\t\t\t\t{{ row.properties.referenceNumber }}\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"action-wrap\">\r\n\t\t\t\t\t<span class=\"action\" *ngFor=\"let action of tableActions\">\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'deleteMemo',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"performAction(row, 'deleteMemo')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'terminateDelegation',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"performAction(row, 'terminateDelegation')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'memoPublished',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'MEMOS.PUBLISHED' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'delegationFinished',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'delegations.finished' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'delegationActive',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'delegations.active' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row); cardFocused(i)\">\r\n\t\t\t\t<div class=\"key\" *ngIf=\"property.type !== 'default'\">\r\n\t\t\t\t\t{{ prefix + property.key | translate }}\r\n\t\t\t\t</div>\r\n\t\t\t\t<ng-container *ngIf=\"property.type === 'default'\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclass=\"key\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'internalIsEnabled',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ prefix + property.key | translate }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value].fullName }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate : format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n\t\t\t\t\t\t{{ (row.properties[property.value] ? 'Yes' : 'No') | translate }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<ng-container *ngIf=\"property.type === 'default'\">\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclass=\"text\"\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: 'internalIsEnabled',\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-container *ngIf=\"property.type === 'custom'\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n\t\t\t\t\t\t\t{{ item | translate }} {{ ', ' }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.dynamicCard\">\r\n\t<div class=\"cards-container\">\r\n\t\t<div\r\n\t\t\tclass=\"single-card\"\r\n\t\t\t[ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n\t\t\t*ngFor=\"let row of rows\"\r\n\t\t>\r\n\t\t\t<div *ngIf=\"tableColumns.length > 1\">\r\n\t\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row)\">\r\n\t\t\t\t\t<div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n\t\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate : format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"iner-card-container {{ entityType }}\" (click)=\"cardSelected(row)\" *ngIf=\"tableColumns.length === 1\">\r\n\t\t\t\t<cts-dynamic-column [id]=\"tableColumns[0].template\" [column]=\"tableColumns[0]\" [context]=\"row\">\r\n\t\t\t\t</cts-dynamic-column>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.custom\" class=\"table-custom-view \">\r\n\t<app-dynamic-component\r\n\t\tclass=\"table-custom-view__component\"\r\n\t\t*ngFor=\"let row of rows\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[row]=\"row\"\r\n [rowAction]=\"actionOnRow\"\r\n [onClick]=\"onRowSelected\"\r\n\t\t(click)=\"cardSelected(row)\"\r\n\t\t[class.dynamic-selected-card]=\"highlightSelectedCard && row?.isSelected\"\r\n\t></app-dynamic-component>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.iner-table-container{max-width:var(--table-container-max-width, 100%)}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;width:100%!important;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{width:100%!important;height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center .datatable-body-cell{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:#ebb98e}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:16px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:#fff;width:24%}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:#fff;width:40%}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:#fff;width:31%}.dynamic-cards-container .single-card .memo-body .approved{background-color:#06a57e;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:#fff;width:23%}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;width:65%}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:#fff;width:37%}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:#fff;width:51%}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}.table-custom-view{display:var(--tcv-display, grid);grid-template-columns:var(--tcv-display-columns, repeat(var(--tcv-columns-count, auto-fit), minmax(350px, 1fr)));grid-gap:var(--tcv-gap, 1rem);gap:var(--tcv-gap, 1rem);padding-inline:var(--tcv-padding-inline, 1rem);padding-block:var(--tcv-padding-block, 1rem)}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i7.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i10.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }, { type: i11.DynamicCustomComponent, selector: "app-dynamic-component", inputs: ["componentName", "row", "rowAction", "onClick"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i14.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], pipes: { "async": i12.AsyncPipe, "translate": i15.TranslatePipe, "localizedDate": i16.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
182
198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableComponent, decorators: [{
|
|
183
199
|
type: Component,
|
|
184
200
|
args: [{
|
|
185
201
|
selector: 'cts-table',
|
|
186
202
|
templateUrl: './table.component.html',
|
|
187
203
|
styleUrls: ['./table.component.scss'],
|
|
188
|
-
encapsulation: ViewEncapsulation.None
|
|
204
|
+
encapsulation: ViewEncapsulation.None
|
|
189
205
|
}]
|
|
190
206
|
}], ctorParameters: function () { return [{ type: i1.NuxeoService }, { type: i2.AppConfigService }, { type: i3.TranslationService }]; }, propDecorators: { onRowSelected: [{
|
|
191
207
|
type: Output
|
|
@@ -221,6 +237,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
221
237
|
type: Input
|
|
222
238
|
}], tableMode: [{
|
|
223
239
|
type: Input
|
|
240
|
+
}], componentName: [{
|
|
241
|
+
type: Input
|
|
224
242
|
}], tableActions: [{
|
|
225
243
|
type: Input
|
|
226
244
|
}], format: [{
|
|
@@ -236,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
236
254
|
}], showActionsAsMenu: [{
|
|
237
255
|
type: Input
|
|
238
256
|
}] } });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQU12Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFPSCxNQUFNLE9BQU8sY0FBYztJQTZEekIsWUFBbUIsWUFBMEIsRUFBVSxTQUE0QixFQUFTLFdBQStCO1FBQXhHLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUE1RDNILDhDQUE4QztRQUNwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsNERBQTREO1FBQ2xELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsbURBQW1EO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLHNDQUFzQztRQUM1QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QywrQ0FBK0M7UUFDdkMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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d0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5Nb2RlLCBTZWxlY3Rpb25UeXBlIH0gZnJvbSAnQHN3aW1sYW5lL25neC1kYXRhdGFibGUvcHVibGljLWFwaSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG4vKipcclxuICogdGhpcyBjb21wb25lbnQgaXMgYSBtdWx0aS1wdXJwb3NlIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBkdW1iIGRhdGEgdGFibGUgdGhhdCBjYW4gYmUgY29uZmlndXJlZCB0byBzaG93IGFueSBsaXN0IG9mIGRhdGEsXHJcbiAqIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGNvbmZpZ3VyaW5nIHRoZSB0YWJsZVxyXG4gKiBhbmQgdGhlIGpzb24gc3RydWN0dXJlIGZvciB0aGUgaW5wdXRzIHBsZWFzZSBjaGVjayBbQ29uZmlndXJhdGlvbiBGaWxlXXtAbGluayAuLi9hZGRpdGlvbmFsLWRvY3VtZW50YXRpb24vY29uZmlnLWZpbGUuaHRtbH1cclxuICogIVtTY3JlZW5zaG90LTFdKC4uL3NjcmVlbnNob3RzL2R5bmFtaWNUYWJsZS5wbmcpXHJcbiAqXHJcbiAqICMjIyByZWxhdGVkIExpbmtzOlxyXG4gKiAtIFtQYWdpbmF0aW9uIENvbXBvbmVudF17QGxpbmsgUGFnaW5hdGlvbkNvbXBvbmVudH1cclxuICogLSBbRHluYW1pYyBUYWJsZV17QGxpbmsgRHluYW1pY1RhYmxlQ29tcG9uZW50fVxyXG4gKiAtIFtDb25maWd1cmF0aW9uIEZpbGVde0BsaW5rIC4uL2FkZGl0aW9uYWwtZG9jdW1lbnRhdGlvbi9jb25maWctZmlsZS5odG1sfVxyXG4gKlxyXG4gKiBAdGl0bGVcclxuICogRGF0YSBUYWJsZVxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8Y3RzLXRhYmxlXHJcbiAqICAgICBbcm93c109XCJyb3dzXCJcclxuICogICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gKiAgICAgW3Jlc3BvbnNpdmVDb2x1bW5zXT1cInJlc3BvbnNpdmVDb2x1bW5zXCJcclxuICogICAgIFtyb3dDdXJzb3JdPVwicm93Q3Vyc29yXCJcclxuICogICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcclxuICogICAgIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIlxyXG4gKiAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gKiAgICAgW3RhYmxlTW9kZV09XCJ0YWJsZU1vZGVcIlxyXG4gKiAgICAgW3RhYmxlQWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxyXG4gKiAgICAgKG9uUm93U2VsZWN0ZWQpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuICogICAgIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIlxyXG4gKiAgICAgKG9uU29ydGluZyk9XCJvblNvcnQoJGV2ZW50KVwiXHJcbiAqICA+PC9jdHMtdGFibGU+XHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N0cy10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyAqL1xyXG4gIEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBldmVudCB0byBlbWl0IHdoZW4gc2VsZWN0aW5nIHNpbmdsZSByb3cgdG8gY2F0Y2ggaW5kZXgqL1xyXG4gIEBPdXRwdXQoKSBvblJvd0luZGV4U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyBJY29uICovXHJcbiAgQE91dHB1dCgpIG9uSWNvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBldmVudCB0byBlbWl0IHdoZW4gcGVyZm9ybSBhY3Rpb24gb24gcm93IChkZWx0ZSwgZWRpdCwgLi4uICkgKi9cclxuICBAT3V0cHV0KCkgYWN0aW9uT25Sb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNvcnRpbmcgdGFibGUgKi9cclxuICBAT3V0cHV0KCkgb25Tb3J0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgLyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNlbGVjdGluZyBtdWx0aXBsZSByb3cgKi9cclxuICBAT3V0cHV0KCkgb25NdWx0aVJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBhcmF5IG9mIHJvd3MgcGFzc2VkIGZyb20gb3V0IHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHJvd3M7XHJcbiAgLyoqIGFycmF5IG9mIGNvbHVtbnMgcGFhc2VkIGZyb20gb3V0IHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM7XHJcbiAgLyoqIGFycmF5IG9mIGNvbHVtbnMgcGFhc2VkIGZyb20gb3V0IHNpZGUgdGhlIGNvbXBvbmVudCBmb3Igc21hbGxlciBzY3JlZW5zICovXHJcbiAgQElucHV0KCkgcmVzcG9uc2l2ZUNvbHVtbnM7XHJcbiAgLyoqIHRvIGRlZmluZSB0aGUgcGFnZSBpbiB3aGljaCB0YWJsZSBpcyBiZWluZyB1c2VkICovXHJcbiAgQElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nID0gJyc7XHJcbiAgLyoqIHN0YXRpYyAgcGF0aCBmb3IgdHJhbnNsYXRpb24gcGFzc2VkIGZyb20gb3V0IHNpZGUgYWNjb3JkaW5nIHRvIGVhY2ggcGFnZSB0cmFuc2xhdGlvbiBwYXRoICovXHJcbiAgQElucHV0KCkgcHJlZml4ID0gJyc7XHJcbiAgLyoqIEBkZXByZWNhdGVkICovXHJcbiAgQElucHV0KCkgcGFnZUNvdW50O1xyXG4gIC8qKiBUb3RhbCBSZWNvcmRzY291bnQgKi9cclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHM7XHJcbiAgLyoqIEBkZXByZWNhdGVkICovXHJcbiAgQElucHV0KCkgcm93Q3Vyc29yID0gZmFsc2U7XHJcbiAgLyoqIE1heCBmdWxsIHdpZHRoIGluIFBYIHwgYXV0byAqL1xyXG4gIEBJbnB1dCgpIGZ1bGxXaWR0aCA9ICdhdXRvJztcclxuICAvKiogVm9jYWJ1bGFyeSBUcmFuc2xhdGlvbiBwcmVmaXggKi9cclxuICBASW5wdXQoKSB2b2NJdGVtVHJhbnNsYXRpb25QcmVmaXg7XHJcbiAgLyoqIFRhYmxlIE1vZGU6IGxpc3QgfCBjYXJkICovXHJcbiAgQElucHV0KCkgdGFibGVNb2RlID0gJ2xpc3QnO1xyXG4gIC8qKiBhY3Rpb24gdG8gYmUgaW4gY2FyZCBtb2RlICovXHJcbiAgQElucHV0KCkgdGFibGVBY3Rpb25zO1xyXG4gIEBJbnB1dCgpIGZvcm1hdCA9IFwiTU1NTSBkLCB5XCI7XHJcbiAgQElucHV0KCkgZGVmdWx0U29ydCA9IG51bGw7XHJcbiAgbGFuZ1N1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuICBASW5wdXQoKSBoaWdobGlnaHRTZWxlY3RlZENhcmQgPSBmYWxzZTtcclxuXHJcbiAgLyoqIGFsbG93IG11bHRpc2VsZWN0IHJvd3Mgd2l0aCBjaGVja2JveCAqL1xyXG4gIEBJbnB1dCgpIG11bHRpU2VsZWN0Um93cyA9IGZhbHNlO1xyXG5cclxuICAvKiogdG8gc2hvdyAxc3Qgcm93IHdpdGggY3VzdG9tIHRlbXBsYXRlIGluIHRoZSB0YWJsZSovXHJcbiAgQElucHV0KCkgY3VzdG9tRmlyc3RSb3cgPSBmYWxzZTtcclxuICAvKiogZmxhZ2UgdXNlZCB0byBkaXNhYmxlIGFjdGlvbnMgaWYgdGhlcmUgd2FzIG11bHRpIHNlbGVjdGVkIHJvd3MgKi9cclxuXHJcbiAgQElucHV0KCkgc2hvd0FjdGlvbnNBc01lbnUgPSBmYWxzZTsgLy8gZmxhZ2UgdG8gc2hvdyBhY3Rpb24gaW4gbWVudSBvciBzaWRlIGJ5IHNpZGVcclxuXHJcbiAgZGlzYWJsZWRBY3Rpb25zID0gZmFsc2U7XHJcbiAgaXNBcmFiaWMgPSBmYWxzZTtcclxuICB0YWJsZVdpZHRoID0gJ2F1dG8nO1xyXG4gIHRhYmxlQ29sdW1ucyA9IFtdO1xyXG4gIGN1cnJlbnRSb3c7XHJcbiAgc2VsZWN0ZWQgPSBbXTtcclxuICBwYWdlTnVtYmVyID0gMTtcclxuICByZXNwb25zaXZlVmlldyA9IGZhbHNlO1xyXG4gIHN0YXR1c0ljb25zID0ge307IC8vIG9iamVjdCB0byBjb250YWlucyBhbGwgc3RhdHVzIGljb25zIGlmIGV4aXN0XHJcbiAgZGlyZWN0aW9uSWNvbnMgPSB7fTsgLy8gb2JqZWN0IHRvIGNvbnRhaW5zIGFsbCBkaXJlY3Rpb24gaWNvbnMgaWYgZXhpc3RcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsIHByaXZhdGUgYXBwQ29uZmlnIDogQXBwQ29uZmlnU2VydmljZSxwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UpIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5hcHBDb25maWcubXlDb25maWd1cmF0aW9uWydkYXRlRm9ybWF0ZSddO1xyXG4gICAgdGhpcy5zdGF0dXNJY29ucyA9IHRoaXMuYXBwQ29uZmlnLm15Q29uZmlndXJhdGlvblsnc3RhdHVzSWNvbnMnXTtcclxuICAgIHRoaXMuZGlyZWN0aW9uSWNvbnMgPSB0aGlzLmFwcENvbmZpZy5teUNvbmZpZ3VyYXRpb25bJ2RpcmVjdGlvbkljb25zJ107XHJcbiAgICB0aGlzLmxhbmdTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0aW9uLmlzQXJhYmljLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmlzQXJhYmljID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblJlc2l6ZSh3aW5kb3cuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuICAvLyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIGNsaWNraW5nIG9uIHNpbmdsZSByb3dcclxuICByb3dEZXRhaWxzKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ21vdXNlZW50ZXInKSB7XHJcbiAgICAgIGlmIChldmVudC50eXBlID09PSAnY2xpY2snICYmIGV2ZW50LmNvbHVtbi5wcm9wICE9PSAnJyApIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSb3cgPSBldmVudC5yb3c7XHJcbiAgICAgICAgdGhpcy5vblJvd1NlbGVjdGVkLmVtaXQodGhpcy5jdXJyZW50Um93KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpY29uU2VsZWN0ZWQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvdykge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm9uSWNvblNlbGVjdGVkLmVtaXQocm93KTtcclxuICB9XHJcblxyXG4gIC8vZnVuY3Rpb24gdG8gaGFuZGxlIGFsbCBvcGVyYXRpb25zIG9uIHNpbmdsZSByb3cgKGRlbGV0ZSAsIGVkaXQgLCAuLi4pXHJcbiAgcGVyZm9ybUFjdGlvbihzaW5nbGVSb3csIGFjdGlvblR5cGUpIHtcclxuICAgIGlmKCF0aGlzLmRpc2FibGVkQWN0aW9ucylcclxuICAgIHRoaXMuYWN0aW9uT25Sb3cuZW1pdCh7XHJcbiAgICAgIHR5cGU6IGFjdGlvblR5cGUsXHJcbiAgICAgIHJvdzogc2luZ2xlUm93LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBoYW5kbGUgY2hlY2tib3ggaWYgdGFibGUgaGFzIG9uZXNcclxuICBvblNlbGVjdChldmVudCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ29uIHNlbGVjdCByb3cgY2xpY2snKTtcclxuICAgIHRoaXMub25NdWx0aVJvd1NlbGVjdGVkLmVtaXQoZXZlbnQuc2VsZWN0ZWQpO1xyXG4gICAgaWYodGhpcy5tdWx0aVNlbGVjdFJvd3MgJiYgZXZlbnQuc2VsZWN0ZWQubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRBY3Rpb25zID0gdHJ1ZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmRpc2FibGVkQWN0aW9ucyA9IGZhbHNlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBoYW5kbGUgc29ydGluZyBmdW5jdGlvbmFsaXR5IG9mIHRoZSB0YWJsZVxyXG4gIG9uU29ydChldmVudCkge1xyXG4gICAgbGV0IHNvcnQgPSB7XHJcbiAgICAgIHNvcnRCeTogZXZlbnQuY29sdW1uLmhlYWRlckNsYXNzLFxyXG4gICAgICBzb3J0T3JkZXI6IGV2ZW50Lm5ld1ZhbHVlLFxyXG4gICAgfTtcclxuICAgIHRoaXMub25Tb3J0aW5nLmVtaXQoc29ydCk7XHJcbiAgfVxyXG5cclxuICBhc3NpZ25UYWJsZUNvbHVtbnMoZXZlbnQpIHtcclxuICAgIHRoaXMub25SZXNpemUoZXZlbnQudGFyZ2V0LmlubmVyV2lkdGgpO1xyXG4gIH1cclxuXHJcbiAgb25SZXNpemUod2lkdGgpIHtcclxuICAgIGlmICh3aWR0aCA+IDE0MDApIHtcclxuICAgICAgdGhpcy50YWJsZVdpZHRoID0gJ2F1dG8nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZVdpZHRoID0gdGhpcy5mdWxsV2lkdGg7XHJcbiAgICB9XHJcbiAgICBpZiAod2lkdGggPCA3NjgpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSBbXTtcclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSB0aGlzLnJlc3BvbnNpdmVDb2x1bW5zO1xyXG4gICAgICB0aGlzLnJlc3BvbnNpdmVWaWV3ID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2l2ZVZpZXcgPSBmYWxzZTtcclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSBbXTtcclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSB0aGlzLmNvbHVtbnM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYXJkU2VsZWN0ZWQoY2FyZCkge1xyXG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkKSB7XHJcbiAgICAgIHRoaXMucm93cy5tYXAocm93ID0+IHtcclxuICAgICAgICByb3dbJ2lzU2VsZWN0ZWQnXSA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgICBjYXJkWydpc1NlbGVjdGVkJ10gPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblJvd1NlbGVjdGVkLmVtaXQoY2FyZCk7XHJcbiAgfVxyXG5cclxuICBjYXJkRm9jdXNlZChpbmRleCkge1xyXG4gICAgdGhpcy5vblJvd0luZGV4U2VsZWN0ZWQuZW1pdChpbmRleCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpbmVyLXRhYmxlLWNvbnRhaW5lclwiIFtzdHlsZV09XCInd2lkdGg6JyArIHRhYmxlV2lkdGhcIiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2xpc3QnICYmICFyZXNwb25zaXZlVmlld1wiPlxyXG4gIDxuZ3gtZGF0YXRhYmxlXHJcbiAgICBbbmdDbGFzc109XCJ7J292ZXJmbG93VmlzaWJsZSc6IGN1c3RvbUZpcnN0Um93fVwiXHJcbiAgICBjbGFzcz1cImxhcmdlLXRhYmxlXCJcclxuICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgW3N1bW1hcnlSb3ddPVwiY3VzdG9tRmlyc3RSb3dcIlxyXG4gICAgW2NvbHVtbk1vZGVdPVwiJ2ZvcmNlJ1wiXHJcbiAgICBbZXh0ZXJuYWxTb3J0aW5nXT1cInRydWVcIlxyXG4gICAgKGFjdGl2YXRlKT1cInJvd0RldGFpbHMoJGV2ZW50KVwiXHJcbiAgICAoc2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxyXG4gICAgKHNvcnQpPVwib25Tb3J0KCRldmVudClcIlxyXG4gICAgKHdpbmRvdzpyZXNpemUpPVwiYXNzaWduVGFibGVDb2x1bW5zKCRldmVudClcIlxyXG4gICAgW3Jvd0hlaWdodF09XCInYXV0bydcIlxyXG4gICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuICAgIFtzZWxlY3Rpb25UeXBlXT1cIm11bHRpU2VsZWN0Um93cyA/ICdjaGVja2JveCcgOiAnc2luZ2xlJ1wiXHJcbiAgICBbc29ydHNdPVwiW3sgcHJvcDogZGVmdWx0U29ydD8ubmFtZSwgZGlyOiBkZWZ1bHRTb3J0Py5kaXIgfV1cIlxyXG4gID5cclxuXHJcbiAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgKm5nSWY9XCJtdWx0aVNlbGVjdFJvd3NcIlxyXG4gIFt3aWR0aF09XCIzMFwiXHJcbiAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICBbcHJvcF09XCInJ1wiXHJcbiAgW2NhbkF1dG9SZXNpemVdPVwiZmFsc2VcIlxyXG4gIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxyXG4gIFtyZXNpemVhYmxlXT1cImZhbHNlXCJcclxuPlxyXG4gIDxuZy10ZW1wbGF0ZVxyXG4gICAgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGVcclxuICAgIGxldC12YWx1ZT1cInZhbHVlXCJcclxuICAgIGxldC1hbGxSb3dzU2VsZWN0ZWQ9XCJhbGxSb3dzU2VsZWN0ZWRcIlxyXG4gICAgbGV0LXNlbGVjdEZuPVwic2VsZWN0Rm5cIlxyXG4gID5cclxuICAgIDwhLS0gPGlucHV0IGNsYXNzPVwiY2hlY2tib3gtaW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhbGxSb3dzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCIgLz4gLS0+XHJcbiAgICA8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFtjaGVja2VkXT1cImFsbFJvd3NTZWxlY3RlZFwiIChjaGFuZ2UpPVwic2VsZWN0Rm4oIWFsbFJvd3NTZWxlY3RlZClcIj5cclxuICA8L21hdC1jaGVja2JveD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZVxyXG4gICAgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlXHJcbiAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICBsZXQtaXNTZWxlY3RlZD1cImlzU2VsZWN0ZWRcIlxyXG4gICAgbGV0LW9uQ2hlY2tib3hDaGFuZ2VGbj1cIm9uQ2hlY2tib3hDaGFuZ2VGblwiXHJcbiAgPlxyXG4gICAgPCEtLSA8aW5wdXQgY2xhc3M9XCJjaGVja2JveC1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2VGbigkZXZlbnQpXCIgLz4gLS0+XHJcbiAgICA8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2VGbighYWxsUm93c1NlbGVjdGVkKVwiPlxyXG4gICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgIDwhLS0gfCB0cmFuc2xhdGUgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdGFibGVDb2x1bW5zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnBlcm1pc3Npb249XCJ7bmFtZTogY29sdW1uLnBlcm1pc3Npb259XCI+XHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uICpuZ0lmPVwiY29sdW1uLmRpc3BsYXlcIiBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcclxuICAgICAgICAgIFtuYW1lXT1cInByZWZpeCArIGNvbHVtbi5uYW1lIHwgdHJhbnNsYXRlXCIgW3Byb3BdPVwiY29sdW1uLnByb3BcIiBbcmVzaXplYWJsZV09XCJmYWxzZVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW21heFdpZHRoXT1cImNvbHVtbi5zaXplXCIgW2hlYWRlckNsYXNzXT1cImNvbHVtbi5oZWFkZXJDbGFzcyA/IGNvbHVtbi5oZWFkZXJDbGFzcyA6ICcnXCJcclxuICAgICAgICAgIFtzdW1tYXJ5VGVtcGxhdGVdPVwiKGN1c3RvbUZpcnN0Um93KSA/IGN1c3RvbVJvd1RlbXBsYXRlIDogbnVsbFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1pbmRleD1cImluZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICd0ZXh0J1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgdmFsdWUgPyB2YWx1ZSA6IFwiLS1cIiB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3ZvY2FidWxhcnknXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y3RzLWRyb3Bkb3duLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwidmFsdWVcIiBbZHJvcGRvd25JZF09XCJjb2x1bW4udm9jYWJ1bGFyeUlkXCI+XHJcbiAgICAgICAgICAgICAgICA8L2N0cy1kcm9wZG93bi12aWV3ZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jQ2VsbCdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICh2YWx1ZSA/IGNvbHVtbi52b2NhYnVsYXJ5SWQgKyAnLicgKyB2YWx1ZSA6IFwiLS1cIikgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdWb2NJdGVtJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgdm9jSXRlbVRyYW5zbGF0aW9uUHJlZml4ICsgdmFsdWUgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RlcGFydG1lbnQnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y3RzLWRlcGFydG1lbnQtdmlld2VyIFtub1N0eWxlXT1cInRydWVcIiBbdmFsdWVdPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDwvY3RzLWRlcGFydG1lbnQtdmlld2VyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3N0YXR1cydcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0dXNJY29ucyAmJiBzdGF0dXNJY29ucyAhPT0ge31cIiBjbGFzcz1cInN0YXR1cy1pY29uIHt7c3RhdHVzSWNvbnNbdmFsdWVdfX1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIHt7XCJTVEFUUy5cIiArIHZhbHVlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAncm9sZSdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7IFwicm9sZS5cIiArICh2YWx1ZSA/IHZhbHVlIDogXCItLVwiKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdhY3Rpb25zJyAmJiByb3dzLmxlbmd0aCAhPT0gMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImRpc2FibGVkQWN0aW9ucyA/ICdkaXNhYmxlZC1hY3Rpb25zLXdyYXBwZXInIDogJ2FjdGlvbnMtd3JhcHBlcidcIiAqbmdJZj1cIiFzaG93QWN0aW9uc0FzTWVudVwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJiaSBiaS10cmFzaCBkZWxldGUtaWNvblwiIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdyAsICdkZWxldGUnKVwiPjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktcGVuY2lsLXNxdWFyZSBlZGl0LWljb25cIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdVUERBVEUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2VkaXQnKVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXRyYXNoXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJyB8fCBlbnRpdHlUeXBlID09PSAnZGVwYXJ0bWVudCcgfHxcclxuICAgICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3NpZ25lcnMnXHJcbiAgICAgICAgICAgICAgICBcIj48L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wbHVzLXNxdWFyZVwiIG1hdFRvb2x0aXA9XCJ7eyAnVVNFUl9NQU5HTUVOVC5hZGRUb0RlcGFydG1lbnQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIiAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd1c2VycycgJiYgcm93LmlzSW5pdGlhbFwiPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbHVtbi5hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIiBtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAncmVnaXN0ZXJDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctaW4tcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLlJFR0lTVEVSJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdyZWdpc3RlcicpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ3NlbmRDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1lbnZlbG9wZVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuU0VORCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnc2VuZCcpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2Nsb3NlQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmkteC1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkNMT1NFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdjbG9zZScpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2FyY2hpdmVDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1mb2xkZXItc3ltbGlua1wiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuQVJDSElWRScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnYXJjaGl2ZScpXCJcclxuICAgICAgICAgICAgICA+PC9pPiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImRpc2FibGVkQWN0aW9ucyA/ICdkaXNhYmxlZC1hY3Rpb25zLXdyYXBwZXInIDogJ2FjdGlvbnMtd3JhcHBlcidcIiAqbmdJZj1cInNob3dBY3Rpb25zQXNNZW51XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLW1lbnUtdHJpZ2dlclwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImRhdGF0YWJsZS1hY3Rpb25zLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2VkaXQnKVwiICpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj57eyAnVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnIHx8IGVudGl0eVR5cGUgPT09ICdkZXBhcnRtZW50JyB8fFxyXG4gICAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAnc2lnbmVycydcclxuICAgICAgICAgICAgICAgIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBsdXMtc3F1YXJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj57eyAnVVNFUl9NQU5HTUVOVC5hZGRUb0RlcGFydG1lbnQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnR0YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW4uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIiAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnR0YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPjwvY3RzLWRhdGUtdmlld2VyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHluYW1pYy1jb2x1bW4gW2lkXT1cImNvbHVtbi50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uXCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGlyZWN0aW9uJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpY29uU2VsZWN0ZWQoJGV2ZW50LCByb3cpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzLXdyYXBwZXIge3sgdmFsdWUgfX0ge3sgcm93LnN0YXRlIH19XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZXItc3RhdHVzLXdyYXBwZXJcIiBtYXRUb29sdGlwPVwie3sgJ1NUQVRTLicgKyByb3cuc3RhdGUgfCB0cmFuc2xhdGUgfX1cIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2lzRmF2b3JpdGUnLCBlbnRpdHk6IHJvdyB9XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmF2LWljb24taW5kaWNhdG9yIGJpIGJpLXN0YXItZmlsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2RpcmVjdGlvbkljb25zID8gZGlyZWN0aW9uSWNvbnNbJ2luY29taW5nJ10gOiAnYmkgYmktYm94LWFycm93LWRvd24nfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbmNvbWluZ0NvcnJlc3BvbmRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2RpcmVjdGlvbkljb25zID8gZGlyZWN0aW9uSWNvbnNbJ291dGdvaW5nJ10gOiAnYmkgYmktYm94LWFycm93LXVwIG91dGdvaW5nJ319XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy50eXBlID09PSAnT3V0Z29pbmdDb3JyZXNwb25kZW5jZSdcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3tkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydpbnRlcm5hbCddIDogJ2JpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbCd9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ0ludGVybmFsQ29ycmVzcG9uZGVuY2UnXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJ2YWx1ZSB7eyB2YWx1ZSB9fVwiPnt7IFwiU1RBVFMuXCIgKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2N1c3RvbVJvd1RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy12aXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uLmN1c3RvbTFzdENlbGxUZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uXCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmd4LWRhdGF0YWJsZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwicmVzcG9uc2l2ZVZpZXcgJiYgdGFibGVNb2RlICE9PSAnY2FyZCdcIiAod2luZG93OnJlc2l6ZSk9XCJhc3NpZ25UYWJsZUNvbHVtbnMoJGV2ZW50KVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkeW5hbWljLWNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZC1jYXJkJzogaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkICYmIHJvdz8uaXNTZWxlY3RlZH1cIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbW8tdGl0bGVcIj5cclxuICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzLnJlZmVyZW5jZU51bWJlciB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi13cmFwXCI+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnYWN0aW9ucycgJiYgcm93cy5sZW5ndGggIT09IDBcIiBjbGFzcz1cImFjdGlvbnMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCIgbWF0VG9vbHRpcD1cInt7ICdVUERBVEUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIiAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnXCI+PC9pPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCIgbWF0VG9vbHRpcD1cInt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJyB8fCBlbnRpdHlUeXBlID09PSAnZGVwYXJ0bWVudCcgfHxcclxuICAgICAgICAgICAgICAgIGVudGl0eVR5cGUgPT09ICdzaWduZXJzJ1xyXG4gICAgICAgICAgICAgIFwiPjwvaT5cclxuXHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGx1cy1zcXVhcmVcIiBtYXRUb29sdGlwPVwie3sgJ1VTRVJfTUFOR01FTlQuYWRkVG9EZXBhcnRtZW50JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIiAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd1c2VycycgJiYgcm93LmlzSW5pdGlhbFwiPjwvaT5cclxuXHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcHJvcGVydHkuYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxpICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiIG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiPjwvaT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPHNwYW4gIGNsYXNzPVwiYWN0aW9uXCIgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdGFibGVBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxpICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIiBtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJ0YWJsZUNvbHVtbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgdGFibGVDb2x1bW5zXCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ293bmVyJ1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5Lm93bmVyXT8uW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB8IGxvY2FsaXplZERhdGU6Zm9ybWF0Oihpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcbiAgICAgICAgICAgICAgPCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdzdGF0dXMnXCIgY2xhc3M9XCJ2YWx1ZSB7eyByb3dbcHJvcGVydHkudmFsdWVdfX1cIj57e1xyXG4gICAgICAgICAgICAgIFwiU1RBVFMuXCIgKyByb3dbcHJvcGVydHkudmFsdWVdIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd2b2NhYnVsYXJ5J1wiIGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y3RzLWRyb3Bkb3duLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCJcclxuICAgICAgICAgICAgICAgIFtkcm9wZG93bklkXT1cInByb3BlcnR5LnZvY2FidWxhcnlJZFwiPlxyXG4gICAgICAgICAgICAgIDwvY3RzLWRyb3Bkb3duLXZpZXdlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGlyZWN0aW9uJ1wiIChjbGljayk9XCJpY29uU2VsZWN0ZWQoJGV2ZW50LCByb3cpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cy13cmFwcGVyIHt7IHByb3BlcnR5LnZhbHVlIH19IHt7IHJvdy5zdGF0ZSB9fVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5lci1zdGF0dXMtd3JhcHBlclwiIG1hdFRvb2x0aXA9XCJ7eyAnU1RBVFMuJyArIHJvdy5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2lzRmF2b3JpdGUnLCBlbnRpdHk6IHJvdyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmF2LWljb24taW5kaWNhdG9yIGJpIGJpLXN0YXItZmlsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctZG93blwiICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbmNvbWluZ0NvcnJlc3BvbmRlbmNlJ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYm94LWFycm93LXVwIG91dGdvaW5nXCIgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ091dGdvaW5nQ29ycmVzcG9uZGVuY2UnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctcmlnaHQgaW50ZXJuYWxcIiAqbmdJZj1cInJvdy50eXBlID09PSAnSW50ZXJuYWxDb3JyZXNwb25kZW5jZSdcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdjdXN0b20nXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwicHJvcGVydHkudGVtcGxhdGVcIiBbY29sdW1uXT1cInByb3BlcnR5XCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5lci1jYXJkLWNvbnRhaW5lciB7e2VudGl0eVR5cGV9fVwiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICA8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW5zWzBdLnRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5zWzBdXCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgIDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2NhcmQnXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLXRpdGxlXCI+XHJcbiAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICB7eyByb3cucHJvcGVydGllcy5yZWZlcmVuY2VOdW1iZXIgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24td3JhcFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb25cIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRhYmxlQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8aSAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCIgbWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxidXR0b24gKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdkZWxldGVNZW1vJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGVNZW1vJylcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5PTkxZX0RFTEVURScgfCB0cmFuc2xhdGUgfX1cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gKnBlcm1pc3Npb249XCJ7IG5hbWU6ICd0ZXJtaW5hdGVEZWxlZ2F0aW9uJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICd0ZXJtaW5hdGVEZWxlZ2F0aW9uJylcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInB1Ymxpc2gtc3RhdGVcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ21lbW9QdWJsaXNoZWQnLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiPlxyXG4gICAgICAgICAgICB7eyBcIk1FTU9TLlBVQkxJU0hFRFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInB1Ymxpc2gtc3RhdGVcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2RlbGVnYXRpb25GaW5pc2hlZCcsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgIHt7IFwiZGVsZWdhdGlvbnMuZmluaXNoZWRcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdkZWxlZ2F0aW9uQWN0aXZlJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAge3sgXCJkZWxlZ2F0aW9ucy5hY3RpdmVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgY29sdW1uc1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KTtjYXJkRm9jdXNlZChpKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgIT09ICdkZWZhdWx0J1wiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2ludGVybmFsSXNFbmFibGVkJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAge3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndXNlcidcIj5cclxuICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdLmZ1bGxOYW1lIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAge3tyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlOmZvcm1hdDooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKX19XHJcbiAgICAgICAgICAgIDwhLS0gPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCIgPjwvY3RzLWRhdGUtdmlld2VyPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdib29sZWFuJ1wiPlxyXG4gICAgICAgICAgICB7eyAocm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdID8gJ1llcyc6J05vJykgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkZWZhdWx0J1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdpbnRlcm5hbElzRW5hYmxlZCcsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIj5cclxuICAgICAgICAgICAgICB7eyBpdGVtIHwgdHJhbnNsYXRlIH19IHt7XCIsIFwiIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2R5bmFtaWNDYXJkJ1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtY2FyZFwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQtY2FyZCc6IGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCAmJiByb3c/LmlzU2VsZWN0ZWR9XCJcclxuICAgICAgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW5zLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVtby1ib2R5XCIgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIGNvbHVtbnNcIiAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIj57eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3RleHQnXCI+XHJcbiAgICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIHwgbG9jYWxpemVkRGF0ZTpmb3JtYXQ6KGlzQXJhYmljPyAnYXItQVInIDogJ2VuLVVTJykgfX1cclxuICAgICAgICAgICAgICA8IS0tIDxjdHMtZGF0ZS12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiID48L2N0cy1kYXRlLXZpZXdlcj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5lci1jYXJkLWNvbnRhaW5lciB7e2VudGl0eVR5cGV9fVwiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiICpuZ0lmPVwiY29sdW1ucy5sZW5ndGggPT09IDFcIj5cclxuICAgICAgICA8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW5zWzBdLnRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5zWzBdXCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckQsTUFBTSxVQUFVLEdBQUc7SUFDbEIsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLFdBQVcsRUFBRSxhQUFhO0lBQzFCLE1BQU0sRUFBRSxRQUFRO0NBQ1AsQ0FBQztBQUVYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQU9ILE1BQU0sT0FBTyxjQUFjO0lBdUUxQixZQUNRLFlBQTBCLEVBQ3pCLFNBQTJCLEVBQzNCLFdBQStCO1FBRmhDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQXpFeEMsOENBQThDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3Qyw0REFBNEQ7UUFDbEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxtREFBbUQ7UUFDekMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFB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QzlEM0IsOHR3QkE2Z0JBOzRGRC9jYSxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxXQUFXO29CQUNyQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3JDO21LQUdVLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5cclxuY29uc3QgVEFCTEVfTU9ERSA9IHtcclxuXHRsaXN0OiAnbGlzdCcsXHJcblx0Y2FyZDogJ2NhcmQnLFxyXG5cdGR5bmFtaWNDYXJkOiAnZHluYW1pY0NhcmQnLFxyXG5cdGN1c3RvbTogJ2N1c3RvbSdcclxufSBhcyBjb25zdDtcclxuXHJcbi8qKlxyXG4gKiB0aGlzIGNvbXBvbmVudCBpcyBhIG11bHRpLXB1cnBvc2UgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGR1bWIgZGF0YSB0YWJsZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHRvIHNob3cgYW55IGxpc3Qgb2YgZGF0YSxcclxuICogZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIHRhYmxlXHJcbiAqIGFuZCB0aGUganNvbiBzdHJ1Y3R1cmUgZm9yIHRoZSBpbnB1dHMgcGxlYXNlIGNoZWNrIFtDb25maWd1cmF0aW9uIEZpbGVde0BsaW5rIC4uL2FkZGl0aW9uYWwtZG9jdW1lbnRhdGlvbi9jb25maWctZmlsZS5odG1sfVxyXG4gKiAhW1NjcmVlbnNob3QtMV0oLi4vc2NyZWVuc2hvdHMvZHluYW1pY1RhYmxlLnBuZylcclxuICpcclxuICogIyMjIHJlbGF0ZWQgTGlua3M6XHJcbiAqIC0gW1BhZ2luYXRpb24gQ29tcG9uZW50XXtAbGluayBQYWdpbmF0aW9uQ29tcG9uZW50fVxyXG4gKiAtIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9XHJcbiAqIC0gW0NvbmZpZ3VyYXRpb24gRmlsZV17QGxpbmsgLi4vYWRkaXRpb25hbC1kb2N1bWVudGF0aW9uL2NvbmZpZy1maWxlLmh0bWx9XHJcbiAqXHJcbiAqIEB0aXRsZVxyXG4gKiBEYXRhIFRhYmxlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxjdHMtdGFibGVcclxuICogICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gKiAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwicmVzcG9uc2l2ZUNvbHVtbnNcIlxyXG4gKiAgICAgW3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG4gKiAgICAgW2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxyXG4gKiAgICAgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiXHJcbiAqICAgICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAqICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAqICAgICBbdGFibGVNb2RlXT1cInRhYmxlTW9kZVwiXHJcbiAqICAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXHJcbiAqICAgICAob25Sb3dTZWxlY3RlZCk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gKiAgICAgKGFjdGlvbk9uUm93KT1cInBlcmZvcm1BY3Rpb24oJGV2ZW50KVwiXHJcbiAqICAgICAob25Tb3J0aW5nKT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICogID48L2N0cy10YWJsZT5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3RzLXRhYmxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblx0LyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyAqL1xyXG5cdEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gc2VsZWN0aW5nIHNpbmdsZSByb3cgdG8gY2F0Y2ggaW5kZXgqL1xyXG5cdEBPdXRwdXQoKSBvblJvd0luZGV4U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyBJY29uICovXHJcblx0QE91dHB1dCgpIG9uSWNvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gcGVyZm9ybSBhY3Rpb24gb24gcm93IChkZWx0ZSwgZWRpdCwgLi4uICkgKi9cclxuXHRAT3V0cHV0KCkgYWN0aW9uT25Sb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNvcnRpbmcgdGFibGUgKi9cclxuXHRAT3V0cHV0KCkgb25Tb3J0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0IGVtaXQgd2hlbiBzZWxlY3RpbmcgbXVsdGlwbGUgcm93ICovXHJcblx0QE91dHB1dCgpIG9uTXVsdGlSb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogYXJheSBvZiByb3dzIHBhc3NlZCBmcm9tIG91dCBzaWRlIHRoZSBjb21wb25lbnQgKi9cclxuXHRASW5wdXQoKSByb3dzO1xyXG5cdC8qKiBhcnJheSBvZiBjb2x1bW5zIHBhYXNlZCBmcm9tIG91dCBzaWRlIHRoZSBjb21wb25lbnQgKi9cclxuXHRASW5wdXQoKSBjb2x1bW5zO1xyXG5cdC8qKiBhcnJheSBvZiBjb2x1bW5zIHBhYXNlZCBmcm9tIG91dCBzaWRlIHRoZSBjb21wb25lbnQgZm9yIHNtYWxsZXIgc2NyZWVucyAqL1xyXG5cdEBJbnB1dCgpIHJlc3BvbnNpdmVDb2x1bW5zO1xyXG5cdC8qKiB0byBkZWZpbmUgdGhlIHBhZ2UgaW4gd2hpY2ggdGFibGUgaXMgYmVpbmcgdXNlZCAqL1xyXG5cdEBJbnB1dCgpIGVudGl0eVR5cGU6IHN0cmluZyA9ICcnO1xyXG5cdC8qKiBzdGF0aWMgIHBhdGggZm9yIHRyYW5zbGF0aW9uIHBhc3NlZCBmcm9tIG91dCBzaWRlIGFjY29yZGluZyB0byBlYWNoIHBhZ2UgdHJhbnNsYXRpb24gcGF0aCAqL1xyXG5cdEBJbnB1dCgpIHByZWZpeCA9ICcnO1xyXG5cdC8qKiBAZGVwcmVjYXRlZCAqL1xyXG5cdEBJbnB1dCgpIHBhZ2VDb3VudDtcclxuXHQvKiogVG90YWwgUmVjb3Jkc2NvdW50ICovXHJcblx0QElucHV0KCkgdG90YWxSZWNvcmRzO1xyXG5cdC8qKiBAZGVwcmVjYXRlZCAqL1xyXG5cdEBJbnB1dCgpIHJvd0N1cnNvciA9IGZhbHNlO1xyXG5cdC8qKiBNYXggZnVsbCB3aWR0aCBpbiBQWCB8IGF1dG8gKi9cclxuXHRASW5wdXQoKSBmdWxsV2lkdGggPSAnYXV0byc7XHJcblx0LyoqIFZvY2FidWxhcnkgVHJhbnNsYXRpb24gcHJlZml4ICovXHJcblx0QElucHV0KCkgdm9jSXRlbVRyYW5zbGF0aW9uUHJlZml4O1xyXG5cclxuXHR0YWJsZU1vZGVzID0gVEFCTEVfTU9ERTtcclxuXHJcblx0QElucHV0KCkgdGFibGVNb2RlOiBzdHJpbmcgPSBUQUJMRV9NT0RFLmxpc3Q7XHJcblxyXG5cdEBJbnB1dCgpIGNvbXBvbmVudE5hbWU6IHN0cmluZztcclxuXHJcblx0LyoqIGFjdGlvbiB0byBiZSBpbiBjYXJkIG1vZGUgKi9cclxuXHRASW5wdXQoKSB0YWJsZUFjdGlvbnM7XHJcblx0QElucHV0KCkgZm9ybWF0ID0gJ01NTU0gZCwgeSc7XHJcblx0QElucHV0KCkgZGVmdWx0U29ydCA9IG51bGw7XHJcblx0bGFuZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cdEBJbnB1dCgpIGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCA9IGZhbHNlO1xyXG5cclxuXHQvKiogYWxsb3cgbXVsdGlzZWxlY3Qgcm93cyB3aXRoIGNoZWNrYm94ICovXHJcblx0QElucHV0KCkgbXVsdGlTZWxlY3RSb3dzID0gZmFsc2U7XHJcblxyXG5cdC8qKiB0byBzaG93IDFzdCByb3cgd2l0aCBjdXN0b20gdGVtcGxhdGUgaW4gdGhlIHRhYmxlKi9cclxuXHRASW5wdXQoKSBjdXN0b21GaXJzdFJvdyA9IGZhbHNlO1xyXG5cdC8qKiBmbGFnZSB1c2VkIHRvIGRpc2FibGUgYWN0aW9ucyBpZiB0aGVyZSB3YXMgbXVsdGkgc2VsZWN0ZWQgcm93cyAqL1xyXG5cclxuXHRASW5wdXQoKSBzaG93QWN0aW9uc0FzTWVudSA9IGZhbHNlOyAvLyBmbGFnZSB0byBzaG93IGFjdGlvbiBpbiBtZW51IG9yIHNpZGUgYnkgc2lkZVxyXG5cclxuXHRkaXNhYmxlZEFjdGlvbnMgPSBmYWxzZTtcclxuXHRpc0FyYWJpYyA9IGZhbHNlO1xyXG5cdHRhYmxlV2lkdGggPSAnYXV0byc7XHJcblx0dGFibGVDb2x1bW5zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblx0dGFibGVDb2x1bW5zJCA9IHRoaXMudGFibGVDb2x1bW5zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRnZXQgdGFibGVDb2x1bW5zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudGFibGVDb2x1bW5zU3ViLmdldFZhbHVlKCk7XHJcblx0fVxyXG5cdGN1cnJlbnRSb3c7XHJcblx0c2VsZWN0ZWQgPSBbXTtcclxuXHRwYWdlTnVtYmVyID0gMTtcclxuXHRyZXNwb25zaXZlVmlldyA9IGZhbHNlO1xyXG5cdHN0YXR1c0ljb25zID0ge307IC8vIG9iamVjdCB0byBjb250YWlucyBhbGwgc3RhdHVzIGljb25zIGlmIGV4aXN0XHJcblx0ZGlyZWN0aW9uSWNvbnMgPSB7fTsgLy8gb2JqZWN0IHRvIGNvbnRhaW5zIGFsbCBkaXJlY3Rpb24gaWNvbnMgaWYgZXhpc3RcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuXHRcdHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLmZvcm1hdCA9IHRoaXMuYXBwQ29uZmlnLm15Q29uZmlndXJhdGlvblsnZGF0ZUZvcm1hdGUnXTtcclxuXHRcdHRoaXMuc3RhdHVzSWNvbnMgPSB0aGlzLmFwcENvbmZpZy5teUNvbmZpZ3VyYXRpb25bJ3N0YXR1c0ljb25zJ107XHJcblx0XHR0aGlzLmRpcmVjdGlvbkljb25zID0gdGhpcy5hcHBDb25maWcubXlDb25maWd1cmF0aW9uWydkaXJlY3Rpb25JY29ucyddO1xyXG5cdFx0dGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmlzQXJhYmljID0gcmVzO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAoY2hhbmdlcy5jb2x1bW5zICYmICFjaGFuZ2VzPy5jb2x1bW5zPy5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuXHRcdFx0dGhpcy50YWJsZUNvbHVtbnNTdWIubmV4dChjaGFuZ2VzLmNvbHVtbnM/LmN1cnJlbnRWYWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMub25SZXNpemUod2luZG93LmlubmVyV2lkdGgpO1xyXG5cdH1cclxuXHJcblx0Ly8gZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgd2hlbiBjbGlja2luZyBvbiBzaW5nbGUgcm93XHJcblx0cm93RGV0YWlscyhldmVudCkge1xyXG5cdFx0aWYgKGV2ZW50LnR5cGUgIT09ICdtb3VzZWVudGVyJykge1xyXG5cdFx0XHRpZiAoZXZlbnQudHlwZSA9PT0gJ2NsaWNrJyAmJiBldmVudC5jb2x1bW4ucHJvcCAhPT0gJycpIHtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRSb3cgPSBldmVudC5yb3c7XHJcblx0XHRcdFx0dGhpcy5vblJvd1NlbGVjdGVkLmVtaXQodGhpcy5jdXJyZW50Um93KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRpY29uU2VsZWN0ZWQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvdykge1xyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHR0aGlzLm9uSWNvblNlbGVjdGVkLmVtaXQocm93KTtcclxuXHR9XHJcblxyXG5cdC8vZnVuY3Rpb24gdG8gaGFuZGxlIGFsbCBvcGVyYXRpb25zIG9uIHNpbmdsZSByb3cgKGRlbGV0ZSAsIGVkaXQgLCAuLi4pXHJcblx0cGVyZm9ybUFjdGlvbihzaW5nbGVSb3csIGFjdGlvblR5cGUpIHtcclxuXHRcdGlmICghdGhpcy5kaXNhYmxlZEFjdGlvbnMpXHJcblx0XHRcdHRoaXMuYWN0aW9uT25Sb3cuZW1pdCh7XHJcblx0XHRcdFx0dHlwZTogYWN0aW9uVHlwZSxcclxuXHRcdFx0XHRyb3c6IHNpbmdsZVJvd1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIGhhbmRsZSBjaGVja2JveCBpZiB0YWJsZSBoYXMgb25lc1xyXG5cdG9uU2VsZWN0KGV2ZW50KSB7XHJcblx0XHQvLyBjb25zb2xlLmxvZygnb24gc2VsZWN0IHJvdyBjbGljaycpO1xyXG5cdFx0dGhpcy5vbk11bHRpUm93U2VsZWN0ZWQuZW1pdChldmVudC5zZWxlY3RlZCk7XHJcblx0XHRpZiAodGhpcy5tdWx0aVNlbGVjdFJvd3MgJiYgZXZlbnQuc2VsZWN0ZWQubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0aGlzLmRpc2FibGVkQWN0aW9ucyA9IHRydWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmRpc2FibGVkQWN0aW9ucyA9IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gaGFuZGxlIHNvcnRpbmcgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGVcclxuXHRvblNvcnQoZXZlbnQpIHtcclxuXHRcdGxldCBzb3J0ID0ge1xyXG5cdFx0XHRzb3J0Qnk6IGV2ZW50LmNvbHVtbi5oZWFkZXJDbGFzcyxcclxuXHRcdFx0c29ydE9yZGVyOiBldmVudC5uZXdWYWx1ZVxyXG5cdFx0fTtcclxuXHRcdHRoaXMub25Tb3J0aW5nLmVtaXQoc29ydCk7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25UYWJsZUNvbHVtbnMoZXZlbnQpIHtcclxuXHRcdHRoaXMub25SZXNpemUoZXZlbnQudGFyZ2V0LmlubmVyV2lkdGgpO1xyXG5cdH1cclxuXHJcblx0b25SZXNpemUod2lkdGgpIHtcclxuXHRcdGlmICh3aWR0aCA+IDE0MDApIHtcclxuXHRcdFx0dGhpcy50YWJsZVdpZHRoID0gJ2F1dG8nO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy50YWJsZVdpZHRoID0gdGhpcy5mdWxsV2lkdGg7XHJcblx0XHR9XHJcblx0XHRpZiAod2lkdGggPCA3NjgpIHtcclxuXHRcdFx0dGhpcy50YWJsZUNvbHVtbnNTdWIubmV4dCh0aGlzLnJlc3BvbnNpdmVDb2x1bW5zKTtcclxuXHRcdFx0dGhpcy5yZXNwb25zaXZlVmlldyA9IHRydWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlc3BvbnNpdmVWaWV3ID0gZmFsc2U7XHJcblxyXG5cdFx0XHR0aGlzLnRhYmxlQ29sdW1uc1N1Yi5uZXh0KHRoaXMuY29sdW1ucyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYXJkU2VsZWN0ZWQoY2FyZCkge1xyXG5cdFx0aWYgKHRoaXMuaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkKSB7XHJcblx0XHRcdHRoaXMucm93cy5tYXAoKHJvdykgPT4ge1xyXG5cdFx0XHRcdHJvd1snaXNTZWxlY3RlZCddID0gZmFsc2U7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRjYXJkWydpc1NlbGVjdGVkJ10gPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5vblJvd1NlbGVjdGVkLmVtaXQoY2FyZCk7XHJcblx0fVxyXG5cclxuXHRjYXJkRm9jdXNlZChpbmRleCkge1xyXG5cdFx0dGhpcy5vblJvd0luZGV4U2VsZWN0ZWQuZW1pdChpbmRleCk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXZcclxuXHRjbGFzcz1cImluZXItdGFibGUtY29udGFpbmVyXCJcclxuXHRbc3R5bGVdPVwiJ3dpZHRoOicgKyB0YWJsZVdpZHRoXCJcclxuXHQqbmdJZj1cInRhYmxlTW9kZSA9PT0gdGFibGVNb2Rlcy5saXN0ICYmICFyZXNwb25zaXZlVmlld1wiXHJcbj5cclxuXHQ8bmd4LWRhdGF0YWJsZVxyXG5cdFx0W25nQ2xhc3NdPVwieyBvdmVyZmxvd1Zpc2libGU6IGN1c3RvbUZpcnN0Um93IH1cIlxyXG5cdFx0Y2xhc3M9XCJsYXJnZS10YWJsZVwiXHJcblx0XHRbcm93c109XCJyb3dzXCJcclxuXHRcdFtzdW1tYXJ5Um93XT1cImN1c3RvbUZpcnN0Um93XCJcclxuXHRcdFtjb2x1bW5Nb2RlXT1cIidmb3JjZSdcIlxyXG5cdFx0W2V4dGVybmFsU29ydGluZ109XCJ0cnVlXCJcclxuXHRcdChhY3RpdmF0ZSk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG5cdFx0KHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcclxuXHRcdChzb3J0KT1cIm9uU29ydCgkZXZlbnQpXCJcclxuXHRcdCh3aW5kb3c6cmVzaXplKT1cImFzc2lnblRhYmxlQ29sdW1ucygkZXZlbnQpXCJcclxuXHRcdFtyb3dIZWlnaHRdPVwiJ2F1dG8nXCJcclxuXHRcdFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcblx0XHRbc2VsZWN0aW9uVHlwZV09XCJtdWx0aVNlbGVjdFJvd3MgPyAnY2hlY2tib3gnIDogJ3NpbmdsZSdcIlxyXG5cdFx0W3NvcnRzXT1cIlt7IHByb3A6IGRlZnVsdFNvcnQ/Lm5hbWUsIGRpcjogZGVmdWx0U29ydD8uZGlyIH1dXCJcclxuXHQ+XHJcblx0XHQ8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuXHRcdFx0Km5nSWY9XCJtdWx0aVNlbGVjdFJvd3NcIlxyXG5cdFx0XHRbd2lkdGhdPVwiMzBcIlxyXG5cdFx0XHRbc29ydGFibGVdPVwiZmFsc2VcIlxyXG5cdFx0XHRbcHJvcF09XCInJ1wiXHJcblx0XHRcdFtjYW5BdXRvUmVzaXplXT1cImZhbHNlXCJcclxuXHRcdFx0W2RyYWdnYWJsZV09XCJmYWxzZVwiXHJcblx0XHRcdFtyZXNpemVhYmxlXT1cImZhbHNlXCJcclxuXHRcdD5cclxuXHRcdFx0PG5nLXRlbXBsYXRlXHJcblx0XHRcdFx0bmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGVcclxuXHRcdFx0XHRsZXQtdmFsdWU9XCJ2YWx1ZVwiXHJcblx0XHRcdFx0bGV0LWFsbFJvd3NTZWxlY3RlZD1cImFsbFJvd3NTZWxlY3RlZFwiXHJcblx0XHRcdFx0bGV0LXNlbGVjdEZuPVwic2VsZWN0Rm5cIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PCEtLSA8aW5wdXQgY2xhc3M9XCJjaGVja2JveC1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImFsbFJvd3NTZWxlY3RlZFwiIChjaGFuZ2UpPVwic2VsZWN0Rm4oIWFsbFJvd3NTZWxlY3RlZClcIiAvPiAtLT5cclxuXHRcdFx0XHQ8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFtjaGVja2VkXT1cImFsbFJvd3NTZWxlY3RlZFwiIChjaGFuZ2UpPVwic2VsZWN0Rm4oIWFsbFJvd3NTZWxlY3RlZClcIj4gPC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZVxyXG5cdFx0XHRcdG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZVxyXG5cdFx0XHRcdGxldC12YWx1ZT1cInZhbHVlXCJcclxuXHRcdFx0XHRsZXQtaXNTZWxlY3RlZD1cImlzU2VsZWN0ZWRcIlxyXG5cdFx0XHRcdGxldC1vbkNoZWNrYm94Q2hhbmdlRm49XCJvbkNoZWNrYm94Q2hhbmdlRm5cIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PCEtLSA8aW5wdXQgY2xhc3M9XCJjaGVja2JveC1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2VGbigkZXZlbnQpXCIgLz4gLS0+XHJcblx0XHRcdFx0PG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oIWFsbFJvd3NTZWxlY3RlZClcIj5cclxuXHRcdFx0XHQ8L21hdC1jaGVja2JveD5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblx0XHQ8IS0tIHwgdHJhbnNsYXRlIC0tPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1ucyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiBjb2x1bW4ucGVybWlzc2lvbiB9XCI+XHJcblx0XHRcdFx0PG5neC1kYXRhdGFibGUtY29sdW1uXHJcblx0XHRcdFx0XHQqbmdJZj1cImNvbHVtbi5kaXNwbGF5XCJcclxuXHRcdFx0XHRcdFtzb3J0YWJsZV09XCJjb2x1bW4uc29ydGFibGVcIlxyXG5cdFx0XHRcdFx0W25hbWVdPVwicHJlZml4ICsgY29sdW1uLm5hbWUgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFx0W3Byb3BdPVwiY29sdW1uLnByb3BcIlxyXG5cdFx0XHRcdFx0W3Jlc2l6ZWFibGVdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0W2RyYWdnYWJsZV09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbbWF4V2lkdGhdPVwiY29sdW1uPy5zaXplXCJcclxuXHRcdFx0XHRcdFtoZWFkZXJDbGFzc109XCJjb2x1bW4uaGVhZGVyQ2xhc3MgPyBjb2x1bW4uaGVhZGVyQ2xhc3MgOiAnJ1wiXHJcblx0XHRcdFx0XHRbc3VtbWFyeVRlbXBsYXRlXT1cImN1c3RvbUZpcnN0Um93ID8gY3VzdG9tUm93VGVtcGxhdGUgOiBudWxsXCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3RleHQnXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyB2YWx1ZSA/IHZhbHVlIDogJy0tJyB9fVxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3ZvY2FidWxhcnknXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8Y3RzLWRyb3Bkb3duLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwidmFsdWVcIiBbZHJvcGRvd25JZF09XCJjb2x1bW4udm9jYWJ1bGFyeUlkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2N0cy1kcm9wZG93bi12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jQ2VsbCdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7ICh2YWx1ZSA/IGNvbHVtbi52b2NhYnVsYXJ5SWQgKyAnLicgKyB2YWx1ZSA6ICctLScpIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jSXRlbSdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7IHZvY0l0ZW1UcmFuc2xhdGlvblByZWZpeCArIHZhbHVlIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdkZXBhcnRtZW50J1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGN0cy1kZXBhcnRtZW50LXZpZXdlciBbbm9TdHlsZV09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+IDwvY3RzLWRlcGFydG1lbnQtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3N0YXR1cydcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwic3RhdHVzLXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCJzdGF0dXNJY29ucyAmJiBzdGF0dXNJY29ucyAhPT0ge31cIiBjbGFzcz1cInN0YXR1cy1pY29uIHt7IHN0YXR1c0ljb25zW3ZhbHVlXSB9fVwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgJ1NUQVRTLicgKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3JvbGUnXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyAncm9sZS4nICsgKHZhbHVlID8gdmFsdWUgOiAnLS0nKSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2FjdGlvbnMnICYmIHJvd3MubGVuZ3RoICE9PSAwXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwiZGlzYWJsZWRBY3Rpb25zID8gJ2Rpc2FibGVkLWFjdGlvbnMtd3JhcHBlcicgOiAnYWN0aW9ucy13cmFwcGVyJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cIiFzaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSA8c3BhbiBjbGFzcz1cImJpIGJpLXRyYXNoIGRlbGV0ZS1pY29uXCIgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93ICwgJ2RlbGV0ZScpXCI+PC9zcGFuPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiYmkgYmktcGVuY2lsLXNxdWFyZSBlZGl0LWljb25cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgJ1VQREFURScgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImJpIGJpLXRyYXNoXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnIHx8IGVudGl0eVR5cGUgPT09ICdkZXBhcnRtZW50JyB8fCBlbnRpdHlUeXBlID09PSAnc2lnbmVycydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0PjwvaT5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImJpIGJpLXBsdXMtc3F1YXJlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3VzZXJzJyAmJiByb3cuaXNJbml0aWFsXCJcclxuXHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PHNwYW4gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW4uYWN0aW9uc1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogYWN0aW9uLnBlcm1pc3Npb24sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdyZWdpc3RlckNvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1pbi1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuUkVHSVNURVInIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3JlZ2lzdGVyJylcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnc2VuZENvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWVudmVsb3BlXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5TRU5EJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdzZW5kJylcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnY2xvc2VDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS14LWNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuQ0xPU0UnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2Nsb3NlJylcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnYXJjaGl2ZUNvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWZvbGRlci1zeW1saW5rXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5BUkNISVZFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdhcmNoaXZlJylcIlxyXG4gICAgICAgICAgICAgID48L2k+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cImRpc2FibGVkQWN0aW9ucyA/ICdkaXNhYmxlZC1hY3Rpb25zLXdyYXBwZXInIDogJ2FjdGlvbnMtd3JhcHBlcidcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJzaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1tZW51LXRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZEFjdGlvbnNcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJkYXRhdGFibGUtYWN0aW9ucy1tZW51XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIiAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS1wZW5jaWwtc3F1YXJlIGVkaXQtaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgJ1VQREFURScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0LW1lbnUtaXRlbVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnIHx8IGVudGl0eVR5cGUgPT09ICdkZXBhcnRtZW50JyB8fCBlbnRpdHlUeXBlID09PSAnc2lnbmVycydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgJ2RlbGV0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0LW1lbnUtaXRlbVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cImVudGl0eVR5cGUgPT09ICd1c2VycycgJiYgcm93LmlzSW5pdGlhbFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXBsdXMtc3F1YXJlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj57eyAnVVNFUl9NQU5HTUVOVC5hZGRUb0RlcGFydG1lbnQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnR0YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW4uYWN0aW9uc1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBhY3Rpb24ucGVybWlzc2lvbixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnR0YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L21hdC1tZW51PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RhdGUnXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPjwvY3RzLWRhdGUtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxjdHMtZHluYW1pYy1jb2x1bW4gW2lkXT1cImNvbHVtbi50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uXCIgW2NvbnRleHRdPVwicm93XCI+IDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RpcmVjdGlvbidcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IChjbGljayk9XCJpY29uU2VsZWN0ZWQoJGV2ZW50LCByb3cpXCIgY2xhc3M9XCJzdGF0dXMtd3JhcHBlciB7eyB2YWx1ZSB9fSB7eyByb3cuc3RhdGUgfX1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5lci1zdGF0dXMtd3JhcHBlclwiIG1hdFRvb2x0aXA9XCJ7eyAnU1RBVFMuJyArIHJvdy5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnaXNGYXZvcml0ZScsIGVudGl0eTogcm93IH1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZhdi1pY29uLWluZGljYXRvciBiaSBiaS1zdGFyLWZpbGxcIj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwie3sgZGlyZWN0aW9uSWNvbnMgPyBkaXJlY3Rpb25JY29uc1snaW5jb21pbmcnXSA6ICdiaSBiaS1ib3gtYXJyb3ctZG93bicgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwicm93LnR5cGUgPT09ICdJbmNvbWluZ0NvcnJlc3BvbmRlbmNlJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydvdXRnb2luZyddIDogJ2JpIGJpLWJveC1hcnJvdy11cCBvdXRnb2luZycgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwicm93LnR5cGUgPT09ICdPdXRnb2luZ0NvcnJlc3BvbmRlbmNlJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydpbnRlcm5hbCddIDogJ2JpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbCcgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwicm93LnR5cGUgPT09ICdJbnRlcm5hbENvcnJlc3BvbmRlbmNlJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj57eyBcIlNUQVRTLlwiICsgdmFsdWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2N1c3RvbVJvd1RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy12aXNpYmxlXCI+XHJcblx0XHRcdFx0XHRcdFx0PGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uLmN1c3RvbTFzdENlbGxUZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uXCIgW2NvbnRleHRdPVwicm93XCI+XHJcblx0XHRcdFx0XHRcdFx0PC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvbmd4LWRhdGF0YWJsZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwicmVzcG9uc2l2ZVZpZXcgJiYgdGFibGVNb2RlICE9PSB0YWJsZU1vZGVzLmNhcmRcIiAod2luZG93OnJlc2l6ZSk9XCJhc3NpZ25UYWJsZUNvbHVtbnMoJGV2ZW50KVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJkeW5hbWljLWNhcmRzLWNvbnRhaW5lclwiPlxyXG5cdFx0PGRpdlxyXG5cdFx0XHRjbGFzcz1cInNpbmdsZS1jYXJkXCJcclxuXHRcdFx0W25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtY2FyZCc6IGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCAmJiByb3c/LmlzU2VsZWN0ZWQgfVwiXHJcblx0XHRcdCpuZ0Zvcj1cImxldCByb3cgb2Ygcm93c1wiXHJcblx0XHQ+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJtZW1vLXRpdGxlXCI+XHJcblx0XHRcdFx0PHNwYW4+XHJcblx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllcy5yZWZlcmVuY2VOdW1iZXIgfX1cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb24td3JhcFwiPlxyXG5cdFx0XHRcdFx0PCEtLSA8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2FjdGlvbnMnICYmIHJvd3MubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZW5jaWwtc3F1YXJlIGVkaXQtaWNvblwiIG1hdFRvb2x0aXA9XCJ7eyAnVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZWRpdCcpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJ1wiPjwvaT5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiIG1hdFRvb2x0aXA9XCJ7eyAnZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVwiIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZScgfHwgZW50aXR5VHlwZSA9PT0gJ2RlcGFydG1lbnQnIHx8XHJcbiAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAnc2lnbmVycydcclxuICAgICAgICAgICAgICBcIj48L2k+XHJcblxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBsdXMtc3F1YXJlXCIgbWF0VG9vbHRpcD1cInt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIj48L2k+XHJcblxyXG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHByb3BlcnR5LmFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8aSAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIiBtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIj48L2k+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiYWN0aW9uXCIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiB0YWJsZUFjdGlvbnNcIj5cclxuXHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIlxyXG5cdFx0XHRcdFx0XHRcdG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIlxyXG5cdFx0XHRcdFx0XHQ+PC9pPlxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgKm5nSWY9XCJ0YWJsZUNvbHVtbnMubGVuZ3RoID4gMVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgdGFibGVDb2x1bW5zJCB8IGFzeW5jXCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdvd25lcidcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS5vd25lcl0/Lltwcm9wZXJ0eS52YWx1ZV0gfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlIDogZm9ybWF0IDogKGlzQXJhYmljID8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdzdGF0dXMnXCIgY2xhc3M9XCJ2YWx1ZSB7eyByb3dbcHJvcGVydHkudmFsdWVdIH19XCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgJ1NUQVRTLicgKyByb3dbcHJvcGVydHkudmFsdWVdIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3ZvY2FidWxhcnknXCIgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxjdHMtZHJvcGRvd24tdmlld2VyXHJcblx0XHRcdFx0XHRcdFx0XHRbd2l0aE91dExhYmVsXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiXHJcblx0XHRcdFx0XHRcdFx0XHRbZHJvcGRvd25JZF09XCJwcm9wZXJ0eS52b2NhYnVsYXJ5SWRcIlxyXG5cdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHQ8L2N0cy1kcm9wZG93bi12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFx0Km5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGlyZWN0aW9uJ1wiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImljb25TZWxlY3RlZCgkZXZlbnQsIHJvdylcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwic3RhdHVzLXdyYXBwZXIge3sgcHJvcGVydHkudmFsdWUgfX0ge3sgcm93LnN0YXRlIH19XCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5lci1zdGF0dXMtd3JhcHBlclwiIG1hdFRvb2x0aXA9XCJ7eyAnU1RBVFMuJyArIHJvdy5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2lzRmF2b3JpdGUnLCBlbnRpdHk6IHJvdyB9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmF2LWljb24taW5kaWNhdG9yIGJpIGJpLXN0YXItZmlsbFwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctZG93blwiICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbmNvbWluZ0NvcnJlc3BvbmRlbmNlJ1wiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiYmkgYmktYm94LWFycm93LXVwIG91dGdvaW5nXCIgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ091dGdvaW5nQ29ycmVzcG9uZGVuY2UnXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctcmlnaHQgaW50ZXJuYWxcIiAqbmdJZj1cInJvdy50eXBlID09PSAnSW50ZXJuYWxDb3JyZXNwb25kZW5jZSdcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdjdXN0b20nXCI+XHJcblx0XHRcdFx0XHRcdFx0PGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwicHJvcGVydHkudGVtcGxhdGVcIiBbY29sdW1uXT1cInByb3BlcnR5XCIgW2NvbnRleHRdPVwicm93XCI+IDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImluZXItY2FyZC1jb250YWluZXIge3sgZW50aXR5VHlwZSB9fVwiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG5cdFx0XHQ8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW5zWzBdLnRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5zWzBdXCIgW2NvbnRleHRdPVwicm93XCI+IDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gdGFibGVNb2Rlcy5jYXJkXCI+XHJcblx0PGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaSA9IGluZGV4XCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJtZW1vLXRpdGxlXCI+XHJcblx0XHRcdFx0PHNwYW4+XHJcblx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllcy5yZWZlcmVuY2VOdW1iZXIgfX1cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb24td3JhcFwiPlxyXG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb25cIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRhYmxlQWN0aW9uc1wiPlxyXG5cdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogYWN0aW9uLnBlcm1pc3Npb24sXHJcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiXHJcblx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiXHJcblx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdkZWxldGVNZW1vJyxcclxuXHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlTWVtbycpXCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5PTkxZX0RFTEVURScgfCB0cmFuc2xhdGUgfX1cIj48L2k+XHJcblx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ3Rlcm1pbmF0ZURlbGVnYXRpb24nLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICd0ZXJtaW5hdGVEZWxlZ2F0aW9uJylcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCIgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIj48L2k+XHJcblx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcblx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdtZW1vUHVibGlzaGVkJyxcclxuXHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0e3sgJ01FTU9TLlBVQkxJU0hFRCcgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcblx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdkZWxlZ2F0aW9uRmluaXNoZWQnLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHR7eyAnZGVsZWdhdGlvbnMuZmluaXNoZWQnIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHQ8c3BhblxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInB1Ymxpc2gtc3RhdGVcIlxyXG5cdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZGVsZWdhdGlvbkFjdGl2ZScsXHJcblx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdHt7ICdkZWxlZ2F0aW9ucy5hY3RpdmUnIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm1lbW8tYm9keVwiICpuZ0Zvcj1cImxldCBwcm9wZXJ0eSBvZiB0YWJsZUNvbHVtbnMkIHwgYXN5bmNcIiAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdyk7IGNhcmRGb2N1c2VkKGkpXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImtleVwiICpuZ0lmPVwicHJvcGVydHkudHlwZSAhPT0gJ2RlZmF1bHQnXCI+XHJcblx0XHRcdFx0XHR7eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RlZmF1bHQnXCI+XHJcblx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdGNsYXNzPVwia2V5XCJcclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2ludGVybmFsSXNFbmFibGVkJyxcclxuXHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuXHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndXNlcidcIj5cclxuXHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdLmZ1bGxOYW1lIH19XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuXHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIHwgbG9jYWxpemVkRGF0ZSA6IGZvcm1hdCA6IChpc0FyYWJpYyA/ICdhci1BUicgOiAnZW4tVVMnKSB9fVxyXG5cdFx0XHRcdFx0XHQ8IS0tIDxjdHMtZGF0ZS12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiID48L2N0cy1kYXRlLXZpZXdlcj4gLS0+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnYm9vbGVhbidcIj5cclxuXHRcdFx0XHRcdFx0e3sgKHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSA/ICdZZXMnIDogJ05vJykgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkZWZhdWx0J1wiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ0ZXh0XCJcclxuXHRcdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6ICdpbnRlcm5hbElzRW5hYmxlZCcsXHJcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IGl0ZW0gfCB0cmFuc2xhdGUgfX0ge3sgJywgJyB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0YWJsZU1vZGUgPT09IHRhYmxlTW9kZXMuZHluYW1pY0NhcmRcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XHJcblx0XHQ8ZGl2XHJcblx0XHRcdGNsYXNzPVwic2luZ2xlLWNhcmRcIlxyXG5cdFx0XHRbbmdDbGFzc109XCJ7ICdzZWxlY3RlZC1jYXJkJzogaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkICYmIHJvdz8uaXNTZWxlY3RlZCB9XCJcclxuXHRcdFx0Km5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCJcclxuXHRcdD5cclxuXHRcdFx0PGRpdiAqbmdJZj1cInRhYmxlQ29sdW1ucy5sZW5ndGggPiAxXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1lbW8tYm9keVwiICpuZ0Zvcj1cImxldCBwcm9wZXJ0eSBvZiB0YWJsZUNvbHVtbnMkIHwgYXN5bmNcIiAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJrZXlcIj57eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3RleHQnXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RhdGUnXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIHwgbG9jYWxpemVkRGF0ZSA6IGZvcm1hdCA6IChpc0FyYWJpYyA/ICdhci1BUicgOiAnZW4tVVMnKSB9fVxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCIgPjwvY3RzLWRhdGUtdmlld2VyPiAtLT5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJpbmVyLWNhcmQtY29udGFpbmVyIHt7IGVudGl0eVR5cGUgfX1cIiAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIiAqbmdJZj1cInRhYmxlQ29sdW1ucy5sZW5ndGggPT09IDFcIj5cclxuXHRcdFx0XHQ8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJ0YWJsZUNvbHVtbnNbMF0udGVtcGxhdGVcIiBbY29sdW1uXT1cInRhYmxlQ29sdW1uc1swXVwiIFtjb250ZXh0XT1cInJvd1wiPlxyXG5cdFx0XHRcdDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0YWJsZU1vZGUgPT09IHRhYmxlTW9kZXMuY3VzdG9tXCIgY2xhc3M9XCJ0YWJsZS1jdXN0b20tdmlldyAgXCI+XHJcblx0PGFwcC1keW5hbWljLWNvbXBvbmVudFxyXG5cdFx0Y2xhc3M9XCJ0YWJsZS1jdXN0b20tdmlld19fY29tcG9uZW50XCJcclxuXHRcdCpuZ0Zvcj1cImxldCByb3cgb2Ygcm93c1wiXHJcblx0XHRbY29tcG9uZW50TmFtZV09XCJjb21wb25lbnROYW1lXCJcclxuXHRcdFtyb3ddPVwicm93XCJcclxuICAgIFtyb3dBY3Rpb25dPVwiYWN0aW9uT25Sb3dcIlxyXG4gICAgW29uQ2xpY2tdPVwib25Sb3dTZWxlY3RlZFwiXHJcblx0XHQoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIlxyXG5cdFx0W2NsYXNzLmR5bmFtaWMtc2VsZWN0ZWQtY2FyZF09XCJoaWdobGlnaHRTZWxlY3RlZENhcmQgJiYgcm93Py5pc1NlbGVjdGVkXCJcclxuXHQ+PC9hcHAtZHluYW1pYy1jb21wb25lbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
|