@deeksha2309/sunbird-collection-editor 8.0.7 → 8.0.8
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/deeksha2309-sunbird-collection-editor.d.ts.map +1 -0
- package/esm2022/deeksha2309-sunbird-collection-editor.mjs +5 -0
- package/esm2022/lib/collection-editor-library.module.mjs +30 -6
- package/esm2022/lib/components/answer/answer.component.mjs +6 -3
- package/esm2022/lib/components/app-loader/app-loader.component.mjs +30 -0
- package/esm2022/lib/components/asset-browser/asset-browser.component.mjs +30 -12
- package/esm2022/lib/components/assign-page-number/assign-page-number.component.mjs +1 -1
- package/esm2022/lib/components/bulk-upload/bulk-upload.component.mjs +447 -0
- package/esm2022/lib/components/ckeditor-tool/ckeditor-tool.component.mjs +30 -12
- package/esm2022/lib/components/collection-icon/collection-icon.component.mjs +3 -3
- package/esm2022/lib/components/csv-upload/csv-upload.component.mjs +2 -2
- package/esm2022/lib/components/editor/editor.component.mjs +143 -64
- package/esm2022/lib/components/fancy-tree/fancy-tree.component.mjs +91 -9
- package/esm2022/lib/components/header/header.component.mjs +27 -9
- package/esm2022/lib/components/library/library.component.mjs +4 -4
- package/esm2022/lib/components/library-list/library-list.component.mjs +4 -4
- package/esm2022/lib/components/library-player/library-player.component.mjs +4 -4
- package/esm2022/lib/components/meta-form/meta-form.component.mjs +10 -18
- package/esm2022/lib/components/options/options.component.mjs +40 -27
- package/esm2022/lib/components/progress-status/progress-status.component.mjs +1 -1
- package/esm2022/lib/components/publish-checklist/publish-checklist.component.mjs +6 -3
- package/esm2022/lib/components/question/question.component.mjs +185 -77
- package/esm2022/lib/components/question-option-sub-menu/question-option-sub-menu.component.mjs +36 -0
- package/esm2022/lib/components/quml-player/quml-player.component.mjs +2 -2
- package/esm2022/lib/components/qumlplayer-page/qumlplayer-page.component.mjs +3 -3
- package/esm2022/lib/components/relational-metadata/relational-metadata.component.mjs +80 -0
- package/esm2022/lib/components/resource-reorder/resource-reorder.component.mjs +3 -3
- package/esm2022/lib/components/slider/slider.component.mjs +46 -0
- package/esm2022/lib/components/template/template.component.mjs +3 -3
- package/esm2022/lib/components/translations/translations.component.mjs +132 -0
- package/esm2022/lib/directives/date-format/date-format.pipe.mjs +34 -0
- package/esm2022/lib/interfaces/CreationContext.mjs +2 -0
- package/esm2022/lib/interfaces/editor.mjs +1 -1
- package/esm2022/lib/interfaces/loader.mjs +2 -0
- package/esm2022/lib/pipes/interpolate.pipe.mjs +17 -0
- package/esm2022/lib/pipes/sanitize-html.pipe.mjs +6 -8
- package/esm2022/lib/services/bulk-job/bulk-job.service.mjs +67 -0
- package/esm2022/lib/services/config/category.config.json +1 -0
- package/esm2022/lib/services/config/editor.config.json +29 -2
- package/esm2022/lib/services/config/label.config.json +16 -3
- package/esm2022/lib/services/config/player.config.json +3 -0
- package/esm2022/lib/services/config/url.config.json +17 -1
- package/esm2022/lib/services/editor/editor.service.mjs +64 -26
- package/esm2022/lib/services/question/question.service.mjs +27 -35
- package/esm2022/lib/services/tree/tree.service.mjs +20 -5
- package/fesm2022/{project-sunbird-sunbird-collection-editor.mjs → deeksha2309-sunbird-collection-editor.mjs} +1779 -483
- package/fesm2022/deeksha2309-sunbird-collection-editor.mjs.map +1 -0
- package/index.d.ts +2 -2
- package/lib/collection-editor-library.module.d.ts +51 -43
- package/lib/collection-editor-library.module.d.ts.map +1 -1
- package/lib/components/answer/answer.component.d.ts +2 -1
- package/lib/components/answer/answer.component.d.ts.map +1 -1
- package/lib/components/app-loader/app-loader.component.d.ts +18 -0
- package/lib/components/app-loader/app-loader.component.d.ts.map +1 -0
- package/lib/components/asset-browser/asset-browser.component.d.ts.map +1 -1
- package/lib/components/bulk-upload/bulk-upload.component.d.ts +71 -0
- package/lib/components/bulk-upload/bulk-upload.component.d.ts.map +1 -0
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts +1 -1
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts.map +1 -1
- package/lib/components/editor/editor.component.d.ts +11 -7
- package/lib/components/editor/editor.component.d.ts.map +1 -1
- package/lib/components/fancy-tree/fancy-tree.component.d.ts +11 -3
- package/lib/components/fancy-tree/fancy-tree.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +6 -2
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/library/library.component.d.ts +1 -1
- package/lib/components/library/library.component.d.ts.map +1 -1
- package/lib/components/meta-form/meta-form.component.d.ts +3 -4
- package/lib/components/meta-form/meta-form.component.d.ts.map +1 -1
- package/lib/components/options/options.component.d.ts +15 -7
- package/lib/components/options/options.component.d.ts.map +1 -1
- package/lib/components/publish-checklist/publish-checklist.component.d.ts +2 -1
- package/lib/components/publish-checklist/publish-checklist.component.d.ts.map +1 -1
- package/lib/components/question/question.component.d.ts +21 -28
- package/lib/components/question/question.component.d.ts.map +1 -1
- package/lib/components/question-option-sub-menu/question-option-sub-menu.component.d.ts +27 -0
- package/lib/components/question-option-sub-menu/question-option-sub-menu.component.d.ts.map +1 -0
- package/lib/components/relational-metadata/relational-metadata.component.d.ts +25 -0
- package/lib/components/relational-metadata/relational-metadata.component.d.ts.map +1 -0
- package/lib/components/slider/slider.component.d.ts +25 -0
- package/lib/components/slider/slider.component.d.ts.map +1 -0
- package/lib/components/translations/translations.component.d.ts +70 -0
- package/lib/components/translations/translations.component.d.ts.map +1 -0
- package/lib/directives/date-format/date-format.pipe.d.ts +20 -0
- package/lib/directives/date-format/date-format.pipe.d.ts.map +1 -0
- package/lib/interfaces/CreationContext.d.ts +11 -0
- package/lib/interfaces/CreationContext.d.ts.map +1 -0
- package/lib/interfaces/editor.d.ts +10 -5
- package/lib/interfaces/editor.d.ts.map +1 -1
- package/lib/interfaces/loader.d.ts +11 -0
- package/lib/interfaces/loader.d.ts.map +1 -0
- package/lib/pipes/interpolate.pipe.d.ts +8 -0
- package/lib/pipes/interpolate.pipe.d.ts.map +1 -0
- package/lib/pipes/sanitize-html.pipe.d.ts +4 -4
- package/lib/pipes/sanitize-html.pipe.d.ts.map +1 -1
- package/lib/services/bulk-job/bulk-job.service.d.ts +17 -0
- package/lib/services/bulk-job/bulk-job.service.d.ts.map +1 -0
- package/lib/services/editor/editor.service.d.ts +7 -4
- package/lib/services/editor/editor.service.d.ts.map +1 -1
- package/lib/services/question/question.service.d.ts +2 -2
- package/lib/services/question/question.service.d.ts.map +1 -1
- package/lib/services/tree/tree.service.d.ts +3 -1
- package/lib/services/tree/tree.service.d.ts.map +1 -1
- package/package.json +5 -5
- package/esm2022/project-sunbird-sunbird-collection-editor.mjs +0 -5
- package/fesm2022/project-sunbird-sunbird-collection-editor.mjs.map +0 -1
- package/project-sunbird-sunbird-collection-editor.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, HostListener, Input, EventEmitter, Output, ViewEncapsulation, ViewChild } from '@angular/core';
|
|
2
|
-
import { filter, map, switchMap, take, takeUntil, tap
|
|
2
|
+
import { filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';
|
|
3
3
|
import { throwError, forkJoin, Subject, merge, of } from 'rxjs';
|
|
4
4
|
import * as _ from 'lodash-es';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -29,8 +29,11 @@ import * as i23 from "../../directives/telemetry-interact/telemetry-interact.dir
|
|
|
29
29
|
import * as i24 from "../quml-player/quml-player.component";
|
|
30
30
|
import * as i25 from "../csv-upload/csv-upload.component";
|
|
31
31
|
import * as i26 from "../manage-collaborator/manage-collaborator.component";
|
|
32
|
-
import * as i27 from "../
|
|
33
|
-
import * as i28 from "../
|
|
32
|
+
import * as i27 from "../relational-metadata/relational-metadata.component";
|
|
33
|
+
import * as i28 from "../assign-page-number/assign-page-number.component";
|
|
34
|
+
import * as i29 from "../progress-status/progress-status.component";
|
|
35
|
+
let evidenceMimeType;
|
|
36
|
+
let ecm;
|
|
34
37
|
export class EditorComponent {
|
|
35
38
|
constructor(editorService, treeService, frameworkService, helperService, telemetryService, router, toasterService, dialcodeService, configService, changeDetectionRef) {
|
|
36
39
|
this.editorService = editorService;
|
|
@@ -48,9 +51,9 @@ export class EditorComponent {
|
|
|
48
51
|
this.selectedNodeData = {};
|
|
49
52
|
this.showConfirmPopup = false;
|
|
50
53
|
this.terms = false;
|
|
51
|
-
this.pageId = 'collection_editor';
|
|
52
54
|
this.showLibraryPage = false;
|
|
53
55
|
this.libraryComponentInput = {};
|
|
56
|
+
this.questionlibraryInput = {};
|
|
54
57
|
this.showQuestionTemplatePopup = false;
|
|
55
58
|
this.showDeleteConfirmationPopUp = false;
|
|
56
59
|
this.showPreview = false;
|
|
@@ -70,7 +73,6 @@ export class EditorComponent {
|
|
|
70
73
|
this.isComponenetInitialized = false;
|
|
71
74
|
this.unsubscribe$ = new Subject();
|
|
72
75
|
this.onComponentDestroy$ = new Subject();
|
|
73
|
-
this.questionlibraryInput = {};
|
|
74
76
|
}
|
|
75
77
|
unloadHandler(event) {
|
|
76
78
|
this.generateTelemetryEndEvent();
|
|
@@ -89,27 +91,40 @@ export class EditorComponent {
|
|
|
89
91
|
this.editorService.initialize(this.editorConfig);
|
|
90
92
|
this.editorMode = this.editorService.editorMode;
|
|
91
93
|
this.treeService.initialize(this.editorConfig);
|
|
94
|
+
this.objectType = this.configService.categoryConfig[this.editorConfig.config.objectType];
|
|
92
95
|
this.collectionId = _.get(this.editorConfig, 'context.identifier');
|
|
93
|
-
this.objectType = _.get(this.editorConfig, 'config.objectType');
|
|
94
96
|
this.toolbarConfig = this.editorService.getToolbarConfig();
|
|
95
|
-
this.isObjectTypeCollection = this.
|
|
97
|
+
this.isObjectTypeCollection = this.objectType === 'questionSet' ? false : true;
|
|
96
98
|
this.isStatusReviewMode = this.isReviewMode();
|
|
97
|
-
this.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
99
|
+
if (this.objectType === 'question') {
|
|
100
|
+
this.collectionId = _.get(this.editorConfig, 'context.collectionIdentifier');
|
|
101
|
+
this.initializeFrameworkAndChannel();
|
|
102
|
+
this.editorService.getCategoryDefinition(_.get(this.editorConfig, 'context.collectionPrimaryCategory'), this.editorConfig.context.channel, _.get(this.editorConfig, 'context.collectionObjectType'))
|
|
103
|
+
.subscribe((response) => {
|
|
104
|
+
this.collectionPrimaryCategoryDef = response;
|
|
105
|
+
this.getFrameworkDetails(this.collectionPrimaryCategoryDef);
|
|
106
|
+
this.editorService.selectedChildren = {
|
|
107
|
+
primaryCategory: _.get(this.editorConfig, 'config.primaryCategory'),
|
|
108
|
+
mimeType: _.get(this.editorConfig, 'config.mimeType'),
|
|
109
|
+
interactionType: _.get(this.editorConfig, 'config.interactionType')
|
|
110
|
+
};
|
|
111
|
+
const objectMetadata = _.get(response, 'result.objectCategoryDefinition.objectMetadata');
|
|
112
|
+
if (objectMetadata.childrenConfig) {
|
|
113
|
+
this.questionComponentInput.config = objectMetadata.childrenConfig[_.get(this.editorConfig, 'config.interactionType')] || {};
|
|
114
|
+
}
|
|
115
|
+
this.redirectToQuestionTab(_.get(this.editorConfig, 'config.mode'));
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.pageId = 'collection_editor';
|
|
120
|
+
this.mergeCollectionExternalProperties().subscribe((response) => {
|
|
121
|
+
const hierarchyResponse = _.first(response);
|
|
122
|
+
const collection = _.get(hierarchyResponse, `result.${this.objectType}`);
|
|
123
|
+
this.toolbarConfig.title = collection.name;
|
|
124
|
+
this.toolbarConfig.isAddCollaborator = (collection.createdBy === _.get(this.editorConfig, 'context.user.id'));
|
|
125
|
+
this.initializeFrameworkAndChannel(collection);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
113
128
|
this.editorService.getCategoryDefinition(this.editorConfig.config.primaryCategory, this.editorConfig.context.channel, this.editorConfig.config.objectType)
|
|
114
129
|
.subscribe((response) => {
|
|
115
130
|
// tslint:disable-next-line:max-line-length
|
|
@@ -120,8 +135,10 @@ export class EditorComponent {
|
|
|
120
135
|
this.toolbarConfig.showBulkUploadBtn = enableBulkUpload ? enableBulkUpload : false;
|
|
121
136
|
this.sourcingSettings = _.get(response, 'result.objectCategoryDefinition.objectMetadata.config.sourcingSettings', {});
|
|
122
137
|
this.helperService.channelData$.subscribe((channelResponse) => {
|
|
123
|
-
this.sethierarchyConfig(response);
|
|
124
138
|
this.primaryCategoryDef = response;
|
|
139
|
+
if (this.objectType !== 'question') {
|
|
140
|
+
this.sethierarchyConfig(response);
|
|
141
|
+
}
|
|
125
142
|
});
|
|
126
143
|
}, (error) => {
|
|
127
144
|
console.log(error);
|
|
@@ -132,12 +149,26 @@ export class EditorComponent {
|
|
|
132
149
|
this.telemetryService.start({ type: 'editor', pageid: this.telemetryService.telemetryPageId });
|
|
133
150
|
this.unSubscribeShowLibraryPageEmitter = this.editorService.getshowLibraryPageEmitter()
|
|
134
151
|
.subscribe(item => this.showLibraryComponentPage());
|
|
152
|
+
this.unSubscribeshowQuestionLibraryPageEmitter = this.editorService.getshowQuestionLibraryPageEmitter()
|
|
153
|
+
.subscribe(item => this.showQuestionLibraryComponentPage());
|
|
135
154
|
this.treeService.treeStatus$.pipe(takeUntil(this.unsubscribe$)).subscribe((status) => {
|
|
136
155
|
if (status === 'loaded') {
|
|
137
156
|
this.getFrameworkDetails(this.primaryCategoryDef);
|
|
138
157
|
}
|
|
139
158
|
});
|
|
140
159
|
}
|
|
160
|
+
initializeFrameworkAndChannel(collection) {
|
|
161
|
+
this.organisationFramework = _.get(collection, 'framework') || _.get(this.editorConfig, 'context.framework');
|
|
162
|
+
this.targetFramework = _.get(collection, 'targetFWIds') || _.get(this.editorConfig, 'context.targetFWIds');
|
|
163
|
+
if (this.organisationFramework) {
|
|
164
|
+
this.frameworkService.initialize(this.organisationFramework);
|
|
165
|
+
}
|
|
166
|
+
if (!_.isEmpty(this.targetFramework)) {
|
|
167
|
+
this.frameworkService.getTargetFrameworkCategories(this.targetFramework);
|
|
168
|
+
}
|
|
169
|
+
const channel = _.get(collection, 'channel') || _.get(this.editorConfig, 'context.channel');
|
|
170
|
+
this.helperService.initialize(channel);
|
|
171
|
+
}
|
|
141
172
|
getFrameworkDetails(categoryDefinitionData) {
|
|
142
173
|
let orgFWIdentifiers;
|
|
143
174
|
let targetFWIdentifiers;
|
|
@@ -243,7 +274,7 @@ export class EditorComponent {
|
|
|
243
274
|
}
|
|
244
275
|
formData.forEach((field) => {
|
|
245
276
|
if (field.code === 'evidenceMimeType') {
|
|
246
|
-
|
|
277
|
+
evidenceMimeType = field.range;
|
|
247
278
|
field.options = this.setEvidence;
|
|
248
279
|
field.range = null;
|
|
249
280
|
}
|
|
@@ -251,7 +282,7 @@ export class EditorComponent {
|
|
|
251
282
|
field.options = this.setAllowEcm;
|
|
252
283
|
}
|
|
253
284
|
else if (field.code === 'ecm') {
|
|
254
|
-
|
|
285
|
+
ecm = field.options;
|
|
255
286
|
field.options = this.setEcm;
|
|
256
287
|
}
|
|
257
288
|
});
|
|
@@ -275,15 +306,14 @@ export class EditorComponent {
|
|
|
275
306
|
const requests = [];
|
|
276
307
|
this.collectionTreeNodes = null;
|
|
277
308
|
this.isTreeInitialized = true;
|
|
278
|
-
const objectType = this.configService.categoryConfig[this.editorConfig.config.objectType];
|
|
279
309
|
requests.push(this.editorService.fetchCollectionHierarchy(this.collectionId));
|
|
280
|
-
if (objectType === 'questionSet') {
|
|
310
|
+
if (this.objectType === 'questionSet') {
|
|
281
311
|
requests.push(this.editorService.readQuestionSet(this.collectionId));
|
|
282
312
|
}
|
|
283
313
|
return forkJoin(requests).pipe(tap(responseList => {
|
|
284
314
|
const hierarchyResponse = _.first(responseList);
|
|
285
315
|
this.collectionTreeNodes = {
|
|
286
|
-
data: _.get(hierarchyResponse, `result.${objectType}`)
|
|
316
|
+
data: _.get(hierarchyResponse, `result.${this.objectType}`)
|
|
287
317
|
};
|
|
288
318
|
this.buttonLoaders.showReviewComment = this.showCommentAddedAgainstContent();
|
|
289
319
|
if (_.isEmpty(this.collectionTreeNodes.data.children)) {
|
|
@@ -292,9 +322,9 @@ export class EditorComponent {
|
|
|
292
322
|
else {
|
|
293
323
|
this.toolbarConfig.hasChildren = true;
|
|
294
324
|
}
|
|
295
|
-
if (objectType === 'questionSet') {
|
|
325
|
+
if (this.objectType === 'questionSet') {
|
|
296
326
|
const questionSetResponse = _.last(responseList);
|
|
297
|
-
const data = _.get(questionSetResponse, _.toLower(`result.${objectType}`));
|
|
327
|
+
const data = _.get(questionSetResponse, _.toLower(`result.${this.objectType}`));
|
|
298
328
|
this.collectionTreeNodes.data.instructions = data.instructions ? data.instructions : '';
|
|
299
329
|
}
|
|
300
330
|
}));
|
|
@@ -309,7 +339,7 @@ export class EditorComponent {
|
|
|
309
339
|
if (!_.isEmpty(hierarchyConfig.hierarchy)) {
|
|
310
340
|
_.forEach(hierarchyConfig.hierarchy, (hierarchyValue) => {
|
|
311
341
|
if (_.get(hierarchyValue, 'children')) {
|
|
312
|
-
hierarchyValue
|
|
342
|
+
hierarchyValue.children = this.getHierarchyChildrenConfig(_.get(hierarchyValue, 'children'));
|
|
313
343
|
}
|
|
314
344
|
});
|
|
315
345
|
}
|
|
@@ -338,7 +368,6 @@ export class EditorComponent {
|
|
|
338
368
|
switch (key) {
|
|
339
369
|
case 'Question':
|
|
340
370
|
childrenData[key] = _.map(this.helperService.questionPrimaryCategories, 'name') || this.editorConfig.config.questionPrimaryCategories;
|
|
341
|
-
;
|
|
342
371
|
break;
|
|
343
372
|
case 'Content':
|
|
344
373
|
childrenData[key] = _.map(this.helperService.contentPrimaryCategories, 'name') || [];
|
|
@@ -374,6 +403,13 @@ export class EditorComponent {
|
|
|
374
403
|
this.buttonLoaders.saveAsDraftButtonLoader = false;
|
|
375
404
|
this.toasterService.success(message);
|
|
376
405
|
this.isEnableCsvAction = true;
|
|
406
|
+
if (_.get(this.editorConfig, 'config.enableQuestionCreation') === false) {
|
|
407
|
+
this.mergeCollectionExternalProperties().subscribe(response => {
|
|
408
|
+
this.redirectToChapterListTab({
|
|
409
|
+
collection: _.get(this.collectionTreeNodes, 'data')
|
|
410
|
+
});
|
|
411
|
+
});
|
|
412
|
+
}
|
|
377
413
|
}).catch(((error) => {
|
|
378
414
|
this.buttonLoaders.saveAsDraftButtonLoader = false;
|
|
379
415
|
this.isEnableCsvAction = false;
|
|
@@ -386,6 +422,9 @@ export class EditorComponent {
|
|
|
386
422
|
case 'addFromLibrary':
|
|
387
423
|
this.showLibraryComponentPage();
|
|
388
424
|
break;
|
|
425
|
+
case 'showQuestionLibraryPage':
|
|
426
|
+
this.showQuestionLibraryComponentPage();
|
|
427
|
+
break;
|
|
389
428
|
case 'submitContent':
|
|
390
429
|
this.submitHandler();
|
|
391
430
|
break;
|
|
@@ -403,10 +442,7 @@ export class EditorComponent {
|
|
|
403
442
|
this.publishContent(event);
|
|
404
443
|
break;
|
|
405
444
|
case 'onFormStatusChange':
|
|
406
|
-
|
|
407
|
-
if (selectedNode && selectedNode.data.id) {
|
|
408
|
-
this.formStatusMapper[selectedNode.data.id] = event.event.isValid;
|
|
409
|
-
}
|
|
445
|
+
this.onFormStatusChange(event.event);
|
|
410
446
|
if (this.isObjectTypeCollection) {
|
|
411
447
|
this.handleCsvDropdownOptionsOnCollection();
|
|
412
448
|
}
|
|
@@ -465,7 +501,7 @@ export class EditorComponent {
|
|
|
465
501
|
}
|
|
466
502
|
}
|
|
467
503
|
showLibraryComponentPage() {
|
|
468
|
-
if (this.editorService.checkIfContentsCanbeAdded()) {
|
|
504
|
+
if (this.editorService.checkIfContentsCanbeAdded('add')) {
|
|
469
505
|
this.buttonLoaders.addFromLibraryButtonLoader = true;
|
|
470
506
|
this.saveContent().then(res => {
|
|
471
507
|
this.libraryComponentInput.collectionId = this.collectionId;
|
|
@@ -482,7 +518,7 @@ export class EditorComponent {
|
|
|
482
518
|
this.toasterService.error(_.get(this.configService, 'labelConfig.err.searchConfigNotFound'));
|
|
483
519
|
return;
|
|
484
520
|
}
|
|
485
|
-
if (this.editorService.checkIfContentsCanbeAdded()) {
|
|
521
|
+
if (this.editorService.checkIfContentsCanbeAdded('add')) {
|
|
486
522
|
const questionCategory = [];
|
|
487
523
|
this.buttonLoaders.addQuestionFromLibraryButtonLoader = true;
|
|
488
524
|
if (!_.isUndefined(this.editorService.templateList) &&
|
|
@@ -523,14 +559,41 @@ export class EditorComponent {
|
|
|
523
559
|
this.isComponenetInitialized = true;
|
|
524
560
|
});
|
|
525
561
|
}
|
|
562
|
+
onQuestionLibraryChange(event) {
|
|
563
|
+
switch (event.action) {
|
|
564
|
+
case 'addBulk':
|
|
565
|
+
this.addResourceToQuestionset(event.collectionIds, event.resourceType);
|
|
566
|
+
break;
|
|
567
|
+
case 'back':
|
|
568
|
+
this.libraryEventListener({});
|
|
569
|
+
break;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
addResourceToQuestionset(contentId, resourceType) {
|
|
573
|
+
const activeNode = this.treeService.getActiveNode();
|
|
574
|
+
const children = _.isArray(contentId) ? contentId : [contentId];
|
|
575
|
+
if (resourceType === 'Question') {
|
|
576
|
+
if (activeNode && activeNode.data.id) {
|
|
577
|
+
this.editorService.addResourceToQuestionset(this.collectionId, activeNode.data.id, children).subscribe(res => {
|
|
578
|
+
if (_.get(res, 'responseCode') === 'OK') {
|
|
579
|
+
this.libraryEventListener({});
|
|
580
|
+
}
|
|
581
|
+
}, err => {
|
|
582
|
+
const errInfo = {
|
|
583
|
+
errorMsg: _.get(this.configService, 'labelConfig.messages.error.043')
|
|
584
|
+
};
|
|
585
|
+
return throwError(this.editorService.apiErrorHandling(err, errInfo));
|
|
586
|
+
});
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
526
590
|
saveContent() {
|
|
527
591
|
return new Promise(async (resolve, reject) => {
|
|
528
592
|
if (!this.validateFormStatus()) {
|
|
529
593
|
return reject(_.get(this.configService, 'labelConfig.messages.error.029'));
|
|
530
594
|
}
|
|
531
595
|
const nodesModified = _.get(this.editorService.getCollectionHierarchy(), 'nodesModified');
|
|
532
|
-
|
|
533
|
-
if (objectType === 'questionSet') {
|
|
596
|
+
if (this.objectType.toLowerCase() === 'questionset') {
|
|
534
597
|
const maxScore = await this.editorService.getMaxScore();
|
|
535
598
|
this.treeService.updateMetaDataProperty('maxScore', maxScore);
|
|
536
599
|
}
|
|
@@ -697,9 +760,8 @@ export class EditorComponent {
|
|
|
697
760
|
}
|
|
698
761
|
setUpdatedTreeNodeData() {
|
|
699
762
|
this.editorService.fetchCollectionHierarchy(this.collectionId).subscribe((res) => {
|
|
700
|
-
console.log('hierarchyData', res);
|
|
701
763
|
this.collectionTreeNodes = {
|
|
702
|
-
data: _.get(res, `result.${this.
|
|
764
|
+
data: _.get(res, `result.${this.objectType}`)
|
|
703
765
|
};
|
|
704
766
|
this.updateTreeNodeData();
|
|
705
767
|
this.buttonLoaders.previewButtonLoader = false;
|
|
@@ -754,8 +816,10 @@ export class EditorComponent {
|
|
|
754
816
|
this.showDeleteConfirmationPopUp = true;
|
|
755
817
|
break;
|
|
756
818
|
case 'createNewContent':
|
|
757
|
-
|
|
819
|
+
this.setChildQuestion = event.isChildQuestion;
|
|
820
|
+
if (this.editorService.checkIfContentsCanbeAdded('create')) {
|
|
758
821
|
this.buttonLoaders.addFromLibraryButtonLoader = true;
|
|
822
|
+
this.templateList = this.editorService.templateList;
|
|
759
823
|
this.saveContent().then((message) => {
|
|
760
824
|
this.buttonLoaders.addFromLibraryButtonLoader = false;
|
|
761
825
|
this.showQuestionTemplatePopup = true;
|
|
@@ -776,6 +840,7 @@ export class EditorComponent {
|
|
|
776
840
|
else {
|
|
777
841
|
this.templateList = _.flatMap(_.get(this.editorService.editorConfig.config, `hierarchy.level${this.selectedNodeData.getLevel() - 1}.children`));
|
|
778
842
|
}
|
|
843
|
+
this.editorService.templateList = this.templateList;
|
|
779
844
|
}
|
|
780
845
|
deleteNode() {
|
|
781
846
|
const activeNode = this.treeService.getActiveNode();
|
|
@@ -817,13 +882,11 @@ export class EditorComponent {
|
|
|
817
882
|
if (selectedQuestionType && selectedQuestionType.type === 'close') {
|
|
818
883
|
return false;
|
|
819
884
|
}
|
|
885
|
+
// this will activate the save and cancel button
|
|
886
|
+
this.editorConfig.config.showSourcingStatus = false;
|
|
820
887
|
// tslint:disable-next-line:max-line-length
|
|
821
|
-
this.editorService.getCategoryDefinition(selectedQuestionType, null, 'Question')
|
|
822
|
-
|
|
823
|
-
errorMsg: _.get(this.configService, 'labelConfig.messages.error.006'),
|
|
824
|
-
};
|
|
825
|
-
return throwError(this.editorService.apiErrorHandling(error, errInfo));
|
|
826
|
-
})).subscribe((res) => {
|
|
888
|
+
this.editorService.getCategoryDefinition(selectedQuestionType, null, 'Question')
|
|
889
|
+
.subscribe((res) => {
|
|
827
890
|
const selectedtemplateDetails = res.result.objectCategoryDefinition;
|
|
828
891
|
this.editorService.selectedChildren['label'] = selectedtemplateDetails.label;
|
|
829
892
|
const selectedTemplateFormFields = _.get(selectedtemplateDetails, 'forms.create.properties');
|
|
@@ -831,7 +894,7 @@ export class EditorComponent {
|
|
|
831
894
|
const questionCategoryConfig = selectedTemplateFormFields;
|
|
832
895
|
questionCategoryConfig.forEach(field => {
|
|
833
896
|
if (field.code === 'evidenceMimeType') {
|
|
834
|
-
|
|
897
|
+
evidenceMimeType = field.range;
|
|
835
898
|
field.options = this.setEvidence;
|
|
836
899
|
field.range = null;
|
|
837
900
|
}
|
|
@@ -862,6 +925,11 @@ export class EditorComponent {
|
|
|
862
925
|
};
|
|
863
926
|
this.redirectToQuestionTab(undefined, interactionTypes[0]);
|
|
864
927
|
}
|
|
928
|
+
}, (error) => {
|
|
929
|
+
const errInfo = {
|
|
930
|
+
errorMsg: _.get(this.configService, 'labelConfig.messages.error.006'),
|
|
931
|
+
};
|
|
932
|
+
return throwError(this.editorService.apiErrorHandling(error, errInfo));
|
|
865
933
|
});
|
|
866
934
|
}
|
|
867
935
|
redirectToQuestionTab(mode, interactionType) {
|
|
@@ -882,6 +950,7 @@ export class EditorComponent {
|
|
|
882
950
|
};
|
|
883
951
|
}
|
|
884
952
|
this.questionComponentInput = {
|
|
953
|
+
...this.questionComponentInput,
|
|
885
954
|
questionSetId: this.collectionId,
|
|
886
955
|
questionId: questionId,
|
|
887
956
|
type: interactionType,
|
|
@@ -912,7 +981,7 @@ export class EditorComponent {
|
|
|
912
981
|
const questionCategoryConfig = selectedTemplateFormFields;
|
|
913
982
|
questionCategoryConfig.forEach(field => {
|
|
914
983
|
if (field.code === 'evidenceMimeType') {
|
|
915
|
-
|
|
984
|
+
evidenceMimeType = field.range;
|
|
916
985
|
field.options = this.setEvidence;
|
|
917
986
|
field.range = null;
|
|
918
987
|
}
|
|
@@ -937,12 +1006,22 @@ export class EditorComponent {
|
|
|
937
1006
|
}
|
|
938
1007
|
}
|
|
939
1008
|
questionEventListener(event) {
|
|
1009
|
+
if (event.type === 'createNewContent') {
|
|
1010
|
+
this.treeEventListener(event);
|
|
1011
|
+
}
|
|
940
1012
|
this.selectedNodeData = undefined;
|
|
941
|
-
this.
|
|
942
|
-
this.
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
}
|
|
1013
|
+
if (this.objectType === 'question') {
|
|
1014
|
+
this.editorEmitter.emit({
|
|
1015
|
+
close: true, library: 'collection_editor', action: event.actionType, identifier: event.identifier
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1018
|
+
else {
|
|
1019
|
+
this.mergeCollectionExternalProperties().subscribe((res) => {
|
|
1020
|
+
this.pageId = 'collection_editor';
|
|
1021
|
+
this.telemetryService.telemetryPageId = this.pageId;
|
|
1022
|
+
this.isEnableCsvAction = true;
|
|
1023
|
+
});
|
|
1024
|
+
}
|
|
946
1025
|
}
|
|
947
1026
|
get contentPolicyUrl() {
|
|
948
1027
|
return this.editorService.contentPolicyUrl;
|
|
@@ -1065,11 +1144,11 @@ export class EditorComponent {
|
|
|
1065
1144
|
}
|
|
1066
1145
|
setEvidence(control, depends, formGroup, loading, loaded) {
|
|
1067
1146
|
control.isVisible = 'no';
|
|
1068
|
-
control.range =
|
|
1147
|
+
control.range = evidenceMimeType;
|
|
1069
1148
|
return merge(..._.map(depends, depend => depend.valueChanges)).pipe(switchMap((value) => {
|
|
1070
1149
|
if (!_.isEmpty(value) && _.toLower(value) === 'yes') {
|
|
1071
1150
|
control.isVisible = 'yes';
|
|
1072
|
-
return of({ range:
|
|
1151
|
+
return of({ range: evidenceMimeType });
|
|
1073
1152
|
}
|
|
1074
1153
|
else {
|
|
1075
1154
|
control.isVisible = 'no';
|
|
@@ -1079,11 +1158,11 @@ export class EditorComponent {
|
|
|
1079
1158
|
}
|
|
1080
1159
|
setEcm(control, depends, formGroup, loading, loaded) {
|
|
1081
1160
|
control.isVisible = 'no';
|
|
1082
|
-
control.options =
|
|
1161
|
+
control.options = ecm;
|
|
1083
1162
|
return merge(..._.map(depends, depend => depend.valueChanges)).pipe(switchMap((value) => {
|
|
1084
1163
|
if (!_.isEmpty(value) && _.toLower(value) === 'yes') {
|
|
1085
1164
|
control.isVisible = 'yes';
|
|
1086
|
-
return of({ options:
|
|
1165
|
+
return of({ options: ecm });
|
|
1087
1166
|
}
|
|
1088
1167
|
else {
|
|
1089
1168
|
control.isVisible = 'no';
|
|
@@ -1106,11 +1185,11 @@ export class EditorComponent {
|
|
|
1106
1185
|
return response;
|
|
1107
1186
|
}
|
|
1108
1187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorComponent, deps: [{ token: i1.EditorService }, { token: i2.TreeService }, { token: i3.FrameworkService }, { token: i4.HelperService }, { token: i5.EditorTelemetryService }, { token: i6.Router }, { token: i7.ToasterService }, { token: i8.DialcodeService }, { token: i9.ConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditorComponent, selector: "lib-editor", inputs: { editorConfig: "editorConfig" }, outputs: { editorEmitter: "editorEmitter" }, host: { listeners: { "window:unload": "unloadHandler($event)" } }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"pageId\">\n <ng-container *ngSwitchCase=\"'collection_editor'\">\n <div class=\"add-to-library mb-10\">\n <lib-header [pageId]=\"pageId\" [publishchecklist]=\"publishchecklist\"\n [labelConfigData]=\"toolbarConfig\" [buttonLoaders]=\"buttonLoaders\" (toolbarEmitter)=\"toolbarEventListener($event)\"> </lib-header>\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0 \">\n <!-- Left Sidebar for cards -->\n <div class=\"p-50 sb-folder-menu\" *ngIf=\"isObjectTypeCollection\">\n <div> {{configService.labelConfig?.lbl?.folders}} </div>\n <a class=\"profile-avtar computer only p-0 pr-10\" tabindex=\"0\">\n <div suiDropdown class=\"ui dropdown right top pointing z-index-9\" id=\"dropdown-menu-list-header\" *ngIf=\"!isStatusReviewMode\">\n <i class=\"icon ellipsis vertical h-1\" aria-hidden=\"true\" [ngClass]=\"{'sb-disable-icon': isStatusReviewMode}\" (click)=\"onClickFolder()\"></i>\n <div class=\"menu\" suiDropdownMenu >\n <button type=\"button\" class=\"item fs-0-785 bg-none\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.createHierarchyCsv,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.createHierarchyCsv})\"\n (click)=\"hanndleCsvEmitter({type: 'createCsv'})\" [disabled]=\"csvDropDownOptions.isDisableCreateCsv\">\n <i class=\"icon folder outline sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableCreateCsv}\" aria-hidden=\"true\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableCreateCsv}\">{{configService.labelConfig?.lbl?.createHierarchyCsv}}</span>\n </button>\n <div class=\"ui divider\"></div>\n <button libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('csv_download','click',configService.labelConfig?.lbl?.downloadFoldersInCSV,\n this.telemetryService.telemetryPageId,{key: 'identifier', value: collectionId})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'downloadCsv'})\" [disabled]=\"csvDropDownOptions.isDisableDownloadCsv\">\n <i class=\"icon download sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableDownloadCsv}\" aria-hidden=\"true\"></i> \n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableDownloadCsv}\" > \n {{configService.labelConfig?.lbl?.downloadFoldersInCSV}}</span>\n </button>\n <div class=\"ui divider\">\n </div>\n <button \n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.uploadUpdateCSV,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.uploadUpdateCSV})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'updateCsv'})\" [disabled]=\"csvDropDownOptions.isDisableUpdateCsv\">\n <i class=\"icon upload sb-color-primary\" aria-hidden=\"true\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\"></i> \n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\" > \n {{configService.labelConfig?.lbl?.uploadUpdateCSV}}\n </span>\n </button>\n </div>\n </div>\n </a>\n </div>\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\" [ngClass]=\"{'mt-50': isObjectTypeCollection}\">\n <lib-fancy-tree *ngIf=\"collectionTreeNodes && collectionTreeNodes.data && ishierarchyConfigSet\"\n [nodes]=\"collectionTreeNodes\" [options]=\"{ showConnectors: true }\" [buttonLoaders]=\"buttonLoaders\"\n (treeEventEmitter)=\"treeEventListener($event)\" class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\">\n </lib-fancy-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <ng-container *ngIf=\"(isCurrentNodeFolder === true || isCurrentNodeRoot === true) && unitFormConfig && selectedNodeData && rootFormConfig\">\n <lib-meta-form [rootFormConfig]=\"rootFormConfig\" [nodeMetadata]=\"selectedNodeData\" [unitFormConfig]=\"unitFormConfig\"\n (toolbarEmitter)=\"toolbarEventListener($event)\"></lib-meta-form>\n </ng-container>\n <ng-container *ngIf=\"isCurrentNodeFolder === false && isCurrentNodeRoot !== true\">\n <lib-contentplayer-page *ngIf=\"!isQumlPlayer\" [contentMetadata]=\"selectedNodeData\" ></lib-contentplayer-page>\n <lib-qumlplayer-page *ngIf=\"isQumlPlayer\" [questionMetaData]=\"selectedNodeData\" [questionSetHierarchy]=\"collectionTreeNodes?.data\"\n (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-qumlplayer-page>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <sui-modal *ngIf=\"showDeleteConfirmationPopUp\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll\n (dismissed)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.confirmDeleteContent}}\n </div>\n <div class=\"sb-modal-content\">\n <!-- <div class=\"sb-publish-content\">\n <div class=\"review-modal-list\">\n {{ contentComment }}\n </div> -->\n <div> {{deleteConfirmMessage}}</div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary mr-8\" (click)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.no_btn_label}} </button>\n <button type=\"button\" class=\"sb-btn sb-btn-secondary sb-btn-normal \" (click)=\"deleteNode();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.yes_btn_label}} </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showConfirmPopup' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal overflow-modal\" appBodyScroll (dismissed)=\"showConfirmPopup = !showConfirmPopup; terms = false;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.acceptTerms}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"ui grid\">\n <div class=\"twelve wide column sb-checkbox-tnc mt-10\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\"><input [(ngModel)]=\"terms\" id=\"termAndConditions\"\n name=\"example\" type=\"checkbox\">\n <label for=\"termAndConditions\" class=\"fsmall pl-32\">\n <div class=\"d-flex flex-ai-center\">\n <span class=\"sb-required\">*</span><span\n class=\"font-weight-bold mb-4 d-block\">\"{{configService.labelConfig?.lbl?.iAgreeSubmit}}</span>\n </div>\n <div class=\"sb-color-gray-300\">{{configService.labelConfig?.lbl?.iconfirmContent}}<a\n class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"https://creativecommons.org/licenses\" target=\"_blank\" > {{configService.labelConfig?.lbl?.createCommonFramework}}</a>\n {{configService.labelConfig?.lbl?.accordance}} \n <a class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"{{contentPolicyUrl}}\" target=\"_blank\" >{{configService.labelConfig?.lbl?.contentPolicy}}</a> {{configService.labelConfig?.lbl?.privacyRights}}\"</div>\n </label>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal\" [ngClass]=\"!terms ? 'sb-btn-disabled' : 'sb-btn-primary'\" [disabled]=\"!terms\"\n (click)=\"sendForReview()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'accepting_terms_conditions','termAndConditions' : terms})\">\n {{configService.labelConfig?.button_labels?.submit_btn_label}}\n </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showPreview' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'large'\"\n class=\"sb-modal overflow-modal preview-modal\" appBodyScroll (dismissed)=\"showPreview = !showPreview;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.questionSetPreview}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"br-2 b-1-100\" id=\"previewPlayerContainer\" tabindex=\"0\" cdkTrapFocus>\n <lib-quml-player [questionSetHierarchy]=\"collectionTreeNodes?.data\"></lib-quml-player>\n </div>\n </div>\n </sui-modal>\n <lib-template *ngIf='showQuestionTemplatePopup' [templateList]=\"templateList\"\n (templateSelection)=\"handleTemplateSelection($event)\">\n </lib-template>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'library'\">\n <lib-library [libraryInput]=\"libraryComponentInput\" (libraryEmitter)=\"libraryEventListener($event)\">\n </lib-library>\n </ng-container>\n <ng-container *ngSwitchCase=\"'question'\">\n <lib-question [questionInput]=\"questionComponentInput\" [leafFormConfig]=\"leafFormConfig\" (questionEmitter)=\"questionEventListener($event)\">\n </lib-question>\n </ng-container>\n <ng-container *ngSwitchCase=\"'pagination'\">\n <lib-assign-page-number (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-assign-page-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'progressStatus'\">\n <lib-progress-status (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-progress-status>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"addCollaborator\">\n <lib-manage-collaborator [addCollaborator]=\"addCollaborator\" [collectionId]=\"collectionId\" (modalDismissEmitter)=\"toggleCollaboratorModalPoup()\"></lib-manage-collaborator>\n</ng-container>\n<sui-modal *ngIf=\"showReviewModal\" [mustScroll]=\"true\" [isClosable]=\"false\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll #modal (dismissed)=\"showReviewModal = false;\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.reviewComments}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"sb-field\">\n <label>{{configService.labelConfig?.lbl?.comments}}</label>\n <textarea disabled=\"disabled\" type=\"text\" class=\"wmd-input width-100 sb-form-control p-10 sb-disabled-textarea\" id=\"wmd-input\" [(ngModel)]=\"contentComment\" name=\"rejectedComment\"></textarea>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"modal.deny('denied')\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('close','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'review_comments'})\">{{configService.labelConfig?.button_labels?.close_btn_label}}</button>\n </div>\n</sui-modal>\n\n <lib-csv-upload *ngIf=\"showCsvUploadPopup\" [isCreateCsv]= \"isCreateCsv\" (csvUploadEmitter)= \"hanndleCsvEmitter($event)\" [collectionId]=\"collectionId\">\n </lib-csv-upload>\n\n", styles: [".fancytree-helper-hidden{display:none}.fancytree-helper-indeterminate-cb{color:#777}.fancytree-helper-disabled{color:silver}.fancytree-helper-spin{animation:spin 1s infinite linear}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}ul.fancytree-container{font-family:inherit;font-size:10pt;white-space:nowrap;padding:3px;margin:0;background-color:#fff;border:1px dotted gray;min-height:0;position:relative}ul.fancytree-container ul{padding:0 0 0 16px;margin:0}ul.fancytree-container ul>li:before{content:none}ul.fancytree-container li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}ul.fancytree-container li.fancytree-lastsib{background-image:none}.ui-fancytree-disabled ul.fancytree-container{opacity:.5;background-color:silver}ul.fancytree-connectors.fancytree-container li{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7);background-position:0 0}ul.fancytree-container li.fancytree-lastsib,ul.fancytree-no-connector>li{background-image:none}li.fancytree-animating{position:relative}#fancytree-drop-marker,span.fancytree-checkbox,span.fancytree-drag-helper-img,span.fancytree-empty,span.fancytree-expander,span.fancytree-icon,span.fancytree-vline{width:16px;height:16px;display:inline-block;vertical-align:top;background-repeat:no-repeat;background-image:url(data:image/gif;base64,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);background-position:0 0}span.fancytree-checkbox,span.fancytree-custom-icon,span.fancytree-expander,span.fancytree-icon{margin-top:0}span.fancytree-custom-icon{width:16px;height:16px;display:inline-block;margin-left:3px;background-position:0 0}img.fancytree-icon{width:16px;height:16px;margin-left:3px;margin-top:0;vertical-align:top;border-style:none}span.fancytree-expander{cursor:pointer}.fancytree-exp-n span.fancytree-expander,.fancytree-exp-nl span.fancytree-expander{background-image:none;cursor:default}.fancytree-connectors .fancytree-exp-n span.fancytree-expander,.fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,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);margin-top:0}.fancytree-connectors .fancytree-exp-n span.fancytree-expander,.fancytree-connectors .fancytree-exp-n span.fancytree-expander:hover{background-position:0 -64px}.fancytree-connectors .fancytree-exp-nl span.fancytree-expander,.fancytree-connectors .fancytree-exp-nl span.fancytree-expander:hover{background-position:-16px -64px}.fancytree-exp-c span.fancytree-expander{background-position:0 -80px}.fancytree-exp-c span.fancytree-expander:hover{background-position:-16px -80px}.fancytree-exp-cl span.fancytree-expander{background-position:0 -96px}.fancytree-exp-cl span.fancytree-expander:hover{background-position:-16px -96px}.fancytree-exp-cd span.fancytree-expander{background-position:-64px -80px}.fancytree-exp-cd span.fancytree-expander:hover{background-position:-80px -80px}.fancytree-exp-cdl span.fancytree-expander{background-position:-64px -96px}.fancytree-exp-cdl span.fancytree-expander:hover{background-position:-80px -96px}.fancytree-exp-e span.fancytree-expander,.fancytree-exp-ed span.fancytree-expander{background-position:-32px -80px}.fancytree-exp-e span.fancytree-expander:hover,.fancytree-exp-ed span.fancytree-expander:hover{background-position:-48px -80px}.fancytree-exp-edl span.fancytree-expander,.fancytree-exp-el span.fancytree-expander{background-position:-32px -96px}.fancytree-exp-edl span.fancytree-expander:hover,.fancytree-exp-el span.fancytree-expander:hover{background-position:-48px -96px}.fancytree-fade-expander span.fancytree-expander{transition:opacity 1.5s;opacity:0}.fancytree-fade-expander .fancytree-treefocus span.fancytree-expander,.fancytree-fade-expander [class*=fancytree-statusnode-] span.fancytree-expander,.fancytree-fade-expander.fancytree-treefocus span.fancytree-expander,.fancytree-fade-expander:hover span.fancytree-expander{transition:opacity .6s;opacity:1}span.fancytree-checkbox{margin-left:3px;background-position:0 -32px}span.fancytree-checkbox:hover{background-position:-16px -32px}span.fancytree-checkbox.fancytree-radio{background-position:0 -48px}span.fancytree-checkbox.fancytree-radio:hover{background-position:-16px -48px}.fancytree-partsel span.fancytree-checkbox{background-position:-64px -32px}.fancytree-partsel span.fancytree-checkbox:hover{background-position:-80px -32px}.fancytree-partsel span.fancytree-checkbox.fancytree-radio{background-position:-64px -48px}.fancytree-partsel span.fancytree-checkbox.fancytree-radio:hover{background-position:-80px -48px}.fancytree-selected span.fancytree-checkbox{background-position:-32px -32px}.fancytree-selected span.fancytree-checkbox:hover{background-position:-48px -32px}.fancytree-selected span.fancytree-checkbox.fancytree-radio{background-position:-32px -48px}.fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-48px -48px}.fancytree-unselectable span.fancytree-checkbox{opacity:.4}.fancytree-unselectable span.fancytree-checkbox:hover{background-position:0 -32px}.fancytree-unselectable span.fancytree-checkbox.fancytree-radio:hover{background-position:0 -48px}.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover{background-position:-64px -32px}.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover{background-position:-32px -32px}.fancytree-unselectable.fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-32px -48px}.fancytree-container.fancytree-checkbox-auto-hide span.fancytree-checkbox{visibility:hidden}.fancytree-container.fancytree-checkbox-auto-hide .fancytree-node.fancytree-selected span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide .fancytree-node:hover span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide tr.fancytree-selected td span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide tr:hover td span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus .fancytree-node.fancytree-active span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus tr.fancytree-active td span.fancytree-checkbox{visibility:unset}span.fancytree-icon{margin-left:3px;background-position:0 0}.fancytree-ico-c span.fancytree-icon:hover{background-position:-16px 0}.fancytree-has-children.fancytree-ico-c span.fancytree-icon{background-position:-32px 0}.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover{background-position:-48px 0}.fancytree-ico-e span.fancytree-icon{background-position:-64px 0}.fancytree-ico-e span.fancytree-icon:hover{background-position:-80px 0}.fancytree-ico-cf span.fancytree-icon{background-position:0 -16px}.fancytree-ico-cf span.fancytree-icon:hover{background-position:-16px -16px}.fancytree-has-children.fancytree-ico-cf span.fancytree-icon{background-position:-32px -16px}.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover{background-position:-48px -16px}.fancytree-ico-ef span.fancytree-icon{background-position:-64px -16px}.fancytree-ico-ef span.fancytree-icon:hover{background-position:-80px -16px}.fancytree-loading span.fancytree-expander,.fancytree-loading span.fancytree-expander:hover,.fancytree-statusnode-loading span.fancytree-icon,.fancytree-statusnode-loading span.fancytree-icon:hover,span.fancytree-icon.fancytree-icon-loading{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAkKAAAALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQJCgAAACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQJCgAAACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkECQoAAAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkECQoAAAAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkECQoAAAAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAkKAAAALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkECQoAAAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAkKAAAALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQJCgAAACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQJCgAAACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==);background-position:0 0}.fancytree-statusnode-error span.fancytree-icon,.fancytree-statusnode-error span.fancytree-icon:hover{background-position:0 -112px}span.fancytree-node{display:inherit;width:100%;margin-top:1px;min-height:16px}span.fancytree-title{color:#000;cursor:pointer;display:inline-block;vertical-align:top;min-height:16px;padding:0 3px;margin:0 0 0 3px;border:1px solid transparent;border-radius:0}span.fancytree-node.fancytree-error span.fancytree-title{color:red}span.fancytree-childcounter{color:#fff;background:#337ab7;border:1px solid gray;border-radius:10px;padding:2px;text-align:center}div.fancytree-drag-helper span.fancytree-childcounter,div.fancytree-drag-helper span.fancytree-dnd-modifier{display:inline-block;color:#fff;background:#337ab7;border:1px solid gray;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}div.fancytree-drag-helper span.fancytree-childcounter{position:absolute;top:-6px;right:-6px}div.fancytree-drag-helper span.fancytree-dnd-modifier{background:#5cb85c;border:none;font-weight:bolder}div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img{background-position:-32px -112px}div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img{background-position:-16px -112px}#fancytree-drop-marker{width:32px;position:absolute;background-position:0 -128px;margin:0}#fancytree-drop-marker.fancytree-drop-after,#fancytree-drop-marker.fancytree-drop-before{width:64px;background-position:0 -144px}#fancytree-drop-marker.fancytree-drop-copy{background-position:-64px -128px}#fancytree-drop-marker.fancytree-drop-move{background-position:-32px -128px}span.fancytree-drag-source.fancytree-drag-remove{opacity:.15}.fancytree-container.fancytree-rtl span.fancytree-connector,.fancytree-container.fancytree-rtl span.fancytree-drag-helper-img,.fancytree-container.fancytree-rtl span.fancytree-expander,.fancytree-container.fancytree-rtl span.fancytree-icon{background-image:url(data:image/gif;base64,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)}.fancytree-container.fancytree-rtl .fancytree-exp-n span.fancytree-expander,.fancytree-container.fancytree-rtl .fancytree-exp-nl span.fancytree-expander{background-image:none}.fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-n span.fancytree-expander,.fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,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)}ul.fancytree-container.fancytree-rtl ul{padding:0 16px 0 0}ul.fancytree-container.fancytree-rtl.fancytree-connectors li{background-position:right 0;background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7)}ul.fancytree-container.fancytree-rtl li.fancytree-lastsib,ul.fancytree-container.fancytree-rtl.fancytree-no-connector>li{background-image:none}#fancytree-drop-marker.fancytree-rtl{background-image:url(data:image/gif;base64,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)}table.fancytree-ext-table{font-family:inherit;font-size:10pt;border-collapse:collapse}table.fancytree-ext-table span.fancytree-node{display:inline-block;box-sizing:border-box}table.fancytree-ext-table td.fancytree-status-merged{text-align:center;font-style:italic;color:silver}table.fancytree-ext-table tr.fancytree-statusnode-error td.fancytree-status-merged{color:red}table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr.fancytree-active>td{background-color:#eee}table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr>td.fancytree-active-cell{background-color:#cbe8f6}table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode.fancytree-cell-nav-mode>tbody>tr>td.fancytree-active-cell{background-color:#3875d7}table.fancytree-ext-columnview tbody tr td{position:relative;border:1px solid gray;vertical-align:top;overflow:auto}table.fancytree-ext-columnview tbody tr td>ul{padding:0}table.fancytree-ext-columnview tbody tr td>ul li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}table.fancytree-ext-columnview span.fancytree-node{position:relative;display:inline-block}table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#e0e0e0}table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#cbe8f6}table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right{position:absolute;right:3px;background-position:0 -80px}table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover{background-position:-16px -80px}.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title{color:silver;font-weight:lighter}.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title,.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title{color:#000;font-weight:400}.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title,.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title{color:#000;font-weight:700}.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide,.fancytree-ext-filter-hide tr.fancytree-hide{display:none}.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title,.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title{color:silver;font-weight:lighter}.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title,.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title{color:#000;font-weight:400}.fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-match span.fancytree-expander,.fancytree-ext-filter-hide-expanders tr.fancytree-match span.fancytree-expander{visibility:hidden}.fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-submatch span.fancytree-expander,.fancytree-ext-filter-hide-expanders tr.fancytree-submatch span.fancytree-expander{visibility:visible}.fancytree-ext-childcounter span.fancytree-custom-icon,.fancytree-ext-childcounter span.fancytree-icon,.fancytree-ext-filter span.fancytree-custom-icon,.fancytree-ext-filter span.fancytree-icon{position:relative}.fancytree-ext-childcounter span.fancytree-childcounter,.fancytree-ext-filter span.fancytree-childcounter{color:#fff;background:#777;border:1px solid gray;position:absolute;top:-6px;right:-6px;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}ul.fancytree-ext-wide{position:relative;min-width:100%;z-index:2;box-sizing:border-box}ul.fancytree-ext-wide span.fancytree-node>span{position:relative;z-index:2}ul.fancytree-ext-wide span.fancytree-node span.fancytree-title{position:absolute;z-index:1;left:0;min-width:100%;margin-left:0;margin-right:0;box-sizing:border-box}.fancytree-ext-fixed-wrapper .fancytree-ext-fixed-hidden{display:none}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-bottom{border-bottom:3px solid rgba(0,0,0,.75)}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-right{border-right:3px solid rgba(0,0,0,.75)}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tl{position:absolute;overflow:hidden;z-index:3;top:0;left:0}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tr{position:absolute;overflow:hidden;z-index:2;top:0}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-bl{position:absolute;overflow:hidden;z-index:2;left:0}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-br{position:absolute;overflow:scroll;z-index:1}span.fancytree-title{border:1px solid transparent;border-radius:0}span.fancytree-focused span.fancytree-title{outline:1px dotted #000}span.fancytree-active span.fancytree-title,span.fancytree-selected span.fancytree-title{background-color:#d4d4d4}span.fancytree-selected span.fancytree-title{font-style:italic}.fancytree-treefocus span.fancytree-active span.fancytree-title,.fancytree-treefocus span.fancytree-selected span.fancytree-title{color:#fff;background-color:#3875d7}table.fancytree-ext-table{border-collapse:collapse}table.fancytree-ext-table tbody tr.fancytree-focused{background-color:#99defd}table.fancytree-ext-table tbody tr.fancytree-active{background-color:#4169e1}table.fancytree-ext-table tbody tr.fancytree-selected{background-color:#99defd}table.fancytree-ext-columnview tbody tr td{border:1px solid gray}table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#ccc}table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#4169e1}.optionsArrayMap,.optionsLast,.optionsArray{color:#000!important}.dynamic-form .required .sb-modal-dropdown-web label:after,.add-to-library .dynamic-form .required .sb-modal-dropdown-web .multi-select-container .list-border ul:after,.add-to-library .dynamic-form .multi-select-container .list-border .required .sb-modal-dropdown-web ul:after{content:\" \"!important}.dynamic-form sb-dynamic-checkbox{margin-top:3.5rem}.dynamic-form .sb-dropdown-select{padding:16px 8px!important}.dynamic-form .list-border{margin-top:2px!important}body{background:#fff!important}.add-to-library{position:relative;z-index:999!important;background:#e5edf5}.add-to-library .sb-required{color:#ff4558;padding-left:2px;position:relative;top:-5px}.add-to-library .back-btn:hover{background:none!important}.add-to-library .back-btn{min-width:auto}.add-to-library .dynamic-form .multi-select-section-app label,.add-to-library .dynamic-form .multi-select-section-app .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .multi-select-section-app ul{margin-bottom:.3rem!important;z-index:inherit}.add-to-library .dynamic-form label,.add-to-library .dynamic-form .multi-select-container .list-border ul{font-size:12px!important;margin-bottom:.5rem!important;color:#121213e0;font-weight:600}.add-to-library .dynamic-form .sb-textbox,.add-to-library .dynamic-form .topic-picker-selector,.add-to-library .dynamic-form select,.add-to-library .dynamic-form .sb-textarea,.add-to-library .dynamic-form .list-border{border:1px solid rgba(34,36,38,.15)!important;padding:.85rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500}.add-to-library .dynamic-form select{padding:12px 8px!important}.add-to-library .dynamic-form .list-border{margin-top:14px!important;min-height:43px!important;height:inherit!important;padding:5px 8px!important}.add-to-library .dynamic-form .multi-select-container .list-border .placeholder{font-weight:500!important;color:#333!important}.add-to-library .dynamic-form .multi-select-container .list-border ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-weight:500!important;position:inherit!important}.add-to-library .dynamic-form .sb-modal-dropdown-web ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-size:12px!important;font-weight:500;border:2px solid #eeeeef;z-index:99999!important}.add-to-library .dynamic-form .sb-keywordbox{border:1px solid rgba(34,36,38,.15)!important;padding:.45rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500;padding:0!important}.add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input{padding:0}.add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input tag{margin-left:.5rem}.add-to-library .dynamic-form .sb-keywordbox .ng2-tags-container{margin-top:.2rem}.add-to-library .dynamic-form .sb-keywordbox .tag-wrapper,.add-to-library .dynamic-form .sb-keywordbox delete-icon svg{height:24px;line-height:24px}.add-to-library .dynamic-form .sb-dropdown label,.add-to-library .dynamic-form .sb-dropdown .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .sb-dropdown ul{padding:0}.add-to-library .dynamic-form .sb-textarea-container .sb-textarea{height:2.9rem;padding-top:.5rem!important}.add-to-library .dynamic-form .sb-textarea-container label,.add-to-library .dynamic-form .sb-textarea-container .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .sb-textarea-container ul{padding:0}.add-to-library .dynamic-form .sb-checkbox{padding:0;margin-top:0}.add-to-library .dynamic-form sb-icon-dropdown{top:10px!important;right:6px!important}.add-to-library .sb-textarea-container,.add-to-library .sb-dropdown{margin:1rem 0!important}.add-to-library .sb-container{width:95%!important}.sb-checkbox-tnc .sb-required{position:absolute;padding-left:0;left:18px}.h-100vh{height:100vh}.ui.column.grid>[class*=\"eight wide\"].column{width:73%!important}.footer-fix{padding-bottom:1rem!important}.bg-white,.ui.twelve.grid{background:#fff!important}@keyframes spinner-border{to{transform:rotate(360deg)}}.sb-loading-spinner{width:1rem;height:1rem;margin-right:8px;border-width:.2em;display:inline-block;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.sb-btn-loading:before{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}.sb-btn-loading:after{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;animation:button-spin .6s linear;animation-iteration-count:infinite;border-radius:500rem;border-color:#fff transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}.sb-btn-outline-disabled{background-color:#fff;border:1px solid #cccccc;color:#999;cursor:default;font-weight:400}lib-chat-window,.chat_bot{display:none!important}.sb-textbox::-webkit-input-placeholder,.add-to-library .dynamic-form .topic-picker-selector::-webkit-input-placeholder{color:var(--gray-100)!important;font-weight:600!important}.treepicker-parent{margin:.6rem 0!important}.ck-content ul{list-style-type:disc!important}.ck-content ul li{margin-bottom:0!important}sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-left:1px solid #c4c4c4!important;border-right:1px solid #c4c4c4!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:0!important}sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,sb-dynamic-richtext .ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border:1px solid #c4c4c4!important;border-color:var(--ck-color-base-border)!important}sb-dynamic-richtext .ck-content .table{margin:.8rem 0!important}.sb-textbox::placeholder,.add-to-library .dynamic-form .topic-picker-selector::placeholder,.sb-textarea::placeholder{color:#333!important;font-weight:500!important}.multi-select-container .sb-modal-dropdown-web ul{border:1px solid #d6d4d4!important;box-shadow:0 0 2px #cecaca!important}.sb-disabled-textarea{background:var(--gray-0)!important;border:.0625rem solid var(--gray-100)!important;opacity:.45!important;pointer-events:none!important;font-size:1em!important}.overflow-y{overflow-y:auto}input:focus-visible{border:none!important}.dialcodeModal input:focus-visible{border:.0625rem solid #999999!important}#fancytree-drop-marker.fa-long-arrow-right:before{content:\" \"!important}.sb-collectionTree-fancyTreelist ul>li>span:first-child{padding:15px 33px}.sb-collectionTree-fancyTreelist .fancytree-exp-n span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-nl span.fancytree-expander{background:none!important}.sb-collectionTree-fancyTreelist .ui-fancytree:before,.sb-collectionTree-fancyTreelist .ui-fancytree ul:before{content:none!important}.sb-collectionTree-fancyTreelist .ui-fancytree li:before,.sb-collectionTree-fancyTreelist .ui-fancytree ul li:before{content:none!important}.sb-collectionTree-fancyTreelist .ui-fancytree li .fancytree-custom-icon:before{color:var(--primary-color)!important;margin-left:5px}.sb-collectionTree-fancyTreelist .ui-fancytree .fancytree-folder .fancytree-title{color:var(--primary-color)!important;font-size:.9286rem!important;font-weight:700!important;padding-left:5px;width:inherit!important}.sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-right,.sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-down,.sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-right,.sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-down{display:block!important}.sb-collectionTree-fancyTreelist ul.fancytree-container{font-size:inherit!important;font-family:inherit!important;border:none!important}.sb-collectionTree-fancyTreelist ul.fancytree-connectors.fancytree-container li{background-image:none!important}.sb-collectionTree-fancyTreelist span.fancytree-node{width:inherit!important}.sb-collectionTree-fancyTreelist span.fancytree-active span.fancytree-title,.sb-collectionTree-fancyTreelist span.fancytree-selected span.fancytree-title,.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{background:none!important}.sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px}.sb-collectionTree-fancyTreelist span.fancytree-focused span.fancytree-title{outline:0!important}.sb-collectionTree-fancyTreelist .ui-fancytree{margin:0!important}.sb-collectionTree-fancyTreelist.ui-fancytree,.sb-collectionTree-fancyTreelist .ui-fancytree ul{margin:0 0 0 .625rem!important}.sb-collectionTree-fancyTreelist .fancytree-exp-e span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-ed span.fancytree-expander{background-position:-32px -68px!important}.sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px!important}.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{color:inherit}.sb-loader{position:fixed;top:0%;left:23%;transform:translate(-50%,-50%)}.sb-loader:after{content:\"\";width:32px;height:32px;border-radius:50%;border:2px solid;border-color:#ccc #ccc transparent;animation:loader .5s infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sb-loader.dimmer{width:100%;height:100%;background:#000c;z-index:9999}@keyframes loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sb-success-loader{position:absolute!important;top:46%!important;left:-12%!important;transform:translate(-46%,-50%)!important}.sb-success-loader:after{width:1.2rem!important;height:1.2rem!important}.pos-relative{position:relative}.sb-circle-ul{list-style-type:disc;padding:0;font-size:.785rem}.sb-circle-ul li{margin:0!important;line-height:1.4}.sb-bg-color-success-0{background:#e1ffdf}.flex-ai-center{align-self:center!important}.sb-br-primary{border:1px dashed #aedbfd!important}.sb-min-h-250{min-height:250px}.z-index-9 .menu{z-index:99999!important}.p-50{padding:10px 0 10px 50px}.h-1{height:1.1em!important}.mn-15{margin:-15px!important}.upload-input-button{position:relative}.upload-input-button input{position:absolute;opacity:0;left:0}.bg-none{background:none}.label-disable{opacity:.3!important;font-weight:500!important}.sb-folder-menu{position:absolute;left:35px;display:flex;justify-content:space-between;width:24%;margin-top:5px}.sb-disable-icon{color:#ccc!important}.sb-w-240px{width:240px}.showCollaborator .ui.dimmer{overflow-y:unset!important}.showCollaborator .ui.segment{max-height:calc(80vh - 8em)!important;overflow-y:auto!important}.showCollaborator .sb-modal-content .flex-align-item-center{border-bottom:solid 1px #ccc;margin:0 -16px;padding:0 20px}.showCollaborator .ui.pointing{margin:0 -15px!important}.showCollaborator .ui.pointing .item.active{font-weight:600!important}.publish-checklist label,.publish-checklist .add-to-library .dynamic-form .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .publish-checklist ul{font-size:13px!important;padding:0 1.5rem!important}.sb-keywords input{width:100%}.sb-keywords input::placeholder{display:block!important;width:100%}.sb-keywords .ng2-tags-container{width:inherit!important;display:block!important}.sb-keywords .ng2-tags-container tag{display:inline-flex!important}.sb-dialcode{border-bottom:.5px solid #333333;padding:8px 5px!important;border-radius:0!important}.sb-dialcode:focus-visible{border-bottom:.5px solid #333333!important;border-radius:0!important;outline:0!important}sb-dynamic-timer .sb-timer-input{width:10rem;font-size:.785rem!important;border:1px solid rgba(34,36,38,.15)!important;border-radius:.28571429rem;padding:12px 10px;margin-right:5px;height:44px}sb-dynamic-timer .sb-timer-input:focus-visible{border:1px solid rgba(34,36,38,.15)!important}sb-dynamic-timer .sb-btn-normal{height:42px!important}\n"], dependencies: [{ kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i12.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i12.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i12.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i12.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: i13.LibraryComponent, selector: "lib-library", inputs: ["libraryInput"], outputs: ["libraryEmitter"] }, { kind: "directive", type: i14.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i15.ContentplayerPageComponent, selector: "lib-contentplayer-page", inputs: ["contentMetadata"] }, { kind: "component", type: i16.QumlplayerPageComponent, selector: "lib-qumlplayer-page", inputs: ["questionMetaData", "questionSetHierarchy"], outputs: ["toolbarEmitter"] }, { kind: "component", type: i17.HeaderComponent, selector: "lib-header", inputs: ["pageId", "labelConfigData", "buttonLoaders", "showComment", "publishchecklist", "requestChange"], outputs: ["toolbarEmitter", "qualityParamEmitter"] }, { kind: "component", type: i18.FancyTreeComponent, selector: "lib-fancy-tree", inputs: ["nodes", "options", "buttonLoaders"], outputs: ["treeEventEmitter"] }, { kind: "component", type: i19.MetaFormComponent, selector: "lib-meta-form", inputs: ["rootFormConfig", "unitFormConfig", "nodeMetadata"], outputs: ["toolbarEmitter"] }, { kind: "component", type: i20.LibraryComponent, selector: "lib-library", inputs: ["libraryInput"], outputs: ["libraryEmitter"] }, { kind: "component", type: i21.QuestionComponent, selector: "lib-question", inputs: ["questionInput", "leafFormConfig"], outputs: ["questionEmitter"] }, { kind: "component", type: i22.TemplateComponent, selector: "lib-template", inputs: ["templateList"], outputs: ["templateSelection"] }, { kind: "directive", type: i23.TelemetryInteractDirective, selector: "[libTelemetryInteract]", inputs: ["telemetryInteractEdata"] }, { kind: "component", type: i24.QumlPlayerComponent, selector: "lib-quml-player", inputs: ["questionSetHierarchy", "isSingleQuestionPreview"], outputs: ["toolbarEmitter"] }, { kind: "component", type: i25.CsvUploadComponent, selector: "lib-csv-upload", inputs: ["collectionId", "isCreateCsv"], outputs: ["csvUploadEmitter"] }, { kind: "component", type: i26.ManageCollaboratorComponent, selector: "lib-manage-collaborator", inputs: ["addCollaborator", "collectionId"], outputs: ["modalDismissEmitter"] }, { kind: "component", type: i27.AssignPageNumberComponent, selector: "lib-assign-page-number", outputs: ["assignPageEmitter"] }, { kind: "component", type: i28.ProgressStatusComponent, selector: "lib-progress-status", outputs: ["assignPageEmitter"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditorComponent, selector: "lib-editor", inputs: { editorConfig: "editorConfig" }, outputs: { editorEmitter: "editorEmitter" }, host: { listeners: { "window:unload": "unloadHandler($event)" } }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"pageId\">\n <ng-container *ngSwitchCase=\"'collection_editor'\">\n <div class=\"add-to-library mb-10\">\n <lib-header [pageId]=\"pageId\" [publishchecklist]=\"publishchecklist\"\n [labelConfigData]=\"toolbarConfig\" [buttonLoaders]=\"buttonLoaders\" (toolbarEmitter)=\"toolbarEventListener($event)\" (bulkUploadEmitter)= \"hanndleCsvEmitter($event)\"> </lib-header>\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0 \">\n <!-- Left Sidebar for cards -->\n <div class=\"p-50 sb-folder-menu\" *ngIf=\"isObjectTypeCollection\">\n <div> {{configService.labelConfig?.lbl?.folders}} </div>\n <a class=\"profile-avtar computer only p-0 pr-10\" tabindex=\"0\">\n <div suiDropdown class=\"ui dropdown right top pointing z-index-9\" id=\"dropdown-menu-list-header\" *ngIf=\"!isStatusReviewMode\">\n <i class=\"icon ellipsis vertical h-1\" aria-hidden=\"true\" [ngClass]=\"{'sb-disable-icon': isStatusReviewMode}\" (click)=\"onClickFolder()\"></i>\n <div class=\"menu\" suiDropdownMenu >\n <button type=\"button\" class=\"item fs-0-785 bg-none\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.createHierarchyCsv,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.createHierarchyCsv})\"\n (click)=\"hanndleCsvEmitter({type: 'createCsv'})\" [disabled]=\"csvDropDownOptions.isDisableCreateCsv\">\n <i class=\"icon folder outline sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableCreateCsv}\" aria-hidden=\"true\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableCreateCsv}\">{{configService.labelConfig?.lbl?.createHierarchyCsv}}</span>\n </button>\n <div class=\"ui divider\"></div>\n <button libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('csv_download','click',configService.labelConfig?.lbl?.downloadFoldersInCSV,\n this.telemetryService.telemetryPageId,{key: 'identifier', value: collectionId})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'downloadCsv'})\" [disabled]=\"csvDropDownOptions.isDisableDownloadCsv\">\n <i class=\"icon download sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableDownloadCsv}\" aria-hidden=\"true\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableDownloadCsv}\" >\n {{configService.labelConfig?.lbl?.downloadFoldersInCSV}}</span>\n </button>\n <div class=\"ui divider\">\n </div>\n <button\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.uploadUpdateCSV,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.uploadUpdateCSV})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'updateCsv'})\" [disabled]=\"csvDropDownOptions.isDisableUpdateCsv\">\n <i class=\"icon upload sb-color-primary\" aria-hidden=\"true\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\" >\n {{configService.labelConfig?.lbl?.uploadUpdateCSV}}\n </span>\n </button>\n </div>\n </div>\n </a>\n </div>\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\" [ngClass]=\"{'mt-50': isObjectTypeCollection}\">\n <lib-fancy-tree *ngIf=\"collectionTreeNodes && collectionTreeNodes.data && ishierarchyConfigSet\"\n [nodes]=\"collectionTreeNodes\" [options]=\"{ showConnectors: true }\" [buttonLoaders]=\"buttonLoaders\"\n (treeEventEmitter)=\"treeEventListener($event)\" class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\">\n </lib-fancy-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <ng-container *ngIf=\"(isCurrentNodeFolder === true || isCurrentNodeRoot === true) && unitFormConfig && selectedNodeData && rootFormConfig\">\n <lib-meta-form [rootFormConfig]=\"rootFormConfig\" [nodeMetadata]=\"selectedNodeData\" [unitFormConfig]=\"unitFormConfig\"\n (toolbarEmitter)=\"toolbarEventListener($event)\"></lib-meta-form>\n </ng-container>\n <ng-container *ngIf=\"isCurrentNodeFolder === false && isCurrentNodeRoot !== true\">\n <lib-contentplayer-page *ngIf=\"!isQumlPlayer\" [contentMetadata]=\"selectedNodeData\" ></lib-contentplayer-page>\n <lib-qumlplayer-page *ngIf=\"isQumlPlayer\" [questionMetaData]=\"selectedNodeData\" [questionSetHierarchy]=\"collectionTreeNodes?.data\"\n (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-qumlplayer-page>\n <div *ngIf=\"relationFormConfig\" class=\"p-2\">\n <hr>\n <lib-relational-metadata [contentMetadata]=\"selectedNodeData\" [formConfig]=\"relationFormConfig\" (statusChanges)=\"onFormStatusChange($event)\"></lib-relational-metadata>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <sui-modal *ngIf=\"showDeleteConfirmationPopUp\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll\n (dismissed)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.confirmDeleteContent}}\n </div>\n <div class=\"sb-modal-content\">\n <!-- <div class=\"sb-publish-content\">\n <div class=\"review-modal-list\">\n {{ contentComment }}\n </div> -->\n <div> {{deleteConfirmMessage}}</div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary mr-8\" (click)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.no_btn_label}} </button>\n <button type=\"button\" class=\"sb-btn sb-btn-secondary sb-btn-normal \" (click)=\"deleteNode();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.yes_btn_label}} </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showConfirmPopup' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal overflow-modal\" appBodyScroll (dismissed)=\"showConfirmPopup = !showConfirmPopup; terms = false;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.acceptTerms}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"ui grid\">\n <div class=\"twelve wide column sb-checkbox-tnc mt-10\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\"><input [(ngModel)]=\"terms\" id=\"termAndConditions\"\n name=\"example\" type=\"checkbox\">\n <label for=\"termAndConditions\" class=\"fsmall pl-32\">\n <div class=\"d-flex flex-ai-center\">\n <span class=\"sb-required\">*</span><span\n class=\"font-weight-bold mb-4 d-block\">\"{{configService.labelConfig?.lbl?.iAgreeSubmit}}</span>\n </div>\n <div class=\"sb-color-gray-300\">{{configService.labelConfig?.lbl?.iconfirmContent}}<a\n class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"https://creativecommons.org/licenses\" target=\"_blank\" > {{configService.labelConfig?.lbl?.createCommonFramework}}</a>\n {{configService.labelConfig?.lbl?.accordance}}\n <a class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"{{contentPolicyUrl}}\" target=\"_blank\" >{{configService.labelConfig?.lbl?.contentPolicy}}</a> {{configService.labelConfig?.lbl?.privacyRights}}\"</div>\n </label>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal\" [ngClass]=\"!terms ? 'sb-btn-disabled' : 'sb-btn-primary'\" [disabled]=\"!terms\"\n (click)=\"sendForReview()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'accepting_terms_conditions','termAndConditions' : terms})\">\n {{configService.labelConfig?.button_labels?.submit_btn_label}}\n </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showPreview' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'large'\"\n class=\"sb-modal overflow-modal preview-modal\" appBodyScroll (dismissed)=\"showPreview = !showPreview;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.questionSetPreview}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"br-2 b-1-100\" id=\"previewPlayerContainer\" tabindex=\"0\" cdkTrapFocus>\n <lib-quml-player [questionSetHierarchy]=\"collectionTreeNodes?.data\"></lib-quml-player>\n </div>\n </div>\n </sui-modal>\n <lib-template *ngIf='showQuestionTemplatePopup' [templateList]=\"templateList\"\n (templateSelection)=\"handleTemplateSelection($event)\">\n </lib-template>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'question_library'\">\n <lib-library [libraryInput]=\"questionlibraryInput\" (libraryEmitter)=\"onQuestionLibraryChange($event)\"></lib-library>\n </ng-container>\n <ng-container *ngSwitchCase=\"'library'\">\n <lib-content-library [libraryInput]=\"libraryComponentInput\" (libraryEmitter)=\"libraryEventListener($event)\">\n </lib-content-library>\n </ng-container>\n <ng-container *ngSwitchCase=\"'question'\">\n <lib-question *ngIf=\"leafFormConfig\" [questionInput]=\"questionComponentInput\" [leafFormConfig]=\"leafFormConfig\" [sourcingSettings]=\"sourcingSettings\" (questionEmitter)=\"questionEventListener($event)\" >\n </lib-question>\n </ng-container>\n <ng-container *ngSwitchCase=\"'pagination'\">\n <lib-assign-page-number (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-assign-page-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'progressStatus'\">\n <lib-progress-status (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-progress-status>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"addCollaborator\">\n <lib-manage-collaborator [addCollaborator]=\"addCollaborator\" [collectionId]=\"collectionId\" (modalDismissEmitter)=\"toggleCollaboratorModalPoup()\"></lib-manage-collaborator>\n</ng-container>\n<sui-modal *ngIf=\"showReviewModal\" [mustScroll]=\"true\" [isClosable]=\"false\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll #modal (dismissed)=\"showReviewModal = false;\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.reviewComments}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"sb-field\">\n <label>{{configService.labelConfig?.lbl?.comments}}</label>\n <textarea disabled=\"disabled\" type=\"text\" class=\"wmd-input width-100 sb-form-control p-10 sb-disabled-textarea\" id=\"wmd-input\" [(ngModel)]=\"contentComment\" name=\"rejectedComment\"></textarea>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"modal.deny('denied')\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('close','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'review_comments'})\">{{configService.labelConfig?.button_labels?.close_btn_label}}</button>\n </div>\n</sui-modal>\n\n <lib-csv-upload *ngIf=\"showCsvUploadPopup\" [isCreateCsv]= \"isCreateCsv\" (csvUploadEmitter)= \"hanndleCsvEmitter($event)\" [collectionId]=\"collectionId\">\n </lib-csv-upload>\n\n", styles: ["lib-editor .fancytree-helper-hidden{display:none}lib-editor .fancytree-helper-indeterminate-cb{color:#777}lib-editor .fancytree-helper-disabled{color:silver}lib-editor .fancytree-helper-spin{animation:spin 1s infinite linear}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}lib-editor ul.fancytree-container{font-family:inherit;font-size:10pt;white-space:nowrap;padding:3px;margin:0;background-color:#fff;border:1px dotted gray;min-height:0;position:relative}lib-editor ul.fancytree-container ul{padding:0 0 0 16px;margin:0}lib-editor ul.fancytree-container ul>li:before{content:none}lib-editor ul.fancytree-container li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}lib-editor ul.fancytree-container li.fancytree-lastsib{background-image:none}lib-editor .ui-fancytree-disabled ul.fancytree-container{opacity:.5;background-color:silver}lib-editor ul.fancytree-connectors.fancytree-container li{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7);background-position:0 0}lib-editor ul.fancytree-container li.fancytree-lastsib,lib-editor ul.fancytree-no-connector>li{background-image:none}lib-editor li.fancytree-animating{position:relative}lib-editor #fancytree-drop-marker,lib-editor span.fancytree-checkbox,lib-editor span.fancytree-drag-helper-img,lib-editor span.fancytree-empty,lib-editor span.fancytree-expander,lib-editor span.fancytree-icon,lib-editor span.fancytree-vline{width:16px;height:16px;display:inline-block;vertical-align:top;background-repeat:no-repeat;background-image:url(data:image/gif;base64,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);background-position:0 0}lib-editor span.fancytree-checkbox,lib-editor span.fancytree-custom-icon,lib-editor span.fancytree-expander,lib-editor span.fancytree-icon{margin-top:0}lib-editor span.fancytree-custom-icon{width:16px;height:16px;display:inline-block;margin-left:3px;background-position:0 0}lib-editor img.fancytree-icon{width:16px;height:16px;margin-left:3px;margin-top:0;vertical-align:top;border-style:none}lib-editor span.fancytree-expander{cursor:pointer}lib-editor .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-exp-nl span.fancytree-expander{background-image:none;cursor:default}lib-editor .fancytree-connectors .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,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);margin-top:0}lib-editor .fancytree-connectors .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-connectors .fancytree-exp-n span.fancytree-expander:hover{background-position:0 -64px}lib-editor .fancytree-connectors .fancytree-exp-nl span.fancytree-expander,lib-editor .fancytree-connectors .fancytree-exp-nl span.fancytree-expander:hover{background-position:-16px -64px}lib-editor .fancytree-exp-c span.fancytree-expander{background-position:0 -80px}lib-editor .fancytree-exp-c span.fancytree-expander:hover{background-position:-16px -80px}lib-editor .fancytree-exp-cl span.fancytree-expander{background-position:0 -96px}lib-editor .fancytree-exp-cl span.fancytree-expander:hover{background-position:-16px -96px}lib-editor .fancytree-exp-cd span.fancytree-expander{background-position:-64px -80px}lib-editor .fancytree-exp-cd span.fancytree-expander:hover{background-position:-80px -80px}lib-editor .fancytree-exp-cdl span.fancytree-expander{background-position:-64px -96px}lib-editor .fancytree-exp-cdl span.fancytree-expander:hover{background-position:-80px -96px}lib-editor .fancytree-exp-e span.fancytree-expander,lib-editor .fancytree-exp-ed span.fancytree-expander{background-position:-32px -80px}lib-editor .fancytree-exp-e span.fancytree-expander:hover,lib-editor .fancytree-exp-ed span.fancytree-expander:hover{background-position:-48px -80px}lib-editor .fancytree-exp-edl span.fancytree-expander,lib-editor .fancytree-exp-el span.fancytree-expander{background-position:-32px -96px}lib-editor .fancytree-exp-edl span.fancytree-expander:hover,lib-editor .fancytree-exp-el span.fancytree-expander:hover{background-position:-48px -96px}lib-editor .fancytree-fade-expander span.fancytree-expander{transition:opacity 1.5s;opacity:0}lib-editor .fancytree-fade-expander .fancytree-treefocus span.fancytree-expander,lib-editor .fancytree-fade-expander [class*=fancytree-statusnode-] span.fancytree-expander,lib-editor .fancytree-fade-expander.fancytree-treefocus span.fancytree-expander,lib-editor .fancytree-fade-expander:hover span.fancytree-expander{transition:opacity .6s;opacity:1}lib-editor span.fancytree-checkbox{margin-left:3px;background-position:0 -32px}lib-editor span.fancytree-checkbox:hover{background-position:-16px -32px}lib-editor span.fancytree-checkbox.fancytree-radio{background-position:0 -48px}lib-editor span.fancytree-checkbox.fancytree-radio:hover{background-position:-16px -48px}lib-editor .fancytree-partsel span.fancytree-checkbox{background-position:-64px -32px}lib-editor .fancytree-partsel span.fancytree-checkbox:hover{background-position:-80px -32px}lib-editor .fancytree-partsel span.fancytree-checkbox.fancytree-radio{background-position:-64px -48px}lib-editor .fancytree-partsel span.fancytree-checkbox.fancytree-radio:hover{background-position:-80px -48px}lib-editor .fancytree-selected span.fancytree-checkbox{background-position:-32px -32px}lib-editor .fancytree-selected span.fancytree-checkbox:hover{background-position:-48px -32px}lib-editor .fancytree-selected span.fancytree-checkbox.fancytree-radio{background-position:-32px -48px}lib-editor .fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-48px -48px}lib-editor .fancytree-unselectable span.fancytree-checkbox{opacity:.4}lib-editor .fancytree-unselectable span.fancytree-checkbox:hover{background-position:0 -32px}lib-editor .fancytree-unselectable span.fancytree-checkbox.fancytree-radio:hover{background-position:0 -48px}lib-editor .fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover{background-position:-64px -32px}lib-editor .fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover{background-position:-32px -32px}lib-editor .fancytree-unselectable.fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-32px -48px}lib-editor .fancytree-container.fancytree-checkbox-auto-hide span.fancytree-checkbox{visibility:hidden}lib-editor .fancytree-container.fancytree-checkbox-auto-hide .fancytree-node.fancytree-selected span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide .fancytree-node:hover span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide tr.fancytree-selected td span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide tr:hover td span.fancytree-checkbox{visibility:unset}lib-editor .fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus .fancytree-node.fancytree-active span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus tr.fancytree-active td span.fancytree-checkbox{visibility:unset}lib-editor span.fancytree-icon{margin-left:3px;background-position:0 0}lib-editor .fancytree-ico-c span.fancytree-icon:hover{background-position:-16px 0}lib-editor .fancytree-has-children.fancytree-ico-c span.fancytree-icon{background-position:-32px 0}lib-editor .fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover{background-position:-48px 0}lib-editor .fancytree-ico-e span.fancytree-icon{background-position:-64px 0}lib-editor .fancytree-ico-e span.fancytree-icon:hover{background-position:-80px 0}lib-editor .fancytree-ico-cf span.fancytree-icon{background-position:0 -16px}lib-editor .fancytree-ico-cf span.fancytree-icon:hover{background-position:-16px -16px}lib-editor .fancytree-has-children.fancytree-ico-cf span.fancytree-icon{background-position:-32px -16px}lib-editor .fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover{background-position:-48px -16px}lib-editor .fancytree-ico-ef span.fancytree-icon{background-position:-64px -16px}lib-editor .fancytree-ico-ef span.fancytree-icon:hover{background-position:-80px -16px}lib-editor .fancytree-loading span.fancytree-expander,lib-editor .fancytree-loading span.fancytree-expander:hover,lib-editor .fancytree-statusnode-loading span.fancytree-icon,lib-editor .fancytree-statusnode-loading span.fancytree-icon:hover,lib-editor span.fancytree-icon.fancytree-icon-loading{background-image:url(data:image/gif;base64,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);background-position:0 0}lib-editor .fancytree-statusnode-error span.fancytree-icon,lib-editor .fancytree-statusnode-error span.fancytree-icon:hover{background-position:0 -112px}lib-editor span.fancytree-node{display:inherit;width:100%;margin-top:1px;min-height:16px}lib-editor span.fancytree-title{color:#000;cursor:pointer;display:inline-block;vertical-align:top;min-height:16px;padding:0 3px;margin:0 0 0 3px;border:1px solid transparent;border-radius:0}lib-editor span.fancytree-node.fancytree-error span.fancytree-title{color:red}lib-editor span.fancytree-childcounter{color:#fff;background:#337ab7;border:1px solid gray;border-radius:10px;padding:2px;text-align:center}lib-editor div.fancytree-drag-helper span.fancytree-childcounter,lib-editor div.fancytree-drag-helper span.fancytree-dnd-modifier{display:inline-block;color:#fff;background:#337ab7;border:1px solid gray;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}lib-editor div.fancytree-drag-helper span.fancytree-childcounter{position:absolute;top:-6px;right:-6px}lib-editor div.fancytree-drag-helper span.fancytree-dnd-modifier{background:#5cb85c;border:none;font-weight:bolder}lib-editor div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img{background-position:-32px -112px}lib-editor div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img{background-position:-16px -112px}lib-editor #fancytree-drop-marker{width:32px;position:absolute;background-position:0 -128px;margin:0}lib-editor #fancytree-drop-marker.fancytree-drop-after,lib-editor #fancytree-drop-marker.fancytree-drop-before{width:64px;background-position:0 -144px}lib-editor #fancytree-drop-marker.fancytree-drop-copy{background-position:-64px -128px}lib-editor #fancytree-drop-marker.fancytree-drop-move{background-position:-32px -128px}lib-editor span.fancytree-drag-source.fancytree-drag-remove{opacity:.15}lib-editor .fancytree-container.fancytree-rtl span.fancytree-connector,lib-editor .fancytree-container.fancytree-rtl span.fancytree-drag-helper-img,lib-editor .fancytree-container.fancytree-rtl span.fancytree-expander,lib-editor .fancytree-container.fancytree-rtl span.fancytree-icon{background-image:url(data:image/gif;base64,R0lGODlhYADIAPcAAAAAAAAYMQAhOQAQdAgZehUFahApQhgxShgxUiExSikxQiFCWilCWj1GVjlKa0JSY0pSa0JXc1JSc1pjY1Jje1pje2Nra3NzawAplx8wjQQ5pwBCrg5ayABiyQBr2AB04FJahFJajFpalFpanFpapUJznEJ7lF5vg1JzlFp7lFpjtVJ7rWNjlGNjnGd3mHNzjHN7iHd7nHt7lGtrvWtzrXN7tXp7tXt7vSGlIXOtKULOYUzWaACA5gCN+QCU+gCc/wSl/SGEzjGMziGc5zGl50KElEqElEqMlEqUjFKMlFqEnFKcjFKUlFqcnFqErVKMtVKlhFKthFq1hGOEnGuEnGOEqWuMpWuMtWuUpWucrWuUtXuEpXuMpXOMvXuEvXOUpXOUrXOcrXuUrXOUtXuctWO1jGO1lGu1nHO9nHOlrXOtpXutpU+U1kK173uMxnOlznulxnutxnmi1nul3nm17UrG91rG/3rO/ZwAALtVUP8AAP8ICP8UFP8/P/9aWv9zc4O9NpC9WoSEhIyMjISUnIyUnJSUlISEtYyUpYyktYWwo5C2uaWlnK2lnKmpqaWluayttbWlpbW1tbS1vr29vYSXyIOuyYiwz5S1ypGy25m61oOz5Ki11rW1xrW9xry9xrW02LW835LnprXvv5/G24fH7orF/5TO/5/D9JzO/5TW/5zW/6nK2q3O3rjA2bXa2q3G563G763O56XW/63W/63e/7XO57rO7L3W57XW/7XZ87Pe/73e/7Lwxrvwx63n/7Xn/73n/9Ozr/+QkP+cnP+9vcbGvcbGxsbGzs7OzsXG0M7O1tbOztPT09TW09bW1tbW3t3e3cbb6cbe/9LX4Nbe59nW6N7e597e78/318bn/8bv/8zm887n/87v/873/9/g6tbn99bv99Xu/t7v/9T44N/25973///Kyv/W1v/e3uHd7+fn3ufn5+Ln7+bo5e/v7+fv9+Ds++/v9+7v+ej26uf//+/39+j/8O7/+ff39/b2//H88f/39/7//gAAACH5BAEAAP8ALAAAAABgAMgAAAj/AP/9e3asoMFjAhMmJHiwoEKFDBs+XNjQ4cSBFRFejHjw4r9j7UKKdKTxIUiRIUlePIlS5USWI0sqhJlSZkKa7VyabBetZ09H8Gx+5OkzGqOgL4n6BCoUZFGjSHc+ZZr06dGmPInm1Bf1ptZo1xxxtelUq9iuAp1G4xl2rFSzbmd+bYt2aFaejvzFTStyLTtH+/baXYtXL1qWfgELPkk4Wt7Ffdv9DXwYHsqcgwQNkmnMcsvMm2d6Hgma8+iUpUVfdpQ6YefVrdN6Hv3sWTSZlCzP7mkbt+6Q8KLZjkZJ4aff7YILv60wd3Lgy4kbR668d3Ou8LJrz1785vbv8LoL/zQ2D7x23NjNi/9H3nx29O7DX3evbz2l9N/rzzevP+F9+vbht11/Av3HX4D6JKhggv4guOCCDj6YYIQSUvighRA2p5eEE2rIoT4NeshhiP5tKCGJBZr4IIr/UKLigiy6yOCMetm34Y0gEtgijjnWKCKOPpY4Y486ypgjkTb6o6SSICqZpD/9LLmkJBpKqdeST0ZpJZUlWtlkjEtqKSWXKX65JIjrSWLllU4qpOaZW3oo5ZdpzhmnkHa22eWaegr0Jp8s/slnnYAGWqihha53DCSOGOLoII46AolMizb6aKSTzsSoo4ZAaoiklG566aeZ3iRqp5iGaimqpArl0auwxv8q66y01voPMmTkSgYysOKqK6+v+porsB4Ju2uvuh4bbLLEXkQGKayQQgoZsD4b7bTVQistta9au22213LrkbfYerQIGJhgogkmYnwBhrvvtrtIIuiqy6678H4hL73prtvuu2DE+8W89fqLb8D6Dsyvvf/mu2/B9wIs8CJicBNONRZzI43G0uDisS76WoxxOBpz7DEuIFd8ccYbS9PxxyGvTHLLL6Mc88glu3xyyiKzbDLMYpwstC22tGI0K620K/TJRBvdCtJKL41L00cn/YXUUxddddRLU/201Vh7jTQYYhTt9despM0K2WZrXbXaa5fdytlIw8323G6jrfbddD//vbfcfasNi7tOF+6K2tq+K0vhRh+eduJfLM6449FGqzjjrVAOueSGI2555JhrHu0XkcP9uLSkcCIt4aZfK63qpLBuOuqprw6G33DTDrvsuaO+++2t6776F8JrQoomyCMfO/GvS2t88sqT7rvzx0O//PTHV5/89c1nD73x0nf/vPWkf4+8ut9jgYX565qvPvvoQ/+++fEnP//39SN/P/T5a4KFFZm4BCYEeIkCGtCA/wvgAAd4wAMmkIAMbGABH7hACSIQgBC04AQxWEENqu8SljBgHAoYQgNu4n8gTGEJS1jAE1pBhSmMYQtRGMIakvCALoThCnFIQxjK8BIujIMQ/4UIhyEaMQ7/O2IciqjEJB6RiUd0ohGhaEQpDpGKQ7QiEZUYBytYQQlgDKMYxejFMZoxjGU8oxnTqEYyfrGNboQjGW1Fxzra8Y54zKNHHvAAWvFRj4AM5ENOEIAEzIqQhhTkq5IhCUcwwhGOdIQkkjERRkYykpOcCCduoIJOelIEAQiAJxSySU9+MpSjTIglH4lJSj5klZB8ZCYVkgxKtGNN7aCEKwVSy1taKZe7/AcnKnELctjjHMcUhwEC4ABSEtOYyDyHMplJS1viUpfV9KWUgKkQSGjzl5Do5je3Gc6E1AAW3UinOglpABoo5JzqXGcA2ilOvfCCF7rghZLaUf9OgXjTnvjUpz/4qRBG7KNQjCjoQQGV0ISQ4J684AYvpoGJUCaCBAp56D0lSlGLYjQhBtWHLmihi1yMVEkNFUhIR1rSk/ojpf8wxJWGpBdDKESmR8KRTRMyAlpMIQBT0IUuEBCACPBiBArp6U+DOtSiHvWm/pjFLGgh1VnEYhb62KlAZCpVqkr1qlkt6IcSBFNGjFUfMBVBKqgQyjGgYJ6ymIUIFKJWtgbArXCVq1hNUQq++rUU+yirPv7618DelCvP+U1YE2IIxP7GMosViAhKkYoIBEAAoQQDX+eakMlW9rKZ3exhTUHaU5CWtPDQakwHW9rTmiK1BS3PY5MT2X//MEK2iaWtakNAWl0wIJQOWAVpQaAQ3prCt8AVrimIC9J5rIIW2ggGLVaxilOgNbbPje50q3tdxjo2Obrp7la/mx3awhQEqVjFLHSxgAPElbrMFQh61cte984CvoeFRypqwd9azCI7qm2sfvvrXwArxBHRcI9jDpxg8yw4IS/QRC2AAYxweCMYwKiFJl6gkAhPuMIXzvCGGZyd/gIjOw8WCIJLzN8TB8cRM6FEg7dDHErJGDw1VsgjuMCKbWzjGz7eBiu48Agd89jHQPbxkIt8kxt/J8dNnrF2oHwTRxqCEVf+VFOsjGUs6yQhj3iBBMZM5hfA+CGPOAGZy3zmmXA5/8tfTsubvewqRdr5znjOs573zOc+v6odi7oySdrhEUBDQtAg8Qg2OOGGGczADZzAhqIZ7WhIS/oihkY0oTEd6EcmeiLPcISME0QcSDAD1KKOBqkpYeqJuMINmXCFOMRxC0x4wRWuhrWsaW1rXD8k1KPWR6lP/etUr7rVEEHwmhzzDIUwQ9lWYrZCXOEFWIRjHNjuxjhgcetpV/va2d52txcCbSlJOyHPjsayHdFsgeRE3XwK9ab5Ce81yVsg2Kj2NLQxDW7se9+c8MKl8w2Lf/ub39oI+KXfrSSDK+ne/6C3kvjt74c7YtPHcNFMmeQkjWQcSmyik0aGmYt75jOg9/+sBCcEQnKTuzzlK/+IxvN5cl10PC0u6scuai5QSmgEwWd9MNDH+uBDZMKktLDEAQ5giZHSIhOHEMgWjj5SpTPd6VBX8TP6QVKSmtSkwj4z0L/OUrA/2BDw4FDaubJTtC/oHg+C7T9agIqqHiCUB/gqKlogELp/9e4ByLtV977VtHe1qlJle+H1gXjEKz6muX2sZdoO3sg/Z6cs2IRfAY8Av26C7//IvF+JGoDO9/XzW01OX1fv15BQHh6sZ73rtV5e3dj+GQ1lt+0Tmx3cS30Op1U6Aixx2jls4ffBP8Dwi3982z4DHq01hWlfG2qVPj/604dH9VuUm93bnhLdAX//7SvPne48ogunWEUqoKuN6abiFFdg8vnTn932qx/+TP5E99VfC23cNxXh0R36lx3853/qF4AC4RjJsB3gpX2McA0J6AgLqB0NiHsQ+A/QEAOXMAsExoGzcAkxAA0CkYEbyF+00F8fGIIROIH9RQvZwQwPuIIsVgsuCA8weIEfIYHgkQxfdgw6+B08KBOdEAOaAAzBcIQYhgkx0AkKMYRFiIRJuIRuNoHbEYRTuINx5oOS8Awh8QyNtGVb2IVfOBGdIANiwArcwA2sgAhS+BCSEANnmIakwIZMaBKSxIXt4IVxloNhmIdjOBHEgWWDkGoeEYidQogXsQyPAAMVUAEy//AIy+ARisiIjugIkXgRhjiIMlaIlCCIiOhnoKhnzVAroxiKgFSKs4KKsqKKpnhHrAgrr/gqsdiKtjKLF2GLE4GLtLiKpNiLu+iKvpiKvwiMtKKLCmGMw3iLwciLyUhHyCgQz/gP0diM0OgRzXCN2HiN1piN2EiNtbiM3qhI0TiN4ViM4FiOp3iO6JhH47iO4qiO7mhH5BiP9FiP9niP+DiMz6BasLKPsGIIghCQAikI/LhVAymQBflrCbkRC/kQjhCQs/KQgtCPBxmQ0bARFSkIF/kqEhmREAkrx5AZH/kqISmQsSKRIkkmE4GSAamSJhGQnRIrxwCTg/BnADmQNv95kLIykDUJKzzpEewAkIYACZQwkUAplERplIDIkyP5ENHAlEr5KkWZGcG0EgJZlQLxDJohapRgDFEJEVsJfl6ZkzhZaDdpkrICkDD1KmqZk89ACZ/wlQrRDgD5lnEpkyIplyaRl7PylJsWK36Jl7WhlzMxCIM5K5DQlK+SmIQJarXSbrJycY15YO0wmQoRDQ3plJnpZ5hJK52Zj6AZmqI5mqRZmqZ5mqjZiv44K6vpEWc5kAn5mggZK61Jm5upYorpER35KlpZkRv5axn5mxexmyeZm3uJliTJl7DCkoLgkgcWkClJkjQpk9NpljppnWXpkwLZk6/ykxcRlASZlK//Ap5DWZSFCJXnuZ3G+RBTKQhY+ZIB+Z5aqYldSZjzyZVjiZ3IORF0eZ2x0pZpKQhrOZd1CZeN2Z92aZkluZ43oZyAKQh/CSuBCZKGqZWCaaGywpiIyaC/9pi0IpkRWZmeeZsJSKJ79pmygqKpuaIs2qKCVAx/EKPoMBGHsib0qAd6ACvF0Ad7gKN6wAd+MKMJUaNWEo8+mqMX8Qc9CqR+4Ad88KPEMKREuiRG6qN4MBHDsAd88AfqoCT94KRaKqRTSqXueKRXqhDqwAd7MAxh4qRAqgd9IBCHggNFWqZW+hDEoKVdCiVuWgzFoKXp8A+FggN0KiVViqNnmhDDoAd+jRAlX8oHfFAMSqKmUSolheoPhHqpSnKoepCoAuEHjMqnkCqpSgKqfyCoS0KomKqqdWqneOCp/7CoffCokSolT1qpqZqpmkqm8fiqE1EMkNqnUiKrcmqprGqjVeoRoMoHfUCqSpKmexClqGqphcKpF4EOauoHzkoMPBqnxTqmnAqrAkEMT6qlbvqjQjqtU/96o50qrgKBDn3wpDjKrIEqpeBKj74KK+lADPyarva6ri76EGO6qQFbsAbbqrbCD/hQD/xwEfxAD3aksAyrSBLbsArhDzYwADbgD3W0sNkgCvUwEeBAAAVgDXTksSArSCgbshc7AC7LsQlbD6OwAzpgDg8xsgVQAKAQszNbs4HEDzJLszbbsi/LszvgCz6bEOuQAQRAAKFgqLECtDOLtDbLD/xwKBbrEVJ7tD5rtUuCAWArJVnrEfnAD9mwA71QDjpQDkq7ARrwtnD7tnIAK2V7tmm7tv+gD3LQAXzbt30rB/vwKnWLtmrLtnq7AYibuIkLuLGSD2rrC+WgtkNLD2z/wAGWe7mX2wF0+7iR67P+4Legy7cwexGOqwOQK7mC2gGYu7odMLpka7ZHi7r/4AzywAMfcLu4e7t0QLewC7k+Cw504AHCO7zDSwdj+xCD67s2+w7BS7zEa7yysrVUmxDRIA8+0AM9sAtQCyvS67PUoAzKMAnK8AmTAAlLwg/6wL1BO73KAA5LwgPwe74QG71BqwMsKxC0CwQ/8AO7YLT2+7P1e79yir094Lq0orAfK8CzKw/6Ow50hMAp+7P4kMACu78/YMAHbLXH+w/qtg/zm7AaTLEhrBDgcAc/cAcfbLCxogzv4A/0AA4qHMMyPMM03GcV67AprMIrK7Ika7Ix/7y1SZsQOKuzBQsAAtG9QysQS9u0T8urqAkARjy4d8u2Suy2cQu3c7tnRrzF/wDFXvzFYBzGYhzG/1C6p5u0lLu6mKu5qQnFZdy7sku7tpu7uLu7K2rE/4DE1Gu92Ku9TtyiQCzA+bu//SvDEKzAg+zAM6zBG9zBOVzDkBzJklxHUQAFS7AESHAERmACThBzAmEGZlDJl5zJm9zJEJERHsERBnER4eAPOZAD/qAJlmAJYwAGYzAGAvvKsTzLYnDLuKwQUdAEasAEWTAwi3DMi7ACwCzMxGzMyKzMXrEaroITe6gkgQAISxIP2hwPm4ACUnrN2bzN3QzMV3AFlpAIJf/ACERJCZLQzq4UBeV8zum8zu08S2qxFHUxFFZRFzlwzdcMyxB1D6Uwzv/Qz4Dwz/4Q0APtzQIBz1qgBZhQAsnwDFZyZg4N0RJN0VJyZmXRE1tRF2rBFmchEzkACCYNCAB9T/OgD/tAAQJR0teM0gmt0izt0g390GGwCKDMCOAHfv5g0Ti9CCbACDzd0z/NFzzBDjL2GIfRF8bgGIZREkpi0kticrlAC/dg01ONzUpi1Vht0/8QBVoQBjltAuCnDanADedw1GE91mV91mm91hxtGUaBCIVgARegGabBE4xQCIiA13qdEJrgyinNC1/31QIx2LoMUYed1QkRBWGQBmn/INRXZgor8At28FINHdmTbQKVfdmZ3VC5wQ6DcAWaUAkvMAHJEA2f0BzBUdqZgNqqLR0CYQlSYtgjlQtTNQ8QUNu3jXS6TQu8nRBSINmdDX7ekArboApsXdySLdTIrdzMfWafoA+RkAJC8AZ58AQukBvGYBz6IAnYDQfb3d1dYQn6AFElddVWtQrx0Nv/gN7qnQvsHQvuDd//UNxqsAZr4NlF7dM7pd/87d897SI7dR/GUAVBgAlxMARPEAn9ECDC4AQL3uAPHuEJMQbzwNi6MFWzkAqp4A599A9gsOH3ZFIeDuIiTtz7zd9FAH4oodn53eJr8OK2JBIyfh/MgAht/0AEbVAHhGAMRaIPO97jPx7kBKLhuE0LTF53qBDiDSAQSo5PTE4LqTALT+4OUS4QUsDfa4AGRkDU4PdxAe7lYC7mn2AMBl4mAloKpZAIF6APGC4kbf7mcT7n/6DhO7cLui1VqHAKp6DlAlHiO0ffWI7lgC7oXP7lX24EMI7jZY4Gjf7oIeEPB64X/cAIkNIIUVIkmK7phsDpfTIG92DYwf3k74cK8bDlpI7bHv7kgA4PW57fa6AIaKAIR3BlBW7pi27ruK7rRn3pYWIlTwJyY5IQKAAN9zAP8eAOzv7s8ZAMCiAQyb7s2vzszh7t087laNDtaHAEBfEdDSUF3v7t4Yu+HQ0lKHCCKF4y6ijw7hRAARAAAQ/QAPauADbtVvAu7xDQAPXeAPhO3GVwBmfw7YIAA4WQ8ETd2vkNyt1+BAef8IWw8ClSKCqpcYDinHr2CouwBkkgKxzv8SB5Kp4CKpqyKiVfKpO88izf8i7/8jAf8zI/8zRf8zZ/8zif8zq/8zzf8z7/80BfjgEBADs=)}lib-editor .fancytree-container.fancytree-rtl .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-container.fancytree-rtl .fancytree-exp-nl span.fancytree-expander{background-image:none}lib-editor .fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,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)}lib-editor ul.fancytree-container.fancytree-rtl ul{padding:0 16px 0 0}lib-editor ul.fancytree-container.fancytree-rtl.fancytree-connectors li{background-position:right 0;background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7)}lib-editor ul.fancytree-container.fancytree-rtl li.fancytree-lastsib,lib-editor ul.fancytree-container.fancytree-rtl.fancytree-no-connector>li{background-image:none}lib-editor #fancytree-drop-marker.fancytree-rtl{background-image:url(data:image/gif;base64,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)}lib-editor table.fancytree-ext-table{font-family:inherit;font-size:10pt;border-collapse:collapse}lib-editor table.fancytree-ext-table span.fancytree-node{display:inline-block;box-sizing:border-box}lib-editor table.fancytree-ext-table td.fancytree-status-merged{text-align:center;font-style:italic;color:silver}lib-editor table.fancytree-ext-table tr.fancytree-statusnode-error td.fancytree-status-merged{color:red}lib-editor table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr.fancytree-active>td{background-color:#eee}lib-editor table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr>td.fancytree-active-cell{background-color:#cbe8f6}lib-editor table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode.fancytree-cell-nav-mode>tbody>tr>td.fancytree-active-cell{background-color:#3875d7}lib-editor table.fancytree-ext-columnview tbody tr td{position:relative;border:1px solid gray;vertical-align:top;overflow:auto}lib-editor table.fancytree-ext-columnview tbody tr td>ul{padding:0}lib-editor table.fancytree-ext-columnview tbody tr td>ul li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}lib-editor table.fancytree-ext-columnview span.fancytree-node{position:relative;display:inline-block}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#e0e0e0}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#cbe8f6}lib-editor table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right{position:absolute;right:3px;background-position:0 -80px}lib-editor table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover{background-position:-16px -80px}lib-editor .fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title{color:silver;font-weight:lighter}lib-editor .fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title,lib-editor .fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title{color:#000;font-weight:400}lib-editor .fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title,lib-editor .fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title{color:#000;font-weight:700}lib-editor .fancytree-ext-filter-hide span.fancytree-node.fancytree-hide,lib-editor .fancytree-ext-filter-hide tr.fancytree-hide{display:none}lib-editor .fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title,lib-editor .fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title{color:silver;font-weight:lighter}lib-editor .fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title,lib-editor .fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title{color:#000;font-weight:400}lib-editor .fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-match span.fancytree-expander,lib-editor .fancytree-ext-filter-hide-expanders tr.fancytree-match span.fancytree-expander{visibility:hidden}lib-editor .fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-submatch span.fancytree-expander,lib-editor .fancytree-ext-filter-hide-expanders tr.fancytree-submatch span.fancytree-expander{visibility:visible}lib-editor .fancytree-ext-childcounter span.fancytree-custom-icon,lib-editor .fancytree-ext-childcounter span.fancytree-icon,lib-editor .fancytree-ext-filter span.fancytree-custom-icon,lib-editor .fancytree-ext-filter span.fancytree-icon{position:relative}lib-editor .fancytree-ext-childcounter span.fancytree-childcounter,lib-editor .fancytree-ext-filter span.fancytree-childcounter{color:#fff;background:#777;border:1px solid gray;position:absolute;top:-6px;right:-6px;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}lib-editor ul.fancytree-ext-wide{position:relative;min-width:100%;z-index:2;box-sizing:border-box}lib-editor ul.fancytree-ext-wide span.fancytree-node>span{position:relative;z-index:2}lib-editor ul.fancytree-ext-wide span.fancytree-node span.fancytree-title{position:absolute;z-index:1;left:0;min-width:100%;margin-left:0;margin-right:0;box-sizing:border-box}lib-editor .fancytree-ext-fixed-wrapper .fancytree-ext-fixed-hidden{display:none}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-bottom{border-bottom:3px solid rgba(0,0,0,.75)}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-right{border-right:3px solid rgba(0,0,0,.75)}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tl{position:absolute;overflow:hidden;z-index:3;top:0;left:0}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tr{position:absolute;overflow:hidden;z-index:2;top:0}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-bl{position:absolute;overflow:hidden;z-index:2;left:0}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-br{position:absolute;overflow:scroll;z-index:1}lib-editor span.fancytree-title{border:1px solid transparent;border-radius:0}lib-editor span.fancytree-focused span.fancytree-title{outline:1px dotted #000}lib-editor span.fancytree-active span.fancytree-title,lib-editor span.fancytree-selected span.fancytree-title{background-color:#d4d4d4}lib-editor span.fancytree-selected span.fancytree-title{font-style:italic}lib-editor .fancytree-treefocus span.fancytree-active span.fancytree-title,lib-editor .fancytree-treefocus span.fancytree-selected span.fancytree-title{color:#fff;background-color:#3875d7}lib-editor table.fancytree-ext-table{border-collapse:collapse}lib-editor table.fancytree-ext-table tbody tr.fancytree-focused{background-color:#99defd}lib-editor table.fancytree-ext-table tbody tr.fancytree-active{background-color:#4169e1}lib-editor table.fancytree-ext-table tbody tr.fancytree-selected{background-color:#99defd}lib-editor table.fancytree-ext-columnview tbody tr td{border:1px solid gray}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#ccc}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#4169e1}lib-editor .optionsArrayMap,lib-editor .optionsLast,lib-editor .optionsArray{color:#000!important}lib-editor .dynamic-form .required .sb-modal-dropdown-web label:after,lib-editor .add-to-library .dynamic-form .required .sb-modal-dropdown-web .multi-select-container .list-border ul:after,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .required .sb-modal-dropdown-web ul:after{content:\" \"!important}lib-editor .dynamic-form sb-dynamic-checkbox{margin-top:3.5rem}lib-editor .dynamic-form .sb-dropdown-select{padding:16px 8px!important}lib-editor .dynamic-form .list-border{margin-top:2px!important}lib-editor body{background:#fff!important}lib-editor .add-to-library{position:relative;z-index:998!important;background:#e5edf5}lib-editor .add-to-library .sb-required{color:#ff4558;padding-left:2px;position:relative;top:-5px}lib-editor .add-to-library .back-btn:hover{background:none!important}lib-editor .add-to-library .back-btn{min-width:auto}lib-editor .add-to-library .dynamic-form .multi-select-section-app label,lib-editor .add-to-library .dynamic-form .multi-select-section-app .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .multi-select-section-app ul{margin-bottom:.3rem!important;z-index:inherit}lib-editor .add-to-library .dynamic-form label,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border ul{font-size:12px!important;margin-bottom:.5rem!important;color:#121213e0;font-weight:600}lib-editor .add-to-library .dynamic-form .sb-textbox,lib-editor .add-to-library .dynamic-form .topic-picker-selector,lib-editor .add-to-library .dynamic-form select,lib-editor .add-to-library .dynamic-form .sb-textarea,lib-editor .add-to-library .dynamic-form .list-border{border:1px solid rgba(34,36,38,.15)!important;padding:.85rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500}lib-editor .add-to-library .dynamic-form select{padding:12px 8px!important}lib-editor .add-to-library .dynamic-form .list-border{margin-top:2px!important;min-height:43px!important;height:inherit!important;padding:5px 8px!important}lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .placeholder{font-weight:500!important;color:#333!important}lib-editor .add-to-library .dynamic-form .multi-select-container .list-border ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-weight:500!important;position:inherit!important}lib-editor .add-to-library .dynamic-form .sb-modal-dropdown-web ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-size:12px!important;font-weight:500;border:2px solid #eeeeef;z-index:99999!important}lib-editor .add-to-library .dynamic-form .sb-keywordbox{border:1px solid rgba(34,36,38,.15)!important;padding:.45rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500;padding:0!important}lib-editor .add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input{padding:0}lib-editor .add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input tag{margin-left:.5rem}lib-editor .add-to-library .dynamic-form .sb-keywordbox .ng2-tags-container{margin-top:.2rem}lib-editor .add-to-library .dynamic-form .sb-keywordbox .tag-wrapper,lib-editor .add-to-library .dynamic-form .sb-keywordbox delete-icon svg{height:24px;line-height:24px}lib-editor .add-to-library .dynamic-form .sb-dropdown label,lib-editor .add-to-library .dynamic-form .sb-dropdown .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .sb-dropdown ul{padding:0}lib-editor .add-to-library .dynamic-form .textbox .sb-textarea-container .sb-textarea{height:10rem!important;padding-top:.5rem!important}lib-editor .add-to-library .dynamic-form .textbox .sb-textarea-container label,lib-editor .add-to-library .dynamic-form .textbox .sb-textarea-container .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .textbox .sb-textarea-container ul{padding:0}lib-editor .add-to-library .dynamic-form .sb-textarea-container .sb-textarea{height:2.9rem;padding-top:.5rem!important}lib-editor .add-to-library .dynamic-form .sb-textarea-container label,lib-editor .add-to-library .dynamic-form .sb-textarea-container .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .sb-textarea-container ul{padding:0}lib-editor .add-to-library .dynamic-form .sb-checkbox{padding:0;margin-top:0}lib-editor .add-to-library .dynamic-form sb-icon-dropdown{top:10px!important;right:6px!important}lib-editor .add-to-library .sb-textarea-container,lib-editor .add-to-library .sb-dropdown{margin:1rem 0!important}lib-editor .add-to-library .sb-container{width:95%!important}lib-editor .sb-checkbox-tnc .sb-required{position:absolute;padding-left:0;left:18px}lib-editor .h-100vh{height:100vh}lib-editor .ui.column.grid>[class*=\"eight wide\"].column{width:73%!important}lib-editor .footer-fix{padding-bottom:1rem!important}lib-editor .bg-white,lib-editor .ui.twelve.grid{background:#fff!important}@keyframes spinner-border{to{transform:rotate(360deg)}}lib-editor .sb-loading-spinner{width:1rem;height:1rem;margin-right:8px;border-width:.2em;display:inline-block;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}lib-editor .sb-btn-loading:before{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}lib-editor .sb-btn-loading:after{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;animation:button-spin .6s linear;animation-iteration-count:infinite;border-radius:500rem;border-color:#fff transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}lib-editor .sb-btn-outline-disabled{background-color:#fff;border:1px solid #cccccc;color:#999;cursor:default;font-weight:400}lib-editor lib-chat-window,lib-editor .chat_bot{display:none!important}lib-editor .sb-textbox::-webkit-input-placeholder,lib-editor .add-to-library .dynamic-form .topic-picker-selector::-webkit-input-placeholder{color:var(--gray-100)!important;font-weight:600!important}lib-editor .treepicker-parent{margin:.6rem 0!important}lib-editor .ck-content ul{list-style-type:disc!important}lib-editor .ck-content ul li{margin-bottom:0!important}lib-editor sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-left:1px solid #c4c4c4!important;border-right:1px solid #c4c4c4!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:0!important}lib-editor sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,lib-editor sb-dynamic-richtext .ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border:1px solid #c4c4c4!important;border-color:var(--ck-color-base-border)!important}lib-editor sb-dynamic-richtext .ck-content .table{margin:.8rem 0!important}lib-editor .sb-textbox::placeholder,lib-editor .add-to-library .dynamic-form .topic-picker-selector::placeholder,lib-editor .sb-textarea::placeholder{color:#333!important;font-weight:500!important}lib-editor .multi-select-container .sb-modal-dropdown-web ul{border:1px solid #d6d4d4!important;box-shadow:0 0 2px #cecaca!important}lib-editor .sb-disabled-textarea{background:var(--gray-0)!important;border:.0625rem solid var(--gray-100)!important;opacity:.45!important;pointer-events:none!important;font-size:1em!important}lib-editor .overflow-y{overflow-y:auto}lib-editor input:focus-visible{border:none!important}lib-editor .dialcodeModal input:focus-visible{border:.0625rem solid #999999!important}lib-editor #fancytree-drop-marker.fa-long-arrow-right:before{content:\" \"!important}lib-editor .sb-collectionTree-fancyTreelist ul>li>span:first-child{padding:15px 33px}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-n span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-nl span.fancytree-expander{background:none!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree:before,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul:before{content:none!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree li:before,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul li:before{content:none!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree li .fancytree-custom-icon:before{color:var(--primary-color)!important;margin-left:5px}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree .fancytree-folder .fancytree-title{color:var(--primary-color)!important;font-size:.9286rem!important;font-weight:700!important;padding-left:5px;width:inherit!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-right,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-down,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-right,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-down{display:block!important}lib-editor .sb-collectionTree-fancyTreelist ul.fancytree-container{font-size:inherit!important;font-family:inherit!important;border:none!important}lib-editor .sb-collectionTree-fancyTreelist ul.fancytree-connectors.fancytree-container li{background-image:none!important}lib-editor .sb-collectionTree-fancyTreelist span.fancytree-node{width:inherit!important}lib-editor .sb-collectionTree-fancyTreelist span.fancytree-active span.fancytree-title,lib-editor .sb-collectionTree-fancyTreelist span.fancytree-selected span.fancytree-title{background:none!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{background:none!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px}lib-editor .sb-collectionTree-fancyTreelist span.fancytree-focused span.fancytree-title{outline:0!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree{margin:0!important}lib-editor .sb-collectionTree-fancyTreelist.ui-fancytree,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul{margin:0 0 0 .625rem!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-e span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-ed span.fancytree-expander{background-position:-32px -68px!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{color:inherit}lib-editor .sb-loader{position:fixed;top:0%;left:23%;transform:translate(-50%,-50%)}lib-editor .sb-loader:after{content:\"\";width:32px;height:32px;border-radius:50%;border:2px solid;border-color:#ccc #ccc transparent;animation:loader .5s infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}lib-editor .sb-loader.dimmer{width:100%;height:100%;background:#000c;z-index:9999}@keyframes loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}lib-editor .sb-success-loader{position:absolute!important;top:46%!important;left:-12%!important;transform:translate(-46%,-50%)!important}lib-editor .sb-success-loader:after{width:1.2rem!important;height:1.2rem!important}lib-editor .pos-relative{position:relative}lib-editor .sb-circle-ul{list-style-type:disc;padding:0;font-size:.785rem}lib-editor .sb-circle-ul li{margin:0!important;line-height:1.4}lib-editor .sb-bg-color-success-0{background:#e1ffdf}lib-editor .flex-ai-center{align-self:center!important}lib-editor .sb-br-primary{border:1px dashed #aedbfd!important}lib-editor .sb-min-h-250{min-height:250px}lib-editor .z-index-9 .menu{z-index:99999!important}lib-editor .p-50{padding:10px 0 10px 50px}lib-editor .h-1{height:1.1em!important}lib-editor .mn-15{margin:-15px!important}lib-editor .upload-input-button{position:relative}lib-editor .upload-input-button input{position:absolute;opacity:0;left:0}lib-editor .bg-none{background:none}lib-editor .label-disable{opacity:.3!important;font-weight:500!important}lib-editor .sb-folder-menu{position:absolute;left:35px;display:flex;justify-content:space-between;width:24%;margin-top:5px}lib-editor .sb-disable-icon{color:#ccc!important}lib-editor .sb-w-240px{width:240px}lib-editor .showCollaborator .ui.dimmer{overflow-y:unset!important}lib-editor .showCollaborator .ui.segment{max-height:calc(80vh - 8em)!important;overflow-y:auto!important}lib-editor .showCollaborator .sb-modal-content .flex-align-item-center{border-bottom:solid 1px #ccc;margin:0 -16px;padding:0 20px}lib-editor .showCollaborator .ui.pointing{margin:0 -15px!important}lib-editor .showCollaborator .ui.pointing .item.active{font-weight:600!important}lib-editor .publish-checklist label,lib-editor .publish-checklist .add-to-library .dynamic-form .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .publish-checklist ul{font-size:13px!important;padding:0 1.5rem!important}lib-editor .sb-keywords input{width:100%}lib-editor .sb-keywords input::placeholder{display:block!important;width:100%}lib-editor .sb-keywords .ng2-tags-container{width:inherit!important;display:block!important}lib-editor .sb-keywords .ng2-tags-container tag{display:inline-flex!important}lib-editor .sb-dialcode{border-bottom:.5px solid #333333;padding:8px 5px!important;border-radius:0!important}lib-editor .sb-dialcode:focus-visible{border-bottom:.5px solid #333333!important;border-radius:0!important;outline:0!important}lib-editor sb-dynamic-timer .sb-timer-input{width:10rem;font-size:.785rem!important;border:1px solid rgba(34,36,38,.15)!important;border-radius:.28571429rem;padding:12px 10px;margin-right:5px;height:44px}lib-editor sb-dynamic-timer .sb-timer-input:focus-visible{border:1px solid rgba(34,36,38,.15)!important}lib-editor sb-dynamic-timer .sb-btn-normal{height:42px!important}\n"], dependencies: [{ kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i12.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i12.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i12.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i12.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: i13.LibraryComponent, selector: "lib-library", inputs: ["libraryInput"], outputs: ["libraryEmitter"] }, { kind: "directive", type: i14.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i15.ContentplayerPageComponent, selector: "lib-contentplayer-page", inputs: ["contentMetadata"] }, { kind: "component", type: i16.QumlplayerPageComponent, selector: "lib-qumlplayer-page", inputs: ["questionMetaData", "questionSetHierarchy"], outputs: ["toolbarEmitter"] }, { kind: "component", type: i17.HeaderComponent, selector: "lib-header", inputs: ["pageId", "labelConfigData", "buttonLoaders", "showComment", "publishchecklist", "requestChange"], outputs: ["toolbarEmitter", "bulkUploadEmitter", "qualityParamEmitter"] }, { kind: "component", type: i18.FancyTreeComponent, selector: "lib-fancy-tree", inputs: ["nodes", "options", "buttonLoaders"], outputs: ["treeEventEmitter"] }, { kind: "component", type: i19.MetaFormComponent, selector: "lib-meta-form", inputs: ["rootFormConfig", "unitFormConfig", "nodeMetadata"], outputs: ["toolbarEmitter"] }, { kind: "component", type: i20.LibraryComponent, selector: "lib-content-library", inputs: ["libraryInput"], outputs: ["libraryEmitter"] }, { kind: "component", type: i21.QuestionComponent, selector: "lib-question", inputs: ["questionInput", "leafFormConfig", "sourcingSettings"], outputs: ["questionEmitter"] }, { kind: "component", type: i22.TemplateComponent, selector: "lib-template", inputs: ["templateList"], outputs: ["templateSelection"] }, { kind: "directive", type: i23.TelemetryInteractDirective, selector: "[libTelemetryInteract]", inputs: ["telemetryInteractEdata"] }, { kind: "component", type: i24.QumlPlayerComponent, selector: "lib-quml-player", inputs: ["questionSetHierarchy", "isSingleQuestionPreview"], outputs: ["toolbarEmitter"] }, { kind: "component", type: i25.CsvUploadComponent, selector: "lib-csv-upload", inputs: ["collectionId", "isCreateCsv"], outputs: ["csvUploadEmitter"] }, { kind: "component", type: i26.ManageCollaboratorComponent, selector: "lib-manage-collaborator", inputs: ["addCollaborator", "collectionId"], outputs: ["modalDismissEmitter"] }, { kind: "component", type: i27.RelationalMetadataComponent, selector: "lib-relational-metadata", inputs: ["contentMetadata", "formConfig"], outputs: ["statusChanges", "valueChanges"] }, { kind: "component", type: i28.AssignPageNumberComponent, selector: "lib-assign-page-number", outputs: ["assignPageEmitter"] }, { kind: "component", type: i29.ProgressStatusComponent, selector: "lib-progress-status", outputs: ["assignPageEmitter"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1110
1189
|
}
|
|
1111
1190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorComponent, decorators: [{
|
|
1112
1191
|
type: Component,
|
|
1113
|
-
args: [{ selector: 'lib-editor', encapsulation: ViewEncapsulation.None, template: "<ng-container [ngSwitch]=\"pageId\">\n <ng-container *ngSwitchCase=\"'collection_editor'\">\n <div class=\"add-to-library mb-10\">\n <lib-header [pageId]=\"pageId\" [publishchecklist]=\"publishchecklist\"\n [labelConfigData]=\"toolbarConfig\" [buttonLoaders]=\"buttonLoaders\" (toolbarEmitter)=\"toolbarEventListener($event)\"> </lib-header>\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0 \">\n <!-- Left Sidebar for cards -->\n <div class=\"p-50 sb-folder-menu\" *ngIf=\"isObjectTypeCollection\">\n <div> {{configService.labelConfig?.lbl?.folders}} </div>\n <a class=\"profile-avtar computer only p-0 pr-10\" tabindex=\"0\">\n <div suiDropdown class=\"ui dropdown right top pointing z-index-9\" id=\"dropdown-menu-list-header\" *ngIf=\"!isStatusReviewMode\">\n <i class=\"icon ellipsis vertical h-1\" aria-hidden=\"true\" [ngClass]=\"{'sb-disable-icon': isStatusReviewMode}\" (click)=\"onClickFolder()\"></i>\n <div class=\"menu\" suiDropdownMenu >\n <button type=\"button\" class=\"item fs-0-785 bg-none\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.createHierarchyCsv,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.createHierarchyCsv})\"\n (click)=\"hanndleCsvEmitter({type: 'createCsv'})\" [disabled]=\"csvDropDownOptions.isDisableCreateCsv\">\n <i class=\"icon folder outline sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableCreateCsv}\" aria-hidden=\"true\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableCreateCsv}\">{{configService.labelConfig?.lbl?.createHierarchyCsv}}</span>\n </button>\n <div class=\"ui divider\"></div>\n <button libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('csv_download','click',configService.labelConfig?.lbl?.downloadFoldersInCSV,\n this.telemetryService.telemetryPageId,{key: 'identifier', value: collectionId})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'downloadCsv'})\" [disabled]=\"csvDropDownOptions.isDisableDownloadCsv\">\n <i class=\"icon download sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableDownloadCsv}\" aria-hidden=\"true\"></i> \n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableDownloadCsv}\" > \n {{configService.labelConfig?.lbl?.downloadFoldersInCSV}}</span>\n </button>\n <div class=\"ui divider\">\n </div>\n <button \n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.uploadUpdateCSV,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.uploadUpdateCSV})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'updateCsv'})\" [disabled]=\"csvDropDownOptions.isDisableUpdateCsv\">\n <i class=\"icon upload sb-color-primary\" aria-hidden=\"true\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\"></i> \n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\" > \n {{configService.labelConfig?.lbl?.uploadUpdateCSV}}\n </span>\n </button>\n </div>\n </div>\n </a>\n </div>\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\" [ngClass]=\"{'mt-50': isObjectTypeCollection}\">\n <lib-fancy-tree *ngIf=\"collectionTreeNodes && collectionTreeNodes.data && ishierarchyConfigSet\"\n [nodes]=\"collectionTreeNodes\" [options]=\"{ showConnectors: true }\" [buttonLoaders]=\"buttonLoaders\"\n (treeEventEmitter)=\"treeEventListener($event)\" class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\">\n </lib-fancy-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <ng-container *ngIf=\"(isCurrentNodeFolder === true || isCurrentNodeRoot === true) && unitFormConfig && selectedNodeData && rootFormConfig\">\n <lib-meta-form [rootFormConfig]=\"rootFormConfig\" [nodeMetadata]=\"selectedNodeData\" [unitFormConfig]=\"unitFormConfig\"\n (toolbarEmitter)=\"toolbarEventListener($event)\"></lib-meta-form>\n </ng-container>\n <ng-container *ngIf=\"isCurrentNodeFolder === false && isCurrentNodeRoot !== true\">\n <lib-contentplayer-page *ngIf=\"!isQumlPlayer\" [contentMetadata]=\"selectedNodeData\" ></lib-contentplayer-page>\n <lib-qumlplayer-page *ngIf=\"isQumlPlayer\" [questionMetaData]=\"selectedNodeData\" [questionSetHierarchy]=\"collectionTreeNodes?.data\"\n (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-qumlplayer-page>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <sui-modal *ngIf=\"showDeleteConfirmationPopUp\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll\n (dismissed)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.confirmDeleteContent}}\n </div>\n <div class=\"sb-modal-content\">\n <!-- <div class=\"sb-publish-content\">\n <div class=\"review-modal-list\">\n {{ contentComment }}\n </div> -->\n <div> {{deleteConfirmMessage}}</div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary mr-8\" (click)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.no_btn_label}} </button>\n <button type=\"button\" class=\"sb-btn sb-btn-secondary sb-btn-normal \" (click)=\"deleteNode();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.yes_btn_label}} </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showConfirmPopup' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal overflow-modal\" appBodyScroll (dismissed)=\"showConfirmPopup = !showConfirmPopup; terms = false;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.acceptTerms}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"ui grid\">\n <div class=\"twelve wide column sb-checkbox-tnc mt-10\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\"><input [(ngModel)]=\"terms\" id=\"termAndConditions\"\n name=\"example\" type=\"checkbox\">\n <label for=\"termAndConditions\" class=\"fsmall pl-32\">\n <div class=\"d-flex flex-ai-center\">\n <span class=\"sb-required\">*</span><span\n class=\"font-weight-bold mb-4 d-block\">\"{{configService.labelConfig?.lbl?.iAgreeSubmit}}</span>\n </div>\n <div class=\"sb-color-gray-300\">{{configService.labelConfig?.lbl?.iconfirmContent}}<a\n class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"https://creativecommons.org/licenses\" target=\"_blank\" > {{configService.labelConfig?.lbl?.createCommonFramework}}</a>\n {{configService.labelConfig?.lbl?.accordance}} \n <a class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"{{contentPolicyUrl}}\" target=\"_blank\" >{{configService.labelConfig?.lbl?.contentPolicy}}</a> {{configService.labelConfig?.lbl?.privacyRights}}\"</div>\n </label>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal\" [ngClass]=\"!terms ? 'sb-btn-disabled' : 'sb-btn-primary'\" [disabled]=\"!terms\"\n (click)=\"sendForReview()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'accepting_terms_conditions','termAndConditions' : terms})\">\n {{configService.labelConfig?.button_labels?.submit_btn_label}}\n </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showPreview' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'large'\"\n class=\"sb-modal overflow-modal preview-modal\" appBodyScroll (dismissed)=\"showPreview = !showPreview;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.questionSetPreview}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"br-2 b-1-100\" id=\"previewPlayerContainer\" tabindex=\"0\" cdkTrapFocus>\n <lib-quml-player [questionSetHierarchy]=\"collectionTreeNodes?.data\"></lib-quml-player>\n </div>\n </div>\n </sui-modal>\n <lib-template *ngIf='showQuestionTemplatePopup' [templateList]=\"templateList\"\n (templateSelection)=\"handleTemplateSelection($event)\">\n </lib-template>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'library'\">\n <lib-library [libraryInput]=\"libraryComponentInput\" (libraryEmitter)=\"libraryEventListener($event)\">\n </lib-library>\n </ng-container>\n <ng-container *ngSwitchCase=\"'question'\">\n <lib-question [questionInput]=\"questionComponentInput\" [leafFormConfig]=\"leafFormConfig\" (questionEmitter)=\"questionEventListener($event)\">\n </lib-question>\n </ng-container>\n <ng-container *ngSwitchCase=\"'pagination'\">\n <lib-assign-page-number (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-assign-page-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'progressStatus'\">\n <lib-progress-status (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-progress-status>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"addCollaborator\">\n <lib-manage-collaborator [addCollaborator]=\"addCollaborator\" [collectionId]=\"collectionId\" (modalDismissEmitter)=\"toggleCollaboratorModalPoup()\"></lib-manage-collaborator>\n</ng-container>\n<sui-modal *ngIf=\"showReviewModal\" [mustScroll]=\"true\" [isClosable]=\"false\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll #modal (dismissed)=\"showReviewModal = false;\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.reviewComments}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"sb-field\">\n <label>{{configService.labelConfig?.lbl?.comments}}</label>\n <textarea disabled=\"disabled\" type=\"text\" class=\"wmd-input width-100 sb-form-control p-10 sb-disabled-textarea\" id=\"wmd-input\" [(ngModel)]=\"contentComment\" name=\"rejectedComment\"></textarea>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"modal.deny('denied')\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('close','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'review_comments'})\">{{configService.labelConfig?.button_labels?.close_btn_label}}</button>\n </div>\n</sui-modal>\n\n <lib-csv-upload *ngIf=\"showCsvUploadPopup\" [isCreateCsv]= \"isCreateCsv\" (csvUploadEmitter)= \"hanndleCsvEmitter($event)\" [collectionId]=\"collectionId\">\n </lib-csv-upload>\n\n", styles: [".fancytree-helper-hidden{display:none}.fancytree-helper-indeterminate-cb{color:#777}.fancytree-helper-disabled{color:silver}.fancytree-helper-spin{animation:spin 1s infinite linear}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}ul.fancytree-container{font-family:inherit;font-size:10pt;white-space:nowrap;padding:3px;margin:0;background-color:#fff;border:1px dotted gray;min-height:0;position:relative}ul.fancytree-container ul{padding:0 0 0 16px;margin:0}ul.fancytree-container ul>li:before{content:none}ul.fancytree-container li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}ul.fancytree-container li.fancytree-lastsib{background-image:none}.ui-fancytree-disabled ul.fancytree-container{opacity:.5;background-color:silver}ul.fancytree-connectors.fancytree-container li{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7);background-position:0 0}ul.fancytree-container li.fancytree-lastsib,ul.fancytree-no-connector>li{background-image:none}li.fancytree-animating{position:relative}#fancytree-drop-marker,span.fancytree-checkbox,span.fancytree-drag-helper-img,span.fancytree-empty,span.fancytree-expander,span.fancytree-icon,span.fancytree-vline{width:16px;height:16px;display:inline-block;vertical-align:top;background-repeat:no-repeat;background-image:url(data:image/gif;base64,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);background-position:0 0}span.fancytree-checkbox,span.fancytree-custom-icon,span.fancytree-expander,span.fancytree-icon{margin-top:0}span.fancytree-custom-icon{width:16px;height:16px;display:inline-block;margin-left:3px;background-position:0 0}img.fancytree-icon{width:16px;height:16px;margin-left:3px;margin-top:0;vertical-align:top;border-style:none}span.fancytree-expander{cursor:pointer}.fancytree-exp-n span.fancytree-expander,.fancytree-exp-nl span.fancytree-expander{background-image:none;cursor:default}.fancytree-connectors .fancytree-exp-n span.fancytree-expander,.fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,R0lGODlhYADIAPcAAAAAAAAYMQAhOQgIawAQcwwYdxApQhgxShgxUiExSikxQiAzeyFCWilCWj1GVjlKa0JSY0pSa0JXc1JSc1pjY1Jje1pje2Nra3NzawAplAA5pQBCpQBCrQBaxghjxgBr1gBz3gB73lJahFJajFpalFpanFpapUJznEJ7lF5vg1JzlFp7lFpjtVJ7rWNjlGNjnGd3mHNzjHN7iHd7nHt7lGtrvWtzrXN7tXt7vSGlIXOtKULOY1LWawCE5wCM9wCc/wic/xiU9xil/yGEzjGMziGc5zGl50KElEqElEqMlEqUjFKMlFqEnFKcjFKUlFqcnFqErVKMtVKlhFKthFq1hGOEnGuEnGOEqWuMpWuMtWuUpWucrWuUtXuEpXuMpXOMvXuEvXOUpXOUrXOcrXuUrXOUtXuctWO1jGO1lGu1nHO9nHOlrXOtpXutpVKU1kK173uMxnucznOlznulxnutxnul1nul3krG91rG/5wAALtVUP8AAP8ICP8UFP8/P/9aWv9zc4O9NpC9WoSEhIyMjISUnIyUnJSUlISEtYyUpYyktYWwo5C2uaWlnK2lnKmpqaWlua2ttbWlpbW1tb29vYSXyIOuyYiwz5S1ypGy25m61oOz5Ki11rW1xrW9xr29xpTnpbXvvZ/G24fH7orF/5TO/5/D9JzO/5TW/5zW/6nK2q3O3rjA2bXa2q3G563G763O56XW/63W/63e/7XO57rO7L3W57XW/7XZ87Xe/73e/7Xvxr3vxq3n/7Xn/73n/9Ozr/+QkP+cnP+9vcbGvcbGxsbGzs7Ozs7O1tbOztPT09bW1tbW3t7e3sbb6cbe/9bW59be597e597e78731tb33sbn/8bv/8zm887n/87v/873/9bn99bv99bv/97v/9735973///Kyv/W1v/e3ufn3ufn5+Ln7+/v7+fv9+/v9+f35+f/7+//7+f//+/39+/3/+//9/f39/f3///39////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAABgAMgAAAj/AP/9W1asoMFiAhMmJHiwoEKFDBs+XNjQ4cSBFRFejHjw4r9i5kKKfKTxIUiRIUlePIlS5USWI0sqhJlSZkKa5lyaNNesZ89H6Gx+5OmzWaOgL4n6BCoUZFGjSHc+ZZr06dGmPInmlBf1ptZm0h5xtelUq9iuAp024xl2rFSzbmd+bYt2aFaej+rFTStybblH8/baXYtXL1qWfgELPkm4Wd7Ffc39DXwYHcqchAYRkknMcsvMm2d6Hgma8+iUpUVffpQ6YefVrdN6Hr1sWTOZlCzP7mkbt+6Q6JrZbkZJ4aff5oILv60wd3Lgy4kbR668d3Ou6LJrz1785vbv6LoL/ySmDrx23NjNi/9H3nx29O7DX3cvbz2l9N/rzzevP+F9+vbht11/Av3HX4DyJKhggvUguOCCDj6YYIQSUvighRA2p5eEE2rIoTwNeshhiP5tKCGJBZr4IIr/UKLigiy6yOCMetm34Y0gEtgijjnWKCKOPpY4Y486ypgjkTbWo6SSICqZZD30LLnkJBpKqdeST0ZpJZUlWtlkjEtqKSWXKX65JIjrTWLllU4qpOaZW3oo5ZdpzhmnkHa22eWaegr0Jp8s/slnnYAGWqihha5XTCSPHOIoIY4+EolMizb6aKSTzsSoo4dAeoiklG566aeZ3iRqp5iGaimqpArl0auwxv8q66y01vqPMWbkaoYxsOKqK6+v+porsB4Ju2uvuh4bbLLEXmSGKKqIIooZsD4b7bTVQistta9au22213LrkbfYesSIGJhgogkmZIQhhrvvtsuIIuiqy6678IYhL73prtvuu2LEG8a89fqLb8D6Dsyvvf/mu2/B9wIsMCNkYMNNNBZj44zGztjiMS76WowxNxpz7LEtIFd8ccYbO9PxxyGvTHLLL6Mc88glu3xyyiKzbDLMZJwsNC20rGK0Kqu0K/TJRBu9CtJKL21L00cnHYbUUxddddRLU/201Vh7jbQYZBTt9deqpK0K2WZrXbXaa5e9ytlIw8323G6jrfbddD//vbfcfavtirtOF86K2tq+C0vhRh+eduJhLM6449FGqzjjq1AOueSGI2555JhrHm0YkcP9uLSicCIt4aZfK63qorBuOuqpry6G33DTDrvsuaO+++2t6756GMJrIoomyCMfO/GvS2t88sqT7rvzx0O//PTHV5/89c1nD73x0nf/vPWkf4+8ut9roYX565qvPvvoQ/+++fEnP//39SN/P/T5a6IFFpm4BCYEeIkCGtCA/wvgAAd4wAMmkIAMbGABH7hACSIQgBC04AQxWEENqu8SljAgHQoYQgNu4n8gTGEJS1jAE2JBhSmMYQtRGMIakvCALoThCnFIQxjK8BIupIMQ/4U4hyEakQ7/OyIdiqjEJB6RiUd0ohGhaEQpDpGKQ7QiEZVIByxggQlgDKMYxejFMZoxjGU8oxnTqEYyfrGNboQjGW1Fxzra8Y54zKNHIAABWvFRj4AM5ENSEIAEzIqQhhTkq44xiUc04hGOfMQkjjERRkYykpOcCCdwwIJOepIEAQiAJxSySU9+MpSjTIglH4lJSj5klZB8ZCYVcgxKmGNN5qCEKwVSy1taKZe7/AcnKlGLb7gjHMfshgEC8ABSEtOYyAyHMplJS1viUpfV9KWUgKmQSGjzl5Ho5je3Gc6E3MAV2UinOglpABso5JzqXGcA2ilOvehCF7jQhZLMUf9OgXjTnvjUZz34qZBGzKNQjSjoQQGV0ISY4J66wIYunoGJUCrCBAp56D0lSlGLYjQhBpUHLmSBi1uMVEkNFUhIR1rSk9Yjpf84xJWGpJdDKESmR8KRTRNSAllUIQBVwAUuEBAACeiiBArp6U+DOtSiHvWm9YhFLGQh1Vi8Ihby2KlAZCpVqkr1qlkt6IcSBNNGjFUeMCXBKawQyjKoYJ6wiAUJFKJWtgbArXCVq1hJMQq++nUU8yirPP7618DelCvP+U1YE3IIxP7GMosVCAlGcQoJBEAAoRQDX+eakMlW9rKZ3exhSUHaUpCWtOjQakwHW9rTkiK1BS3PY5MT2X//NEK2iaWtakdAWlw0IJQPSAVpRaAQ3pLCt8AVLimIC1J1pEIW1viFLFKRilKgNbbPje50q3tdxjo2Obrp7la/mx3awlQEp0hFLHDBgAPElbrMFQh61cte98YCvodFxylmwd9ZxCI7qm2sfvvrXwAr5BHNcI9jDpxg8yw4ITHQxCx84QtuaOMXvpiFJmKgkAhPuMIXzvCGGZyd/voiOw8WCIJLzN8TB+cRM6FEg7dDHErJGDw1VggkvKCKa1xjGz6+hiq8AAkd89jHQPbxkIt8kxt/J8dNnrF2oHwTRx6iEVf+VFOsjGUs6yQhkIjBBMZM5hjA+CGQSAGZy3zmmXA5/8tfTsubvewqRdr5znjOs573zOc+v8oci7oySczhEUBHQtAg8cg0OAGHGtQADpyYhqIZ7WhIS/oihkY0oTEd6EcmeiLLeISME0ScSCQD1KJuBqkpYeqJsAIOmWBFN7pRC0yAgRWuhrWsaW1rXD8k1KOWR6lP/etUr7rVEEHwmhyzDIUkQ9lWYrZCWAEGV3DDG9jOhjdccetpV/va2d52txcCbSlJOyHPbsayH9FsgeRE3XwK9ab5Ce81yVsg06j2M6zxDGzse9+cAMOl8+2Kf/ub39YI+KXfrSSDK+ne/6C3kvjt74c/YtPFcNFMmeQkjWQcSmyik0aGeYt75jOg9/+sBCcEQnKTuzzlK/+IxvN5clx0PC0uokcuai5QSmgEwWd9MNDH+mBEZMKksrDEAQ5giZHKIhOIEEgXjj5SpTPd6VBX8TLoQVKSmtSkwj4z0L/OUrA/+BDo4FDaubJTtC/oHQ+C7T9eYIqqHiCUB/iqKV4gELp/9e4ByLtV977VtHe1qlJle+HlgXjEKz6muX2sZdoO3sg/Z6cu2IRfAY8Av26C7//IvF+JGoDO9/XzW01OX1fv15BQHh2sZ73rtV5e3dh+GQ1lt+0Tmx3cS90Op1U6AixxWjt04ffBP8Dwi3982y4DHa0lhWlfG2qVPj/600dH9VuUm93bnhLdAX//7SvPne5A4gulSMUpoGuN6Z6iFFlg8vnTn932qx/+TP5E99U/C2vc9xTh0R36lx3853/qF4AC4RjHsB3gpX2NIA0J+AgLqB0NiHsQ+A/MMAOXEAsExoGxcAkzwAwCkYEbyF+y0F8fGIIROIH9JQvZkQwPuIIsNgsuiA4weIEfIYHgcQxfVgw6+B08KBOdMAOa4Au/cIQYhgkz0AkKMYRFiIRJuIRuNoHbEYRTuINx5oOTsAwhsQyNtGVb2IVfOBGdQANkoArYgA2qkAhS+BCTMANnmIaiwIZMaBKSxIXm4IVxloNhmIdjOBHEgWWEkGoeEYidQogXgQyQIAMWYAE0/wAJyOARisiIjvgIkXgRhjiIMlaIlCCIiOhnoKhnylAroxiKgFSKs4KKsqKKpnhHrAgrr/gqsdiKtjKLF2GLE4GLtLiKpNiLu+iKvpiKvwiMtKKLCmGMw3iLwciLyUhHyCgQz/gP0diM0EiKynCN2DiL2ZiN1CiLy9iNihSN0wiOxfiN5HiK5niOeSSO6hiO6diOdjSO8DiP9FiP9niPu3gI7SYr+siPg/CPADkIqsVYAQmQA3lT+xgr/Tgr/9hmsNKQsbIMBfmPzbAREzkIFekRECkrGxkrABkaD/mPIOkRjyCS/0gmE1GSmnGSsAIp/1hnCeGSgwCTAlGQh7BpF/9hkzg5EQFJCB75kR7JaocgkOXwKoMglAK5kw9hkgCZkTy5kk3pEZSwksG0EgBZlTxJDODHGoOQkAoxCFpJCSrplEsZkDdplGaplA8xlDD1KmzJkfonkWepkXGZlGipGTT5Dx+Zl//QDIOglpj4lxxZGyOpkYSZl//YTyGpmBFZK16pkTnBkJHJj2QJKws5jIdQmW6pmfjYmZ75maAZmqI5mqTpEZepkI85EUM5kQcZUxfZmluVmhdxmiHpkGhpm6B2kZwpkRPJmTU5CLiZk8DJkCKJmMUJKyqZGYOAkg+RnCz5KjKZl9H5kwYJmL9ZnXepGdSpnQ+JlIdQlBrpndb/qZdQSZEaWZ4YKZVUGSvFcJUeGZZcKZtguZXmKZzYeZ73aZqD0Jb6yZ88WZdzmZMAOp57SZ2FWYiCKSt+OZ4J0ZXLcKA8eZg/yZjnSaGvIpsbIZnByZOTqZC+qZoYCoqZSSsjWpomeqIomqL1OAyA0KLiMBGHsibzuAd7ACvD4Ad8QKN70Ad/8KIJEaNWAo86WqMXAQg5yqN/8Ad9sKPC8KNAuiRCqqN5MBHBwAd9AAjkoCT0oKRW6qNPCqXtOKRTqhDk0Ad8EAxhoqQ8ugd+IBCHkgNBGqZS+hDCYKVZCiVqOgzDYKXj8A+FkgNwKiVRSqNjmhDBsAd/ECVb2gd9hzAMSmKmTSolgVoPgDqpSjKoe1CoAvEHiIqnjOqoSsKpgOCnSwKolGqqcSqneaCp/3CofrCojSolSxqppVqplgqm8LiqEzEMjJqnUuKqbiqpqCqjUeoRnNoHfgCqSlKmfNCkpCqphYKpFyEOZvoHyioMONqmwfqlmMqqAiEMS2qlarqjPvqsT/86o5nqrQIhDn6wpDSKrH3qpNw6j7oKK+MgDPharvJ6rir6EF96qf0asJ2ZqoGkDvJwEe2wDuzQDnaWsAtbR/VwAwRwA/XwEA7LsHQEDQNQADiYEOsACtSgsIr0sSHLDnRUDwSQshWrECQrsrbCCgOwsR37D+CwAzwQCuuAsYBUszebs7aCsir7EDyLszoLK1LCCgRQAAtwaQJRs7zQs0V7EWayJglCszvwtEQbK2aSAVx7JgfrtFAbK3GgAWRbtmS7AUxbDTtQDbvAA9TQDvEAK/NQBx5Qt3Zrt3VwsGrLtm4Lt3JbBxwQuIIruHn7D3vbtm8bt6/iAR3QuI7ruG7/oA5Nu7bVwAtrq7geUQ93u7l1W7E1Ww2Ve7lGy7iP+7ge4LmUa7nVgLkXsQkg8Lqw+7ohwA3t9rlPm7iwIg+b8AG827u9uwnnYLWV27esOxG667vIuwmEZrvEGytSkgs+4ANB8A1OCbZZm7tfEgmT8AnGMAnGgAwiaL0+CysGuyQ9cL5LIg28Ir5RCyu58AM/IATfkJDrYLPXC0j1G7a1Ug/R6wMr67H2O7604g1AIL9eSbIPK0gI3L7OC78/8L8CscB0pA7wUA+a2Q4YzMB4lMEaTL6k8AOkEA0Wm8EC+xDnoA4D1SwlvMIs3MIu7BEGi7AK28EpqrEcOxEta7Is/wyzMiu0AUzDo3m0Sbu0CsG+AgEAKDq2Zlu2aJsQh9u8AIDEJkq6pdu4kTu5oKu6cRvFXNzFXvzFYPzF/4DEZMxnrhu7sDu7tbu2t+u3UYyizxu901u9V6u/Uqyi7xu/88uyP8zCBGzADyHBLEzBFjwRHPzCiJzIivyZUyAFTdAESpAESIACUBBzAoEGaNDIjxzJk1zJEJERHsERBnER3FAPOqAD9aAJlmAJZSAGZVAG/nrKqbzKZPDKsKwQU/AEbOAEWzAwjPDLjNACuKzLvOzLwCzMXrEaroITe6gkghAIS5IO0pwOm6ACTvrM0TzN1YzLWZAFlqAIJ9AIkQB+k/9Qzq40Bd38zeE8zpRQzrOkFktRF0NhFXWhA8/8zKgMUe8wCtv8D/YcCPhcD/rMz9YsEOjMBVyACSdwDMtgJWd20Am90A0tJWdWFj2xFXWhFmxxFjKhA4Hw0YGQz/dksPNQAQLh0c8c0gI90vJQ0gkxBQg9BoyAyY0AfuBXDw8d04yAAo1Q0zaN03zBE+UgY49xGH1BDI5hGCWhJB+9JCZ3C7LwDiZNqk2tJE8d1VP9DzA9BjKNAuBnDaeADeEA1FrNBVy9018d1mNd0ZZhFIlgCBeAAXipEK9hFIaQCHE91wKhCaYs0rrwdVi913290n9dUoFt0GOwBmuw01dGCi3/0At48FKIrdiM3QiODdmS3SLoUA6EkAWaUAkxQAHH0Ayf0BzB0dmZANqiLR0CYQlSUtiycAtTpQ4R0NqvjXSyLQu0nRBUoNiL7dWUoA2ncA2oQNa9TdnALdzETdafIA+SsAJEIAd6EAUwkBvEYBzyMAnQPQfTXd1dYQnyAFElBdVWlQrpUNv/AN7ifQvk/Qrmjd7/0Nts0AZtgAJXZtMuslPyTd/27dM3vVP3QQxXMASYQAdFEAWSQA8BAgxQQOAGjuAKnhBloA4QZVJTFQuncArn0Ef/IAYUfk8WTlUZvuG8Pd/0fQTghxKZTQUm3gYobksikdn3kQyJ8AZG8AZ3/1AIxFAk8kDjNo7jOk4gEw7bsiALdWcKGu4AAjHk+FTksnAKsYDk56DkAkEF9N0GaoAEPQ1+H6ffV57lW/4JWlkPAK4X+zkKo6AIGCAPES4kZ57ma97m/zDhO5cLsi1VplAKpTDlAuHhO8feUR7les7nVY7lWI4EKR7jXq4Gh57oIUHmZUIPjQApjhAlRaIXkk7pWiIeZfAOf53bSP5+ppAOVN7phX3hSK7n6EDl8d0Gi6AGi5AE9/3TXv7qsT7r/50iYWIlTwJyY5IQKsAM76AO6XAOxn7s6XAMCiAQwT7s0nzsxp7sy17lalDtapAEBfEdDUUF1n7t2b4dDSUocIaCKF7SJ26lAipQARUQAREAAQ7w7gow1eee7useAQ7g7g4Q77x9BmmQBtc+CDJgCALf06Ud35hc7UkA8AJvCASv64CCkhr38KHYCozQBksgKxRv8bBSKZziKaCiKavi8aWyyCRf8iZ/8iif8iq/8izf8i7/8jAf8zI/8zRf8zZ/8zif8+QYEAA7);margin-top:0}.fancytree-connectors .fancytree-exp-n span.fancytree-expander,.fancytree-connectors .fancytree-exp-n span.fancytree-expander:hover{background-position:0 -64px}.fancytree-connectors .fancytree-exp-nl span.fancytree-expander,.fancytree-connectors .fancytree-exp-nl span.fancytree-expander:hover{background-position:-16px -64px}.fancytree-exp-c span.fancytree-expander{background-position:0 -80px}.fancytree-exp-c span.fancytree-expander:hover{background-position:-16px -80px}.fancytree-exp-cl span.fancytree-expander{background-position:0 -96px}.fancytree-exp-cl span.fancytree-expander:hover{background-position:-16px -96px}.fancytree-exp-cd span.fancytree-expander{background-position:-64px -80px}.fancytree-exp-cd span.fancytree-expander:hover{background-position:-80px -80px}.fancytree-exp-cdl span.fancytree-expander{background-position:-64px -96px}.fancytree-exp-cdl span.fancytree-expander:hover{background-position:-80px -96px}.fancytree-exp-e span.fancytree-expander,.fancytree-exp-ed span.fancytree-expander{background-position:-32px -80px}.fancytree-exp-e span.fancytree-expander:hover,.fancytree-exp-ed span.fancytree-expander:hover{background-position:-48px -80px}.fancytree-exp-edl span.fancytree-expander,.fancytree-exp-el span.fancytree-expander{background-position:-32px -96px}.fancytree-exp-edl span.fancytree-expander:hover,.fancytree-exp-el span.fancytree-expander:hover{background-position:-48px -96px}.fancytree-fade-expander span.fancytree-expander{transition:opacity 1.5s;opacity:0}.fancytree-fade-expander .fancytree-treefocus span.fancytree-expander,.fancytree-fade-expander [class*=fancytree-statusnode-] span.fancytree-expander,.fancytree-fade-expander.fancytree-treefocus span.fancytree-expander,.fancytree-fade-expander:hover span.fancytree-expander{transition:opacity .6s;opacity:1}span.fancytree-checkbox{margin-left:3px;background-position:0 -32px}span.fancytree-checkbox:hover{background-position:-16px -32px}span.fancytree-checkbox.fancytree-radio{background-position:0 -48px}span.fancytree-checkbox.fancytree-radio:hover{background-position:-16px -48px}.fancytree-partsel span.fancytree-checkbox{background-position:-64px -32px}.fancytree-partsel span.fancytree-checkbox:hover{background-position:-80px -32px}.fancytree-partsel span.fancytree-checkbox.fancytree-radio{background-position:-64px -48px}.fancytree-partsel span.fancytree-checkbox.fancytree-radio:hover{background-position:-80px -48px}.fancytree-selected span.fancytree-checkbox{background-position:-32px -32px}.fancytree-selected span.fancytree-checkbox:hover{background-position:-48px -32px}.fancytree-selected span.fancytree-checkbox.fancytree-radio{background-position:-32px -48px}.fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-48px -48px}.fancytree-unselectable span.fancytree-checkbox{opacity:.4}.fancytree-unselectable span.fancytree-checkbox:hover{background-position:0 -32px}.fancytree-unselectable span.fancytree-checkbox.fancytree-radio:hover{background-position:0 -48px}.fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover{background-position:-64px -32px}.fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover{background-position:-32px -32px}.fancytree-unselectable.fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-32px -48px}.fancytree-container.fancytree-checkbox-auto-hide span.fancytree-checkbox{visibility:hidden}.fancytree-container.fancytree-checkbox-auto-hide .fancytree-node.fancytree-selected span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide .fancytree-node:hover span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide tr.fancytree-selected td span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide tr:hover td span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus .fancytree-node.fancytree-active span.fancytree-checkbox,.fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus tr.fancytree-active td span.fancytree-checkbox{visibility:unset}span.fancytree-icon{margin-left:3px;background-position:0 0}.fancytree-ico-c span.fancytree-icon:hover{background-position:-16px 0}.fancytree-has-children.fancytree-ico-c span.fancytree-icon{background-position:-32px 0}.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover{background-position:-48px 0}.fancytree-ico-e span.fancytree-icon{background-position:-64px 0}.fancytree-ico-e span.fancytree-icon:hover{background-position:-80px 0}.fancytree-ico-cf span.fancytree-icon{background-position:0 -16px}.fancytree-ico-cf span.fancytree-icon:hover{background-position:-16px -16px}.fancytree-has-children.fancytree-ico-cf span.fancytree-icon{background-position:-32px -16px}.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover{background-position:-48px -16px}.fancytree-ico-ef span.fancytree-icon{background-position:-64px -16px}.fancytree-ico-ef span.fancytree-icon:hover{background-position:-80px -16px}.fancytree-loading span.fancytree-expander,.fancytree-loading span.fancytree-expander:hover,.fancytree-statusnode-loading span.fancytree-icon,.fancytree-statusnode-loading span.fancytree-icon:hover,span.fancytree-icon.fancytree-icon-loading{background-image:url(data:image/gif;base64,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);background-position:0 0}.fancytree-statusnode-error span.fancytree-icon,.fancytree-statusnode-error span.fancytree-icon:hover{background-position:0 -112px}span.fancytree-node{display:inherit;width:100%;margin-top:1px;min-height:16px}span.fancytree-title{color:#000;cursor:pointer;display:inline-block;vertical-align:top;min-height:16px;padding:0 3px;margin:0 0 0 3px;border:1px solid transparent;border-radius:0}span.fancytree-node.fancytree-error span.fancytree-title{color:red}span.fancytree-childcounter{color:#fff;background:#337ab7;border:1px solid gray;border-radius:10px;padding:2px;text-align:center}div.fancytree-drag-helper span.fancytree-childcounter,div.fancytree-drag-helper span.fancytree-dnd-modifier{display:inline-block;color:#fff;background:#337ab7;border:1px solid gray;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}div.fancytree-drag-helper span.fancytree-childcounter{position:absolute;top:-6px;right:-6px}div.fancytree-drag-helper span.fancytree-dnd-modifier{background:#5cb85c;border:none;font-weight:bolder}div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img{background-position:-32px -112px}div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img{background-position:-16px -112px}#fancytree-drop-marker{width:32px;position:absolute;background-position:0 -128px;margin:0}#fancytree-drop-marker.fancytree-drop-after,#fancytree-drop-marker.fancytree-drop-before{width:64px;background-position:0 -144px}#fancytree-drop-marker.fancytree-drop-copy{background-position:-64px -128px}#fancytree-drop-marker.fancytree-drop-move{background-position:-32px -128px}span.fancytree-drag-source.fancytree-drag-remove{opacity:.15}.fancytree-container.fancytree-rtl span.fancytree-connector,.fancytree-container.fancytree-rtl span.fancytree-drag-helper-img,.fancytree-container.fancytree-rtl span.fancytree-expander,.fancytree-container.fancytree-rtl span.fancytree-icon{background-image:url(data:image/gif;base64,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)}.fancytree-container.fancytree-rtl .fancytree-exp-n span.fancytree-expander,.fancytree-container.fancytree-rtl .fancytree-exp-nl span.fancytree-expander{background-image:none}.fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-n span.fancytree-expander,.fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,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)}ul.fancytree-container.fancytree-rtl ul{padding:0 16px 0 0}ul.fancytree-container.fancytree-rtl.fancytree-connectors li{background-position:right 0;background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7)}ul.fancytree-container.fancytree-rtl li.fancytree-lastsib,ul.fancytree-container.fancytree-rtl.fancytree-no-connector>li{background-image:none}#fancytree-drop-marker.fancytree-rtl{background-image:url(data:image/gif;base64,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)}table.fancytree-ext-table{font-family:inherit;font-size:10pt;border-collapse:collapse}table.fancytree-ext-table span.fancytree-node{display:inline-block;box-sizing:border-box}table.fancytree-ext-table td.fancytree-status-merged{text-align:center;font-style:italic;color:silver}table.fancytree-ext-table tr.fancytree-statusnode-error td.fancytree-status-merged{color:red}table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr.fancytree-active>td{background-color:#eee}table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr>td.fancytree-active-cell{background-color:#cbe8f6}table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode.fancytree-cell-nav-mode>tbody>tr>td.fancytree-active-cell{background-color:#3875d7}table.fancytree-ext-columnview tbody tr td{position:relative;border:1px solid gray;vertical-align:top;overflow:auto}table.fancytree-ext-columnview tbody tr td>ul{padding:0}table.fancytree-ext-columnview tbody tr td>ul li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}table.fancytree-ext-columnview span.fancytree-node{position:relative;display:inline-block}table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#e0e0e0}table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#cbe8f6}table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right{position:absolute;right:3px;background-position:0 -80px}table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover{background-position:-16px -80px}.fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title{color:silver;font-weight:lighter}.fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title,.fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title{color:#000;font-weight:400}.fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title,.fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title{color:#000;font-weight:700}.fancytree-ext-filter-hide span.fancytree-node.fancytree-hide,.fancytree-ext-filter-hide tr.fancytree-hide{display:none}.fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title,.fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title{color:silver;font-weight:lighter}.fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title,.fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title{color:#000;font-weight:400}.fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-match span.fancytree-expander,.fancytree-ext-filter-hide-expanders tr.fancytree-match span.fancytree-expander{visibility:hidden}.fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-submatch span.fancytree-expander,.fancytree-ext-filter-hide-expanders tr.fancytree-submatch span.fancytree-expander{visibility:visible}.fancytree-ext-childcounter span.fancytree-custom-icon,.fancytree-ext-childcounter span.fancytree-icon,.fancytree-ext-filter span.fancytree-custom-icon,.fancytree-ext-filter span.fancytree-icon{position:relative}.fancytree-ext-childcounter span.fancytree-childcounter,.fancytree-ext-filter span.fancytree-childcounter{color:#fff;background:#777;border:1px solid gray;position:absolute;top:-6px;right:-6px;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}ul.fancytree-ext-wide{position:relative;min-width:100%;z-index:2;box-sizing:border-box}ul.fancytree-ext-wide span.fancytree-node>span{position:relative;z-index:2}ul.fancytree-ext-wide span.fancytree-node span.fancytree-title{position:absolute;z-index:1;left:0;min-width:100%;margin-left:0;margin-right:0;box-sizing:border-box}.fancytree-ext-fixed-wrapper .fancytree-ext-fixed-hidden{display:none}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-bottom{border-bottom:3px solid rgba(0,0,0,.75)}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-right{border-right:3px solid rgba(0,0,0,.75)}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tl{position:absolute;overflow:hidden;z-index:3;top:0;left:0}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tr{position:absolute;overflow:hidden;z-index:2;top:0}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-bl{position:absolute;overflow:hidden;z-index:2;left:0}.fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-br{position:absolute;overflow:scroll;z-index:1}span.fancytree-title{border:1px solid transparent;border-radius:0}span.fancytree-focused span.fancytree-title{outline:1px dotted #000}span.fancytree-active span.fancytree-title,span.fancytree-selected span.fancytree-title{background-color:#d4d4d4}span.fancytree-selected span.fancytree-title{font-style:italic}.fancytree-treefocus span.fancytree-active span.fancytree-title,.fancytree-treefocus span.fancytree-selected span.fancytree-title{color:#fff;background-color:#3875d7}table.fancytree-ext-table{border-collapse:collapse}table.fancytree-ext-table tbody tr.fancytree-focused{background-color:#99defd}table.fancytree-ext-table tbody tr.fancytree-active{background-color:#4169e1}table.fancytree-ext-table tbody tr.fancytree-selected{background-color:#99defd}table.fancytree-ext-columnview tbody tr td{border:1px solid gray}table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#ccc}table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#4169e1}.optionsArrayMap,.optionsLast,.optionsArray{color:#000!important}.dynamic-form .required .sb-modal-dropdown-web label:after,.add-to-library .dynamic-form .required .sb-modal-dropdown-web .multi-select-container .list-border ul:after,.add-to-library .dynamic-form .multi-select-container .list-border .required .sb-modal-dropdown-web ul:after{content:\" \"!important}.dynamic-form sb-dynamic-checkbox{margin-top:3.5rem}.dynamic-form .sb-dropdown-select{padding:16px 8px!important}.dynamic-form .list-border{margin-top:2px!important}body{background:#fff!important}.add-to-library{position:relative;z-index:999!important;background:#e5edf5}.add-to-library .sb-required{color:#ff4558;padding-left:2px;position:relative;top:-5px}.add-to-library .back-btn:hover{background:none!important}.add-to-library .back-btn{min-width:auto}.add-to-library .dynamic-form .multi-select-section-app label,.add-to-library .dynamic-form .multi-select-section-app .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .multi-select-section-app ul{margin-bottom:.3rem!important;z-index:inherit}.add-to-library .dynamic-form label,.add-to-library .dynamic-form .multi-select-container .list-border ul{font-size:12px!important;margin-bottom:.5rem!important;color:#121213e0;font-weight:600}.add-to-library .dynamic-form .sb-textbox,.add-to-library .dynamic-form .topic-picker-selector,.add-to-library .dynamic-form select,.add-to-library .dynamic-form .sb-textarea,.add-to-library .dynamic-form .list-border{border:1px solid rgba(34,36,38,.15)!important;padding:.85rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500}.add-to-library .dynamic-form select{padding:12px 8px!important}.add-to-library .dynamic-form .list-border{margin-top:14px!important;min-height:43px!important;height:inherit!important;padding:5px 8px!important}.add-to-library .dynamic-form .multi-select-container .list-border .placeholder{font-weight:500!important;color:#333!important}.add-to-library .dynamic-form .multi-select-container .list-border ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-weight:500!important;position:inherit!important}.add-to-library .dynamic-form .sb-modal-dropdown-web ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-size:12px!important;font-weight:500;border:2px solid #eeeeef;z-index:99999!important}.add-to-library .dynamic-form .sb-keywordbox{border:1px solid rgba(34,36,38,.15)!important;padding:.45rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500;padding:0!important}.add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input{padding:0}.add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input tag{margin-left:.5rem}.add-to-library .dynamic-form .sb-keywordbox .ng2-tags-container{margin-top:.2rem}.add-to-library .dynamic-form .sb-keywordbox .tag-wrapper,.add-to-library .dynamic-form .sb-keywordbox delete-icon svg{height:24px;line-height:24px}.add-to-library .dynamic-form .sb-dropdown label,.add-to-library .dynamic-form .sb-dropdown .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .sb-dropdown ul{padding:0}.add-to-library .dynamic-form .sb-textarea-container .sb-textarea{height:2.9rem;padding-top:.5rem!important}.add-to-library .dynamic-form .sb-textarea-container label,.add-to-library .dynamic-form .sb-textarea-container .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .sb-textarea-container ul{padding:0}.add-to-library .dynamic-form .sb-checkbox{padding:0;margin-top:0}.add-to-library .dynamic-form sb-icon-dropdown{top:10px!important;right:6px!important}.add-to-library .sb-textarea-container,.add-to-library .sb-dropdown{margin:1rem 0!important}.add-to-library .sb-container{width:95%!important}.sb-checkbox-tnc .sb-required{position:absolute;padding-left:0;left:18px}.h-100vh{height:100vh}.ui.column.grid>[class*=\"eight wide\"].column{width:73%!important}.footer-fix{padding-bottom:1rem!important}.bg-white,.ui.twelve.grid{background:#fff!important}@keyframes spinner-border{to{transform:rotate(360deg)}}.sb-loading-spinner{width:1rem;height:1rem;margin-right:8px;border-width:.2em;display:inline-block;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.sb-btn-loading:before{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}.sb-btn-loading:after{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;animation:button-spin .6s linear;animation-iteration-count:infinite;border-radius:500rem;border-color:#fff transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}.sb-btn-outline-disabled{background-color:#fff;border:1px solid #cccccc;color:#999;cursor:default;font-weight:400}lib-chat-window,.chat_bot{display:none!important}.sb-textbox::-webkit-input-placeholder,.add-to-library .dynamic-form .topic-picker-selector::-webkit-input-placeholder{color:var(--gray-100)!important;font-weight:600!important}.treepicker-parent{margin:.6rem 0!important}.ck-content ul{list-style-type:disc!important}.ck-content ul li{margin-bottom:0!important}sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-left:1px solid #c4c4c4!important;border-right:1px solid #c4c4c4!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:0!important}sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,sb-dynamic-richtext .ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border:1px solid #c4c4c4!important;border-color:var(--ck-color-base-border)!important}sb-dynamic-richtext .ck-content .table{margin:.8rem 0!important}.sb-textbox::placeholder,.add-to-library .dynamic-form .topic-picker-selector::placeholder,.sb-textarea::placeholder{color:#333!important;font-weight:500!important}.multi-select-container .sb-modal-dropdown-web ul{border:1px solid #d6d4d4!important;box-shadow:0 0 2px #cecaca!important}.sb-disabled-textarea{background:var(--gray-0)!important;border:.0625rem solid var(--gray-100)!important;opacity:.45!important;pointer-events:none!important;font-size:1em!important}.overflow-y{overflow-y:auto}input:focus-visible{border:none!important}.dialcodeModal input:focus-visible{border:.0625rem solid #999999!important}#fancytree-drop-marker.fa-long-arrow-right:before{content:\" \"!important}.sb-collectionTree-fancyTreelist ul>li>span:first-child{padding:15px 33px}.sb-collectionTree-fancyTreelist .fancytree-exp-n span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-nl span.fancytree-expander{background:none!important}.sb-collectionTree-fancyTreelist .ui-fancytree:before,.sb-collectionTree-fancyTreelist .ui-fancytree ul:before{content:none!important}.sb-collectionTree-fancyTreelist .ui-fancytree li:before,.sb-collectionTree-fancyTreelist .ui-fancytree ul li:before{content:none!important}.sb-collectionTree-fancyTreelist .ui-fancytree li .fancytree-custom-icon:before{color:var(--primary-color)!important;margin-left:5px}.sb-collectionTree-fancyTreelist .ui-fancytree .fancytree-folder .fancytree-title{color:var(--primary-color)!important;font-size:.9286rem!important;font-weight:700!important;padding-left:5px;width:inherit!important}.sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-right,.sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-down,.sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-right,.sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-down{display:block!important}.sb-collectionTree-fancyTreelist ul.fancytree-container{font-size:inherit!important;font-family:inherit!important;border:none!important}.sb-collectionTree-fancyTreelist ul.fancytree-connectors.fancytree-container li{background-image:none!important}.sb-collectionTree-fancyTreelist span.fancytree-node{width:inherit!important}.sb-collectionTree-fancyTreelist span.fancytree-active span.fancytree-title,.sb-collectionTree-fancyTreelist span.fancytree-selected span.fancytree-title,.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{background:none!important}.sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px}.sb-collectionTree-fancyTreelist span.fancytree-focused span.fancytree-title{outline:0!important}.sb-collectionTree-fancyTreelist .ui-fancytree{margin:0!important}.sb-collectionTree-fancyTreelist.ui-fancytree,.sb-collectionTree-fancyTreelist .ui-fancytree ul{margin:0 0 0 .625rem!important}.sb-collectionTree-fancyTreelist .fancytree-exp-e span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-ed span.fancytree-expander{background-position:-32px -68px!important}.sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,.sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px!important}.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,.sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{color:inherit}.sb-loader{position:fixed;top:0%;left:23%;transform:translate(-50%,-50%)}.sb-loader:after{content:\"\";width:32px;height:32px;border-radius:50%;border:2px solid;border-color:#ccc #ccc transparent;animation:loader .5s infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sb-loader.dimmer{width:100%;height:100%;background:#000c;z-index:9999}@keyframes loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sb-success-loader{position:absolute!important;top:46%!important;left:-12%!important;transform:translate(-46%,-50%)!important}.sb-success-loader:after{width:1.2rem!important;height:1.2rem!important}.pos-relative{position:relative}.sb-circle-ul{list-style-type:disc;padding:0;font-size:.785rem}.sb-circle-ul li{margin:0!important;line-height:1.4}.sb-bg-color-success-0{background:#e1ffdf}.flex-ai-center{align-self:center!important}.sb-br-primary{border:1px dashed #aedbfd!important}.sb-min-h-250{min-height:250px}.z-index-9 .menu{z-index:99999!important}.p-50{padding:10px 0 10px 50px}.h-1{height:1.1em!important}.mn-15{margin:-15px!important}.upload-input-button{position:relative}.upload-input-button input{position:absolute;opacity:0;left:0}.bg-none{background:none}.label-disable{opacity:.3!important;font-weight:500!important}.sb-folder-menu{position:absolute;left:35px;display:flex;justify-content:space-between;width:24%;margin-top:5px}.sb-disable-icon{color:#ccc!important}.sb-w-240px{width:240px}.showCollaborator .ui.dimmer{overflow-y:unset!important}.showCollaborator .ui.segment{max-height:calc(80vh - 8em)!important;overflow-y:auto!important}.showCollaborator .sb-modal-content .flex-align-item-center{border-bottom:solid 1px #ccc;margin:0 -16px;padding:0 20px}.showCollaborator .ui.pointing{margin:0 -15px!important}.showCollaborator .ui.pointing .item.active{font-weight:600!important}.publish-checklist label,.publish-checklist .add-to-library .dynamic-form .multi-select-container .list-border ul,.add-to-library .dynamic-form .multi-select-container .list-border .publish-checklist ul{font-size:13px!important;padding:0 1.5rem!important}.sb-keywords input{width:100%}.sb-keywords input::placeholder{display:block!important;width:100%}.sb-keywords .ng2-tags-container{width:inherit!important;display:block!important}.sb-keywords .ng2-tags-container tag{display:inline-flex!important}.sb-dialcode{border-bottom:.5px solid #333333;padding:8px 5px!important;border-radius:0!important}.sb-dialcode:focus-visible{border-bottom:.5px solid #333333!important;border-radius:0!important;outline:0!important}sb-dynamic-timer .sb-timer-input{width:10rem;font-size:.785rem!important;border:1px solid rgba(34,36,38,.15)!important;border-radius:.28571429rem;padding:12px 10px;margin-right:5px;height:44px}sb-dynamic-timer .sb-timer-input:focus-visible{border:1px solid rgba(34,36,38,.15)!important}sb-dynamic-timer .sb-btn-normal{height:42px!important}\n"] }]
|
|
1192
|
+
args: [{ selector: 'lib-editor', encapsulation: ViewEncapsulation.None, template: "<ng-container [ngSwitch]=\"pageId\">\n <ng-container *ngSwitchCase=\"'collection_editor'\">\n <div class=\"add-to-library mb-10\">\n <lib-header [pageId]=\"pageId\" [publishchecklist]=\"publishchecklist\"\n [labelConfigData]=\"toolbarConfig\" [buttonLoaders]=\"buttonLoaders\" (toolbarEmitter)=\"toolbarEventListener($event)\" (bulkUploadEmitter)= \"hanndleCsvEmitter($event)\"> </lib-header>\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0 \">\n <!-- Left Sidebar for cards -->\n <div class=\"p-50 sb-folder-menu\" *ngIf=\"isObjectTypeCollection\">\n <div> {{configService.labelConfig?.lbl?.folders}} </div>\n <a class=\"profile-avtar computer only p-0 pr-10\" tabindex=\"0\">\n <div suiDropdown class=\"ui dropdown right top pointing z-index-9\" id=\"dropdown-menu-list-header\" *ngIf=\"!isStatusReviewMode\">\n <i class=\"icon ellipsis vertical h-1\" aria-hidden=\"true\" [ngClass]=\"{'sb-disable-icon': isStatusReviewMode}\" (click)=\"onClickFolder()\"></i>\n <div class=\"menu\" suiDropdownMenu >\n <button type=\"button\" class=\"item fs-0-785 bg-none\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.createHierarchyCsv,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.createHierarchyCsv})\"\n (click)=\"hanndleCsvEmitter({type: 'createCsv'})\" [disabled]=\"csvDropDownOptions.isDisableCreateCsv\">\n <i class=\"icon folder outline sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableCreateCsv}\" aria-hidden=\"true\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableCreateCsv}\">{{configService.labelConfig?.lbl?.createHierarchyCsv}}</span>\n </button>\n <div class=\"ui divider\"></div>\n <button libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('csv_download','click',configService.labelConfig?.lbl?.downloadFoldersInCSV,\n this.telemetryService.telemetryPageId,{key: 'identifier', value: collectionId})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'downloadCsv'})\" [disabled]=\"csvDropDownOptions.isDisableDownloadCsv\">\n <i class=\"icon download sb-color-primary\" [ngClass]=\"{'sb-disable-icon': csvDropDownOptions.isDisableDownloadCsv}\" aria-hidden=\"true\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableDownloadCsv}\" >\n {{configService.labelConfig?.lbl?.downloadFoldersInCSV}}</span>\n </button>\n <div class=\"ui divider\">\n </div>\n <button\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('open_popup','click',configService.labelConfig?.lbl?.uploadUpdateCSV,\n this.telemetryService.telemetryPageId,{key: 'dialog_id', value: configService.labelConfig?.lbl?.uploadUpdateCSV})\"\n type=\"button\" class=\"item fs-0-785 bg-none\" (click)=\"hanndleCsvEmitter({type: 'updateCsv'})\" [disabled]=\"csvDropDownOptions.isDisableUpdateCsv\">\n <i class=\"icon upload sb-color-primary\" aria-hidden=\"true\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\"></i>\n <span class=\"text\" [ngClass]=\"{'label-disable': csvDropDownOptions.isDisableUpdateCsv}\" >\n {{configService.labelConfig?.lbl?.uploadUpdateCSV}}\n </span>\n </button>\n </div>\n </div>\n </a>\n </div>\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\" [ngClass]=\"{'mt-50': isObjectTypeCollection}\">\n <lib-fancy-tree *ngIf=\"collectionTreeNodes && collectionTreeNodes.data && ishierarchyConfigSet\"\n [nodes]=\"collectionTreeNodes\" [options]=\"{ showConnectors: true }\" [buttonLoaders]=\"buttonLoaders\"\n (treeEventEmitter)=\"treeEventListener($event)\" class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\">\n </lib-fancy-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <ng-container *ngIf=\"(isCurrentNodeFolder === true || isCurrentNodeRoot === true) && unitFormConfig && selectedNodeData && rootFormConfig\">\n <lib-meta-form [rootFormConfig]=\"rootFormConfig\" [nodeMetadata]=\"selectedNodeData\" [unitFormConfig]=\"unitFormConfig\"\n (toolbarEmitter)=\"toolbarEventListener($event)\"></lib-meta-form>\n </ng-container>\n <ng-container *ngIf=\"isCurrentNodeFolder === false && isCurrentNodeRoot !== true\">\n <lib-contentplayer-page *ngIf=\"!isQumlPlayer\" [contentMetadata]=\"selectedNodeData\" ></lib-contentplayer-page>\n <lib-qumlplayer-page *ngIf=\"isQumlPlayer\" [questionMetaData]=\"selectedNodeData\" [questionSetHierarchy]=\"collectionTreeNodes?.data\"\n (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-qumlplayer-page>\n <div *ngIf=\"relationFormConfig\" class=\"p-2\">\n <hr>\n <lib-relational-metadata [contentMetadata]=\"selectedNodeData\" [formConfig]=\"relationFormConfig\" (statusChanges)=\"onFormStatusChange($event)\"></lib-relational-metadata>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <sui-modal *ngIf=\"showDeleteConfirmationPopUp\" [mustScroll]=\"true\" [isClosable]=\"true\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll\n (dismissed)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.confirmDeleteContent}}\n </div>\n <div class=\"sb-modal-content\">\n <!-- <div class=\"sb-publish-content\">\n <div class=\"review-modal-list\">\n {{ contentComment }}\n </div> -->\n <div> {{deleteConfirmMessage}}</div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal sb-btn-primary mr-8\" (click)=\"showDeleteConfirmationPopUp = !showDeleteConfirmationPopUp\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.no_btn_label}} </button>\n <button type=\"button\" class=\"sb-btn sb-btn-secondary sb-btn-normal \" (click)=\"deleteNode();\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'confirm_delete_content','identifier' : selectedNodeData?.data?.id})\"> {{configService.labelConfig?.button_labels?.yes_btn_label}} </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showConfirmPopup' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal overflow-modal\" appBodyScroll (dismissed)=\"showConfirmPopup = !showConfirmPopup; terms = false;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.acceptTerms}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"ui grid\">\n <div class=\"twelve wide column sb-checkbox-tnc mt-10\">\n <div class=\"sb-checkbox sb-checkbox-primary font-italic p-0 m-0\"><input [(ngModel)]=\"terms\" id=\"termAndConditions\"\n name=\"example\" type=\"checkbox\">\n <label for=\"termAndConditions\" class=\"fsmall pl-32\">\n <div class=\"d-flex flex-ai-center\">\n <span class=\"sb-required\">*</span><span\n class=\"font-weight-bold mb-4 d-block\">\"{{configService.labelConfig?.lbl?.iAgreeSubmit}}</span>\n </div>\n <div class=\"sb-color-gray-300\">{{configService.labelConfig?.lbl?.iconfirmContent}}<a\n class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"https://creativecommons.org/licenses\" target=\"_blank\" > {{configService.labelConfig?.lbl?.createCommonFramework}}</a>\n {{configService.labelConfig?.lbl?.accordance}}\n <a class=\"sb-color-primary font-weight-bold cursor-pointer\" href=\"{{contentPolicyUrl}}\" target=\"_blank\" >{{configService.labelConfig?.lbl?.contentPolicy}}</a> {{configService.labelConfig?.lbl?.privacyRights}}\"</div>\n </label>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button type=\"button\" class=\"sb-btn sb-btn-normal\" [ngClass]=\"!terms ? 'sb-btn-disabled' : 'sb-btn-primary'\" [disabled]=\"!terms\"\n (click)=\"sendForReview()\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('submit','click','submit', this.telemetryService.telemetryPageId,{key: 'dialog_id', value: 'accepting_terms_conditions','termAndConditions' : terms})\">\n {{configService.labelConfig?.button_labels?.submit_btn_label}}\n </button>\n </div>\n </sui-modal>\n <sui-modal *ngIf='showPreview' [mustScroll]=\"false\" [isClosable]=\"true\" [transitionDuration]=\"0\" [size]=\"'large'\"\n class=\"sb-modal overflow-modal preview-modal\" appBodyScroll (dismissed)=\"showPreview = !showPreview;\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.questionSetPreview}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"br-2 b-1-100\" id=\"previewPlayerContainer\" tabindex=\"0\" cdkTrapFocus>\n <lib-quml-player [questionSetHierarchy]=\"collectionTreeNodes?.data\"></lib-quml-player>\n </div>\n </div>\n </sui-modal>\n <lib-template *ngIf='showQuestionTemplatePopup' [templateList]=\"templateList\"\n (templateSelection)=\"handleTemplateSelection($event)\">\n </lib-template>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'question_library'\">\n <lib-library [libraryInput]=\"questionlibraryInput\" (libraryEmitter)=\"onQuestionLibraryChange($event)\"></lib-library>\n </ng-container>\n <ng-container *ngSwitchCase=\"'library'\">\n <lib-content-library [libraryInput]=\"libraryComponentInput\" (libraryEmitter)=\"libraryEventListener($event)\">\n </lib-content-library>\n </ng-container>\n <ng-container *ngSwitchCase=\"'question'\">\n <lib-question *ngIf=\"leafFormConfig\" [questionInput]=\"questionComponentInput\" [leafFormConfig]=\"leafFormConfig\" [sourcingSettings]=\"sourcingSettings\" (questionEmitter)=\"questionEventListener($event)\" >\n </lib-question>\n </ng-container>\n <ng-container *ngSwitchCase=\"'pagination'\">\n <lib-assign-page-number (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-assign-page-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'progressStatus'\">\n <lib-progress-status (assignPageEmitter)=\"assignPageEmitterListener($event)\"></lib-progress-status>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"addCollaborator\">\n <lib-manage-collaborator [addCollaborator]=\"addCollaborator\" [collectionId]=\"collectionId\" (modalDismissEmitter)=\"toggleCollaboratorModalPoup()\"></lib-manage-collaborator>\n</ng-container>\n<sui-modal *ngIf=\"showReviewModal\" [mustScroll]=\"true\" [isClosable]=\"false\" [transitionDuration]=\"0\"\n [size]=\"'normal'\" class=\"sb-modal bx-none overflow-modal\" appBodyScroll #modal (dismissed)=\"showReviewModal = false;\">\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.reviewComments}}\n </div>\n <div class=\"sb-modal-content\">\n <div class=\"sb-field\">\n <label>{{configService.labelConfig?.lbl?.comments}}</label>\n <textarea disabled=\"disabled\" type=\"text\" class=\"wmd-input width-100 sb-form-control p-10 sb-disabled-textarea\" id=\"wmd-input\" [(ngModel)]=\"contentComment\" name=\"rejectedComment\"></textarea>\n </div>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"modal.deny('denied')\"\n libTelemetryInteract [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('close','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'review_comments'})\">{{configService.labelConfig?.button_labels?.close_btn_label}}</button>\n </div>\n</sui-modal>\n\n <lib-csv-upload *ngIf=\"showCsvUploadPopup\" [isCreateCsv]= \"isCreateCsv\" (csvUploadEmitter)= \"hanndleCsvEmitter($event)\" [collectionId]=\"collectionId\">\n </lib-csv-upload>\n\n", styles: ["lib-editor .fancytree-helper-hidden{display:none}lib-editor .fancytree-helper-indeterminate-cb{color:#777}lib-editor .fancytree-helper-disabled{color:silver}lib-editor .fancytree-helper-spin{animation:spin 1s infinite linear}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}lib-editor ul.fancytree-container{font-family:inherit;font-size:10pt;white-space:nowrap;padding:3px;margin:0;background-color:#fff;border:1px dotted gray;min-height:0;position:relative}lib-editor ul.fancytree-container ul{padding:0 0 0 16px;margin:0}lib-editor ul.fancytree-container ul>li:before{content:none}lib-editor ul.fancytree-container li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}lib-editor ul.fancytree-container li.fancytree-lastsib{background-image:none}lib-editor .ui-fancytree-disabled ul.fancytree-container{opacity:.5;background-color:silver}lib-editor ul.fancytree-connectors.fancytree-container li{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7);background-position:0 0}lib-editor ul.fancytree-container li.fancytree-lastsib,lib-editor ul.fancytree-no-connector>li{background-image:none}lib-editor li.fancytree-animating{position:relative}lib-editor #fancytree-drop-marker,lib-editor span.fancytree-checkbox,lib-editor span.fancytree-drag-helper-img,lib-editor span.fancytree-empty,lib-editor span.fancytree-expander,lib-editor span.fancytree-icon,lib-editor span.fancytree-vline{width:16px;height:16px;display:inline-block;vertical-align:top;background-repeat:no-repeat;background-image:url(data:image/gif;base64,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);background-position:0 0}lib-editor span.fancytree-checkbox,lib-editor span.fancytree-custom-icon,lib-editor span.fancytree-expander,lib-editor span.fancytree-icon{margin-top:0}lib-editor span.fancytree-custom-icon{width:16px;height:16px;display:inline-block;margin-left:3px;background-position:0 0}lib-editor img.fancytree-icon{width:16px;height:16px;margin-left:3px;margin-top:0;vertical-align:top;border-style:none}lib-editor span.fancytree-expander{cursor:pointer}lib-editor .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-exp-nl span.fancytree-expander{background-image:none;cursor:default}lib-editor .fancytree-connectors .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,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);margin-top:0}lib-editor .fancytree-connectors .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-connectors .fancytree-exp-n span.fancytree-expander:hover{background-position:0 -64px}lib-editor .fancytree-connectors .fancytree-exp-nl span.fancytree-expander,lib-editor .fancytree-connectors .fancytree-exp-nl span.fancytree-expander:hover{background-position:-16px -64px}lib-editor .fancytree-exp-c span.fancytree-expander{background-position:0 -80px}lib-editor .fancytree-exp-c span.fancytree-expander:hover{background-position:-16px -80px}lib-editor .fancytree-exp-cl span.fancytree-expander{background-position:0 -96px}lib-editor .fancytree-exp-cl span.fancytree-expander:hover{background-position:-16px -96px}lib-editor .fancytree-exp-cd span.fancytree-expander{background-position:-64px -80px}lib-editor .fancytree-exp-cd span.fancytree-expander:hover{background-position:-80px -80px}lib-editor .fancytree-exp-cdl span.fancytree-expander{background-position:-64px -96px}lib-editor .fancytree-exp-cdl span.fancytree-expander:hover{background-position:-80px -96px}lib-editor .fancytree-exp-e span.fancytree-expander,lib-editor .fancytree-exp-ed span.fancytree-expander{background-position:-32px -80px}lib-editor .fancytree-exp-e span.fancytree-expander:hover,lib-editor .fancytree-exp-ed span.fancytree-expander:hover{background-position:-48px -80px}lib-editor .fancytree-exp-edl span.fancytree-expander,lib-editor .fancytree-exp-el span.fancytree-expander{background-position:-32px -96px}lib-editor .fancytree-exp-edl span.fancytree-expander:hover,lib-editor .fancytree-exp-el span.fancytree-expander:hover{background-position:-48px -96px}lib-editor .fancytree-fade-expander span.fancytree-expander{transition:opacity 1.5s;opacity:0}lib-editor .fancytree-fade-expander .fancytree-treefocus span.fancytree-expander,lib-editor .fancytree-fade-expander [class*=fancytree-statusnode-] span.fancytree-expander,lib-editor .fancytree-fade-expander.fancytree-treefocus span.fancytree-expander,lib-editor .fancytree-fade-expander:hover span.fancytree-expander{transition:opacity .6s;opacity:1}lib-editor span.fancytree-checkbox{margin-left:3px;background-position:0 -32px}lib-editor span.fancytree-checkbox:hover{background-position:-16px -32px}lib-editor span.fancytree-checkbox.fancytree-radio{background-position:0 -48px}lib-editor span.fancytree-checkbox.fancytree-radio:hover{background-position:-16px -48px}lib-editor .fancytree-partsel span.fancytree-checkbox{background-position:-64px -32px}lib-editor .fancytree-partsel span.fancytree-checkbox:hover{background-position:-80px -32px}lib-editor .fancytree-partsel span.fancytree-checkbox.fancytree-radio{background-position:-64px -48px}lib-editor .fancytree-partsel span.fancytree-checkbox.fancytree-radio:hover{background-position:-80px -48px}lib-editor .fancytree-selected span.fancytree-checkbox{background-position:-32px -32px}lib-editor .fancytree-selected span.fancytree-checkbox:hover{background-position:-48px -32px}lib-editor .fancytree-selected span.fancytree-checkbox.fancytree-radio{background-position:-32px -48px}lib-editor .fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-48px -48px}lib-editor .fancytree-unselectable span.fancytree-checkbox{opacity:.4}lib-editor .fancytree-unselectable span.fancytree-checkbox:hover{background-position:0 -32px}lib-editor .fancytree-unselectable span.fancytree-checkbox.fancytree-radio:hover{background-position:0 -48px}lib-editor .fancytree-unselectable.fancytree-partsel span.fancytree-checkbox:hover{background-position:-64px -32px}lib-editor .fancytree-unselectable.fancytree-selected span.fancytree-checkbox:hover{background-position:-32px -32px}lib-editor .fancytree-unselectable.fancytree-selected span.fancytree-checkbox.fancytree-radio:hover{background-position:-32px -48px}lib-editor .fancytree-container.fancytree-checkbox-auto-hide span.fancytree-checkbox{visibility:hidden}lib-editor .fancytree-container.fancytree-checkbox-auto-hide .fancytree-node.fancytree-selected span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide .fancytree-node:hover span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide tr.fancytree-selected td span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide tr:hover td span.fancytree-checkbox{visibility:unset}lib-editor .fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus .fancytree-node.fancytree-active span.fancytree-checkbox,lib-editor .fancytree-container.fancytree-checkbox-auto-hide.fancytree-treefocus tr.fancytree-active td span.fancytree-checkbox{visibility:unset}lib-editor span.fancytree-icon{margin-left:3px;background-position:0 0}lib-editor .fancytree-ico-c span.fancytree-icon:hover{background-position:-16px 0}lib-editor .fancytree-has-children.fancytree-ico-c span.fancytree-icon{background-position:-32px 0}lib-editor .fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover{background-position:-48px 0}lib-editor .fancytree-ico-e span.fancytree-icon{background-position:-64px 0}lib-editor .fancytree-ico-e span.fancytree-icon:hover{background-position:-80px 0}lib-editor .fancytree-ico-cf span.fancytree-icon{background-position:0 -16px}lib-editor .fancytree-ico-cf span.fancytree-icon:hover{background-position:-16px -16px}lib-editor .fancytree-has-children.fancytree-ico-cf span.fancytree-icon{background-position:-32px -16px}lib-editor .fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover{background-position:-48px -16px}lib-editor .fancytree-ico-ef span.fancytree-icon{background-position:-64px -16px}lib-editor .fancytree-ico-ef span.fancytree-icon:hover{background-position:-80px -16px}lib-editor .fancytree-loading span.fancytree-expander,lib-editor .fancytree-loading span.fancytree-expander:hover,lib-editor .fancytree-statusnode-loading span.fancytree-icon,lib-editor .fancytree-statusnode-loading span.fancytree-icon:hover,lib-editor span.fancytree-icon.fancytree-icon-loading{background-image:url(data:image/gif;base64,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);background-position:0 0}lib-editor .fancytree-statusnode-error span.fancytree-icon,lib-editor .fancytree-statusnode-error span.fancytree-icon:hover{background-position:0 -112px}lib-editor span.fancytree-node{display:inherit;width:100%;margin-top:1px;min-height:16px}lib-editor span.fancytree-title{color:#000;cursor:pointer;display:inline-block;vertical-align:top;min-height:16px;padding:0 3px;margin:0 0 0 3px;border:1px solid transparent;border-radius:0}lib-editor span.fancytree-node.fancytree-error span.fancytree-title{color:red}lib-editor span.fancytree-childcounter{color:#fff;background:#337ab7;border:1px solid gray;border-radius:10px;padding:2px;text-align:center}lib-editor div.fancytree-drag-helper span.fancytree-childcounter,lib-editor div.fancytree-drag-helper span.fancytree-dnd-modifier{display:inline-block;color:#fff;background:#337ab7;border:1px solid gray;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}lib-editor div.fancytree-drag-helper span.fancytree-childcounter{position:absolute;top:-6px;right:-6px}lib-editor div.fancytree-drag-helper span.fancytree-dnd-modifier{background:#5cb85c;border:none;font-weight:bolder}lib-editor div.fancytree-drag-helper.fancytree-drop-accept span.fancytree-drag-helper-img{background-position:-32px -112px}lib-editor div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-drag-helper-img{background-position:-16px -112px}lib-editor #fancytree-drop-marker{width:32px;position:absolute;background-position:0 -128px;margin:0}lib-editor #fancytree-drop-marker.fancytree-drop-after,lib-editor #fancytree-drop-marker.fancytree-drop-before{width:64px;background-position:0 -144px}lib-editor #fancytree-drop-marker.fancytree-drop-copy{background-position:-64px -128px}lib-editor #fancytree-drop-marker.fancytree-drop-move{background-position:-32px -128px}lib-editor span.fancytree-drag-source.fancytree-drag-remove{opacity:.15}lib-editor .fancytree-container.fancytree-rtl span.fancytree-connector,lib-editor .fancytree-container.fancytree-rtl span.fancytree-drag-helper-img,lib-editor .fancytree-container.fancytree-rtl span.fancytree-expander,lib-editor .fancytree-container.fancytree-rtl span.fancytree-icon{background-image:url(data:image/gif;base64,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)}lib-editor .fancytree-container.fancytree-rtl .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-container.fancytree-rtl .fancytree-exp-nl span.fancytree-expander{background-image:none}lib-editor .fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-n span.fancytree-expander,lib-editor .fancytree-container.fancytree-rtl.fancytree-connectors .fancytree-exp-nl span.fancytree-expander{background-image:url(data:image/gif;base64,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)}lib-editor ul.fancytree-container.fancytree-rtl ul{padding:0 16px 0 0}lib-editor ul.fancytree-container.fancytree-rtl.fancytree-connectors li{background-position:right 0;background-image:url(data:image/gif;base64,R0lGODlhEAAQAPcAAAAAANPT0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAgxAP8JHPgvAMGDCA0iXFiQ4UKFDglCjChwIkWLETE61MiQ40OKEkEO9JhQZEWTDRcGBAA7)}lib-editor ul.fancytree-container.fancytree-rtl li.fancytree-lastsib,lib-editor ul.fancytree-container.fancytree-rtl.fancytree-no-connector>li{background-image:none}lib-editor #fancytree-drop-marker.fancytree-rtl{background-image:url(data:image/gif;base64,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)}lib-editor table.fancytree-ext-table{font-family:inherit;font-size:10pt;border-collapse:collapse}lib-editor table.fancytree-ext-table span.fancytree-node{display:inline-block;box-sizing:border-box}lib-editor table.fancytree-ext-table td.fancytree-status-merged{text-align:center;font-style:italic;color:silver}lib-editor table.fancytree-ext-table tr.fancytree-statusnode-error td.fancytree-status-merged{color:red}lib-editor table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr.fancytree-active>td{background-color:#eee}lib-editor table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode>tbody>tr>td.fancytree-active-cell{background-color:#cbe8f6}lib-editor table.fancytree-ext-table.fancytree-ext-ariagrid.fancytree-cell-mode.fancytree-cell-nav-mode>tbody>tr>td.fancytree-active-cell{background-color:#3875d7}lib-editor table.fancytree-ext-columnview tbody tr td{position:relative;border:1px solid gray;vertical-align:top;overflow:auto}lib-editor table.fancytree-ext-columnview tbody tr td>ul{padding:0}lib-editor table.fancytree-ext-columnview tbody tr td>ul li{list-style-image:none;list-style-position:outside;list-style-type:none;-moz-background-clip:border;-moz-background-inline-policy:continuous;-moz-background-origin:padding;background-attachment:scroll;background-color:transparent;background-position:0 0;background-repeat:repeat-y;background-image:none;margin:0}lib-editor table.fancytree-ext-columnview span.fancytree-node{position:relative;display:inline-block}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#e0e0e0}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#cbe8f6}lib-editor table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right{position:absolute;right:3px;background-position:0 -80px}lib-editor table.fancytree-ext-columnview .fancytree-has-children span.fancytree-cv-right:hover{background-position:-16px -80px}lib-editor .fancytree-ext-filter-dimm span.fancytree-node span.fancytree-title{color:silver;font-weight:lighter}lib-editor .fancytree-ext-filter-dimm span.fancytree-node.fancytree-submatch span.fancytree-title,lib-editor .fancytree-ext-filter-dimm tr.fancytree-submatch span.fancytree-title{color:#000;font-weight:400}lib-editor .fancytree-ext-filter-dimm span.fancytree-node.fancytree-match span.fancytree-title,lib-editor .fancytree-ext-filter-dimm tr.fancytree-match span.fancytree-title{color:#000;font-weight:700}lib-editor .fancytree-ext-filter-hide span.fancytree-node.fancytree-hide,lib-editor .fancytree-ext-filter-hide tr.fancytree-hide{display:none}lib-editor .fancytree-ext-filter-hide span.fancytree-node.fancytree-submatch span.fancytree-title,lib-editor .fancytree-ext-filter-hide tr.fancytree-submatch span.fancytree-title{color:silver;font-weight:lighter}lib-editor .fancytree-ext-filter-hide span.fancytree-node.fancytree-match span.fancytree-title,lib-editor .fancytree-ext-filter-hide tr.fancytree-match span.fancytree-title{color:#000;font-weight:400}lib-editor .fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-match span.fancytree-expander,lib-editor .fancytree-ext-filter-hide-expanders tr.fancytree-match span.fancytree-expander{visibility:hidden}lib-editor .fancytree-ext-filter-hide-expanders span.fancytree-node.fancytree-submatch span.fancytree-expander,lib-editor .fancytree-ext-filter-hide-expanders tr.fancytree-submatch span.fancytree-expander{visibility:visible}lib-editor .fancytree-ext-childcounter span.fancytree-custom-icon,lib-editor .fancytree-ext-childcounter span.fancytree-icon,lib-editor .fancytree-ext-filter span.fancytree-custom-icon,lib-editor .fancytree-ext-filter span.fancytree-icon{position:relative}lib-editor .fancytree-ext-childcounter span.fancytree-childcounter,lib-editor .fancytree-ext-filter span.fancytree-childcounter{color:#fff;background:#777;border:1px solid gray;position:absolute;top:-6px;right:-6px;min-width:10px;height:10px;line-height:1;vertical-align:baseline;border-radius:10px;padding:2px;text-align:center;font-size:9px}lib-editor ul.fancytree-ext-wide{position:relative;min-width:100%;z-index:2;box-sizing:border-box}lib-editor ul.fancytree-ext-wide span.fancytree-node>span{position:relative;z-index:2}lib-editor ul.fancytree-ext-wide span.fancytree-node span.fancytree-title{position:absolute;z-index:1;left:0;min-width:100%;margin-left:0;margin-right:0;box-sizing:border-box}lib-editor .fancytree-ext-fixed-wrapper .fancytree-ext-fixed-hidden{display:none}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-bottom{border-bottom:3px solid rgba(0,0,0,.75)}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-scroll-border-right{border-right:3px solid rgba(0,0,0,.75)}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tl{position:absolute;overflow:hidden;z-index:3;top:0;left:0}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-tr{position:absolute;overflow:hidden;z-index:2;top:0}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-bl{position:absolute;overflow:hidden;z-index:2;left:0}lib-editor .fancytree-ext-fixed-wrapper div.fancytree-ext-fixed-wrapper-br{position:absolute;overflow:scroll;z-index:1}lib-editor span.fancytree-title{border:1px solid transparent;border-radius:0}lib-editor span.fancytree-focused span.fancytree-title{outline:1px dotted #000}lib-editor span.fancytree-active span.fancytree-title,lib-editor span.fancytree-selected span.fancytree-title{background-color:#d4d4d4}lib-editor span.fancytree-selected span.fancytree-title{font-style:italic}lib-editor .fancytree-treefocus span.fancytree-active span.fancytree-title,lib-editor .fancytree-treefocus span.fancytree-selected span.fancytree-title{color:#fff;background-color:#3875d7}lib-editor table.fancytree-ext-table{border-collapse:collapse}lib-editor table.fancytree-ext-table tbody tr.fancytree-focused{background-color:#99defd}lib-editor table.fancytree-ext-table tbody tr.fancytree-active{background-color:#4169e1}lib-editor table.fancytree-ext-table tbody tr.fancytree-selected{background-color:#99defd}lib-editor table.fancytree-ext-columnview tbody tr td{border:1px solid gray}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-expanded{background-color:#ccc}lib-editor table.fancytree-ext-columnview span.fancytree-node.fancytree-active{background-color:#4169e1}lib-editor .optionsArrayMap,lib-editor .optionsLast,lib-editor .optionsArray{color:#000!important}lib-editor .dynamic-form .required .sb-modal-dropdown-web label:after,lib-editor .add-to-library .dynamic-form .required .sb-modal-dropdown-web .multi-select-container .list-border ul:after,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .required .sb-modal-dropdown-web ul:after{content:\" \"!important}lib-editor .dynamic-form sb-dynamic-checkbox{margin-top:3.5rem}lib-editor .dynamic-form .sb-dropdown-select{padding:16px 8px!important}lib-editor .dynamic-form .list-border{margin-top:2px!important}lib-editor body{background:#fff!important}lib-editor .add-to-library{position:relative;z-index:998!important;background:#e5edf5}lib-editor .add-to-library .sb-required{color:#ff4558;padding-left:2px;position:relative;top:-5px}lib-editor .add-to-library .back-btn:hover{background:none!important}lib-editor .add-to-library .back-btn{min-width:auto}lib-editor .add-to-library .dynamic-form .multi-select-section-app label,lib-editor .add-to-library .dynamic-form .multi-select-section-app .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .multi-select-section-app ul{margin-bottom:.3rem!important;z-index:inherit}lib-editor .add-to-library .dynamic-form label,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border ul{font-size:12px!important;margin-bottom:.5rem!important;color:#121213e0;font-weight:600}lib-editor .add-to-library .dynamic-form .sb-textbox,lib-editor .add-to-library .dynamic-form .topic-picker-selector,lib-editor .add-to-library .dynamic-form select,lib-editor .add-to-library .dynamic-form .sb-textarea,lib-editor .add-to-library .dynamic-form .list-border{border:1px solid rgba(34,36,38,.15)!important;padding:.85rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500}lib-editor .add-to-library .dynamic-form select{padding:12px 8px!important}lib-editor .add-to-library .dynamic-form .list-border{margin-top:2px!important;min-height:43px!important;height:inherit!important;padding:5px 8px!important}lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .placeholder{font-weight:500!important;color:#333!important}lib-editor .add-to-library .dynamic-form .multi-select-container .list-border ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-weight:500!important;position:inherit!important}lib-editor .add-to-library .dynamic-form .sb-modal-dropdown-web ul{color:#333;padding:0;margin:0!important;opacity:1!important;font-size:12px!important;font-weight:500;border:2px solid #eeeeef;z-index:99999!important}lib-editor .add-to-library .dynamic-form .sb-keywordbox{border:1px solid rgba(34,36,38,.15)!important;padding:.45rem .5rem!important;border-radius:.28571429rem;font-size:.785rem!important;font-weight:500;padding:0!important}lib-editor .add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input{padding:0}lib-editor .add-to-library .dynamic-form .sb-keywordbox .ng2-tag-input tag{margin-left:.5rem}lib-editor .add-to-library .dynamic-form .sb-keywordbox .ng2-tags-container{margin-top:.2rem}lib-editor .add-to-library .dynamic-form .sb-keywordbox .tag-wrapper,lib-editor .add-to-library .dynamic-form .sb-keywordbox delete-icon svg{height:24px;line-height:24px}lib-editor .add-to-library .dynamic-form .sb-dropdown label,lib-editor .add-to-library .dynamic-form .sb-dropdown .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .sb-dropdown ul{padding:0}lib-editor .add-to-library .dynamic-form .textbox .sb-textarea-container .sb-textarea{height:10rem!important;padding-top:.5rem!important}lib-editor .add-to-library .dynamic-form .textbox .sb-textarea-container label,lib-editor .add-to-library .dynamic-form .textbox .sb-textarea-container .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .textbox .sb-textarea-container ul{padding:0}lib-editor .add-to-library .dynamic-form .sb-textarea-container .sb-textarea{height:2.9rem;padding-top:.5rem!important}lib-editor .add-to-library .dynamic-form .sb-textarea-container label,lib-editor .add-to-library .dynamic-form .sb-textarea-container .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .sb-textarea-container ul{padding:0}lib-editor .add-to-library .dynamic-form .sb-checkbox{padding:0;margin-top:0}lib-editor .add-to-library .dynamic-form sb-icon-dropdown{top:10px!important;right:6px!important}lib-editor .add-to-library .sb-textarea-container,lib-editor .add-to-library .sb-dropdown{margin:1rem 0!important}lib-editor .add-to-library .sb-container{width:95%!important}lib-editor .sb-checkbox-tnc .sb-required{position:absolute;padding-left:0;left:18px}lib-editor .h-100vh{height:100vh}lib-editor .ui.column.grid>[class*=\"eight wide\"].column{width:73%!important}lib-editor .footer-fix{padding-bottom:1rem!important}lib-editor .bg-white,lib-editor .ui.twelve.grid{background:#fff!important}@keyframes spinner-border{to{transform:rotate(360deg)}}lib-editor .sb-loading-spinner{width:1rem;height:1rem;margin-right:8px;border-width:.2em;display:inline-block;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}lib-editor .sb-btn-loading:before{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}lib-editor .sb-btn-loading:after{position:absolute;content:\"\";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;animation:button-spin .6s linear;animation-iteration-count:infinite;border-radius:500rem;border-color:#fff transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}lib-editor .sb-btn-outline-disabled{background-color:#fff;border:1px solid #cccccc;color:#999;cursor:default;font-weight:400}lib-editor lib-chat-window,lib-editor .chat_bot{display:none!important}lib-editor .sb-textbox::-webkit-input-placeholder,lib-editor .add-to-library .dynamic-form .topic-picker-selector::-webkit-input-placeholder{color:var(--gray-100)!important;font-weight:600!important}lib-editor .treepicker-parent{margin:.6rem 0!important}lib-editor .ck-content ul{list-style-type:disc!important}lib-editor .ck-content ul li{margin-bottom:0!important}lib-editor sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-left:1px solid #c4c4c4!important;border-right:1px solid #c4c4c4!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:0!important}lib-editor sb-dynamic-richtext .ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,lib-editor sb-dynamic-richtext .ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border:1px solid #c4c4c4!important;border-color:var(--ck-color-base-border)!important}lib-editor sb-dynamic-richtext .ck-content .table{margin:.8rem 0!important}lib-editor .sb-textbox::placeholder,lib-editor .add-to-library .dynamic-form .topic-picker-selector::placeholder,lib-editor .sb-textarea::placeholder{color:#333!important;font-weight:500!important}lib-editor .multi-select-container .sb-modal-dropdown-web ul{border:1px solid #d6d4d4!important;box-shadow:0 0 2px #cecaca!important}lib-editor .sb-disabled-textarea{background:var(--gray-0)!important;border:.0625rem solid var(--gray-100)!important;opacity:.45!important;pointer-events:none!important;font-size:1em!important}lib-editor .overflow-y{overflow-y:auto}lib-editor input:focus-visible{border:none!important}lib-editor .dialcodeModal input:focus-visible{border:.0625rem solid #999999!important}lib-editor #fancytree-drop-marker.fa-long-arrow-right:before{content:\" \"!important}lib-editor .sb-collectionTree-fancyTreelist ul>li>span:first-child{padding:15px 33px}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-n span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-nl span.fancytree-expander{background:none!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree:before,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul:before{content:none!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree li:before,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul li:before{content:none!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree li .fancytree-custom-icon:before{color:var(--primary-color)!important;margin-left:5px}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree .fancytree-folder .fancytree-title{color:var(--primary-color)!important;font-size:.9286rem!important;font-weight:700!important;padding-left:5px;width:inherit!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-right,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree .fa-caret-down,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-right,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul .fa-caret-down{display:block!important}lib-editor .sb-collectionTree-fancyTreelist ul.fancytree-container{font-size:inherit!important;font-family:inherit!important;border:none!important}lib-editor .sb-collectionTree-fancyTreelist ul.fancytree-connectors.fancytree-container li{background-image:none!important}lib-editor .sb-collectionTree-fancyTreelist span.fancytree-node{width:inherit!important}lib-editor .sb-collectionTree-fancyTreelist span.fancytree-active span.fancytree-title,lib-editor .sb-collectionTree-fancyTreelist span.fancytree-selected span.fancytree-title{background:none!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{background:none!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px}lib-editor .sb-collectionTree-fancyTreelist span.fancytree-focused span.fancytree-title{outline:0!important}lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree{margin:0!important}lib-editor .sb-collectionTree-fancyTreelist.ui-fancytree,lib-editor .sb-collectionTree-fancyTreelist .ui-fancytree ul{margin:0 0 0 .625rem!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-e span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-ed span.fancytree-expander{background-position:-32px -68px!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-edl span.fancytree-expander,lib-editor .sb-collectionTree-fancyTreelist .fancytree-exp-el span.fancytree-expander{background-position:-34px -94px!important}lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-active span.fancytree-title,lib-editor .sb-collectionTree-fancyTreelist .fancytree-treefocus span.fancytree-selected span.fancytree-title{color:inherit}lib-editor .sb-loader{position:fixed;top:0%;left:23%;transform:translate(-50%,-50%)}lib-editor .sb-loader:after{content:\"\";width:32px;height:32px;border-radius:50%;border:2px solid;border-color:#ccc #ccc transparent;animation:loader .5s infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}lib-editor .sb-loader.dimmer{width:100%;height:100%;background:#000c;z-index:9999}@keyframes loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}lib-editor .sb-success-loader{position:absolute!important;top:46%!important;left:-12%!important;transform:translate(-46%,-50%)!important}lib-editor .sb-success-loader:after{width:1.2rem!important;height:1.2rem!important}lib-editor .pos-relative{position:relative}lib-editor .sb-circle-ul{list-style-type:disc;padding:0;font-size:.785rem}lib-editor .sb-circle-ul li{margin:0!important;line-height:1.4}lib-editor .sb-bg-color-success-0{background:#e1ffdf}lib-editor .flex-ai-center{align-self:center!important}lib-editor .sb-br-primary{border:1px dashed #aedbfd!important}lib-editor .sb-min-h-250{min-height:250px}lib-editor .z-index-9 .menu{z-index:99999!important}lib-editor .p-50{padding:10px 0 10px 50px}lib-editor .h-1{height:1.1em!important}lib-editor .mn-15{margin:-15px!important}lib-editor .upload-input-button{position:relative}lib-editor .upload-input-button input{position:absolute;opacity:0;left:0}lib-editor .bg-none{background:none}lib-editor .label-disable{opacity:.3!important;font-weight:500!important}lib-editor .sb-folder-menu{position:absolute;left:35px;display:flex;justify-content:space-between;width:24%;margin-top:5px}lib-editor .sb-disable-icon{color:#ccc!important}lib-editor .sb-w-240px{width:240px}lib-editor .showCollaborator .ui.dimmer{overflow-y:unset!important}lib-editor .showCollaborator .ui.segment{max-height:calc(80vh - 8em)!important;overflow-y:auto!important}lib-editor .showCollaborator .sb-modal-content .flex-align-item-center{border-bottom:solid 1px #ccc;margin:0 -16px;padding:0 20px}lib-editor .showCollaborator .ui.pointing{margin:0 -15px!important}lib-editor .showCollaborator .ui.pointing .item.active{font-weight:600!important}lib-editor .publish-checklist label,lib-editor .publish-checklist .add-to-library .dynamic-form .multi-select-container .list-border ul,lib-editor .add-to-library .dynamic-form .multi-select-container .list-border .publish-checklist ul{font-size:13px!important;padding:0 1.5rem!important}lib-editor .sb-keywords input{width:100%}lib-editor .sb-keywords input::placeholder{display:block!important;width:100%}lib-editor .sb-keywords .ng2-tags-container{width:inherit!important;display:block!important}lib-editor .sb-keywords .ng2-tags-container tag{display:inline-flex!important}lib-editor .sb-dialcode{border-bottom:.5px solid #333333;padding:8px 5px!important;border-radius:0!important}lib-editor .sb-dialcode:focus-visible{border-bottom:.5px solid #333333!important;border-radius:0!important;outline:0!important}lib-editor sb-dynamic-timer .sb-timer-input{width:10rem;font-size:.785rem!important;border:1px solid rgba(34,36,38,.15)!important;border-radius:.28571429rem;padding:12px 10px;margin-right:5px;height:44px}lib-editor sb-dynamic-timer .sb-timer-input:focus-visible{border:1px solid rgba(34,36,38,.15)!important}lib-editor sb-dynamic-timer .sb-btn-normal{height:42px!important}\n"] }]
|
|
1114
1193
|
}], ctorParameters: function () { return [{ type: i1.EditorService }, { type: i2.TreeService }, { type: i3.FrameworkService }, { type: i4.HelperService }, { type: i5.EditorTelemetryService }, { type: i6.Router }, { type: i7.ToasterService }, { type: i8.DialcodeService }, { type: i9.ConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { editorConfig: [{
|
|
1115
1194
|
type: Input
|
|
1116
1195
|
}], editorEmitter: [{
|
|
@@ -1122,4 +1201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1122
1201
|
type: HostListener,
|
|
1123
1202
|
args: ['window:unload', ['$event']]
|
|
1124
1203
|
}] } });
|
|
1125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbGxlY3Rpb24tZWRpdG9yLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQzlCLFlBQVksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWlCLFNBQVMsRUFDbEUsTUFBTSxlQUFlLENBQUM7QUFVdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFnQixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRixPQUFPLEtBQUssQ0FBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUy9CLE1BQU0sT0FBTyxlQUFlO0lBb0UxQixZQUFvQixhQUE0QixFQUFTLFdBQXdCLEVBQVUsZ0JBQWtDLEVBQ3pHLGFBQTRCLEVBQVMsZ0JBQXdDLEVBQVUsTUFBYyxFQUNyRyxjQUE4QixFQUFVLGVBQWdDLEVBQ3pFLGFBQTRCLEVBQVUsa0JBQXFDO1FBSDFFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3pHLGtCQUFhLEdBQWIsYUFB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SUFBSSxDQUFDLENBQUM7YUFDbEI7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0F4bkNVLGVBQWU7bUdBQWYsZUFBZSw0U0N4QjVCLCtnYUFtTEE7OzRGRDNKYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSTswV0FJNUIsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNxQixLQUFLO3NCQUFoQyxTQUFTO3VCQUFDLE9BQU87Z0JBdUVsQixhQUFhO3NCQURaLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lZGl0b3IvZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmVlL3RyZWUuc2VydmljZSc7XG5pbXBvcnQgeyBGcmFtZXdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZnJhbWV3b3JrL2ZyYW1ld29yay5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRvclRlbGVtZXRyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90ZWxlbWV0cnkvdGVsZW1ldHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90b2FzdGVyL3RvYXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGVscGVyL2hlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IElFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VkaXRvcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsLCB0YXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBmb3JrSm9pbiwgU3Vic2NyaXB0aW9uLCBTdWJqZWN0LCBtZXJnZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbGNvZGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbGNvZGUvZGlhbGNvZGUuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgZWRpdG9yQ29uZmlnOiBJRWRpdG9yQ29uZmlnIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgZWRpdG9yRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdtb2RhbCcpIHByaXZhdGUgbW9kYWw7XG4gIHB1YmxpYyBxdWVzdGlvbkNvbXBvbmVudElucHV0OiBhbnkgPSB7fTtcbiAgcHVibGljIGNvbGxlY3Rpb25UcmVlTm9kZXM6IGFueTtcbiAgcHVibGljIHNlbGVjdGVkTm9kZURhdGE6IGFueSA9IHt9O1xuICBwdWJsaWMgdGVtcGxhdGVMaXN0OiBhbnk7XG4gIHB1YmxpYyBzaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XG4gIHB1YmxpYyB0ZXJtcyA9IGZhbHNlO1xuICBwdWJsaWMgcGFnZUlkID0gJ2NvbGxlY3Rpb25fZWRpdG9yJztcbiAgcHVibGljIHBhZ2VTdGFydFRpbWU7XG4gIHB1YmxpYyByb290Rm9ybUNvbmZpZzogYW55O1xuICBwdWJsaWMgdW5pdEZvcm1Db25maWc6IGFueTtcbiAgcHVibGljIGxlYWZGb3JtQ29uZmlnOiBhbnk7XG4gIHB1YmxpYyBzaG93TGlicmFyeVBhZ2UgPSBmYWxzZTtcbiAgcHVibGljIGxpYnJhcnlDb21wb25lbnRJbnB1dDogYW55ID0ge307XG4gIHB1YmxpYyBlZGl0b3JNb2RlO1xuICBwdWJsaWMgY29sbGVjdGlvbklkO1xuICBwdWJsaWMgaXNDdXJyZW50Tm9kZUZvbGRlcjogYm9vbGVhbjtcbiAgcHVibGljIGlzQ3VycmVudE5vZGVSb290OiBib29sZWFuO1xuICBwdWJsaWMgaXNRdW1sUGxheWVyOiBib29sZWFuO1xuICBwdWJsaWMgc2hvd1F1ZXN0aW9uVGVtcGxhdGVQb3B1cCA9IGZhbHNlO1xuICBwdWJsaWMgZGVsZXRlQ29uZmlybU1lc3NhZ2U7XG4gIHB1YmxpYyBzaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSBmYWxzZTtcbiAgcHVibGljIHNob3dQcmV2aWV3ID0gZmFsc2U7XG4gIHB1YmxpYyBhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIHByaXZhdGUgZm9ybVN0YXR1c01hcHBlcjogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgcHVibGljIHRhcmdldEZyYW1ld29yaztcbiAgcHVibGljIG9yZ2FuaXNhdGlvbkZyYW1ld29yaztcbiAgcHVibGljIHByaW1hcnlDYXRlZ29yeURlZjogYW55O1xuICB0b29sYmFyQ29uZmlnOiBhbnk7XG4gIHB1YmxpYyBidXR0b25Mb2FkZXJzID0ge1xuICAgIHNhdmVBc0RyYWZ0QnV0dG9uTG9hZGVyOiBmYWxzZSxcbiAgICBhZGRGcm9tTGlicmFyeUJ1dHRvbkxvYWRlcjogZmFsc2UsXG4gICAgYWRkUXVlc3Rpb25Gcm9tTGlicmFyeUJ1dHRvbkxvYWRlcjogZmFsc2UsXG4gICAgcHJldmlld0J1dHRvbkxvYWRlcjogZmFsc2UsXG4gICAgc2hvd1Jldmlld0NvbW1lbnQ6IGZhbHNlXG4gIH07XG4gIHB1YmxpYyBjb250ZW50Q29tbWVudDogc3RyaW5nO1xuICBwdWJsaWMgc2hvd0NvbW1lbnQ6IGJvb2xlYW47XG4gIHB1YmxpYyBzaG93UmV2aWV3TW9kYWw6IGJvb2xlYW47XG4gIHB1YmxpYyBjc3ZEcm9wRG93bk9wdGlvbnM6IGFueSA9IHt9O1xuICBwdWJsaWMgc2hvd0NzdlVwbG9hZFBvcHVwID0gZmFsc2U7XG4gIHB1YmxpYyBpc09iamVjdFR5cGVDb2xsZWN0aW9uOiBhbnk7XG4gIHB1YmxpYyBpc0NyZWF0ZUNzdiA9IHRydWU7XG4gIHB1YmxpYyBpc1N0YXR1c1Jldmlld01vZGUgPSBmYWxzZTtcbiAgcHVibGljIGlzRW5hYmxlQ3N2QWN0aW9uIDogYW55O1xuICBwdWJsaWMgaXNUcmVlSW5pdGlhbGl6ZWQ6IGFueTtcbiAgcHVibGljIGlzaGllcmFyY2h5Q29uZmlnU2V0ID0gIGZhbHNlO1xuICBwdWJsaWMgYWRkQ29sbGFib3JhdG9yOiBib29sZWFuO1xuICBwdWJsaWMgcHVibGlzaGNoZWNrbGlzdDogYW55O1xuICBwdWJsaWMgaXNDb21wb25lbmV0SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHVibGljIHVuU3Vic2NyaWJlU2hvd0xpYnJhcnlQYWdlRW1pdHRlcjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgdW5TdWJzY3JpYmVzaG93UXVlc3Rpb25MaWJyYXJ5UGFnZUVtaXR0ZXI6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIHNvdXJjaW5nU2V0dGluZ3M6IGFueTtcbiAgcHVibGljIHNldENoaWxkUXVlc3Rpb246IGFueTtcbiAgcHVibGljIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvbkNvbXBvbmVudERlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgb3V0Y29tZURlY2xhcmF0aW9uOiBhbnk7XG4gIHB1YmxpYyBsZXZlbHNBcnJheTogYW55O1xuICBwdWJsaWMgb2JqZWN0VHlwZTogYW55O1xuICBwdWJsaWMgcmVsYXRpb25Gb3JtQ29uZmlnOiBhbnk7XG4gIHB1YmxpYyBxdWVzdGlvbmxpYnJhcnlJbnB1dDogYW55ID0ge307XG4gIHB1YmxpYyBjcmVhdGlvbkNvbnRleHQ6IGFueTtcbiAgcHJpdmF0ZSBldmlkZW5jZU1pbWVUeXBlOiBhbnk7XG4gIHByaXZhdGUgZWNtOiBhbnk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSwgcHVibGljIHRyZWVTZXJ2aWNlOiBUcmVlU2VydmljZSwgcHJpdmF0ZSBmcmFtZXdvcmtTZXJ2aWNlOiBGcmFtZXdvcmtTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGhlbHBlclNlcnZpY2U6IEhlbHBlclNlcnZpY2UsIHB1YmxpYyB0ZWxlbWV0cnlTZXJ2aWNlOiBFZGl0b3JUZWxlbWV0cnlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSwgcHJpdmF0ZSBkaWFsY29kZVNlcnZpY2U6IERpYWxjb2RlU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnVubG9hZCcsIFsnJGV2ZW50J10pXG4gIHVubG9hZEhhbmRsZXIoZXZlbnQpIHtcbiAgICB0aGlzLmdlbmVyYXRlVGVsZW1ldHJ5RW5kRXZlbnQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yQ29uZmlnKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuZWRpdG9yQ29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuZWRpdG9yQ29uZmlnID0gSlNPTi5wYXJzZSh0aGlzLmVkaXRvckNvbmZpZyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBlZGl0b3JDb25maWc6ICcsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLmVkaXRvckNvbmZpZyk7XG4gICAgdGhpcy5lZGl0b3JNb2RlID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmVkaXRvck1vZGU7XG4gICAgdGhpcy50cmVlU2VydmljZS5pbml0aWFsaXplKHRoaXMuZWRpdG9yQ29uZmlnKTtcbiAgICB0aGlzLmNvbGxlY3Rpb25JZCA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5pZGVudGlmaWVyJyk7XG4gICAgdGhpcy5vYmplY3RUeXBlID0gXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcub2JqZWN0VHlwZScpO1xuICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRUb29sYmFyQ29uZmlnKCk7XG4gICAgdGhpcy5pc09iamVjdFR5cGVDb2xsZWN0aW9uID0gdGhpcy5jb25maWdTZXJ2aWNlLmNhdGVnb3J5Q29uZmlnW3RoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5vYmplY3RUeXBlXSA9PT0gJ3F1ZXN0aW9uU2V0JyA/IGZhbHNlIDogdHJ1ZTtcbiAgICB0aGlzLmlzU3RhdHVzUmV2aWV3TW9kZSA9IHRoaXMuaXNSZXZpZXdNb2RlKCk7XG4gICAgdGhpcy5tZXJnZUNvbGxlY3Rpb25FeHRlcm5hbFByb3BlcnRpZXMoKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgaGllcmFyY2h5UmVzcG9uc2UgPSBfLmZpcnN0KHJlc3BvbnNlKTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IF8uZ2V0KGhpZXJhcmNoeVJlc3BvbnNlLCBgcmVzdWx0LiR7dGhpcy5jb25maWdTZXJ2aWNlLmNhdGVnb3J5Q29uZmlnW3RoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5vYmplY3RUeXBlXX1gKTtcbiAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnLnRpdGxlID0gY29sbGVjdGlvbi5uYW1lO1xuICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcuaXNBZGRDb2xsYWJvcmF0b3IgPSAoY29sbGVjdGlvbi5jcmVhdGVkQnkgPT09IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC51c2VyLmlkJykpO1xuICAgICAgICB0aGlzLm9yZ2FuaXNhdGlvbkZyYW1ld29yayA9IF8uZ2V0KGNvbGxlY3Rpb24sICdmcmFtZXdvcmsnKSB8fCBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbnRleHQuZnJhbWV3b3JrJyk7XG4gICAgICAgIHRoaXMudGFyZ2V0RnJhbWV3b3JrID0gXy5nZXQoY29sbGVjdGlvbiwgJ3RhcmdldEZXSWRzJykgfHwgXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LnRhcmdldEZXSWRzJyk7XG4gICAgICAgIGlmICh0aGlzLm9yZ2FuaXNhdGlvbkZyYW1ld29yaykge1xuICAgICAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5pbml0aWFsaXplKHRoaXMub3JnYW5pc2F0aW9uRnJhbWV3b3JrKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV8uaXNFbXB0eSh0aGlzLnRhcmdldEZyYW1ld29yaykpIHtcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0VGFyZ2V0RnJhbWV3b3JrQ2F0ZWdvcmllcyh0aGlzLnRhcmdldEZyYW1ld29yayk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IF8uZ2V0KGNvbGxlY3Rpb24sICdjaGFubmVsJykgfHwgXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LmNoYW5uZWwnKTtcbiAgICAgICAgdGhpcy5oZWxwZXJTZXJ2aWNlLmluaXRpYWxpemUoY2hhbm5lbCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0Q2F0ZWdvcnlEZWZpbml0aW9uKHRoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5wcmltYXJ5Q2F0ZWdvcnksXG4gICAgICB0aGlzLmVkaXRvckNvbmZpZy5jb250ZXh0LmNoYW5uZWwsIHRoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5vYmplY3RUeXBlKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICAgIGNvbnN0IGRpYWxjb2RlID0gXy5nZXQocmVzcG9uc2UsICdyZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uLm9iamVjdE1ldGFkYXRhLnNjaGVtYS5wcm9wZXJ0aWVzLmdlbmVyYXRlRElBTENvZGVzLmRlZmF1bHQnKTtcbiAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcuc2hvd0RpYWxjb2RlID0gZGlhbGNvZGUgPyBkaWFsY29kZS50b0xvd2VyQ2FzZSgpIDogJ25vJztcbiAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICAgICAgY29uc3QgZW5hYmxlQnVsa1VwbG9hZCA9IF8uZ2V0KHJlc3BvbnNlLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5vYmplY3RNZXRhZGF0YS5jb25maWcuc291cmNpbmdTZXR0aW5ncy5jb2xsZWN0aW9uLmVuYWJsZUJ1bGtVcGxvYWQnKTtcbiAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcuc2hvd0J1bGtVcGxvYWRCdG4gPSBlbmFibGVCdWxrVXBsb2FkID8gZW5hYmxlQnVsa1VwbG9hZCA6IGZhbHNlO1xuXG4gICAgICAgICAgdGhpcy5zb3VyY2luZ1NldHRpbmdzID0gXy5nZXQocmVzcG9uc2UsICdyZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uLm9iamVjdE1ldGFkYXRhLmNvbmZpZy5zb3VyY2luZ1NldHRpbmdzJywge30pO1xuICAgICAgICAgIHRoaXMuaGVscGVyU2VydmljZS5jaGFubmVsRGF0YSQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGNoYW5uZWxSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldGhpZXJhcmNoeUNvbmZpZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgIHRoaXMucHJpbWFyeUNhdGVnb3J5RGVmID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIHRoaXMucGFnZVN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLmluaXRpYWxpemVUZWxlbWV0cnkodGhpcy5lZGl0b3JDb25maWcpO1xuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQgPSB0aGlzLnBhZ2VJZDtcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2Uuc3RhcnQoeyB0eXBlOiAnZWRpdG9yJywgcGFnZWlkOiB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkIH0pO1xuICAgIHRoaXMudW5TdWJzY3JpYmVTaG93TGlicmFyeVBhZ2VFbWl0dGVyID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmdldHNob3dMaWJyYXJ5UGFnZUVtaXR0ZXIoKVxuICAgICAgLnN1YnNjcmliZShpdGVtID0+IHRoaXMuc2hvd0xpYnJhcnlDb21wb25lbnRQYWdlKCkpO1xuICAgIHRoaXMudHJlZVNlcnZpY2UudHJlZVN0YXR1cyQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2xvYWRlZCcpIHtcbiAgICAgICAgdGhpcy5nZXRGcmFtZXdvcmtEZXRhaWxzKHRoaXMucHJpbWFyeUNhdGVnb3J5RGVmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldEZyYW1ld29ya0RldGFpbHMoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSkge1xuICAgIGxldCBvcmdGV0lkZW50aWZpZXJzOiBhbnk7XG4gICAgbGV0IHRhcmdldEZXSWRlbnRpZmllcnM6IGFueTtcbiAgICBsZXQgb3JnRldUeXBlOiBhbnk7XG4gICAgbGV0IHRhcmdldEZXVHlwZTogYW55O1xuICAgIG9yZ0ZXSWRlbnRpZmllcnMgPSBfLmdldChjYXRlZ29yeURlZmluaXRpb25EYXRhLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5vYmplY3RNZXRhZGF0YS5zY2hlbWEucHJvcGVydGllcy5mcmFtZXdvcmsuZW51bScpIHx8XG4gICAgICBfLmdldChjYXRlZ29yeURlZmluaXRpb25EYXRhLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5vYmplY3RNZXRhZGF0YS5zY2hlbWEucHJvcGVydGllcy5mcmFtZXdvcmsuZGVmYXVsdCcpO1xuICAgIGlmIChfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5yZW5kZXJUYXhvbm9teScpID09PSB0cnVlKSB7XG4gICAgICBjb25zdCBvcmdJZCA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5pZGVudGlmaWVyJyk7XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZmV0Y2hPdXRDb21lRGVjbGFyYXRpb24ob3JnSWQpLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgaWYgKGRhdGE/LnJlc3VsdCkge1xuICAgICAgICAgIHRoaXMub3V0Y29tZURlY2xhcmF0aW9uID0gXy5nZXQoZGF0YT8ucmVzdWx0LCAncXVlc3Rpb25zZXQub3V0Y29tZURlY2xhcmF0aW9uJyk7XG4gICAgICAgICAgdGhpcy5sZXZlbHNBcnJheSA9IE9iamVjdC5rZXlzKHRoaXMub3V0Y29tZURlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICB0aGlzLnB1Ymxpc2hjaGVja2xpc3QgPSBfLmdldChjYXRlZ29yeURlZmluaXRpb25EYXRhLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5mb3Jtcy5wdWJsaXNoY2hlY2tsaXN0LnByb3BlcnRpZXMnKSB8fCBfLmdldChjYXRlZ29yeURlZmluaXRpb25EYXRhLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5mb3Jtcy5yZXZpZXcucHJvcGVydGllcycpIHx8IFtdO1xuICAgIGlmIChfLmlzRW1wdHkodGhpcy50YXJnZXRGcmFtZXdvcmsgfHwgXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LnRhcmdldEZXSWRzJykpKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICB0YXJnZXRGV0lkZW50aWZpZXJzID0gXy5nZXQoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24ub2JqZWN0TWV0YWRhdGEuc2NoZW1hLnByb3BlcnRpZXMudGFyZ2V0RldJZHMuZGVmYXVsdCcpO1xuICAgICAgaWYgKF8uaXNFbXB0eSh0YXJnZXRGV0lkZW50aWZpZXJzKSkge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICAgIHRhcmdldEZXVHlwZSA9IF8uZ2V0KGNhdGVnb3J5RGVmaW5pdGlvbkRhdGEsICdyZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uLm9iamVjdE1ldGFkYXRhLmNvbmZpZy5mcmFtZXdvcmtNZXRhZGF0YS50YXJnZXRGV1R5cGUnKTtcbiAgICAgICAgY29uc3QgY2hhbm5lbEZyYW1ld29ya3MgPSBfLmdldCh0aGlzLmhlbHBlclNlcnZpY2UuY2hhbm5lbEluZm8sICdmcmFtZXdvcmtzJyk7XG4gICAgICAgIGNvbnN0IGNoYW5uZWxGcmFtZXdvcmtzVHlwZSA9IF8ubWFwKGNoYW5uZWxGcmFtZXdvcmtzLCAndHlwZScpO1xuICAgICAgICBjb25zdCBjaGFubmVsRnJhbWV3b3Jrc0lkZW50aWZpZXJzID0gXy5tYXAoXy5nZXQodGhpcy5oZWxwZXJTZXJ2aWNlLmNoYW5uZWxJbmZvLCAnZnJhbWV3b3JrcycpLCAnaWRlbnRpZmllcicpO1xuICAgICAgICBjb25zdCBkaWZmZXJlbmNlID0gXy5kaWZmZXJlbmNlKHRhcmdldEZXVHlwZSwgXy51bmlxKGNoYW5uZWxGcmFtZXdvcmtzVHlwZSkpO1xuXG4gICAgICAgIGlmICh0YXJnZXRGV1R5cGUgJiYgY2hhbm5lbEZyYW1ld29ya3NUeXBlICYmIF8uaXNFbXB0eShkaWZmZXJlbmNlKSkge1xuICAgICAgICAgIHRoaXMudGFyZ2V0RnJhbWV3b3JrID0gXy5nZXQoXy5maXJzdChfLmZpbHRlcihjaGFubmVsRnJhbWV3b3JrcywgZnJhbWV3b3JrID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcmFtZXdvcmsudHlwZSA9PT0gXy5maXJzdCh0YXJnZXRGV1R5cGUpO1xuICAgICAgICAgIH0pKSwgJ2lkZW50aWZpZXInKTtcbiAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLnVwZGF0ZU1ldGFEYXRhUHJvcGVydHkoJ3RhcmdldEZXSWRzJywgXy5jYXN0QXJyYXkodGhpcy50YXJnZXRGcmFtZXdvcmspKTtcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0VGFyZ2V0RnJhbWV3b3JrQ2F0ZWdvcmllcyhfLmNhc3RBcnJheSh0aGlzLnRhcmdldEZyYW1ld29yaykpO1xuICAgICAgICB9IGVsc2UgaWYgKCh0YXJnZXRGV1R5cGUgJiYgY2hhbm5lbEZyYW1ld29ya3NUeXBlICYmICFfLmlzRW1wdHkoZGlmZmVyZW5jZSkpIHx8IF8uaXNFbXB0eShjaGFubmVsRnJhbWV3b3Jrc1R5cGUpKSB7XG4gICAgICAgICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmdldEZyYW1ld29ya0RhdGEodW5kZWZpbmVkLCBkaWZmZXJlbmNlLCB1bmRlZmluZWQsICdZZXMnKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAodGFyZ2V0UmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50YXJnZXRGcmFtZXdvcmsgPSBfLmdldChfLmZpcnN0KF8uZ2V0KHRhcmdldFJlc3BvbnNlLCAncmVzdWx0LkZyYW1ld29yaycpKSwgJ2lkZW50aWZpZXInKTtcbiAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy50YXJnZXRGcmFtZXdvcmspKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlU2VydmljZS51cGRhdGVNZXRhRGF0YVByb3BlcnR5KCd0YXJnZXRGV0lkcycsIF8uY2FzdEFycmF5KHRoaXMudGFyZ2V0RnJhbWV3b3JrKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmdldFRhcmdldEZyYW1ld29ya0NhdGVnb3JpZXMoXy5jYXN0QXJyYXkodGhpcy50YXJnZXRGcmFtZXdvcmspKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5nZXRGcmFtZXdvcmtEYXRhKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0YXJnZXRGV0lkZW50aWZpZXJzKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKHRhcmdldFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldEZyYW1ld29yayA9IF8uZ2V0KF8uZmlyc3QoXy5nZXQodGFyZ2V0UmVzcG9uc2UsICdyZXN1bHQuRnJhbWV3b3JrJykpLCAnaWRlbnRpZmllcicpO1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy50YXJnZXRGcmFtZXdvcmspKSB7XG4gICAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UudXBkYXRlTWV0YURhdGFQcm9wZXJ0eSgndGFyZ2V0RldJZHMnLCBfLmNhc3RBcnJheSh0aGlzLnRhcmdldEZyYW1ld29yaykpO1xuICAgICAgICAgICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0VGFyZ2V0RnJhbWV3b3JrQ2F0ZWdvcmllcyhfLmNhc3RBcnJheSh0aGlzLnRhcmdldEZyYW1ld29yaykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXy5pc0VtcHR5KG9yZ0ZXSWRlbnRpZmllcnMpKSB7XG4gICAgICBsZXQgb3JnRnJhbWV3b3JrTGlzdCA9IFtdO1xuICAgICAgb3JnRldUeXBlID0gXy5nZXQoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24ub2JqZWN0TWV0YWRhdGEuY29uZmlnLmZyYW1ld29ya01ldGFkYXRhLm9yZ0ZXVHlwZScpO1xuICAgICAgY29uc3QgY2hhbm5lbEZyYW1ld29ya3NUeXBlID0gXy5tYXAoXy5nZXQodGhpcy5oZWxwZXJTZXJ2aWNlLmNoYW5uZWxJbmZvLCAnZnJhbWV3b3JrcycpLCAndHlwZScpO1xuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IF8uZGlmZmVyZW5jZShvcmdGV1R5cGUsIF8udW5pcShjaGFubmVsRnJhbWV3b3Jrc1R5cGUpKTtcbiAgICAgIGlmIChjaGFubmVsRnJhbWV3b3Jrc1R5cGUpIHtcbiAgICAgICAgb3JnRnJhbWV3b3JrTGlzdCA9IF8ubWFwKF8uZ2V0KHRoaXMuaGVscGVyU2VydmljZS5jaGFubmVsSW5mbywgJ2ZyYW1ld29ya3MnKSwgKGZyYW1ld29yaykgPT4ge1xuICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBmcmFtZXdvcmsubmFtZSwgaWRlbnRpZmllcjogZnJhbWV3b3JrLmlkZW50aWZpZXIgfTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcmdGV1R5cGUgJiYgY2hhbm5lbEZyYW1ld29ya3NUeXBlICYmIF8uaXNFbXB0eShkaWZmZXJlbmNlKSkge1xuICAgICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZnJhbWV3b3JrVmFsdWVzID0gb3JnRnJhbWV3b3JrTGlzdDtcbiAgICAgICAgdGhpcy5zZXRFZGl0b3JGb3JtcyhjYXRlZ29yeURlZmluaXRpb25EYXRhKTtcbiAgICAgIH0gZWxzZSBpZiAob3JnRldUeXBlICYmIGNoYW5uZWxGcmFtZXdvcmtzVHlwZSAmJiAhXy5pc0VtcHR5KGRpZmZlcmVuY2UpIHx8IF8uaXNFbXB0eShjaGFubmVsRnJhbWV3b3Jrc1R5cGUpKSB7XG4gICAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5nZXRGcmFtZXdvcmtEYXRhKHVuZGVmaW5lZCwgZGlmZmVyZW5jZSwgdW5kZWZpbmVkLCAnWWVzJykuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmZyYW1ld29ya1ZhbHVlcyA9IF8uY29uY2F0KF8ubWFwKF8uZ2V0KHJlc3BvbnNlLCAncmVzdWx0LkZyYW1ld29yaycpLCBmcmFtZXdvcmsgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4geyBsYWJlbDogZnJhbWV3b3JrLm5hbWUsIGlkZW50aWZpZXI6IGZyYW1ld29yay5pZGVudGlmaWVyIH07XG4gICAgICAgICAgICB9KSwgb3JnRnJhbWV3b3JrTGlzdCk7XG4gICAgICAgICAgICB0aGlzLnNldEVkaXRvckZvcm1zKGNhdGVnb3J5RGVmaW5pdGlvbkRhdGEpO1xuICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcicsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3JnYW5pc2F0aW9uRnJhbWV3b3JrKSB7XG4gICAgICAgIHRoaXMuc2V0RWRpdG9yRm9ybXMoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5nZXRGcmFtZXdvcmtEYXRhKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBvcmdGV0lkZW50aWZpZXJzKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5mcmFtZXdvcmtWYWx1ZXMgPSBfLmNvbmNhdChfLm1hcChfLmdldChyZXNwb25zZSwgJ3Jlc3VsdC5GcmFtZXdvcmsnKSwgZnJhbWV3b3JrID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBmcmFtZXdvcmsubmFtZSwgaWRlbnRpZmllcjogZnJhbWV3b3JrLmlkZW50aWZpZXIgfTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgdGhpcy5zZXRFZGl0b3JGb3JtcyhjYXRlZ29yeURlZmluaXRpb25EYXRhKTtcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcicsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzZXRFZGl0b3JGb3JtcyhjYXRlZ29yeURlZmluaXRpb25EYXRhKSB7XG4gICAgY29uc3QgZm9ybXNDb25maWdPYmogPSBfLmdldChjYXRlZ29yeURlZmluaXRpb25EYXRhLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5mb3JtcycpO1xuICAgIHRoaXMudW5pdEZvcm1Db25maWcgPSBfLmdldChmb3Jtc0NvbmZpZ09iaiwgJ3VuaXRNZXRhZGF0YS5wcm9wZXJ0aWVzJyk7XG4gICAgdGhpcy5yb290Rm9ybUNvbmZpZyA9IF8uZ2V0KGZvcm1zQ29uZmlnT2JqLCAnY3JlYXRlLnByb3BlcnRpZXMnKTtcbiAgICBsZXQgZm9ybURhdGE7XG4gICAgaWYgKHRoaXMucm9vdEZvcm1Db25maWc/Lmxlbmd0aCkge1xuICAgICAgZm9ybURhdGEgPSB0aGlzLnJvb3RGb3JtQ29uZmlnWzBdLmZpZWxkcyB8fCBbXTtcbiAgICB9XG4gICAgZm9ybURhdGEuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZC5jb2RlID09PSAnZXZpZGVuY2VNaW1lVHlwZScpIHtcbiAgICAgICAgdGhpcy5ldmlkZW5jZU1pbWVUeXBlID0gZmllbGQucmFuZ2U7XG4gICAgICAgIGZpZWxkLm9wdGlvbnMgPSB0aGlzLnNldEV2aWRlbmNlO1xuICAgICAgICBmaWVsZC5yYW5nZSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKGZpZWxkLmNvZGUgPT09ICdhbGxvd0VDTScpIHtcbiAgICAgICAgZmllbGQub3B0aW9ucyA9IHRoaXMuc2V0QWxsb3dFY207XG4gICAgICB9IGVsc2UgaWYgKGZpZWxkLmNvZGUgPT09ICdlY20nKSB7XG4gICAgICAgIHRoaXMuZWNtID0gZmllbGQub3B0aW9ucztcbiAgICAgICAgZmllbGQub3B0aW9ucyA9IHRoaXMuc2V0RWNtO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICggdGhpcy5vYmplY3RUeXBlID09PSAncXVlc3Rpb25zZXQnICYmIF8uaGFzKGZvcm1zQ29uZmlnT2JqLCAnc2VhcmNoQ29uZmlnJykpIHtcbiAgICAgICAgdGhpcy5saWJyYXJ5Q29tcG9uZW50SW5wdXQuc2VhcmNoRm9ybUNvbmZpZyA9IF8uZ2V0KGZvcm1zQ29uZmlnT2JqLCAnc2VhcmNoQ29uZmlnLnByb3BlcnRpZXMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saWJyYXJ5Q29tcG9uZW50SW5wdXQuc2VhcmNoRm9ybUNvbmZpZyA9IF8uZ2V0KGZvcm1zQ29uZmlnT2JqLCAnc2VhcmNoLnByb3BlcnRpZXMnKTtcbiAgICB9XG4gICAgdGhpcy5sZWFmRm9ybUNvbmZpZyA9IF8uZ2V0KGZvcm1zQ29uZmlnT2JqLCAnY2hpbGRNZXRhZGF0YS5wcm9wZXJ0aWVzJyk7XG4gICAgdGhpcy5yZWxhdGlvbkZvcm1Db25maWcgPSBfLmdldChmb3Jtc0NvbmZpZ09iaiwgJ3JlbGF0aW9uYWxNZXRhZGF0YS5wcm9wZXJ0aWVzJyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLmltcHJlc3Npb24oe1xuICAgICAgdHlwZTogJ2VkaXQnLCBwYWdlaWQ6IHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQsIHVyaTogdGhpcy5yb3V0ZXIudXJsLFxuICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gdGhpcy5wYWdlU3RhcnRUaW1lKSAvIDEwMDBcbiAgICB9KTtcbiAgICB0aGlzLmlzQ29tcG9uZW5ldEluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIG1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlcXVlc3RzID0gW107XG4gICAgdGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzID0gbnVsbDtcbiAgICB0aGlzLmlzVHJlZUluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBjb25zdCBvYmplY3RUeXBlID0gdGhpcy5jb25maWdTZXJ2aWNlLmNhdGVnb3J5Q29uZmlnW3RoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5vYmplY3RUeXBlXTtcbiAgICByZXF1ZXN0cy5wdXNoKHRoaXMuZWRpdG9yU2VydmljZS5mZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodGhpcy5jb2xsZWN0aW9uSWQpKTtcbiAgICBpZiAob2JqZWN0VHlwZSA9PT0gJ3F1ZXN0aW9uU2V0Jykge1xuICAgICAgcmVxdWVzdHMucHVzaCh0aGlzLmVkaXRvclNlcnZpY2UucmVhZFF1ZXN0aW9uU2V0KHRoaXMuY29sbGVjdGlvbklkKSk7XG4gICAgfVxuICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0cykucGlwZSh0YXAocmVzcG9uc2VMaXN0ID0+IHtcbiAgICAgIGNvbnN0IGhpZXJhcmNoeVJlc3BvbnNlID0gXy5maXJzdChyZXNwb25zZUxpc3QpO1xuICAgICAgdGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzID0ge1xuICAgICAgICBkYXRhOiBfLmdldChoaWVyYXJjaHlSZXNwb25zZSwgYHJlc3VsdC4ke29iamVjdFR5cGV9YClcbiAgICAgIH07XG4gICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuc2hvd1Jldmlld0NvbW1lbnQgPSB0aGlzLnNob3dDb21tZW50QWRkZWRBZ2FpbnN0Q29udGVudCgpO1xuICAgICAgaWYgKF8uaXNFbXB0eSh0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YS5jaGlsZHJlbikpIHtcbiAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnLmhhc0NoaWxkcmVuID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcuaGFzQ2hpbGRyZW4gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob2JqZWN0VHlwZSA9PT0gJ3F1ZXN0aW9uU2V0Jykge1xuICAgICAgICBjb25zdCBxdWVzdGlvblNldFJlc3BvbnNlID0gXy5sYXN0KHJlc3BvbnNlTGlzdCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBfLmdldChxdWVzdGlvblNldFJlc3BvbnNlLCBfLnRvTG93ZXIoYHJlc3VsdC4ke29iamVjdFR5cGV9YCkpO1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YS5pbnN0cnVjdGlvbnMgPSBkYXRhLmluc3RydWN0aW9ucyA/IGRhdGEuaW5zdHJ1Y3Rpb25zIDogJyc7XG4gICAgICB9XG4gICAgfVxuICAgICkpO1xuICB9XG4gIHNldGhpZXJhcmNoeUNvbmZpZyhwcmltYXJ5Q2F0Q29uZmlnKSB7XG4gICAgbGV0IGhpZXJhcmNoeUNvbmZpZztcbiAgICBpZiAoXy5nZXQocHJpbWFyeUNhdENvbmZpZywgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24ub2JqZWN0TWV0YWRhdGEuY29uZmlnJykpIHtcbiAgICAgIGhpZXJhcmNoeUNvbmZpZyA9IF8uZ2V0KHByaW1hcnlDYXRDb25maWcsICdyZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uLm9iamVjdE1ldGFkYXRhLmNvbmZpZy5zb3VyY2luZ1NldHRpbmdzLmNvbGxlY3Rpb24nKTtcbiAgICAgIGlmICghXy5pc0VtcHR5KGhpZXJhcmNoeUNvbmZpZy5jaGlsZHJlbikpIHtcbiAgICAgICAgaGllcmFyY2h5Q29uZmlnLmNoaWxkcmVuID0gdGhpcy5nZXRIaWVyYXJjaHlDaGlsZHJlbkNvbmZpZyhoaWVyYXJjaHlDb25maWcuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgICAgaWYgKCFfLmlzRW1wdHkoaGllcmFyY2h5Q29uZmlnLmhpZXJhcmNoeSkpIHtcbiAgICAgICAgXy5mb3JFYWNoKGhpZXJhcmNoeUNvbmZpZy5oaWVyYXJjaHksIChoaWVyYXJjaHlWYWx1ZSkgPT4ge1xuICAgICAgICAgIGlmIChfLmdldChoaWVyYXJjaHlWYWx1ZSwgJ2NoaWxkcmVuJykpIHtcbiAgICAgICAgICAgIGhpZXJhcmNoeVZhbHVlWydjaGlsZHJlbiddID0gdGhpcy5nZXRIaWVyYXJjaHlDaGlsZHJlbkNvbmZpZyhfLmdldChoaWVyYXJjaHlWYWx1ZSwgJ2NoaWxkcmVuJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZyA9IF8uYXNzaWduKHRoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZywgaGllcmFyY2h5Q29uZmlnKTtcbiAgICBpZiAoXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcucmVuZGVyVGF4b25vbXknKSA9PT0gdHJ1ZSAmJiBfLmlzRW1wdHkoXy5nZXQodGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLCAnZGF0YS5jaGlsZHJlbicpKSkge1xuICAgICAgdGhpcy5mZXRjaEZyYW1lV29ya0RldGFpbHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc2hpZXJhcmNoeUNvbmZpZ1NldCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hGcmFtZVdvcmtEZXRhaWxzKCkge1xuICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5mcmFtZXdvcmtEYXRhJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMub25Db21wb25lbnREZXN0cm95JCksXG4gICAgICBmaWx0ZXIoZGF0YSA9PiBfLmdldChkYXRhLCBgZnJhbWV3b3JrZGF0YS4ke3RoaXMuZnJhbWV3b3JrU2VydmljZS5vcmdhbmlzYXRpb25GcmFtZXdvcmt9YCkpLFxuICAgICAgdGFrZSgxKVxuICAgICkuc3Vic2NyaWJlKChmcmFtZXdvcmtEZXRhaWxzOiBhbnkpID0+IHtcbiAgICAgIGlmIChmcmFtZXdvcmtEZXRhaWxzICYmICFmcmFtZXdvcmtEZXRhaWxzLmVycikge1xuICAgICAgICBjb25zdCBvcmdGcmFtZXdvcmtEYXRhID0gXy5nZXQoZnJhbWV3b3JrRGV0YWlscywgYGZyYW1ld29ya2RhdGEuJHt0aGlzLmZyYW1ld29ya1NlcnZpY2Uub3JnYW5pc2F0aW9uRnJhbWV3b3JrfS5jYXRlZ29yaWVzYCk7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5SW5zdGFuY2VEYXRhID0gXy5maW5kKG9yZ0ZyYW1ld29ya0RhdGEsIHtjb2RlOiBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5jYXRlZ29yeUluc3RhbmNlJyl9KTtcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLmRhdGEuY2hpbGRyZW4gPSBfLmdldChjYXRlZ29yeUluc3RhbmNlRGF0YSwgJ3Rlcm1zJyk7XG4gICAgICAgIHRoaXMuaXNoaWVyYXJjaHlDb25maWdTZXQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0SGllcmFyY2h5Q2hpbGRyZW5Db25maWcoY2hpbGRyZW5EYXRhKSB7XG4gICAgXy5mb3JFYWNoKGNoaWxkcmVuRGF0YSwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGlmIChfLmlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgY2FzZSAnUXVlc3Rpb24nOlxuICAgICAgICAgICAgY2hpbGRyZW5EYXRhW2tleV0gPSBfLm1hcCh0aGlzLmhlbHBlclNlcnZpY2UucXVlc3Rpb25QcmltYXJ5Q2F0ZWdvcmllcywgJ25hbWUnKSB8fCB0aGlzLmVkaXRvckNvbmZpZy5jb25maWcucXVlc3Rpb25QcmltYXJ5Q2F0ZWdvcmllczs7IFxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnQ29udGVudCc6XG4gICAgICAgICAgICBjaGlsZHJlbkRhdGFba2V5XSA9IF8ubWFwKHRoaXMuaGVscGVyU2VydmljZS5jb250ZW50UHJpbWFyeUNhdGVnb3JpZXMsICduYW1lJykgfHwgW107XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdDb2xsZWN0aW9uJzpcbiAgICAgICAgICAgIGNoaWxkcmVuRGF0YVtrZXldID0gXy5tYXAodGhpcy5oZWxwZXJTZXJ2aWNlLmNvbGxlY3Rpb25QcmltYXJ5Q2F0ZWdvcmllcywgJ25hbWUnKSB8fCBbXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1F1ZXN0aW9uU2V0JzpcbiAgICAgICAgICAgIGNoaWxkcmVuRGF0YVtrZXldID0gXy5tYXAodGhpcy5oZWxwZXJTZXJ2aWNlLnF1ZXN0aW9uc2V0UHJpbWFyeUNhdGVnb3JpZXMsICduYW1lJykgfHwgW107XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjaGlsZHJlbkRhdGE7XG4gIH1cblxuICB0b2dnbGVDb2xsYWJvcmF0b3JNb2RhbFBvdXAoKSB7XG4gICAgdGhpcy5pc0VuYWJsZUNzdkFjdGlvbiA9IHRydWU7XG4gICAgaWYgKHRoaXMuYWRkQ29sbGFib3JhdG9yKSB7XG4gICAgICB0aGlzLmFkZENvbGxhYm9yYXRvciA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuYWRkQ29sbGFib3JhdG9yKSB7XG4gICAgICB0aGlzLmFkZENvbGxhYm9yYXRvciA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICB9XG4gIH1cblxuICB0b29sYmFyRXZlbnRMaXN0ZW5lcihldmVudCkge1xuICAgIHRoaXMuYWN0aW9uVHlwZSA9IGV2ZW50LmJ1dHRvbjtcbiAgICBzd2l0Y2ggKGV2ZW50LmJ1dHRvbikge1xuICAgICAgY2FzZSAnc2F2ZUNvbnRlbnQnOlxuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuc2F2ZUFzRHJhZnRCdXR0b25Mb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNhdmVDb250ZW50KCkudGhlbigobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLnNhdmVBc0RyYWZ0QnV0dG9uTG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKG1lc3NhZ2UpO1xuICAgICAgICAgIHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24gPSB0cnVlO1xuICAgICAgICB9KS5jYXRjaCgoKGVycm9yOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuc2F2ZUFzRHJhZnRCdXR0b25Mb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzRW5hYmxlQ3N2QWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH0pKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwcmV2aWV3Q29udGVudCc6XG4gICAgICAgIHRoaXMucHJldmlld0NvbnRlbnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhZGRGcm9tTGlicmFyeSc6XG4gICAgICAgIHRoaXMuc2hvd0xpYnJhcnlDb21wb25lbnRQYWdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3VibWl0Q29udGVudCc6XG4gICAgICAgIHRoaXMuc3VibWl0SGFuZGxlcigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlbW92ZUNvbnRlbnQnOlxuICAgICAgICB0aGlzLmRlbGV0ZUNvbmZpcm1NZXNzYWdlID0gdGhpcy5jb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNvbmZpcm1EZWxldGVOb2RlO1xuICAgICAgICB0aGlzLnNob3dEZWxldGVDb25maXJtYXRpb25Qb3BVcCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZWRpdENvbnRlbnQnOlxuICAgICAgICB0aGlzLnJlZGlyZWN0VG9RdWVzdGlvblRhYignZWRpdCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlamVjdENvbnRlbnQnOlxuICAgICAgICB0aGlzLnJlamVjdENvbnRlbnQoZXZlbnQuY29tbWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHVibGlzaENvbnRlbnQnOlxuICAgICAgICB0aGlzLnB1Ymxpc2hDb250ZW50KGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvbkZvcm1TdGF0dXNDaGFuZ2UnOlxuICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldEFjdGl2ZU5vZGUoKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkTm9kZSAmJiBzZWxlY3RlZE5vZGUuZGF0YS5pZCkge1xuICAgICAgICAgIHRoaXMuZm9ybVN0YXR1c01hcHBlcltzZWxlY3RlZE5vZGUuZGF0YS5pZF0gPSBldmVudC5ldmVudC5pc1ZhbGlkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzT2JqZWN0VHlwZUNvbGxlY3Rpb24pIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUNzdkRyb3Bkb3duT3B0aW9uc09uQ29sbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb25Gb3JtVmFsdWVDaGFuZ2UnOlxuICAgICAgICB0aGlzLnVwZGF0ZVRvb2xiYXJUaXRsZShldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmFja0NvbnRlbnQnOlxuICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbmRGb3JDb3JyZWN0aW9ucyc6XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKHsgY29tbWVudDogZXZlbnQuY29tbWVudCB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzb3VyY2luZ0FwcHJvdmUnOlxuICAgICAgICB0aGlzLnNvdXJjaW5nQXBwcm92ZUNvbnRlbnQoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NvdXJjaW5nUmVqZWN0JzpcbiAgICAgICAgdGhpcy5zb3VyY2luZ1JlamVjdENvbnRlbnQoeyBjb21tZW50OiBldmVudC5jb21tZW50IH0pXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWRkQ29sbGFib3JhdG9yJzpcbiAgICAgICAgdGhpcy50b2dnbGVDb2xsYWJvcmF0b3JNb2RhbFBvdXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzaG93UmV2aWV3Y29tbWVudHMnOlxuICAgICAgICB0aGlzLnNob3dSZXZpZXdNb2RhbCA9ICF0aGlzLnNob3dSZXZpZXdNb2RhbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXZpZXdDb250ZW50JzpcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvUXVlc3Rpb25UYWIoJ3JldmlldycpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BhZ2luYXRpb24nOlxuICAgICAgICB0aGlzLnBhZ2VJZCA9ICdwYWdpbmF0aW9uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwcm9ncmVzc1N0YXR1cyc6XG4gICAgICAgIHRoaXMucGFnZUlkID0gJ3Byb2dyZXNzU3RhdHVzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBjYXNlICdzaG93Q29ycmVjdGlvbmNvbW1lbnRzJzpcbiAgICAgICAgLy8gdGhpcy5jb250ZW50Q29tbWVudCA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5jb3JyZWN0aW9uQ29tbWVudHMnKVxuICAgICAgICAvLyB0aGlzLnNob3dSZXZpZXdNb2RhbCA9ICF0aGlzLnNob3dSZXZpZXdNb2RhbDtcbiAgICAgICAgLy8gYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZWRpcmVjdFRvQ2hhcHRlckxpc3RUYWIoZGF0YT86IGFueSkge1xuICAgIHRoaXMuZWRpdG9yRW1pdHRlci5lbWl0KHtcbiAgICAgIGNsb3NlOiB0cnVlLCBsaWJyYXJ5OiAnY29sbGVjdGlvbl9lZGl0b3InLCBhY3Rpb246IHRoaXMuYWN0aW9uVHlwZSwgaWRlbnRpZmllcjogdGhpcy5jb2xsZWN0aW9uSWQsXG4gICAgICAuLi5kYXRhXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVUb29sYmFyVGl0bGUoZGF0YTogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy50cmVlU2VydmljZS5nZXRBY3RpdmVOb2RlKCk7XG4gICAgaWYgKCFfLmlzRW1wdHkoZGF0YT8uZGF0YT8ubmFtZSkgJiYgc2VsZWN0ZWROb2RlPy5kYXRhPy5yb290KSB7XG4gICAgICB0aGlzLnRvb2xiYXJDb25maWcudGl0bGUgPSBkYXRhLmRhdGEubmFtZTtcbiAgICB9IGVsc2UgaWYgKF8uaXNFbXB0eShkYXRhPy5kYXRhPy5uYW1lKSAmJiBzZWxlY3RlZE5vZGU/LmRhdGE/LnJvb3QpIHtcbiAgICAgIHRoaXMudG9vbGJhckNvbmZpZy50aXRsZSA9ICdVbnRpdGxlZCc7XG4gICAgfVxuICB9XG5cbiAgc2hvd0xpYnJhcnlDb21wb25lbnRQYWdlKCkge1xuICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuY2hlY2tJZkNvbnRlbnRzQ2FuYmVBZGRlZCgpKSB7XG4gICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkRnJvbUxpYnJhcnlCdXR0b25Mb2FkZXIgPSB0cnVlO1xuICAgICAgdGhpcy5zYXZlQ29udGVudCgpLnRoZW4ocmVzID0+IHtcbiAgICAgICAgdGhpcy5saWJyYXJ5Q29tcG9uZW50SW5wdXQuY29sbGVjdGlvbklkID0gdGhpcy5jb2xsZWN0aW9uSWQ7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGVycy5hZGRGcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBhZ2VJZCA9ICdsaWJyYXJ5JztcbiAgICAgIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyKTtcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLmFkZEZyb21MaWJyYXJ5QnV0dG9uTG9hZGVyID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgc2hvd1F1ZXN0aW9uTGlicmFyeUNvbXBvbmVudFBhZ2UoKSB7XG4gICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5saWJyYXJ5Q29tcG9uZW50SW5wdXQuc2VhcmNoRm9ybUNvbmZpZykgfHwgXy5pc0VtcHR5KHRoaXMubGlicmFyeUNvbXBvbmVudElucHV0LnNlYXJjaEZvcm1Db25maWcpKSB7XG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLmVyci5zZWFyY2hDb25maWdOb3RGb3VuZCcpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5jaGVja0lmQ29udGVudHNDYW5iZUFkZGVkKCkpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uQ2F0ZWdvcnkgPSBbXTtcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGVycy5hZGRRdWVzdGlvbkZyb21MaWJyYXJ5QnV0dG9uTG9hZGVyID0gdHJ1ZTtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmVkaXRvclNlcnZpY2UudGVtcGxhdGVMaXN0KSAmJlxuICAgICAgICBfLmlzQXJyYXkodGhpcy5lZGl0b3JTZXJ2aWNlLnRlbXBsYXRlTGlzdCkpIHtcbiAgICAgICAgICBfLmZvckVhY2godGhpcy5lZGl0b3JTZXJ2aWNlLnRlbXBsYXRlTGlzdCwgKHRlbXBsYXRlKSA9PiB7XG4gICAgICAgICAgICBxdWVzdGlvbkNhdGVnb3J5LnB1c2goe25hbWU6IHRlbXBsYXRlLCB0YXJnZXRPYmplY3RUeXBlOiAnUXVlc3Rpb24nfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIHRoaXMuc2F2ZUNvbnRlbnQoKS50aGVuKChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlTm9kZSA9IHRoaXMudHJlZVNlcnZpY2UuZ2V0QWN0aXZlTm9kZSgpO1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkUXVlc3Rpb25Gcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnF1ZXN0aW9ubGlicmFyeUlucHV0ID0ge1xuICAgICAgICAgIGxpYnJhcnlMYWJlbHM6IHtcbiAgICAgICAgICAgIGl0ZW1UeXBlOiBfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5sYmwucXVlc3Rpb25zZXRBZGRGcm9tTGlicmFyeUl0ZW1MYWJlbCcpLFxuICAgICAgICAgICAgY29sbGVjdGlvblR5cGU6IF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLmxibC5xdWVzdGlvbnNldEFkZEZyb21MaWJyYXJ5Q29sbGVjdGlvbkxhYmVsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRhcmdldFByaW1hcnlDYXRlZ29yaWVzOiBxdWVzdGlvbkNhdGVnb3J5LFxuICAgICAgICAgIGNvbGxlY3Rpb25JZDogdGhpcy5jb2xsZWN0aW9uSWQsXG4gICAgICAgICAgZXhpc3Rpbmdjb250ZW50Q291bnRzOiB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0Q29udGVudENoaWxkcmVucygpLmxlbmd0aCxcbiAgICAgICAgICBjb2xsZWN0aW9uOiBhY3RpdmVOb2RlPy5kYXRhPy5tZXRhZGF0YSxcbiAgICAgICAgICBmcmFtZXdvcms6IHRoaXMub3JnYW5pc2F0aW9uRnJhbWV3b3JrLFxuICAgICAgICAgIGVkaXRvckNvbmZpZzogdGhpcy5lZGl0b3JDb25maWcsXG4gICAgICAgICAgc2VhcmNoRm9ybUNvbmZpZzogIHRoaXMubGlicmFyeUNvbXBvbmVudElucHV0LnNlYXJjaEZvcm1Db25maWdcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5wYWdlSWQgPSAncXVlc3Rpb25fbGlicmFyeSc7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucXVlc3Rpb25saWJyYXJ5SW5wdXQpO1xuICAgICAgfSkuY2F0Y2goKChlcnJvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkUXVlc3Rpb25Gcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIGxpYnJhcnlFdmVudExpc3RlbmVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMucGFnZUlkID0gJ2NvbGxlY3Rpb25fZWRpdG9yJztcbiAgICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQgPSB0aGlzLnBhZ2VJZDtcbiAgICAgIHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24gPSB0cnVlO1xuICAgICAgdGhpcy5pc0NvbXBvbmVuZXRJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBzYXZlQ29udGVudCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9ybVN0YXR1cygpKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDI5JykpO1xuICAgICAgfVxuICAgICAgY29uc3Qgbm9kZXNNb2RpZmllZCA9IF8uZ2V0KHRoaXMuZWRpdG9yU2VydmljZS5nZXRDb2xsZWN0aW9uSGllcmFyY2h5KCksICdub2Rlc01vZGlmaWVkJyk7XG4gICAgICBjb25zdCBvYmplY3RUeXBlID0gdGhpcy5jb25maWdTZXJ2aWNlLmNhdGVnb3J5Q29uZmlnW3RoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5vYmplY3RUeXBlXTtcbiAgICAgIGlmIChvYmplY3RUeXBlID09PSAncXVlc3Rpb25TZXQnKSB7XG4gICAgICAgIGNvbnN0IG1heFNjb3JlID0gYXdhaXQgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldE1heFNjb3JlKCk7XG4gICAgICAgIHRoaXMudHJlZVNlcnZpY2UudXBkYXRlTWV0YURhdGFQcm9wZXJ0eSgnbWF4U2NvcmUnLCBtYXhTY29yZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UudXBkYXRlSGllcmFyY2h5KClcbiAgICAgICAgLnBpcGUobWFwKGRhdGEgPT4gXy5nZXQoZGF0YSwgJ3Jlc3VsdCcpKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBpZiAodGhpcy50b29sYmFyQ29uZmlnLnNob3dEaWFsY29kZSA9PT0gJ3llcycpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbGNvZGVTZXJ2aWNlLmhpZ2hsaWdodE5vZGVGb3JJbnZhbGlkRGlhbENvZGUocmVzcG9uc2UsIG5vZGVzTW9kaWZpZWQsIHRoaXMuY29sbGVjdGlvbklkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFfLmlzRW1wdHkocmVzcG9uc2UuaWRlbnRpZmllcnMpKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLnJlcGxhY2VOb2RlSWQocmVzcG9uc2UuaWRlbnRpZmllcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNsZWFyVHJlZUNhY2hlKCk7XG4gICAgICAgICAgdGhpcy50cmVlU2VydmljZS5uZXh0VHJlZVN0YXR1cygnc2F2ZWQnKTtcbiAgICAgICAgICByZXNvbHZlKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLnN1Y2Nlc3MuMDAxJykpO1xuICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgIHJlamVjdChfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDEnKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3VibWl0SGFuZGxlcigpIHtcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVGb3JtU3RhdHVzKCkpIHtcbiAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDA1JykpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b29sYmFyQ29uZmlnLnNob3dEaWFsY29kZSA9PT0gJ3llcycpIHtcbiAgICAgIGlmICh0aGlzLmRpYWxjb2RlU2VydmljZS52YWxpZGF0ZVVuaXRzRGlhbGNvZGVzKCkpIHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybmluZyhfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy53YXJuaW5nLjAwMScpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUZvcm1TdGF0dXMoKSB7XG4gICAgY29uc3QgaXNWYWxpZCA9IF8uZXZlcnkodGhpcy5mb3JtU3RhdHVzTWFwcGVyLCBCb29sZWFuKTtcbiAgICBpZiAoaXNWYWxpZCkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIF8uZm9ySW4odGhpcy5mb3JtU3RhdHVzTWFwcGVyLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudHJlZVNlcnZpY2UuaGlnaGxpZ2h0Tm9kZShrZXksICdyZW1vdmUnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZVNlcnZpY2UuaGlnaGxpZ2h0Tm9kZShrZXksICdhZGQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcmV2aWV3Q29udGVudCgpIHtcbiAgICB0aGlzLmJ1dHRvbkxvYWRlcnMucHJldmlld0J1dHRvbkxvYWRlciA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzU3RhdHVzUmV2aWV3TW9kZSkge1xuICAgICAgdGhpcy5zYXZlQ29udGVudCgpLnRoZW4ocmVzID0+IHtcbiAgICAgICAgdGhpcy5zZXRVcGRhdGVkVHJlZU5vZGVEYXRhKCk7XG4gICAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGVycy5wcmV2aWV3QnV0dG9uTG9hZGVyID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRVcGRhdGVkVHJlZU5vZGVEYXRhKCk7XG4gICAgfVxuICB9XG4gIHNlbmRGb3JSZXZpZXcoKSB7XG4gICAgdGhpcy5zYXZlQ29udGVudCgpLnRoZW4obWVzc2cgPT4ge1xuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJldmlld0NvbnRlbnQodGhpcy5jb2xsZWN0aW9uSWQpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLnN1Y2Nlc3MuMDAyJykpO1xuICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYigpO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDInKSk7XG4gICAgICB9KTtcbiAgICB9KS5jYXRjaChlcnIgPT4gdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnIpKTtcbiAgfVxuICByZWplY3RDb250ZW50KGNvbW1lbnQpIHtcbiAgICBjb25zdCBlZGl0YWJsZUZpZWxkcyA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZywgJ2VkaXRhYmxlRmllbGRzJyk7XG4gICAgaWYgKHRoaXMuZWRpdG9yTW9kZSA9PT0gJ29yZ3JldmlldycgJiYgZWRpdGFibGVGaWVsZHMgJiYgIV8uaXNFbXB0eShlZGl0YWJsZUZpZWxkc1t0aGlzLmVkaXRvck1vZGVdKSkge1xuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9ybVN0YXR1cygpKSB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDI5JykpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UudXBkYXRlQ29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25JZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdWJtaXRSZXF1ZXN0Q2hhbmdlcyh0aGlzLmNvbGxlY3Rpb25JZCwgY29tbWVudCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLnN1Y2Nlc3MuMDAzJykpO1xuICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKCk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDMnKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnIpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdWJtaXRSZXF1ZXN0Q2hhbmdlcyh0aGlzLmNvbGxlY3Rpb25JZCwgY29tbWVudCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcyhfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5zdWNjZXNzLjAwMycpKTtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hhcHRlckxpc3RUYWIoKTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDAzJykpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGlzaENvbnRlbnQoZXZlbnQpIHtcbiAgICBjb25zdCBlZGl0YWJsZUZpZWxkcyA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29uZmlnLmVkaXRhYmxlRmllbGRzJyk7XG4gICAgaWYgKHRoaXMuZWRpdG9yTW9kZSA9PT0gJ29yZ3JldmlldycgJiYgZWRpdGFibGVGaWVsZHMgJiYgIV8uaXNFbXB0eShlZGl0YWJsZUZpZWxkc1t0aGlzLmVkaXRvck1vZGVdKSkge1xuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9ybVN0YXR1cygpKSB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDI5JykpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UudXBkYXRlQ29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25JZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5wdWJsaXNoQ29udGVudCh0aGlzLmNvbGxlY3Rpb25JZCwgZXZlbnQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLnN1Y2Nlc3MuMDA0JykpO1xuICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKCk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDQnKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnIpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5wdWJsaXNoQ29udGVudCh0aGlzLmNvbGxlY3Rpb25JZCwgZXZlbnQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuc3VjY2Vzcy4wMDQnKSk7XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKCk7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLmVycm9yLjAwNCcpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBzb3VyY2luZ0FwcHJvdmVDb250ZW50KGV2ZW50KSB7XG4gICAgY29uc3QgZWRpdGFibGVGaWVsZHMgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZy5jb25maWcsICdlZGl0YWJsZUZpZWxkcycpO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICBpZiAodGhpcy5lZGl0b3JNb2RlID09PSAnc291cmNpbmdyZXZpZXcnICYmICgoZWRpdGFibGVGaWVsZHMgJiYgIV8uaXNFbXB0eShlZGl0YWJsZUZpZWxkc1t0aGlzLmVkaXRvck1vZGVdKSkgfHwgIV8uaXNFbXB0eSh0aGlzLnB1Ymxpc2hjaGVja2xpc3QpKSkge1xuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9ybVN0YXR1cygpKSB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDI5JykpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UudXBkYXRlQ29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25JZCwgZXZlbnQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKCk7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYigpO1xuICAgIH1cbiAgfVxuICBzb3VyY2luZ1JlamVjdENvbnRlbnQob2JqKSB7XG4gICAgY29uc3QgZWRpdGFibGVGaWVsZHMgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZy5jb25maWcsICdlZGl0YWJsZUZpZWxkcycpO1xuICAgIGlmICh0aGlzLmVkaXRvck1vZGUgPT09ICdzb3VyY2luZ3JldmlldycgJiYgZWRpdGFibGVGaWVsZHMgJiYgIV8uaXNFbXB0eShlZGl0YWJsZUZpZWxkc1t0aGlzLmVkaXRvck1vZGVdKSkge1xuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9ybVN0YXR1cygpKSB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDI5JykpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UudXBkYXRlQ29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25JZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hhcHRlckxpc3RUYWIob2JqKTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKG9iaik7XG4gICAgfVxuICB9XG4gIHNldFVwZGF0ZWRUcmVlTm9kZURhdGEoKSB7XG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZldGNoQ29sbGVjdGlvbkhpZXJhcmNoeSh0aGlzLmNvbGxlY3Rpb25JZCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdoaWVyYXJjaHlEYXRhJywgcmVzKTtcbiAgICAgIHRoaXMuY29sbGVjdGlvblRyZWVOb2RlcyA9IHtcbiAgICAgICAgZGF0YTogXy5nZXQocmVzLCBgcmVzdWx0LiR7dGhpcy5jb25maWdTZXJ2aWNlLmNhdGVnb3J5Q29uZmlnW3RoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5vYmplY3RUeXBlXX1gKVxuICAgICAgfTtcbiAgICAgIHRoaXMudXBkYXRlVHJlZU5vZGVEYXRhKCk7XG4gICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMucHJldmlld0J1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93UHJldmlldyA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudDogYW55ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3ByZXZpZXdQbGF5ZXJDb250YWluZXInKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwMCk7XG4gICAgfSwgZXJyb3IgPT4ge1xuICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLnByZXZpZXdCdXR0b25Mb2FkZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQoZXJyb3IsICdlcnJvci5wYXJhbXMuZXJybXNnJykpO1xuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVRyZWVOb2RlRGF0YSgpIHtcbiAgICBjb25zdCB0cmVlTm9kZURhdGEgPSBfLmdldCh0aGlzLnRyZWVTZXJ2aWNlLmdldEZpcnN0Q2hpbGQoKSwgJ2RhdGEubWV0YWRhdGEnKTtcbiAgICBpZiAoIXRyZWVOb2RlRGF0YS50aW1lTGltaXRzKSB7XG4gICAgICB0cmVlTm9kZURhdGEudGltZUxpbWl0cyA9IHt9O1xuICAgIH1cbiAgICBpZiAodHJlZU5vZGVEYXRhLm1heFRpbWUpIHtcbiAgICAgIHRyZWVOb2RlRGF0YS50aW1lTGltaXRzLm1heFRpbWUgPSB0aGlzLmhlbHBlclNlcnZpY2UuaG1zVG9TZWNvbmRzKHRyZWVOb2RlRGF0YS5tYXhUaW1lKTtcbiAgICB9XG4gICAgaWYgKHRyZWVOb2RlRGF0YS53YXJuaW5nVGltZSkge1xuICAgICAgdHJlZU5vZGVEYXRhLnRpbWVMaW1pdHMud2FybmluZ1RpbWUgPSB0aGlzLmhlbHBlclNlcnZpY2UuaG1zVG9TZWNvbmRzKHRyZWVOb2RlRGF0YS53YXJuaW5nVGltZSk7XG4gICAgfVxuICAgIHRoaXMuY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhID0gXy5tZXJnZSh0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YSwgXy5vbWl0KHRyZWVOb2RlRGF0YSwgWydjaGlsZE5vZGVzJ10pKTtcbiAgfVxuICB0cmVlRXZlbnRMaXN0ZW5lcihldmVudDogYW55KSB7XG4gICAgdGhpcy5hY3Rpb25UeXBlID0gZXZlbnQudHlwZTtcbiAgICB0aGlzLnVwZGF0ZVRyZWVOb2RlRGF0YSgpO1xuICAgIGlmICh0aGlzLmlzT2JqZWN0VHlwZUNvbGxlY3Rpb24pIHtcbiAgICAgIHRoaXMuaGFuZGxlQ3N2RHJvcGRvd25PcHRpb25zT25Db2xsZWN0aW9uKCk7XG4gICAgfVxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnbm9kZVNlbGVjdCc6XG4gICAgICAgIHRoaXMudXBkYXRlU3VibWl0QnRuVmlzaWJpbGl0eSgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSBfLmNsb25lRGVlcChldmVudC5kYXRhKTtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnROb2RlRm9sZGVyID0gXy5nZXQodGhpcy5zZWxlY3RlZE5vZGVEYXRhLCAnZm9sZGVyJyk7XG4gICAgICAgIHRoaXMuaXNDdXJyZW50Tm9kZVJvb3QgPSBfLmdldCh0aGlzLnNlbGVjdGVkTm9kZURhdGEsICdkYXRhLnJvb3QnKTtcbiAgICAgICAgLy8gVE9ETzogcmV0aGluayBiZWxvdyBsaW5lIGNvZGVcbiAgICAgICAgdGhpcy5pc1F1bWxQbGF5ZXIgPSBfLmdldCh0aGlzLnNlbGVjdGVkTm9kZURhdGEsICdkYXRhLm1ldGFkYXRhLm1pbWVUeXBlJykgPT09ICdhcHBsaWNhdGlvbi92bmQuc3VuYmlyZC5xdWVzdGlvbic7XG4gICAgICAgIHRoaXMuc2V0VGVtcGxhdGVMaXN0KCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGVOb2RlJzpcbiAgICAgICAgdGhpcy5kZWxldGVDb25maXJtTWVzc2FnZSA9IHRoaXMuY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb25maXJtRGVsZXRlTm9kZTtcbiAgICAgICAgaWYgKCFldmVudC5pc0NvbnRlbnQgJiYgXy5oYXModGhpcy5lZGl0b3JDb25maWcuY29uZmlnLCAnaGllcmFyY2h5LmxldmVsMScpKSB7XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICAgIHRoaXMuZGVsZXRlQ29uZmlybU1lc3NhZ2UgPSBfLnJlcGxhY2UodGhpcy5kZWxldGVDb25maXJtTWVzc2FnZSwgJ05vZGUnLCBfLmdldCh0aGlzLmVkaXRvckNvbmZpZy5jb25maWcsICdoaWVyYXJjaHkubGV2ZWwxLm5hbWUnKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NyZWF0ZU5ld0NvbnRlbnQnOlxuICAgICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmNoZWNrSWZDb250ZW50c0NhbmJlQWRkZWQoKSkge1xuICAgICAgICAgIHRoaXMuYnV0dG9uTG9hZGVycy5hZGRGcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zYXZlQ29udGVudCgpLnRoZW4oKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLmFkZEZyb21MaWJyYXJ5QnV0dG9uTG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNob3dRdWVzdGlvblRlbXBsYXRlUG9wdXAgPSB0cnVlO1xuICAgICAgICAgIH0pLmNhdGNoKCgoZXJyb3I6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkRnJvbUxpYnJhcnlCdXR0b25Mb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzZXRUZW1wbGF0ZUxpc3QoKSB7XG4gICAgaWYgKHRoaXMuaXNDdXJyZW50Tm9kZVJvb3QpIHtcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gXy5mbGF0TWFwKF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29uZmlnLmNoaWxkcmVuJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IF8uZmxhdE1hcChcbiAgICAgICAgXy5nZXQodGhpcy5lZGl0b3JTZXJ2aWNlLmVkaXRvckNvbmZpZy5jb25maWcsIGBoaWVyYXJjaHkubGV2ZWwke3RoaXMuc2VsZWN0ZWROb2RlRGF0YS5nZXRMZXZlbCgpIC0gMX0uY2hpbGRyZW5gKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVOb2RlKCkge1xuICAgIGNvbnN0IGFjdGl2ZU5vZGUgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldEFjdGl2ZU5vZGUoKTtcbiAgICBkZWxldGUgdGhpcy5mb3JtU3RhdHVzTWFwcGVyW2FjdGl2ZU5vZGUuZGF0YS5pZF07XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnRyZWVTZXJ2aWNlLmdldENoaWxkcmVuKCk7XG4gICAgXy5mb3JFYWNoKGNoaWxkcmVuLCAobm9kZSkgPT4ge1xuICAgICAgaWYgKF8uaGFzKHRoaXMuZm9ybVN0YXR1c01hcHBlciwgbm9kZS5kYXRhLmlkKSkge1xuICAgICAgICBkZWxldGUgdGhpcy5mb3JtU3RhdHVzTWFwcGVyW25vZGUuZGF0YS5pZF07XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy50cmVlU2VydmljZS5yZW1vdmVOb2RlKCk7XG4gICAgdGhpcy51cGRhdGVTdWJtaXRCdG5WaXNpYmlsaXR5KCk7XG4gICAgdGhpcy5zaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSBmYWxzZTtcbiAgICB0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YS5jaGlsZE5vZGVzID0gXy5maWx0ZXIodGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLmRhdGEuY2hpbGROb2RlcywgKGtleSkgPT4ge1xuICAgICAgcmV0dXJuIGtleSAhPT0gYWN0aXZlTm9kZS5kYXRhLmlkO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3VibWl0QnRuVmlzaWJpbGl0eSgpIHtcbiAgICBjb25zdCByb290Rmlyc3RDaGlsZE5vZGUgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldEZpcnN0Q2hpbGQoKTtcbiAgICBpZiAocm9vdEZpcnN0Q2hpbGROb2RlICYmICFyb290Rmlyc3RDaGlsZE5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMudG9vbGJhckNvbmZpZy5oYXNDaGlsZHJlbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvb2xiYXJDb25maWcuaGFzQ2hpbGRyZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVGVsZW1ldHJ5RW5kRXZlbnQoKSB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RW5kID0ge1xuICAgICAgdHlwZTogJ2VkaXRvcicsXG4gICAgICBwYWdlaWQ6IHRoaXMudGVsZW1ldHJ5U2VydmljZT8udGVsZW1ldHJ5UGFnZUlkLFxuICAgICAgbW9kZTogdGhpcy5lZGl0b3JNb2RlLFxuICAgICAgZHVyYXRpb246IF8udG9TdHJpbmcoKERhdGUubm93KCkgLSB0aGlzLnBhZ2VTdGFydFRpbWUpIC8gMTAwMClcbiAgICB9O1xuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZT8uZW5kKHRlbGVtZXRyeUVuZCk7XG4gIH1cblxuICBoYW5kbGVUZW1wbGF0ZVNlbGVjdGlvbigkZXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RlZFF1ZXN0aW9uVHlwZSA9ICRldmVudDtcbiAgICB0aGlzLnNob3dRdWVzdGlvblRlbXBsYXRlUG9wdXAgPSBmYWxzZTtcbiAgICBpZiAoc2VsZWN0ZWRRdWVzdGlvblR5cGUgJiYgc2VsZWN0ZWRRdWVzdGlvblR5cGUudHlwZSA9PT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldENhdGVnb3J5RGVmaW5pdGlvbihzZWxlY3RlZFF1ZXN0aW9uVHlwZSwgbnVsbCwgJ1F1ZXN0aW9uJykucGlwZShjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgIGNvbnN0IGVyckluZm8gPSB7XG4gICAgICAgIGVycm9yTXNnOiBfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDYnKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcih0aGlzLmVkaXRvclNlcnZpY2UuYXBpRXJyb3JIYW5kbGluZyhlcnJvciwgZXJySW5mbykpO1xuICAgIH0pKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWR0ZW1wbGF0ZURldGFpbHMgPSByZXMucmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbjtcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWxlY3RlZENoaWxkcmVuWydsYWJlbCddPXNlbGVjdGVkdGVtcGxhdGVEZXRhaWxzLmxhYmVsO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRUZW1wbGF0ZUZvcm1GaWVsZHMgPSBfLmdldChzZWxlY3RlZHRlbXBsYXRlRGV0YWlscywgJ2Zvcm1zLmNyZWF0ZS5wcm9wZXJ0aWVzJyk7XG4gICAgICBpZiAoIV8uaXNFbXB0eShzZWxlY3RlZFRlbXBsYXRlRm9ybUZpZWxkcykpIHtcbiAgICAgICAgY29uc3QgcXVlc3Rpb25DYXRlZ29yeUNvbmZpZyA9IHNlbGVjdGVkVGVtcGxhdGVGb3JtRmllbGRzO1xuICAgICAgICBxdWVzdGlvbkNhdGVnb3J5Q29uZmlnLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgIGlmIChmaWVsZC5jb2RlID09PSAnZXZpZGVuY2VNaW1lVHlwZScpIHtcbiAgICAgICAgICAgIHRoaXMuZXZpZGVuY2VNaW1lVHlwZSA9IGZpZWxkLnJhbmdlO1xuICAgICAgICAgICAgZmllbGQub3B0aW9ucyA9IHRoaXMuc2V0RXZpZGVuY2U7XG4gICAgICAgICAgICBmaWVsZC5yYW5nZSA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sZWFmRm9ybUNvbmZpZyA9IHF1ZXN0aW9uQ2F0ZWdvcnlDb25maWc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhdE1ldGFEYXRhID0gXy5nZXQoc2VsZWN0ZWR0ZW1wbGF0ZURldGFpbHMsICdvYmplY3RNZXRhZGF0YScpO1xuICAgICAgdGhpcy5zb3VyY2luZ1NldHRpbmdzID0gXy5nZXQoY2F0TWV0YURhdGEsICdjb25maWcuc291cmNpbmdTZXR0aW5ncycpIHx8IHt9O1xuICAgICAgIV8uaXNVbmRlZmluZWQodGhpcy5lZGl0b3JDb25maWcuY29uZmlnLnJlbmRlclRheG9ub215KSA/ICh0aGlzLnF1ZXN0aW9uQ29tcG9uZW50SW5wdXQuY29uZmlnID17bWF4aW11bU9wdGlvbnM6Xy5nZXQoY2F0TWV0YURhdGEsICdjb25maWcubWF4aW11bU9wdGlvbnMnKX0pIDogJycgO1xuICAgICAgaWYgKCFfLmhhcyh0aGlzLnNvdXJjaW5nU2V0dGluZ3MsICdlbmZvcmNlQ29ycmVjdEFuc3dlcicpKSB7XG4gICAgICAgIHRoaXMuc291cmNpbmdTZXR0aW5ncy5lbmZvcmNlQ29ycmVjdEFuc3dlciA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoXy5pc0VtcHR5KF8uZ2V0KGNhdE1ldGFEYXRhLCAnc2NoZW1hLnByb3BlcnRpZXMuaW50ZXJhY3Rpb25UeXBlcy5pdGVtcy5lbnVtJykpKSB7XG4gICAgICAgIC8vIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IodGhpcy5yZXNvdXJjZVNlcnZpY2UubWVzc2FnZXMuZW1zZy5tMDAyNik7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWxlY3RlZENoaWxkcmVuID0ge1xuICAgICAgICAgIHByaW1hcnlDYXRlZ29yeTogc2VsZWN0ZWRRdWVzdGlvblR5cGUsXG4gICAgICAgICAgbWltZVR5cGU6IGNhdE1ldGFEYXRhLnNjaGVtYS5wcm9wZXJ0aWVzLm1pbWVUeXBlLmVudW1bMF0sXG4gICAgICAgICAgaW50ZXJhY3Rpb25UeXBlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb1F1ZXN0aW9uVGFiKHVuZGVmaW5lZCwgJ2RlZmF1bHQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uVHlwZXMgPSBjYXRNZXRhRGF0YS5zY2hlbWEucHJvcGVydGllcy5pbnRlcmFjdGlvblR5cGVzLml0ZW1zLmVudW07XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWxlY3RlZENoaWxkcmVuID0ge1xuICAgICAgICAgIHByaW1hcnlDYXRlZ29yeTogc2VsZWN0ZWRRdWVzdGlvblR5cGUsXG4gICAgICAgICAgbWltZVR5cGU6IGNhdE1ldGFEYXRhLnNjaGVtYS5wcm9wZXJ0aWVzLm1pbWVUeXBlLmVudW1bMF0sXG4gICAgICAgICAgaW50ZXJhY3Rpb25UeXBlOiBpbnRlcmFjdGlvblR5cGVzWzBdXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb1F1ZXN0aW9uVGFiKHVuZGVmaW5lZCwgaW50ZXJhY3Rpb25UeXBlc1swXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZWRpcmVjdFRvUXVlc3Rpb25UYWIobW9kZSwgaW50ZXJhY3Rpb25UeXBlPykge1xuICAgIGxldCBxdWVzdGlvbklkID0gIV8uaXNVbmRlZmluZWQobW9kZSkgPyB0aGlzLnNlbGVjdGVkTm9kZURhdGE/LmRhdGE/Lm1ldGFkYXRhPy5pZGVudGlmaWVyIDogdW5kZWZpbmVkO1xuICAgIGxldCBxdWVzdGlvbkNhdGVnb3J5ID0gJyc7XG4gICAgaWYgKHRoaXMub2JqZWN0VHlwZSA9PT0gJ3F1ZXN0aW9uJykge1xuICAgICAgcXVlc3Rpb25JZCA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5pZGVudGlmaWVyJyk7XG4gICAgICBpbnRlcmFjdGlvblR5cGUgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5pbnRlcmFjdGlvblR5cGUnKTtcbiAgICAgIHF1ZXN0aW9uQ2F0ZWdvcnkgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5xdWVzdGlvbkNhdGVnb3J5Jyk7XG4gICAgICB0aGlzLmNyZWF0aW9uQ29udGV4dCA9ICB7XG4gICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgIG9iamVjdFR5cGU6IHRoaXMub2JqZWN0VHlwZSxcbiAgICAgICAgY29sbGVjdGlvbk9iamVjdFR5cGU6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5jb2xsZWN0aW9uT2JqZWN0VHlwZScpLFxuICAgICAgICBpc1JlYWRPbmx5TW9kZTogXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcuaXNSZWFkT25seU1vZGUnKSxcbiAgICAgICAgdW5pdElkZW50aWZpZXI6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC51bml0SWRlbnRpZmllcicpLFxuICAgICAgICBjb3JyZWN0aW9uQ29tbWVudHM6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5jb3JyZWN0aW9uQ29tbWVudHMnKSxcbiAgICAgICAgZWRpdGFibGVGaWVsZHM6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29uZmlnLmVkaXRhYmxlRmllbGRzJylcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5xdWVzdGlvbkNvbXBvbmVudElucHV0ID0ge1xuICAgICAgcXVlc3Rpb25TZXRJZDogdGhpcy5jb2xsZWN0aW9uSWQsXG4gICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbklkLFxuICAgICAgdHlwZTogaW50ZXJhY3Rpb25UeXBlLFxuICAgICAgc2V0Q2hpbGRRdWVzdG9uOm1vZGUgPT09ICdlZGl0JyA/IGZhbHNlIDogdGhpcy5zZXRDaGlsZFF1ZXN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IHF1ZXN0aW9uQ2F0ZWdvcnksXG4gICAgICBjcmVhdGlvbkNvbnRleHQ6IHRoaXMuY3JlYXRpb25Db250ZXh0LCAvLyBQYXNzIHRoZSBjcmVhdGlvbiBjb250ZXh0IHRvIHRoZSBxdWVzdGlvbi1jb21wb25lbnRcbiAgICAgIGNyZWF0aW9uTW9kZTogbW9kZVxuICAgIH07XG5cbiAgICBpZighXy5pc1VuZGVmaW5lZChtb2RlKSAmJiAhXy5pc1VuZGVmaW5lZCh0aGlzLmVkaXRvckNvbmZpZy5jb25maWcucmVuZGVyVGF4b25vbXkpKXtcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWxlY3RlZENoaWxkcmVuID0ge1xuICAgICAgICBwcmltYXJ5Q2F0ZWdvcnk6IF8uZ2V0KHRoaXMuc2VsZWN0ZWROb2RlRGF0YSwgJ2RhdGEubWV0YWRhdGEucHJpbWFyeUNhdGVnb3J5JyksXG4gICAgICAgIGludGVyYWN0aW9uVHlwZTogXy5nZXQodGhpcy5zZWxlY3RlZE5vZGVEYXRhLCAnZGF0YS5tZXRhZGF0YS5pbnRlcmFjdGlvblR5cGVzWzBdJylcbiAgICAgIH07XG4gICAgICAgIHRoaXMucXVlc3Rpb25Db21wb25lbnRJbnB1dCA9IHtcbiAgICAgICAgICAuLi50aGlzLnF1ZXN0aW9uQ29tcG9uZW50SW5wdXQsXG4gICAgICAgICAgY3JlYXRpb25Db250ZXh0OntcbiAgICAgICAgICAgIGlzUmVhZE9ubHlNb2RlOiBtb2RlICE9PSAnZWRpdCcgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICBjb3JyZWN0aW9uQ29tbWVudHM6dGhpcy5jb250ZW50Q29tbWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0Q2F0ZWdvcnlEZWZpbml0aW9uKHRoaXMuc2VsZWN0ZWROb2RlRGF0YS5kYXRhLm1ldGFkYXRhLnByaW1hcnlDYXRlZ29yeSwgbnVsbCwgJ1F1ZXN0aW9uJylcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZHRlbXBsYXRlRGV0YWlscyA9IHJlcy5yZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2VsZWN0ZWRDaGlsZHJlblsnbGFiZWwnXT1zZWxlY3RlZHRlbXBsYXRlRGV0YWlscy5sYWJlbDtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZW1wbGF0ZUZvcm1GaWVsZHMgPSBfLmdldChzZWxlY3RlZHRlbXBsYXRlRGV0YWlscywgJ2Zvcm1zLmNyZWF0ZS5wcm9wZXJ0aWVzJyk7XG4gICAgICAgIHRoaXMucXVlc3Rpb25Db21wb25lbnRJbnB1dC5jb25maWcgPXttYXhpbXVtT3B0aW9uczpfLmdldChzZWxlY3RlZHRlbXBsYXRlRGV0YWlscywgJ29iamVjdE1ldGFkYXRhLmNvbmZpZy5tYXhpbXVtT3B0aW9ucycpfVxuICAgICAgICBpZiAoIV8uaXNFbXB0eShzZWxlY3RlZFRlbXBsYXRlRm9ybUZpZWxkcykpIHtcbiAgICAgICAgICBjb25zdCBxdWVzdGlvbkNhdGVnb3J5Q29uZmlnID0gc2VsZWN0ZWRUZW1wbGF0ZUZvcm1GaWVsZHM7XG4gICAgICAgICAgcXVlc3Rpb25DYXRlZ29yeUNvbmZpZy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5jb2RlID09PSAnZXZpZGVuY2VNaW1lVHlwZScpIHtcbiAgICAgICAgICAgICAgdGhpcy5ldmlkZW5jZU1pbWVUeXBlID0gZmllbGQucmFuZ2U7XG4gICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMgPSB0aGlzLnNldEV2aWRlbmNlO1xuICAgICAgICAgICAgICBmaWVsZC5yYW5nZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5sZWFmRm9ybUNvbmZpZyA9IHF1ZXN0aW9uQ2F0ZWdvcnlDb25maWc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2F0TWV0YURhdGEgPSBzZWxlY3RlZHRlbXBsYXRlRGV0YWlscy5vYmplY3RNZXRhZGF0YTtcbiAgICAgICAgdGhpcy5zb3VyY2luZ1NldHRpbmdzID0gY2F0TWV0YURhdGE/LmNvbmZpZz8uc291cmNpbmdTZXR0aW5ncyB8fCB7fTtcbiAgICAgICAgaWYgKCFfLmhhcyh0aGlzLnNvdXJjaW5nU2V0dGluZ3MsICdlbmZvcmNlQ29ycmVjdEFuc3dlcicpKSB7XG4gICAgICAgICAgdGhpcy5zb3VyY2luZ1NldHRpbmdzLmVuZm9yY2VDb3JyZWN0QW5zd2VyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhZ2VJZCA9ICdxdWVzdGlvbic7XG4gICAgICB9LChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBlcnJJbmZvID0ge1xuICAgICAgICAgIGVycm9yTXNnOiBfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDYnKSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodGhpcy5lZGl0b3JTZXJ2aWNlLmFwaUVycm9ySGFuZGxpbmcoZXJyb3IsIGVyckluZm8pKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2V7XG4gICAgdGhpcy5wYWdlSWQgPSAncXVlc3Rpb24nO1xuICAgIH1cbiAgfVxuXG4gIHF1ZXN0aW9uRXZlbnRMaXN0ZW5lcihldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGVEYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMubWVyZ2VDb2xsZWN0aW9uRXh0ZXJuYWxQcm9wZXJ0aWVzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5wYWdlSWQgPSAnY29sbGVjdGlvbl9lZGl0b3InO1xuICAgICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCA9IHRoaXMucGFnZUlkO1xuICAgICAgdGhpcy5pc0VuYWJsZUNzdkFjdGlvbiA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgY29udGVudFBvbGljeVVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JTZXJ2aWNlLmNvbnRlbnRQb2xpY3lVcmw7XG4gIH1cblxuICBzaG93Q29tbWVudEFkZGVkQWdhaW5zdENvbnRlbnQoKSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgIGlmICh0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YS5zdGF0dXMgPT09ICdEcmFmdCcgJiYgdGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLmRhdGEucHJldlN0YXR1cyAgPT09ICdSZXZpZXcnICYmIF8uaGFzKHRoaXMuY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhLCAncmVqZWN0Q29tbWVudCcpKSB7XG4gICAgICB0aGlzLmNvbnRlbnRDb21tZW50ID0gXy5nZXQodGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLmRhdGEsICdyZWplY3RDb21tZW50Jyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKF8uZ2V0KHRoaXMuZWRpdG9yU2VydmljZSwgJ2VkaXRvckNvbmZpZy5jb25maWcuc2hvd0NvcnJlY3Rpb25Db21tZW50cycpKSB7XG4gICAgICB0aGlzLmNvbnRlbnRDb21tZW50ID0gXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LmNvcnJlY3Rpb25Db21tZW50cycpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBoYW5kbGVDc3ZEcm9wZG93bk9wdGlvbnNPbkNvbGxlY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuaXNUcmVlSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24gPSB0cnVlO1xuICAgICAgdGhpcy5pc1RyZWVJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRW5hYmxlQ3N2QWN0aW9uID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuc2V0Q3N2RHJvcERvd25PcHRpb25zRGlzYWJsZSh0cnVlKTtcbiAgfVxuICBvbkNsaWNrRm9sZGVyKCkge1xuICAgIGlmICh0aGlzLmlzQ29tcG9uZW5ldEluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmlzQ29tcG9uZW5ldEluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNldENzdkRyb3BEb3duT3B0aW9uc0Rpc2FibGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24pIHtcbiAgICAgdGhpcy5zZXRDc3ZEcm9wRG93bk9wdGlvbnNEaXNhYmxlKCk7XG4gIH1cbiAgfVxuICBzZXRDc3ZEcm9wRG93bk9wdGlvbnNEaXNhYmxlKGRpc2FibGU/KSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEhpZXJhcmNoeUZvbGRlcigpLmxlbmd0aCA/IHRydWUgOiBmYWxzZTtcbiAgICB0aGlzLmNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVDcmVhdGVDc3YgPSBkaXNhYmxlID8gZGlzYWJsZSA6IHN0YXR1cztcbiAgICB0aGlzLmNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVVcGRhdGVDc3YgPSBkaXNhYmxlID8gZGlzYWJsZSA6ICFzdGF0dXM7XG4gICAgdGhpcy5jc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlRG93bmxvYWRDc3YgPSBkaXNhYmxlID8gZGlzYWJsZSA6ICFzdGF0dXM7XG4gIH1cbiAgZG93bmxvYWRIaWVyYXJjaHlDc3YoKSB7XG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmRvd25sb2FkSGllcmFyY2h5Q3N2KHRoaXMuY29sbGVjdGlvbklkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IHRvY1VybCA9IF8uZ2V0KHJlcywgJ3Jlc3VsdC5jb2xsZWN0aW9uLnRvY1VybCcpO1xuICAgICAgdGhpcy5kb3dubG9hZENTVkZpbGUodG9jVXJsKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KGVycm9yLCAnZXJyb3IucGFyYW1zLmVycm1zZycpKTtcbiAgICB9KTtcbiAgfVxuICBpc1Jldmlld01vZGUoKSB7XG4gICAgcmV0dXJuICBfLmluY2x1ZGVzKFsgJ3JldmlldycsICdyZWFkJywgJ3NvdXJjaW5ncmV2aWV3JywgJ29yZ3JldmlldycgXSwgdGhpcy5lZGl0b3JTZXJ2aWNlLmVkaXRvck1vZGUpO1xuICAgfVxuICBkb3dubG9hZENTVkZpbGUodG9jVXJsKSB7XG4gICAgY29uc3QgZG93bmxvYWRDb25maWcgPSB7XG4gICAgICBibG9iVXJsOiB0b2NVcmwsXG4gICAgICBzdWNjZXNzTWVzc2FnZTogZmFsc2UsXG4gICAgICBmaWxlVHlwZTogJ2NzdicsXG4gICAgICBmaWxlTmFtZTogdGhpcy5jb2xsZWN0aW9uSWRcbiAgICB9O1xuICAgIHdpbmRvdy5vcGVuKGRvd25sb2FkQ29uZmlnLmJsb2JVcmwsICdfYmxhbmsnKTtcbiAgICAvKnRoaXMuZWRpdG9yU2VydmljZS5kb3dubG9hZEJsb2JVcmxGaWxlKGRvd25sb2FkQ29uZmlnKTsqL1xuICB9XG4gIGhhbm5kbGVDc3ZFbWl0dGVyKGV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlICdjbG9zZU1vZGFsJzpcbiAgICAgICAgdGhpcy5zaG93Q3N2VXBsb2FkUG9wdXAgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1cGRhdGVIaWVyYXJjaHknOlxuICAgICAgICB0aGlzLm1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnBhZ2VJZCA9ICdjb2xsZWN0aW9uX2VkaXRvcic7XG4gICAgICAgICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCA9IHRoaXMucGFnZUlkO1xuICAgICAgICAgIHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGVDc3YnOlxuICAgICAgICB0aGlzLnNob3dDc3ZVcGxvYWRQb3B1cCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNDcmVhdGVDc3YgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VwZGF0ZUNzdic6XG4gICAgICAgIHRoaXMuc2hvd0NzdlVwbG9hZFBvcHVwID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0NyZWF0ZUNzdiA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkQ3N2JzpcbiAgICAgICAgdGhpcy5kb3dubG9hZEhpZXJhcmNoeUNzdigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9ybVN0YXR1c0NoYW5nZShmb3JtKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy50cmVlU2VydmljZS5nZXRBY3RpdmVOb2RlKCk7XG4gICAgaWYgKHNlbGVjdGVkTm9kZSAmJiBzZWxlY3RlZE5vZGUuZGF0YS5pZCkge1xuICAgICAgdGhpcy5mb3JtU3RhdHVzTWFwcGVyW3NlbGVjdGVkTm9kZS5kYXRhLmlkXSA9IGZvcm0uaXNWYWxpZDtcbiAgICB9XG4gIH1cblxuICBhc3NpZ25QYWdlRW1pdHRlckxpc3RlbmVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnBhZ2VJZCA9ICdjb2xsZWN0aW9uX2VkaXRvcic7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy50ZWxlbWV0cnlTZXJ2aWNlICYmIHRoaXMudGVsZW1ldHJ5U2VydmljZT8uZW5kKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlVGVsZW1ldHJ5RW5kRXZlbnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudHJlZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuY2xlYXJUcmVlQ2FjaGUoKTtcbiAgICB9XG4gICAgIGlmICh0aGlzLmRpYWxjb2RlU2VydmljZSkge1xuICAgICAgdGhpcy5kaWFsY29kZVNlcnZpY2UuY2xlYXJEaWFsQ29kZU1hcHMoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kYWwgJiYgdGhpcy5tb2RhbC5kZW55KSB7XG4gICAgICB0aGlzLm1vZGFsLmRlbnkoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudW5TdWJzY3JpYmVTaG93TGlicmFyeVBhZ2VFbWl0dGVyKSB7XG4gICAgICB0aGlzLnVuU3Vic2NyaWJlU2hvd0xpYnJhcnlQYWdlRW1pdHRlci51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy51blN1YnNjcmliZXNob3dRdWVzdGlvbkxpYnJhcnlQYWdlRW1pdHRlcikge1xuICAgICAgdGhpcy51blN1YnNjcmliZXNob3dRdWVzdGlvbkxpYnJhcnlQYWdlRW1pdHRlci51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnVuc3Vic2NyaWJlJCAmJiB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQgJiYgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG5cbiAgc2V0RXZpZGVuY2UoY29udHJvbCwgZGVwZW5kczogRm9ybUNvbnRyb2xbXSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxvYWRpbmcsIGxvYWRlZCkge1xuICAgIGNvbnRyb2wuaXNWaXNpYmxlID0gJ25vJztcbiAgICBjb250cm9sLnJhbmdlID0gdGhpcy5ldmlkZW5jZU1pbWVUeXBlO1xuICAgIHJldHVybiBtZXJnZSguLi5fLm1hcChkZXBlbmRzLCBkZXBlbmQgPT4gZGVwZW5kLnZhbHVlQ2hhbmdlcykpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodmFsdWUpICYmIF8udG9Mb3dlcih2YWx1ZSkgPT09ICd5ZXMnKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5pc1Zpc2libGUgPSAneWVzJztcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe3JhbmdlOiB0aGlzLmV2aWRlbmNlTWltZVR5cGV9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5pc1Zpc2libGUgPSAnbm8nO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2V0RWNtKGNvbnRyb2wsIGRlcGVuZHM6IEZvcm1Db250cm9sW10sIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsb2FkaW5nLCBsb2FkZWQpIHtcbiAgICBjb250cm9sLmlzVmlzaWJsZSA9ICdubyc7XG4gICAgY29udHJvbC5vcHRpb25zID0gdGhpcy5lY207XG4gICAgcmV0dXJuIG1lcmdlKC4uLl8ubWFwKGRlcGVuZHMsIGRlcGVuZCA9PiBkZXBlbmQudmFsdWVDaGFuZ2VzKSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIV8uaXNFbXB0eSh2YWx1ZSkgJiYgXy50b0xvd2VyKHZhbHVlKSA9PT0gJ3llcycpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmlzVmlzaWJsZSA9ICd5ZXMnO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZih7b3B0aW9uczogdGhpcy5lY219KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5pc1Zpc2libGUgPSAnbm8nO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2V0QWxsb3dFY20oY29udHJvbCwgZGVwZW5kczogRm9ybUNvbnRyb2xbXSkge1xuICAgIGNvbnRyb2wuaXNWaXNpYmxlID0gJ25vJztcbiAgICBjb25zdCByZXNwb25zZSA9IG1lcmdlKC4uLl8ubWFwKGRlcGVuZHMsIGRlcGVuZCA9PiBkZXBlbmQudmFsdWVDaGFuZ2VzKSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodmFsdWUpICYmIF8udG9Mb3dlcih2YWx1ZSkgPT09ICdzZWxmJyApIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmlzVmlzaWJsZSA9ICdubyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5pc1Zpc2libGUgPSAneWVzJztcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInBhZ2VJZFwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sbGVjdGlvbl9lZGl0b3InXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZC10by1saWJyYXJ5IG1iLTEwXCI+XG4gICAgICA8bGliLWhlYWRlciBbcGFnZUlkXT1cInBhZ2VJZFwiIFtwdWJsaXNoY2hlY2tsaXN0XT1cInB1Ymxpc2hjaGVja2xpc3RcIlxuICAgICAgW2xhYmVsQ29uZmlnRGF0YV09XCJ0b29sYmFyQ29uZmlnXCIgW2J1dHRvbkxvYWRlcnNdPVwiYnV0dG9uTG9hZGVyc1wiICh0b29sYmFyRW1pdHRlcik9XCJ0b29sYmFyRXZlbnRMaXN0ZW5lcigkZXZlbnQpXCI+IDwvbGliLWhlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMHZoIHNiLWJnLXdoaXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSB0d2VsdmUgY29sdW1uIGdyaWQgbS0wIFwiPlxuICAgICAgICAgICAgPCEtLSBMZWZ0IFNpZGViYXIgZm9yIGNhcmRzIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNTAgc2ItZm9sZGVyLW1lbnVcIiAqbmdJZj1cImlzT2JqZWN0VHlwZUNvbGxlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXY+ICB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uZm9sZGVyc319IDwvZGl2PlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cInByb2ZpbGUtYXZ0YXIgY29tcHV0ZXIgb25seSBwLTAgcHItMTBcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgICAgPGRpdiBzdWlEcm9wZG93biBjbGFzcz1cInVpIGRyb3Bkb3duIHJpZ2h0IHRvcCBwb2ludGluZyB6LWluZGV4LTlcIiAgaWQ9XCJkcm9wZG93bi1tZW51LWxpc3QtaGVhZGVyXCIgKm5nSWY9XCIhaXNTdGF0dXNSZXZpZXdNb2RlXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gZWxsaXBzaXMgdmVydGljYWwgaC0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgIFtuZ0NsYXNzXT1cInsnc2ItZGlzYWJsZS1pY29uJzogaXNTdGF0dXNSZXZpZXdNb2RlfVwiIChjbGljayk9XCJvbkNsaWNrRm9sZGVyKClcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudVwiIHN1aURyb3Bkb3duTWVudSA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaXRlbSBmcy0wLTc4NSBiZy1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgbGliVGVsZW1ldHJ5SW50ZXJhY3RcbiAgICAgICAgICAgICAgICAgICAgW3RlbGVtZXRyeUludGVyYWN0RWRhdGFdPVwidGVsZW1ldHJ5U2VydmljZS5nZXRUZWxlbWV0cnlJbnRlcmFjdEVkYXRhKCdvcGVuX3BvcHVwJywnY2xpY2snLGNvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uY3JlYXRlSGllcmFyY2h5Q3N2LFxuICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCx7a2V5OiAnZGlhbG9nX2lkJywgdmFsdWU6IGNvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uY3JlYXRlSGllcmFyY2h5Q3N2fSlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFubmRsZUNzdkVtaXR0ZXIoe3R5cGU6ICdjcmVhdGVDc3YnfSlcIiBbZGlzYWJsZWRdPVwiY3N2RHJvcERvd25PcHRpb25zLmlzRGlzYWJsZUNyZWF0ZUNzdlwiPlxuICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gZm9sZGVyIG91dGxpbmUgc2ItY29sb3ItcHJpbWFyeVwiIFtuZ0NsYXNzXT1cInsnc2ItZGlzYWJsZS1pY29uJzogY3N2RHJvcERvd25PcHRpb25zLmlzRGlzYWJsZUNyZWF0ZUNzdn1cIiAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnbGFiZWwtZGlzYWJsZSc6IGNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVDcmVhdGVDc3Z9XCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNyZWF0ZUhpZXJhcmNoeUNzdn19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgbGliVGVsZW1ldHJ5SW50ZXJhY3RcbiAgICAgICAgICAgICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnY3N2X2Rvd25sb2FkJywnY2xpY2snLGNvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uZG93bmxvYWRGb2xkZXJzSW5DU1YsXG4gICAgICAgICAgICAgICAgICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCx7a2V5OiAnaWRlbnRpZmllcicsIHZhbHVlOiBjb2xsZWN0aW9uSWR9KVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpdGVtIGZzLTAtNzg1IGJnLW5vbmVcIiAoY2xpY2spPVwiaGFubmRsZUNzdkVtaXR0ZXIoe3R5cGU6ICdkb3dubG9hZENzdid9KVwiIFtkaXNhYmxlZF09XCJjc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlRG93bmxvYWRDc3ZcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gZG93bmxvYWQgc2ItY29sb3ItcHJpbWFyeVwiIFtuZ0NsYXNzXT1cInsnc2ItZGlzYWJsZS1pY29uJzogY3N2RHJvcERvd25PcHRpb25zLmlzRGlzYWJsZURvd25sb2FkQ3N2fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnbGFiZWwtZGlzYWJsZSc6IGNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVEb3dubG9hZENzdn1cIiA+IFxuICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uZG93bmxvYWRGb2xkZXJzSW5DU1Z9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRpdmlkZXJcIj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICAgICAgICAgICAgICBbdGVsZW1ldHJ5SW50ZXJhY3RFZGF0YV09XCJ0ZWxlbWV0cnlTZXJ2aWNlLmdldFRlbGVtZXRyeUludGVyYWN0RWRhdGEoJ29wZW5fcG9wdXAnLCdjbGljaycsY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy51cGxvYWRVcGRhdGVDU1YsXG4gICAgICAgICAgICAgICAgICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCx7a2V5OiAnZGlhbG9nX2lkJywgdmFsdWU6IGNvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8udXBsb2FkVXBkYXRlQ1NWfSlcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaXRlbSBmcy0wLTc4NSBiZy1ub25lXCIgKGNsaWNrKT1cImhhbm5kbGVDc3ZFbWl0dGVyKHt0eXBlOiAndXBkYXRlQ3N2J30pXCIgW2Rpc2FibGVkXT1cImNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVVcGRhdGVDc3ZcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gdXBsb2FkIHNiLWNvbG9yLXByaW1hcnlcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdDbGFzc109XCJ7J2xhYmVsLWRpc2FibGUnOiBjc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlVXBkYXRlQ3N2fVwiPjwvaT4gXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnbGFiZWwtZGlzYWJsZSc6IGNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVVcGRhdGVDc3Z9XCIgPiBcbiAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8udXBsb2FkVXBkYXRlQ1NWfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWUgd2lkZSBjb2x1bW4gcC0wIG92ZXJmbG93LXkgIG1iLTQwIGgtMTAwdmhcIiBbbmdDbGFzc109XCJ7J210LTUwJzogaXNPYmplY3RUeXBlQ29sbGVjdGlvbn1cIj5cbiAgICAgICAgICAgICAgPGxpYi1mYW5jeS10cmVlICAqbmdJZj1cImNvbGxlY3Rpb25UcmVlTm9kZXMgJiYgY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhICYmIGlzaGllcmFyY2h5Q29uZmlnU2V0XCJcbiAgICAgICAgICAgICAgW25vZGVzXT1cImNvbGxlY3Rpb25UcmVlTm9kZXNcIiBbb3B0aW9uc109XCJ7IHNob3dDb25uZWN0b3JzOiB0cnVlIH1cIiBbYnV0dG9uTG9hZGVyc109XCJidXR0b25Mb2FkZXJzXCJcbiAgICAgICAgICAgICAgKHRyZWVFdmVudEVtaXR0ZXIpPVwidHJlZUV2ZW50TGlzdGVuZXIoJGV2ZW50KVwiIGNsYXNzPVwic2ItY29sbGVjdGlvblRyZWUtZmFuY3lUcmVlIHNiLWNvbGxlY3Rpb25UcmVlLWZhbmN5VHJlZWxpc3Qgc2ItcXVlc3Rpb25zZXQtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgIDwvbGliLWZhbmN5LXRyZWU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gUmlnaHQgUGxheWVyIFNlY3Rpb25zIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVpZ2h0IHdpZGUgY29sdW1uIGJnLXdoaXRlIHBsLTQwIG1iLTEwIHctNzNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc0N1cnJlbnROb2RlRm9sZGVyID09PSB0cnVlIHx8IGlzQ3VycmVudE5vZGVSb290ID09PSB0cnVlKSAmJiB1bml0Rm9ybUNvbmZpZyAmJiBzZWxlY3RlZE5vZGVEYXRhICYmIHJvb3RGb3JtQ29uZmlnXCI+XG4gICAgICAgICAgICAgICAgPGxpYi1tZXRhLWZvcm0gW3Jvb3RGb3JtQ29uZmlnXT1cInJvb3RGb3JtQ29uZmlnXCIgW25vZGVNZXRhZGF0YV09XCJzZWxlY3RlZE5vZGVEYXRhXCIgW3VuaXRGb3JtQ29uZmlnXT1cInVuaXRGb3JtQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAodG9vbGJhckVtaXR0ZXIpPVwidG9vbGJhckV2ZW50TGlzdGVuZXIoJGV2ZW50KVwiPjwvbGliLW1ldGEtZm9ybT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0N1cnJlbnROb2RlRm9sZGVyID09PSBmYWxzZSAmJiBpc0N1cnJlbnROb2RlUm9vdCAhPT0gdHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGxpYi1jb250ZW50cGxheWVyLXBhZ2UgKm5nSWY9XCIhaXNRdW1sUGxheWVyXCIgIFtjb250ZW50TWV0YWRhdGFdPVwic2VsZWN0ZWROb2RlRGF0YVwiID48L2xpYi1jb250ZW50cGxheWVyLXBhZ2U+XG4gICAgICAgICAgICAgICAgICA8bGliLXF1bWxwbGF5ZXItcGFnZSAqbmdJZj1cImlzUXVtbFBsYXllclwiIFtxdWVzdGlvbk1ldGFEYXRhXT1cInNlbGVjdGVkTm9kZURhdGFcIiBbcXVlc3Rpb25TZXRIaWVyYXJjaHldPVwiY29sbGVjdGlvblRyZWVOb2Rlcz8uZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgKHRvb2xiYXJFbWl0dGVyKT1cInRvb2xiYXJFdmVudExpc3RlbmVyKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9saWItcXVtbHBsYXllci1wYWdlPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8c3VpLW1vZGFsICpuZ0lmPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvblBvcFVwXCIgW211c3RTY3JvbGxdPVwidHJ1ZVwiIFtpc0Nsb3NhYmxlXT1cInRydWVcIiBbdHJhbnNpdGlvbkR1cmF0aW9uXT1cIjBcIlxuICAgICAgICBbc2l6ZV09XCInbm9ybWFsJ1wiIGNsYXNzPVwic2ItbW9kYWwgYngtbm9uZSBvdmVyZmxvdy1tb2RhbFwiIGFwcEJvZHlTY3JvbGxcbiAgICAgICAgKGRpc21pc3NlZCk9XCJzaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSAhc2hvd0RlbGV0ZUNvbmZpcm1hdGlvblBvcFVwXCIgI21vZGFsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNvbmZpcm1EZWxldGVDb250ZW50fX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzYi1wdWJsaXNoLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJldmlldy1tb2RhbC1saXN0XCI+XG4gICAgICAgICAgICAgICAge3sgY29udGVudENvbW1lbnQgfX1cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxkaXY+IHt7ZGVsZXRlQ29uZmlybU1lc3NhZ2V9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IG1yLThcIiAoY2xpY2spPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvblBvcFVwID0gIXNob3dEZWxldGVDb25maXJtYXRpb25Qb3BVcFwiXG4gICAgICAgICAgbGliVGVsZW1ldHJ5SW50ZXJhY3RcbiAgICAgICAgICBbdGVsZW1ldHJ5SW50ZXJhY3RFZGF0YV09XCJ0ZWxlbWV0cnlTZXJ2aWNlLmdldFRlbGVtZXRyeUludGVyYWN0RWRhdGEoJ25vJywnY2xpY2snLCdjYW5jZWwnLCB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLHtrZXk6ICdkaWFsb2dfaWQnLCB2YWx1ZTogJ2NvbmZpcm1fZGVsZXRlX2NvbnRlbnQnLCdpZGVudGlmaWVyJyA6IHNlbGVjdGVkTm9kZURhdGE/LmRhdGE/LmlkfSlcIj4ge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5idXR0b25fbGFiZWxzPy5ub19idG5fbGFiZWx9fSA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNiLWJ0biBzYi1idG4tc2Vjb25kYXJ5IHNiLWJ0bi1ub3JtYWwgXCIgKGNsaWNrKT1cImRlbGV0ZU5vZGUoKTtcIlxuICAgICAgICAgIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICAgICAgW3RlbGVtZXRyeUludGVyYWN0RWRhdGFdPVwidGVsZW1ldHJ5U2VydmljZS5nZXRUZWxlbWV0cnlJbnRlcmFjdEVkYXRhKCd5ZXMnLCdjbGljaycsJ3N1Ym1pdCcsIHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQse2tleTogJ2RpYWxvZ19pZCcsIHZhbHVlOiAnY29uZmlybV9kZWxldGVfY29udGVudCcsJ2lkZW50aWZpZXInIDogc2VsZWN0ZWROb2RlRGF0YT8uZGF0YT8uaWR9KVwiPiB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmJ1dHRvbl9sYWJlbHM/Lnllc19idG5fbGFiZWx9fSA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3N1aS1tb2RhbD5cbiAgICAgIDxzdWktbW9kYWwgKm5nSWY9J3Nob3dDb25maXJtUG9wdXAnIFttdXN0U2Nyb2xsXT1cImZhbHNlXCIgW2lzQ2xvc2FibGVdPVwidHJ1ZVwiIFt0cmFuc2l0aW9uRHVyYXRpb25dPVwiMFwiIFtzaXplXT1cIidub3JtYWwnXCJcbiAgICAgICAgICBjbGFzcz1cInNiLW1vZGFsIG92ZXJmbG93LW1vZGFsXCIgYXBwQm9keVNjcm9sbCAoZGlzbWlzc2VkKT1cInNob3dDb25maXJtUG9wdXAgPSAhc2hvd0NvbmZpcm1Qb3B1cDsgdGVybXMgPSBmYWxzZTtcIiAjbW9kYWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmFjY2VwdFRlcm1zfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBzYi1jaGVja2JveC10bmMgbXQtMTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ItY2hlY2tib3ggc2ItY2hlY2tib3gtcHJpbWFyeSBmb250LWl0YWxpYyBwLTAgbS0wXCI+PGlucHV0IFsobmdNb2RlbCldPVwidGVybXNcIiBpZD1cInRlcm1BbmRDb25kaXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4YW1wbGVcIiB0eXBlPVwiY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0ZXJtQW5kQ29uZGl0aW9uc1wiIGNsYXNzPVwiZnNtYWxsIHBsLTMyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1haS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiLXJlcXVpcmVkXCI+Kjwvc3Bhbj48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkIG1iLTQgZC1ibG9ja1wiPlwie3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmlBZ3JlZVN1Ym1pdH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiLWNvbG9yLWdyYXktMzAwXCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/Lmljb25maXJtQ29udGVudH19PGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ItY29sb3ItcHJpbWFyeSBmb250LXdlaWdodC1ib2xkIGN1cnNvci1wb2ludGVyXCIgaHJlZj1cImh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlc1wiIHRhcmdldD1cIl9ibGFua1wiID4ge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNyZWF0ZUNvbW1vbkZyYW1ld29ya319PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmFjY29yZGFuY2V9fSBcbiAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwic2ItY29sb3ItcHJpbWFyeSBmb250LXdlaWdodC1ib2xkIGN1cnNvci1wb2ludGVyXCIgaHJlZj1cInt7Y29udGVudFBvbGljeVVybH19XCIgdGFyZ2V0PVwiX2JsYW5rXCIgPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb250ZW50UG9saWN5fX08L2E+IHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5wcml2YWN5UmlnaHRzfX1cIjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbFwiIFtuZ0NsYXNzXT1cIiF0ZXJtcyA/ICdzYi1idG4tZGlzYWJsZWQnIDogJ3NiLWJ0bi1wcmltYXJ5J1wiIFtkaXNhYmxlZF09XCIhdGVybXNcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VuZEZvclJldmlldygpXCIgbGliVGVsZW1ldHJ5SW50ZXJhY3RcbiAgICAgICAgICAgICAgW3RlbGVtZXRyeUludGVyYWN0RWRhdGFdPVwidGVsZW1ldHJ5U2VydmljZS5nZXRUZWxlbWV0cnlJbnRlcmFjdEVkYXRhKCdzdWJtaXQnLCdjbGljaycsJ3N1Ym1pdCcsIHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQse2tleTogJ2RpYWxvZ19pZCcsIHZhbHVlOiAnYWNjZXB0aW5nX3Rlcm1zX2NvbmRpdGlvbnMnLCd0ZXJtQW5kQ29uZGl0aW9ucycgOiB0ZXJtc30pXCI+XG4gICAgICAgICAgICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8uYnV0dG9uX2xhYmVscz8uc3VibWl0X2J0bl9sYWJlbH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc3VpLW1vZGFsPlxuICAgICAgPHN1aS1tb2RhbCAqbmdJZj0nc2hvd1ByZXZpZXcnIFttdXN0U2Nyb2xsXT1cImZhbHNlXCIgW2lzQ2xvc2FibGVdPVwidHJ1ZVwiIFt0cmFuc2l0aW9uRHVyYXRpb25dPVwiMFwiIFtzaXplXT1cIidsYXJnZSdcIlxuICAgICAgICAgIGNsYXNzPVwic2ItbW9kYWwgb3ZlcmZsb3ctbW9kYWwgcHJldmlldy1tb2RhbFwiIGFwcEJvZHlTY3JvbGwgKGRpc21pc3NlZCk9XCJzaG93UHJldmlldyA9ICFzaG93UHJldmlldztcIiAjbW9kYWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LnF1ZXN0aW9uU2V0UHJldmlld319XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJici0yIGItMS0xMDBcIiBpZD1cInByZXZpZXdQbGF5ZXJDb250YWluZXJcIiB0YWJpbmRleD1cIjBcIiBjZGtUcmFwRm9jdXM+XG4gICAgICAgICAgICAgIDxsaWItcXVtbC1wbGF5ZXIgW3F1ZXN0aW9uU2V0SGllcmFyY2h5XT1cImNvbGxlY3Rpb25UcmVlTm9kZXM/LmRhdGFcIj48L2xpYi1xdW1sLXBsYXllcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9zdWktbW9kYWw+XG4gICAgICA8bGliLXRlbXBsYXRlICpuZ0lmPSdzaG93UXVlc3Rpb25UZW1wbGF0ZVBvcHVwJyBbdGVtcGxhdGVMaXN0XT1cInRlbXBsYXRlTGlzdFwiXG4gICAgICAodGVtcGxhdGVTZWxlY3Rpb24pPVwiaGFuZGxlVGVtcGxhdGVTZWxlY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgPC9saWItdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGlicmFyeSdcIj5cbiAgICA8bGliLWxpYnJhcnkgW2xpYnJhcnlJbnB1dF09XCJsaWJyYXJ5Q29tcG9uZW50SW5wdXRcIiAobGlicmFyeUVtaXR0ZXIpPVwibGlicmFyeUV2ZW50TGlzdGVuZXIoJGV2ZW50KVwiPlxuICAgIDwvbGliLWxpYnJhcnk+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncXVlc3Rpb24nXCI+XG4gICAgPGxpYi1xdWVzdGlvbiBbcXVlc3Rpb25JbnB1dF09XCJxdWVzdGlvbkNvbXBvbmVudElucHV0XCIgW2xlYWZGb3JtQ29uZmlnXT1cImxlYWZGb3JtQ29uZmlnXCIgICAocXVlc3Rpb25FbWl0dGVyKT1cInF1ZXN0aW9uRXZlbnRMaXN0ZW5lcigkZXZlbnQpXCI+XG4gICAgPC9saWItcXVlc3Rpb24+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGFnaW5hdGlvbidcIj5cbiAgICA8bGliLWFzc2lnbi1wYWdlLW51bWJlciAoYXNzaWduUGFnZUVtaXR0ZXIpPVwiYXNzaWduUGFnZUVtaXR0ZXJMaXN0ZW5lcigkZXZlbnQpXCI+PC9saWItYXNzaWduLXBhZ2UtbnVtYmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Byb2dyZXNzU3RhdHVzJ1wiPlxuICAgIDxsaWItcHJvZ3Jlc3Mtc3RhdHVzIChhc3NpZ25QYWdlRW1pdHRlcik9XCJhc3NpZ25QYWdlRW1pdHRlckxpc3RlbmVyKCRldmVudClcIj48L2xpYi1wcm9ncmVzcy1zdGF0dXM+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiYWRkQ29sbGFib3JhdG9yXCI+XG4gIDxsaWItbWFuYWdlLWNvbGxhYm9yYXRvciBbYWRkQ29sbGFib3JhdG9yXT1cImFkZENvbGxhYm9yYXRvclwiIFtjb2xsZWN0aW9uSWRdPVwiY29sbGVjdGlvbklkXCIgKG1vZGFsRGlzbWlzc0VtaXR0ZXIpPVwidG9nZ2xlQ29sbGFib3JhdG9yTW9kYWxQb3VwKClcIj48L2xpYi1tYW5hZ2UtY29sbGFib3JhdG9yPlxuPC9uZy1jb250YWluZXI+XG48c3VpLW1vZGFsICpuZ0lmPVwic2hvd1Jldmlld01vZGFsXCIgW211c3RTY3JvbGxdPVwidHJ1ZVwiIFtpc0Nsb3NhYmxlXT1cImZhbHNlXCIgW3RyYW5zaXRpb25EdXJhdGlvbl09XCIwXCJcbiAgW3NpemVdPVwiJ25vcm1hbCdcIiBjbGFzcz1cInNiLW1vZGFsIGJ4LW5vbmUgb3ZlcmZsb3ctbW9kYWxcIiBhcHBCb2R5U2Nyb2xsICNtb2RhbCAoZGlzbWlzc2VkKT1cInNob3dSZXZpZXdNb2RhbCA9IGZhbHNlO1wiPlxuICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtaGVhZGVyXCI+XG4gICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LnJldmlld0NvbW1lbnRzfX1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2ItZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWw+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNvbW1lbnRzfX08L2xhYmVsPlxuICAgICAgICAgICAgPHRleHRhcmVhIGRpc2FibGVkPVwiZGlzYWJsZWRcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwid21kLWlucHV0IHdpZHRoLTEwMCBzYi1mb3JtLWNvbnRyb2wgcC0xMCBzYi1kaXNhYmxlZC10ZXh0YXJlYVwiIGlkPVwid21kLWlucHV0XCIgWyhuZ01vZGVsKV09XCJjb250ZW50Q29tbWVudFwiIG5hbWU9XCJyZWplY3RlZENvbW1lbnRcIj48L3RleHRhcmVhPlxuICAgICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtYWN0aW9uc1wiPlxuICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRlbnkoJ2RlbmllZCcpXCJcbiAgICBsaWJUZWxlbWV0cnlJbnRlcmFjdCBbdGVsZW1ldHJ5SW50ZXJhY3RFZGF0YV09XCJ0ZWxlbWV0cnlTZXJ2aWNlLmdldFRlbGVtZXRyeUludGVyYWN0RWRhdGEoJ2Nsb3NlJywnY2xpY2snLCdjYW5jZWwnLCB0ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCwgIHtrZXk6ICdkaWFsb2dfaWQnLCB2YWx1ZTogJ3Jldmlld19jb21tZW50cyd9KVwiPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8uYnV0dG9uX2xhYmVscz8uY2xvc2VfYnRuX2xhYmVsfX08L2J1dHRvbj5cbiAgPC9kaXY+XG48L3N1aS1tb2RhbD5cblxuICA8bGliLWNzdi11cGxvYWQgKm5nSWY9XCJzaG93Q3N2VXBsb2FkUG9wdXBcIiBbaXNDcmVhdGVDc3ZdPSBcImlzQ3JlYXRlQ3N2XCIgIChjc3ZVcGxvYWRFbWl0dGVyKT0gXCJoYW5uZGxlQ3N2RW1pdHRlcigkZXZlbnQpXCIgW2NvbGxlY3Rpb25JZF09XCJjb2xsZWN0aW9uSWRcIj5cbiAgPC9saWItY3N2LXVwbG9hZD5cblxuIl19
|
|
1204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbGxlY3Rpb24tZWRpdG9yLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQzlCLFlBQVksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWlCLFNBQVMsRUFDbEUsTUFBTSxlQUFlLENBQUM7QUFVdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQWdCLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFGLE9BQU8sS0FBSyxDQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSy9CLElBQUksZ0JBQWdCLENBQUM7QUFDckIsSUFBSSxHQUFHLENBQUM7QUFRUixNQUFNLE9BQU8sZUFBZTtJQW9FMUIsWUFBb0IsYUFBNEIsRUFBUyxXQUF3QixFQUFVLGdCQUFrQyxFQUN6RyxhQUE0QixFQUFTLGdCQUF3QyxFQUFVLE1BQWMsRUFDckcsY0FBOEIsRUFBVSxlQUFnQyxFQUN6RSxhQUE0QixFQUFVLGtCQUFxQztRQUgxRSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUscUJBQWdCLEdBQWhC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QUNKLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsQjtRQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQTdzQ1UsZUFBZTttR0FBZixlQUFlLDRTQzdCNUIsZ3BiQTBMQTs7NEZEN0phLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsWUFBWSxpQkFHUCxpQkFBaUIsQ0FBQyxJQUFJOzBXQUk1QixZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ3FCLEtBQUs7c0JBQWhDLFNBQVM7dUJBQUMsT0FBTztnQkF1RWxCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWRpdG9yL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRyZWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJlZS90cmVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnJhbWV3b3JrU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZyYW1ld29yay9mcmFtZXdvcmsuc2VydmljZSc7XG5pbXBvcnQgeyBFZGl0b3JUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVsZW1ldHJ5L3RlbGVtZXRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9hc3Rlci90b2FzdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2hlbHBlci9oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lZGl0b3InO1xuaW1wb3J0IHsgSUNyZWF0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQ3JlYXRpb25Db250ZXh0JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIGZvcmtKb2luLCBTdWJzY3JpcHRpb24sIFN1YmplY3QsIG1lcmdlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsY29kZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaWFsY29kZS9kaWFsY29kZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmxldCBldmlkZW5jZU1pbWVUeXBlO1xubGV0IGVjbTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIGVkaXRvckNvbmZpZzogSUVkaXRvckNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIGVkaXRvckVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgnbW9kYWwnKSBwcml2YXRlIG1vZGFsO1xuICBwdWJsaWMgcXVlc3Rpb25Db21wb25lbnRJbnB1dDogYW55ID0ge307XG4gIHB1YmxpYyBjcmVhdGlvbkNvbnRleHQ6IElDcmVhdGlvbkNvbnRleHQ7XG4gIHB1YmxpYyBjb2xsZWN0aW9uVHJlZU5vZGVzOiBhbnk7XG4gIHB1YmxpYyBzZWxlY3RlZE5vZGVEYXRhOiBhbnkgPSB7fTtcbiAgcHVibGljIHRlbXBsYXRlTGlzdDogYW55O1xuICBwdWJsaWMgc2hvd0NvbmZpcm1Qb3B1cCA9IGZhbHNlO1xuICBwdWJsaWMgdGVybXMgPSBmYWxzZTtcbiAgcHVibGljIHBhZ2VJZDogc3RyaW5nO1xuICBwdWJsaWMgcGFnZVN0YXJ0VGltZTtcbiAgcHVibGljIHJvb3RGb3JtQ29uZmlnOiBhbnk7XG4gIHB1YmxpYyB1bml0Rm9ybUNvbmZpZzogYW55O1xuICBwdWJsaWMgc2VhcmNoRm9ybUNvbmZpZzogYW55O1xuICBwdWJsaWMgbGVhZkZvcm1Db25maWc6IGFueTtcbiAgcHVibGljIHJlbGF0aW9uRm9ybUNvbmZpZzogYW55O1xuICBwdWJsaWMgc2hvd0xpYnJhcnlQYWdlID0gZmFsc2U7XG4gIHB1YmxpYyBsaWJyYXJ5Q29tcG9uZW50SW5wdXQ6IGFueSA9IHt9O1xuICBwdWJsaWMgcXVlc3Rpb25saWJyYXJ5SW5wdXQ6IGFueSA9IHt9O1xuICBwdWJsaWMgZWRpdG9yTW9kZTtcbiAgcHVibGljIGNvbGxlY3Rpb25JZDtcbiAgcHVibGljIGlzQ3VycmVudE5vZGVGb2xkZXI6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0N1cnJlbnROb2RlUm9vdDogYm9vbGVhbjtcbiAgcHVibGljIGlzUXVtbFBsYXllcjogYm9vbGVhbjtcbiAgcHVibGljIHNob3dRdWVzdGlvblRlbXBsYXRlUG9wdXAgPSBmYWxzZTtcbiAgcHVibGljIGRlbGV0ZUNvbmZpcm1NZXNzYWdlO1xuICBwdWJsaWMgc2hvd0RlbGV0ZUNvbmZpcm1hdGlvblBvcFVwID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93UHJldmlldyA9IGZhbHNlO1xuICBwdWJsaWMgYWN0aW9uVHlwZTogc3RyaW5nO1xuICBwcml2YXRlIGZvcm1TdGF0dXNNYXBwZXI6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIHB1YmxpYyB0YXJnZXRGcmFtZXdvcms7XG4gIHB1YmxpYyBvcmdhbmlzYXRpb25GcmFtZXdvcms7XG4gIHB1YmxpYyBwcmltYXJ5Q2F0ZWdvcnlEZWY6IGFueTtcbiAgcHVibGljIGNvbGxlY3Rpb25QcmltYXJ5Q2F0ZWdvcnlEZWY6IGFueTtcbiAgdG9vbGJhckNvbmZpZzogYW55O1xuICBwdWJsaWMgYnV0dG9uTG9hZGVycyA9IHtcbiAgICBzYXZlQXNEcmFmdEJ1dHRvbkxvYWRlcjogZmFsc2UsXG4gICAgYWRkRnJvbUxpYnJhcnlCdXR0b25Mb2FkZXI6IGZhbHNlLFxuICAgIGFkZFF1ZXN0aW9uRnJvbUxpYnJhcnlCdXR0b25Mb2FkZXI6IGZhbHNlLFxuICAgIHByZXZpZXdCdXR0b25Mb2FkZXI6IGZhbHNlLFxuICAgIHNob3dSZXZpZXdDb21tZW50OiBmYWxzZVxuICB9O1xuICBwdWJsaWMgY29udGVudENvbW1lbnQ6IHN0cmluZztcbiAgcHVibGljIHNob3dDb21tZW50OiBib29sZWFuO1xuICBwdWJsaWMgc2hvd1Jldmlld01vZGFsOiBib29sZWFuO1xuICBwdWJsaWMgY3N2RHJvcERvd25PcHRpb25zOiBhbnkgPSB7fTtcbiAgcHVibGljIHNob3dDc3ZVcGxvYWRQb3B1cCA9IGZhbHNlO1xuICBwdWJsaWMgb2JqZWN0VHlwZTogc3RyaW5nO1xuICBwdWJsaWMgaXNPYmplY3RUeXBlQ29sbGVjdGlvbjogYW55O1xuICBwdWJsaWMgaXNDcmVhdGVDc3YgPSB0cnVlO1xuICBwdWJsaWMgaXNTdGF0dXNSZXZpZXdNb2RlID0gZmFsc2U7XG4gIHB1YmxpYyBpc0VuYWJsZUNzdkFjdGlvbjogYW55O1xuICBwdWJsaWMgaXNUcmVlSW5pdGlhbGl6ZWQ6IGFueTtcbiAgcHVibGljIGlzaGllcmFyY2h5Q29uZmlnU2V0ID0gIGZhbHNlO1xuICBwdWJsaWMgYWRkQ29sbGFib3JhdG9yOiBib29sZWFuO1xuICBwdWJsaWMgcHVibGlzaGNoZWNrbGlzdDogYW55O1xuICBwdWJsaWMgaXNDb21wb25lbmV0SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHVibGljIHVuU3Vic2NyaWJlU2hvd0xpYnJhcnlQYWdlRW1pdHRlcjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgdW5TdWJzY3JpYmVzaG93UXVlc3Rpb25MaWJyYXJ5UGFnZUVtaXR0ZXI6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIHNvdXJjaW5nU2V0dGluZ3M6IGFueTtcbiAgcHVibGljIHNldENoaWxkUXVlc3Rpb246IGFueTtcbiAgcHVibGljIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvbkNvbXBvbmVudERlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgb3V0Y29tZURlY2xhcmF0aW9uOiBhbnk7XG4gIHB1YmxpYyBsZXZlbHNBcnJheTogYW55O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsIHB1YmxpYyB0cmVlU2VydmljZTogVHJlZVNlcnZpY2UsIHByaXZhdGUgZnJhbWV3b3JrU2VydmljZTogRnJhbWV3b3JrU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBoZWxwZXJTZXJ2aWNlOiBIZWxwZXJTZXJ2aWNlLCBwdWJsaWMgdGVsZW1ldHJ5U2VydmljZTogRWRpdG9yVGVsZW1ldHJ5U2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsIHByaXZhdGUgZGlhbGNvZGVTZXJ2aWNlOiBEaWFsY29kZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdGlvblJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzp1bmxvYWQnLCBbJyRldmVudCddKVxuICB1bmxvYWRIYW5kbGVyKGV2ZW50KSB7XG4gICAgdGhpcy5nZW5lcmF0ZVRlbGVtZXRyeUVuZEV2ZW50KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIGlmICh0aGlzLmVkaXRvckNvbmZpZykge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLmVkaXRvckNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLmVkaXRvckNvbmZpZyA9IEpTT04ucGFyc2UodGhpcy5lZGl0b3JDb25maWcpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZWRpdG9yQ29uZmlnOiAnLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluaXRpYWxpemUodGhpcy5lZGl0b3JDb25maWcpO1xuICAgIHRoaXMuZWRpdG9yTW9kZSA9IHRoaXMuZWRpdG9yU2VydmljZS5lZGl0b3JNb2RlO1xuICAgIHRoaXMudHJlZVNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLmVkaXRvckNvbmZpZyk7XG4gICAgdGhpcy5vYmplY3RUeXBlID0gdGhpcy5jb25maWdTZXJ2aWNlLmNhdGVnb3J5Q29uZmlnW3RoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5vYmplY3RUeXBlXTtcbiAgICB0aGlzLmNvbGxlY3Rpb25JZCA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5pZGVudGlmaWVyJyk7XG4gICAgdGhpcy50b29sYmFyQ29uZmlnID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmdldFRvb2xiYXJDb25maWcoKTtcbiAgICB0aGlzLmlzT2JqZWN0VHlwZUNvbGxlY3Rpb24gPSB0aGlzLm9iamVjdFR5cGUgPT09ICdxdWVzdGlvblNldCcgPyBmYWxzZSA6IHRydWU7XG4gICAgdGhpcy5pc1N0YXR1c1Jldmlld01vZGUgPSB0aGlzLmlzUmV2aWV3TW9kZSgpO1xuXG4gICAgaWYgKHRoaXMub2JqZWN0VHlwZSA9PT0gJ3F1ZXN0aW9uJykge1xuICAgICAgdGhpcy5jb2xsZWN0aW9uSWQgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbnRleHQuY29sbGVjdGlvbklkZW50aWZpZXInKTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUZyYW1ld29ya0FuZENoYW5uZWwoKTtcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRDYXRlZ29yeURlZmluaXRpb24oXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LmNvbGxlY3Rpb25QcmltYXJ5Q2F0ZWdvcnknKSxcbiAgICAgIHRoaXMuZWRpdG9yQ29uZmlnLmNvbnRleHQuY2hhbm5lbCwgXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LmNvbGxlY3Rpb25PYmplY3RUeXBlJykpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmNvbGxlY3Rpb25QcmltYXJ5Q2F0ZWdvcnlEZWYgPSByZXNwb25zZTtcbiAgICAgICAgICB0aGlzLmdldEZyYW1ld29ya0RldGFpbHModGhpcy5jb2xsZWN0aW9uUHJpbWFyeUNhdGVnb3J5RGVmKTtcbiAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2VsZWN0ZWRDaGlsZHJlbiA9IHtcbiAgICAgICAgICAgIHByaW1hcnlDYXRlZ29yeTogXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcucHJpbWFyeUNhdGVnb3J5JyksXG4gICAgICAgICAgICBtaW1lVHlwZTogXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcubWltZVR5cGUnKSxcbiAgICAgICAgICAgIGludGVyYWN0aW9uVHlwZTogXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcuaW50ZXJhY3Rpb25UeXBlJylcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IG9iamVjdE1ldGFkYXRhID0gXy5nZXQocmVzcG9uc2UsICdyZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uLm9iamVjdE1ldGFkYXRhJyk7XG4gICAgICAgICAgaWYgKG9iamVjdE1ldGFkYXRhLmNoaWxkcmVuQ29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXN0aW9uQ29tcG9uZW50SW5wdXQuY29uZmlnID0gb2JqZWN0TWV0YWRhdGEuY2hpbGRyZW5Db25maWdbXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcuaW50ZXJhY3Rpb25UeXBlJyldIHx8IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9RdWVzdGlvblRhYihfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5tb2RlJykpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2VJZCA9ICdjb2xsZWN0aW9uX2VkaXRvcic7XG4gICAgICB0aGlzLm1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaGllcmFyY2h5UmVzcG9uc2UgPSBfLmZpcnN0KHJlc3BvbnNlKTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gXy5nZXQoaGllcmFyY2h5UmVzcG9uc2UsIGByZXN1bHQuJHt0aGlzLm9iamVjdFR5cGV9YCk7XG4gICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnLnRpdGxlID0gY29sbGVjdGlvbi5uYW1lO1xuICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZy5pc0FkZENvbGxhYm9yYXRvciA9IChjb2xsZWN0aW9uLmNyZWF0ZWRCeSA9PT0gXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LnVzZXIuaWQnKSk7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplRnJhbWV3b3JrQW5kQ2hhbm5lbChjb2xsZWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldENhdGVnb3J5RGVmaW5pdGlvbih0aGlzLmVkaXRvckNvbmZpZy5jb25maWcucHJpbWFyeUNhdGVnb3J5LFxuICAgICAgdGhpcy5lZGl0b3JDb25maWcuY29udGV4dC5jaGFubmVsLCB0aGlzLmVkaXRvckNvbmZpZy5jb25maWcub2JqZWN0VHlwZSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgICAgICBjb25zdCBkaWFsY29kZSA9IF8uZ2V0KHJlc3BvbnNlLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5vYmplY3RNZXRhZGF0YS5zY2hlbWEucHJvcGVydGllcy5nZW5lcmF0ZURJQUxDb2Rlcy5kZWZhdWx0Jyk7XG4gICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnLnNob3dEaWFsY29kZSA9IGRpYWxjb2RlID8gZGlhbGNvZGUudG9Mb3dlckNhc2UoKSA6ICdubyc7XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICAgIGNvbnN0IGVuYWJsZUJ1bGtVcGxvYWQgPSBfLmdldChyZXNwb25zZSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24ub2JqZWN0TWV0YWRhdGEuY29uZmlnLnNvdXJjaW5nU2V0dGluZ3MuY29sbGVjdGlvbi5lbmFibGVCdWxrVXBsb2FkJyk7XG4gICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnLnNob3dCdWxrVXBsb2FkQnRuID0gZW5hYmxlQnVsa1VwbG9hZCA/IGVuYWJsZUJ1bGtVcGxvYWQgOiBmYWxzZTtcblxuICAgICAgICAgIHRoaXMuc291cmNpbmdTZXR0aW5ncyA9IF8uZ2V0KHJlc3BvbnNlLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5vYmplY3RNZXRhZGF0YS5jb25maWcuc291cmNpbmdTZXR0aW5ncycsIHt9KTtcbiAgICAgICAgICB0aGlzLmhlbHBlclNlcnZpY2UuY2hhbm5lbERhdGEkLnN1YnNjcmliZShcbiAgICAgICAgICAgIChjaGFubmVsUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wcmltYXJ5Q2F0ZWdvcnlEZWYgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgaWYgKHRoaXMub2JqZWN0VHlwZSAhPT0gJ3F1ZXN0aW9uJykgeyB0aGlzLnNldGhpZXJhcmNoeUNvbmZpZyhyZXNwb25zZSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgdGhpcy5wYWdlU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UuaW5pdGlhbGl6ZVRlbGVtZXRyeSh0aGlzLmVkaXRvckNvbmZpZyk7XG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCA9IHRoaXMucGFnZUlkO1xuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS5zdGFydCh7IHR5cGU6ICdlZGl0b3InLCBwYWdlaWQ6IHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQgfSk7XG4gICAgdGhpcy51blN1YnNjcmliZVNob3dMaWJyYXJ5UGFnZUVtaXR0ZXIgPSB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0c2hvd0xpYnJhcnlQYWdlRW1pdHRlcigpXG4gICAgICAuc3Vic2NyaWJlKGl0ZW0gPT4gdGhpcy5zaG93TGlicmFyeUNvbXBvbmVudFBhZ2UoKSk7XG4gICAgdGhpcy51blN1YnNjcmliZXNob3dRdWVzdGlvbkxpYnJhcnlQYWdlRW1pdHRlciA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRzaG93UXVlc3Rpb25MaWJyYXJ5UGFnZUVtaXR0ZXIoKVxuICAgIC5zdWJzY3JpYmUoaXRlbSA9PiB0aGlzLnNob3dRdWVzdGlvbkxpYnJhcnlDb21wb25lbnRQYWdlKCkpO1xuICAgIHRoaXMudHJlZVNlcnZpY2UudHJlZVN0YXR1cyQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2xvYWRlZCcpIHtcbiAgICAgICAgdGhpcy5nZXRGcmFtZXdvcmtEZXRhaWxzKHRoaXMucHJpbWFyeUNhdGVnb3J5RGVmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpemVGcmFtZXdvcmtBbmRDaGFubmVsKGNvbGxlY3Rpb24/OiBhbnkpIHtcbiAgICB0aGlzLm9yZ2FuaXNhdGlvbkZyYW1ld29yayA9IF8uZ2V0KGNvbGxlY3Rpb24sICdmcmFtZXdvcmsnKSB8fCBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbnRleHQuZnJhbWV3b3JrJyk7XG4gICAgdGhpcy50YXJnZXRGcmFtZXdvcmsgPSBfLmdldChjb2xsZWN0aW9uLCAndGFyZ2V0RldJZHMnKSB8fCBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbnRleHQudGFyZ2V0RldJZHMnKTtcbiAgICBpZiAodGhpcy5vcmdhbmlzYXRpb25GcmFtZXdvcmspIHtcbiAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5pbml0aWFsaXplKHRoaXMub3JnYW5pc2F0aW9uRnJhbWV3b3JrKTtcbiAgICB9XG4gICAgaWYgKCFfLmlzRW1wdHkodGhpcy50YXJnZXRGcmFtZXdvcmspKSB7XG4gICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0VGFyZ2V0RnJhbWV3b3JrQ2F0ZWdvcmllcyh0aGlzLnRhcmdldEZyYW1ld29yayk7XG4gICAgfVxuICAgIGNvbnN0IGNoYW5uZWwgPSBfLmdldChjb2xsZWN0aW9uLCAnY2hhbm5lbCcpIHx8IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5jaGFubmVsJyk7XG4gICAgdGhpcy5oZWxwZXJTZXJ2aWNlLmluaXRpYWxpemUoY2hhbm5lbCk7XG4gIH1cblxuICBnZXRGcmFtZXdvcmtEZXRhaWxzKGNhdGVnb3J5RGVmaW5pdGlvbkRhdGEpIHtcbiAgICBsZXQgb3JnRldJZGVudGlmaWVyczogYW55O1xuICAgIGxldCB0YXJnZXRGV0lkZW50aWZpZXJzOiBhbnk7XG4gICAgbGV0IG9yZ0ZXVHlwZTogYW55O1xuICAgIGxldCB0YXJnZXRGV1R5cGU6IGFueTtcbiAgICBvcmdGV0lkZW50aWZpZXJzID0gXy5nZXQoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24ub2JqZWN0TWV0YWRhdGEuc2NoZW1hLnByb3BlcnRpZXMuZnJhbWV3b3JrLmVudW0nKSB8fFxuICAgICAgXy5nZXQoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24ub2JqZWN0TWV0YWRhdGEuc2NoZW1hLnByb3BlcnRpZXMuZnJhbWV3b3JrLmRlZmF1bHQnKTtcbiAgICBpZiAoXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcucmVuZGVyVGF4b25vbXknKSA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3Qgb3JnSWQgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbnRleHQuaWRlbnRpZmllcicpO1xuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZldGNoT3V0Q29tZURlY2xhcmF0aW9uKG9yZ0lkKS50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgIGlmIChkYXRhPy5yZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLm91dGNvbWVEZWNsYXJhdGlvbiA9IF8uZ2V0KGRhdGE/LnJlc3VsdCwgJ3F1ZXN0aW9uc2V0Lm91dGNvbWVEZWNsYXJhdGlvbicpO1xuICAgICAgICAgIHRoaXMubGV2ZWxzQXJyYXkgPSBPYmplY3Qua2V5cyh0aGlzLm91dGNvbWVEZWNsYXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgdGhpcy5wdWJsaXNoY2hlY2tsaXN0ID0gXy5nZXQoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24uZm9ybXMucHVibGlzaGNoZWNrbGlzdC5wcm9wZXJ0aWVzJykgfHwgXy5nZXQoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24uZm9ybXMucmV2aWV3LnByb3BlcnRpZXMnKSB8fCBbXTtcbiAgICBpZiAoXy5pc0VtcHR5KHRoaXMudGFyZ2V0RnJhbWV3b3JrIHx8IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC50YXJnZXRGV0lkcycpKSkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgdGFyZ2V0RldJZGVudGlmaWVycyA9IF8uZ2V0KGNhdGVnb3J5RGVmaW5pdGlvbkRhdGEsICdyZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uLm9iamVjdE1ldGFkYXRhLnNjaGVtYS5wcm9wZXJ0aWVzLnRhcmdldEZXSWRzLmRlZmF1bHQnKTtcbiAgICAgIGlmIChfLmlzRW1wdHkodGFyZ2V0RldJZGVudGlmaWVycykpIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICB0YXJnZXRGV1R5cGUgPSBfLmdldChjYXRlZ29yeURlZmluaXRpb25EYXRhLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5vYmplY3RNZXRhZGF0YS5jb25maWcuZnJhbWV3b3JrTWV0YWRhdGEudGFyZ2V0RldUeXBlJyk7XG4gICAgICAgIGNvbnN0IGNoYW5uZWxGcmFtZXdvcmtzID0gXy5nZXQodGhpcy5oZWxwZXJTZXJ2aWNlLmNoYW5uZWxJbmZvLCAnZnJhbWV3b3JrcycpO1xuICAgICAgICBjb25zdCBjaGFubmVsRnJhbWV3b3Jrc1R5cGUgPSBfLm1hcChjaGFubmVsRnJhbWV3b3JrcywgJ3R5cGUnKTtcbiAgICAgICAgY29uc3QgY2hhbm5lbEZyYW1ld29ya3NJZGVudGlmaWVycyA9IF8ubWFwKF8uZ2V0KHRoaXMuaGVscGVyU2VydmljZS5jaGFubmVsSW5mbywgJ2ZyYW1ld29ya3MnKSwgJ2lkZW50aWZpZXInKTtcbiAgICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IF8uZGlmZmVyZW5jZSh0YXJnZXRGV1R5cGUsIF8udW5pcShjaGFubmVsRnJhbWV3b3Jrc1R5cGUpKTtcblxuICAgICAgICBpZiAodGFyZ2V0RldUeXBlICYmIGNoYW5uZWxGcmFtZXdvcmtzVHlwZSAmJiBfLmlzRW1wdHkoZGlmZmVyZW5jZSkpIHtcbiAgICAgICAgICB0aGlzLnRhcmdldEZyYW1ld29yayA9IF8uZ2V0KF8uZmlyc3QoXy5maWx0ZXIoY2hhbm5lbEZyYW1ld29ya3MsIGZyYW1ld29yayA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZnJhbWV3b3JrLnR5cGUgPT09IF8uZmlyc3QodGFyZ2V0RldUeXBlKTtcbiAgICAgICAgICB9KSksICdpZGVudGlmaWVyJyk7XG4gICAgICAgICAgdGhpcy50cmVlU2VydmljZS51cGRhdGVNZXRhRGF0YVByb3BlcnR5KCd0YXJnZXRGV0lkcycsIF8uY2FzdEFycmF5KHRoaXMudGFyZ2V0RnJhbWV3b3JrKSk7XG4gICAgICAgICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmdldFRhcmdldEZyYW1ld29ya0NhdGVnb3JpZXMoXy5jYXN0QXJyYXkodGhpcy50YXJnZXRGcmFtZXdvcmspKTtcbiAgICAgICAgfSBlbHNlIGlmICgodGFyZ2V0RldUeXBlICYmIGNoYW5uZWxGcmFtZXdvcmtzVHlwZSAmJiAhXy5pc0VtcHR5KGRpZmZlcmVuY2UpKSB8fCBfLmlzRW1wdHkoY2hhbm5lbEZyYW1ld29ya3NUeXBlKSkge1xuICAgICAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5nZXRGcmFtZXdvcmtEYXRhKHVuZGVmaW5lZCwgZGlmZmVyZW5jZSwgdW5kZWZpbmVkLCAnWWVzJykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHRhcmdldFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudGFyZ2V0RnJhbWV3b3JrID0gXy5nZXQoXy5maXJzdChfLmdldCh0YXJnZXRSZXNwb25zZSwgJ3Jlc3VsdC5GcmFtZXdvcmsnKSksICdpZGVudGlmaWVyJyk7XG4gICAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KHRoaXMudGFyZ2V0RnJhbWV3b3JrKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UudXBkYXRlTWV0YURhdGFQcm9wZXJ0eSgndGFyZ2V0RldJZHMnLCBfLmNhc3RBcnJheSh0aGlzLnRhcmdldEZyYW1ld29yaykpO1xuICAgICAgICAgICAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5nZXRUYXJnZXRGcmFtZXdvcmtDYXRlZ29yaWVzKF8uY2FzdEFycmF5KHRoaXMudGFyZ2V0RnJhbWV3b3JrKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0RnJhbWV3b3JrRGF0YSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdGFyZ2V0RldJZGVudGlmaWVycykuc3Vic2NyaWJlKFxuICAgICAgICAgICh0YXJnZXRSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy50YXJnZXRGcmFtZXdvcmsgPSBfLmdldChfLmZpcnN0KF8uZ2V0KHRhcmdldFJlc3BvbnNlLCAncmVzdWx0LkZyYW1ld29yaycpKSwgJ2lkZW50aWZpZXInKTtcbiAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KHRoaXMudGFyZ2V0RnJhbWV3b3JrKSkge1xuICAgICAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLnVwZGF0ZU1ldGFEYXRhUHJvcGVydHkoJ3RhcmdldEZXSWRzJywgXy5jYXN0QXJyYXkodGhpcy50YXJnZXRGcmFtZXdvcmspKTtcbiAgICAgICAgICAgICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmdldFRhcmdldEZyYW1ld29ya0NhdGVnb3JpZXMoXy5jYXN0QXJyYXkodGhpcy50YXJnZXRGcmFtZXdvcmspKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF8uaXNFbXB0eShvcmdGV0lkZW50aWZpZXJzKSkge1xuICAgICAgbGV0IG9yZ0ZyYW1ld29ya0xpc3QgPSBbXTtcbiAgICAgIG9yZ0ZXVHlwZSA9IF8uZ2V0KGNhdGVnb3J5RGVmaW5pdGlvbkRhdGEsICdyZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uLm9iamVjdE1ldGFkYXRhLmNvbmZpZy5mcmFtZXdvcmtNZXRhZGF0YS5vcmdGV1R5cGUnKTtcbiAgICAgIGNvbnN0IGNoYW5uZWxGcmFtZXdvcmtzVHlwZSA9IF8ubWFwKF8uZ2V0KHRoaXMuaGVscGVyU2VydmljZS5jaGFubmVsSW5mbywgJ2ZyYW1ld29ya3MnKSwgJ3R5cGUnKTtcbiAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBfLmRpZmZlcmVuY2Uob3JnRldUeXBlLCBfLnVuaXEoY2hhbm5lbEZyYW1ld29ya3NUeXBlKSk7XG4gICAgICBpZiAoY2hhbm5lbEZyYW1ld29ya3NUeXBlKSB7XG4gICAgICAgIG9yZ0ZyYW1ld29ya0xpc3QgPSBfLm1hcChfLmdldCh0aGlzLmhlbHBlclNlcnZpY2UuY2hhbm5lbEluZm8sICdmcmFtZXdvcmtzJyksIChmcmFtZXdvcmspID0+IHtcbiAgICAgICAgICByZXR1cm4geyBsYWJlbDogZnJhbWV3b3JrLm5hbWUsIGlkZW50aWZpZXI6IGZyYW1ld29yay5pZGVudGlmaWVyIH07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAob3JnRldUeXBlICYmIGNoYW5uZWxGcmFtZXdvcmtzVHlwZSAmJiBfLmlzRW1wdHkoZGlmZmVyZW5jZSkpIHtcbiAgICAgICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmZyYW1ld29ya1ZhbHVlcyA9IG9yZ0ZyYW1ld29ya0xpc3Q7XG4gICAgICAgIHRoaXMuc2V0RWRpdG9yRm9ybXMoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSk7XG4gICAgICB9IGVsc2UgaWYgKG9yZ0ZXVHlwZSAmJiBjaGFubmVsRnJhbWV3b3Jrc1R5cGUgJiYgIV8uaXNFbXB0eShkaWZmZXJlbmNlKSB8fCBfLmlzRW1wdHkoY2hhbm5lbEZyYW1ld29ya3NUeXBlKSkge1xuICAgICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0RnJhbWV3b3JrRGF0YSh1bmRlZmluZWQsIGRpZmZlcmVuY2UsIHVuZGVmaW5lZCwgJ1llcycpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5mcmFtZXdvcmtWYWx1ZXMgPSBfLmNvbmNhdChfLm1hcChfLmdldChyZXNwb25zZSwgJ3Jlc3VsdC5GcmFtZXdvcmsnKSwgZnJhbWV3b3JrID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGZyYW1ld29yay5uYW1lLCBpZGVudGlmaWVyOiBmcmFtZXdvcmsuaWRlbnRpZmllciB9O1xuICAgICAgICAgICAgfSksIG9yZ0ZyYW1ld29ya0xpc3QpO1xuICAgICAgICAgICAgdGhpcy5zZXRFZGl0b3JGb3JtcyhjYXRlZ29yeURlZmluaXRpb25EYXRhKTtcbiAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm9yZ2FuaXNhdGlvbkZyYW1ld29yaykge1xuICAgICAgICB0aGlzLnNldEVkaXRvckZvcm1zKGNhdGVnb3J5RGVmaW5pdGlvbkRhdGEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZ2V0RnJhbWV3b3JrRGF0YSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgb3JnRldJZGVudGlmaWVycykuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmZyYW1ld29ya1NlcnZpY2UuZnJhbWV3b3JrVmFsdWVzID0gXy5jb25jYXQoXy5tYXAoXy5nZXQocmVzcG9uc2UsICdyZXN1bHQuRnJhbWV3b3JrJyksIGZyYW1ld29yayA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogZnJhbWV3b3JrLm5hbWUsIGlkZW50aWZpZXI6IGZyYW1ld29yay5pZGVudGlmaWVyIH07XG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHRoaXMuc2V0RWRpdG9yRm9ybXMoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSk7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3InLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2V0RWRpdG9yRm9ybXMoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSkge1xuICAgIGNvbnN0IGZvcm1zQ29uZmlnT2JqID0gXy5nZXQoY2F0ZWdvcnlEZWZpbml0aW9uRGF0YSwgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24uZm9ybXMnKTtcbiAgICB0aGlzLnVuaXRGb3JtQ29uZmlnID0gXy5nZXQoZm9ybXNDb25maWdPYmosICd1bml0TWV0YWRhdGEucHJvcGVydGllcycpO1xuICAgIHRoaXMucm9vdEZvcm1Db25maWcgPSBfLmdldChmb3Jtc0NvbmZpZ09iaiwgJ2NyZWF0ZS5wcm9wZXJ0aWVzJyk7XG4gICAgbGV0IGZvcm1EYXRhO1xuICAgIGlmICh0aGlzLnJvb3RGb3JtQ29uZmlnPy5sZW5ndGgpIHtcbiAgICAgIGZvcm1EYXRhID0gdGhpcy5yb290Rm9ybUNvbmZpZ1swXS5maWVsZHMgfHwgW107XG4gICAgfVxuICAgIGZvcm1EYXRhLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQuY29kZSA9PT0gJ2V2aWRlbmNlTWltZVR5cGUnKSB7XG4gICAgICAgIGV2aWRlbmNlTWltZVR5cGUgPSBmaWVsZC5yYW5nZTtcbiAgICAgICAgZmllbGQub3B0aW9ucyA9IHRoaXMuc2V0RXZpZGVuY2U7XG4gICAgICAgIGZpZWxkLnJhbmdlID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoZmllbGQuY29kZSA9PT0gJ2FsbG93RUNNJykge1xuICAgICAgICBmaWVsZC5vcHRpb25zID0gdGhpcy5zZXRBbGxvd0VjbTtcbiAgICAgIH0gZWxzZSBpZiAoZmllbGQuY29kZSA9PT0gJ2VjbScpIHtcbiAgICAgICAgZWNtID0gZmllbGQub3B0aW9ucztcbiAgICAgICAgZmllbGQub3B0aW9ucyA9IHRoaXMuc2V0RWNtO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICggdGhpcy5vYmplY3RUeXBlID09PSAncXVlc3Rpb25zZXQnICYmIF8uaGFzKGZvcm1zQ29uZmlnT2JqLCAnc2VhcmNoQ29uZmlnJykpIHtcbiAgICAgICAgdGhpcy5saWJyYXJ5Q29tcG9uZW50SW5wdXQuc2VhcmNoRm9ybUNvbmZpZyA9IF8uZ2V0KGZvcm1zQ29uZmlnT2JqLCAnc2VhcmNoQ29uZmlnLnByb3BlcnRpZXMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saWJyYXJ5Q29tcG9uZW50SW5wdXQuc2VhcmNoRm9ybUNvbmZpZyA9IF8uZ2V0KGZvcm1zQ29uZmlnT2JqLCAnc2VhcmNoLnByb3BlcnRpZXMnKTtcbiAgICB9XG4gICAgdGhpcy5sZWFmRm9ybUNvbmZpZyA9IF8uZ2V0KGZvcm1zQ29uZmlnT2JqLCAnY2hpbGRNZXRhZGF0YS5wcm9wZXJ0aWVzJyk7XG4gICAgdGhpcy5yZWxhdGlvbkZvcm1Db25maWcgPSBfLmdldChmb3Jtc0NvbmZpZ09iaiwgJ3JlbGF0aW9uYWxNZXRhZGF0YS5wcm9wZXJ0aWVzJyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLmltcHJlc3Npb24oe1xuICAgICAgdHlwZTogJ2VkaXQnLCBwYWdlaWQ6IHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQsIHVyaTogdGhpcy5yb3V0ZXIudXJsLFxuICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gdGhpcy5wYWdlU3RhcnRUaW1lKSAvIDEwMDBcbiAgICB9KTtcbiAgICB0aGlzLmlzQ29tcG9uZW5ldEluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIG1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlcXVlc3RzID0gW107XG4gICAgdGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzID0gbnVsbDtcbiAgICB0aGlzLmlzVHJlZUluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICByZXF1ZXN0cy5wdXNoKHRoaXMuZWRpdG9yU2VydmljZS5mZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodGhpcy5jb2xsZWN0aW9uSWQpKTtcbiAgICBpZiAodGhpcy5vYmplY3RUeXBlID09PSAncXVlc3Rpb25TZXQnKSB7XG4gICAgICByZXF1ZXN0cy5wdXNoKHRoaXMuZWRpdG9yU2VydmljZS5yZWFkUXVlc3Rpb25TZXQodGhpcy5jb2xsZWN0aW9uSWQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcmtKb2luKHJlcXVlc3RzKS5waXBlKHRhcChyZXNwb25zZUxpc3QgPT4ge1xuICAgICAgY29uc3QgaGllcmFyY2h5UmVzcG9uc2UgPSBfLmZpcnN0KHJlc3BvbnNlTGlzdCk7XG4gICAgICB0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMgPSB7XG4gICAgICAgIGRhdGE6IF8uZ2V0KGhpZXJhcmNoeVJlc3BvbnNlLCBgcmVzdWx0LiR7dGhpcy5vYmplY3RUeXBlfWApXG4gICAgICB9O1xuICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLnNob3dSZXZpZXdDb21tZW50ID0gdGhpcy5zaG93Q29tbWVudEFkZGVkQWdhaW5zdENvbnRlbnQoKTtcbiAgICAgIGlmIChfLmlzRW1wdHkodGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLmRhdGEuY2hpbGRyZW4pKSB7XG4gICAgICAgIHRoaXMudG9vbGJhckNvbmZpZy5oYXNDaGlsZHJlbiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnLmhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub2JqZWN0VHlwZSA9PT0gJ3F1ZXN0aW9uU2V0Jykge1xuICAgICAgICBjb25zdCBxdWVzdGlvblNldFJlc3BvbnNlID0gXy5sYXN0KHJlc3BvbnNlTGlzdCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBfLmdldChxdWVzdGlvblNldFJlc3BvbnNlLCBfLnRvTG93ZXIoYHJlc3VsdC4ke3RoaXMub2JqZWN0VHlwZX1gKSk7XG4gICAgICAgIHRoaXMuY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhLmluc3RydWN0aW9ucyA9IGRhdGEuaW5zdHJ1Y3Rpb25zID8gZGF0YS5pbnN0cnVjdGlvbnMgOiAnJztcbiAgICAgIH1cbiAgICB9XG4gICAgKSk7XG4gIH1cbiAgc2V0aGllcmFyY2h5Q29uZmlnKHByaW1hcnlDYXRDb25maWcpIHtcbiAgICBsZXQgaGllcmFyY2h5Q29uZmlnO1xuICAgIGlmIChfLmdldChwcmltYXJ5Q2F0Q29uZmlnLCAncmVzdWx0Lm9iamVjdENhdGVnb3J5RGVmaW5pdGlvbi5vYmplY3RNZXRhZGF0YS5jb25maWcnKSkge1xuICAgICAgaGllcmFyY2h5Q29uZmlnID0gXy5nZXQocHJpbWFyeUNhdENvbmZpZywgJ3Jlc3VsdC5vYmplY3RDYXRlZ29yeURlZmluaXRpb24ub2JqZWN0TWV0YWRhdGEuY29uZmlnLnNvdXJjaW5nU2V0dGluZ3MuY29sbGVjdGlvbicpO1xuICAgICAgaWYgKCFfLmlzRW1wdHkoaGllcmFyY2h5Q29uZmlnLmNoaWxkcmVuKSkge1xuICAgICAgICBoaWVyYXJjaHlDb25maWcuY2hpbGRyZW4gPSB0aGlzLmdldEhpZXJhcmNoeUNoaWxkcmVuQ29uZmlnKGhpZXJhcmNoeUNvbmZpZy5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgICBpZiAoIV8uaXNFbXB0eShoaWVyYXJjaHlDb25maWcuaGllcmFyY2h5KSkge1xuICAgICAgICBfLmZvckVhY2goaGllcmFyY2h5Q29uZmlnLmhpZXJhcmNoeSwgKGhpZXJhcmNoeVZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKF8uZ2V0KGhpZXJhcmNoeVZhbHVlLCAnY2hpbGRyZW4nKSkge1xuICAgICAgICAgICAgaGllcmFyY2h5VmFsdWUuY2hpbGRyZW4gPSB0aGlzLmdldEhpZXJhcmNoeUNoaWxkcmVuQ29uZmlnKF8uZ2V0KGhpZXJhcmNoeVZhbHVlLCAnY2hpbGRyZW4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lZGl0b3JDb25maWcuY29uZmlnID0gXy5hc3NpZ24odGhpcy5lZGl0b3JDb25maWcuY29uZmlnLCBoaWVyYXJjaHlDb25maWcpO1xuICAgIGlmIChfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5yZW5kZXJUYXhvbm9teScpID09PSB0cnVlICYmIF8uaXNFbXB0eShfLmdldCh0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMsICdkYXRhLmNoaWxkcmVuJykpKSB7XG4gICAgICB0aGlzLmZldGNoRnJhbWVXb3JrRGV0YWlscygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzaGllcmFyY2h5Q29uZmlnU2V0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBmZXRjaEZyYW1lV29ya0RldGFpbHMoKSB7XG4gICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmZyYW1ld29ya0RhdGEkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkNvbXBvbmVudERlc3Ryb3kkKSxcbiAgICAgIGZpbHRlcihkYXRhID0+IF8uZ2V0KGRhdGEsIGBmcmFtZXdvcmtkYXRhLiR7dGhpcy5mcmFtZXdvcmtTZXJ2aWNlLm9yZ2FuaXNhdGlvbkZyYW1ld29ya31gKSksXG4gICAgICB0YWtlKDEpXG4gICAgKS5zdWJzY3JpYmUoKGZyYW1ld29ya0RldGFpbHM6IGFueSkgPT4ge1xuICAgICAgaWYgKGZyYW1ld29ya0RldGFpbHMgJiYgIWZyYW1ld29ya0RldGFpbHMuZXJyKSB7XG4gICAgICAgIGNvbnN0IG9yZ0ZyYW1ld29ya0RhdGEgPSBfLmdldChmcmFtZXdvcmtEZXRhaWxzLCBgZnJhbWV3b3JrZGF0YS4ke3RoaXMuZnJhbWV3b3JrU2VydmljZS5vcmdhbmlzYXRpb25GcmFtZXdvcmt9LmNhdGVnb3JpZXNgKTtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnlJbnN0YW5jZURhdGEgPSBfLmZpbmQob3JnRnJhbWV3b3JrRGF0YSwge2NvZGU6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29uZmlnLmNhdGVnb3J5SW5zdGFuY2UnKX0pO1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YS5jaGlsZHJlbiA9IF8uZ2V0KGNhdGVnb3J5SW5zdGFuY2VEYXRhLCAndGVybXMnKTtcbiAgICAgICAgdGhpcy5pc2hpZXJhcmNoeUNvbmZpZ1NldCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRIaWVyYXJjaHlDaGlsZHJlbkNvbmZpZyhjaGlsZHJlbkRhdGEpIHtcbiAgICBfLmZvckVhY2goY2hpbGRyZW5EYXRhLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgaWYgKF8uaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICBjYXNlICdRdWVzdGlvbic6XG4gICAgICAgICAgICBjaGlsZHJlbkRhdGFba2V5XSA9IF8ubWFwKHRoaXMuaGVscGVyU2VydmljZS5xdWVzdGlvblByaW1hcnlDYXRlZ29yaWVzLCAnbmFtZScpIHx8IHRoaXMuZWRpdG9yQ29uZmlnLmNvbmZpZy5xdWVzdGlvblByaW1hcnlDYXRlZ29yaWVzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnQ29udGVudCc6XG4gICAgICAgICAgICBjaGlsZHJlbkRhdGFba2V5XSA9IF8ubWFwKHRoaXMuaGVscGVyU2VydmljZS5jb250ZW50UHJpbWFyeUNhdGVnb3JpZXMsICduYW1lJykgfHwgW107XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdDb2xsZWN0aW9uJzpcbiAgICAgICAgICAgIGNoaWxkcmVuRGF0YVtrZXldID0gXy5tYXAodGhpcy5oZWxwZXJTZXJ2aWNlLmNvbGxlY3Rpb25QcmltYXJ5Q2F0ZWdvcmllcywgJ25hbWUnKSB8fCBbXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1F1ZXN0aW9uU2V0JzpcbiAgICAgICAgICAgIGNoaWxkcmVuRGF0YVtrZXldID0gXy5tYXAodGhpcy5oZWxwZXJTZXJ2aWNlLnF1ZXN0aW9uc2V0UHJpbWFyeUNhdGVnb3JpZXMsICduYW1lJykgfHwgW107XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjaGlsZHJlbkRhdGE7XG4gIH1cblxuICB0b2dnbGVDb2xsYWJvcmF0b3JNb2RhbFBvdXAoKSB7XG4gICAgdGhpcy5pc0VuYWJsZUNzdkFjdGlvbiA9IHRydWU7XG4gICAgaWYgKHRoaXMuYWRkQ29sbGFib3JhdG9yKSB7XG4gICAgICB0aGlzLmFkZENvbGxhYm9yYXRvciA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuYWRkQ29sbGFib3JhdG9yKSB7XG4gICAgICB0aGlzLmFkZENvbGxhYm9yYXRvciA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICB9XG4gIH1cblxuICB0b29sYmFyRXZlbnRMaXN0ZW5lcihldmVudCkge1xuICAgIHRoaXMuYWN0aW9uVHlwZSA9IGV2ZW50LmJ1dHRvbjtcbiAgICBzd2l0Y2ggKGV2ZW50LmJ1dHRvbikge1xuICAgICAgY2FzZSAnc2F2ZUNvbnRlbnQnOlxuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuc2F2ZUFzRHJhZnRCdXR0b25Mb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNhdmVDb250ZW50KCkudGhlbigobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLnNhdmVBc0RyYWZ0QnV0dG9uTG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKG1lc3NhZ2UpO1xuICAgICAgICAgIHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24gPSB0cnVlO1xuICAgICAgICAgIGlmIChfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5lbmFibGVRdWVzdGlvbkNyZWF0aW9uJykgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLm1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBfLmdldCh0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMsICdkYXRhJylcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2goKChlcnJvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLnNhdmVBc0RyYWZ0QnV0dG9uTG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc0VuYWJsZUNzdkFjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJldmlld0NvbnRlbnQnOlxuICAgICAgICB0aGlzLnByZXZpZXdDb250ZW50KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWRkRnJvbUxpYnJhcnknOlxuICAgICAgICB0aGlzLnNob3dMaWJyYXJ5Q29tcG9uZW50UGFnZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Nob3dRdWVzdGlvbkxpYnJhcnlQYWdlJzpcbiAgICAgICAgdGhpcy5zaG93UXVlc3Rpb25MaWJyYXJ5Q29tcG9uZW50UGFnZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N1Ym1pdENvbnRlbnQnOlxuICAgICAgICB0aGlzLnN1Ym1pdEhhbmRsZXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZW1vdmVDb250ZW50JzpcbiAgICAgICAgdGhpcy5kZWxldGVDb25maXJtTWVzc2FnZSA9IHRoaXMuY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb25maXJtRGVsZXRlTm9kZTtcbiAgICAgICAgdGhpcy5zaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2VkaXRDb250ZW50JzpcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvUXVlc3Rpb25UYWIoJ2VkaXQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZWplY3RDb250ZW50JzpcbiAgICAgICAgdGhpcy5yZWplY3RDb250ZW50KGV2ZW50LmNvbW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3B1Ymxpc2hDb250ZW50JzpcbiAgICAgICAgdGhpcy5wdWJsaXNoQ29udGVudChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb25Gb3JtU3RhdHVzQ2hhbmdlJzpcbiAgICAgICAgdGhpcy5vbkZvcm1TdGF0dXNDaGFuZ2UoZXZlbnQuZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5pc09iamVjdFR5cGVDb2xsZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDc3ZEcm9wZG93bk9wdGlvbnNPbkNvbGxlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29uRm9ybVZhbHVlQ2hhbmdlJzpcbiAgICAgICAgdGhpcy51cGRhdGVUb29sYmFyVGl0bGUoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JhY2tDb250ZW50JzpcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hhcHRlckxpc3RUYWIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZW5kRm9yQ29ycmVjdGlvbnMnOlxuICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYih7IGNvbW1lbnQ6IGV2ZW50LmNvbW1lbnQgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc291cmNpbmdBcHByb3ZlJzpcbiAgICAgICAgdGhpcy5zb3VyY2luZ0FwcHJvdmVDb250ZW50KGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzb3VyY2luZ1JlamVjdCc6XG4gICAgICAgIHRoaXMuc291cmNpbmdSZWplY3RDb250ZW50KHsgY29tbWVudDogZXZlbnQuY29tbWVudCB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhZGRDb2xsYWJvcmF0b3InOlxuICAgICAgICB0aGlzLnRvZ2dsZUNvbGxhYm9yYXRvck1vZGFsUG91cCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Nob3dSZXZpZXdjb21tZW50cyc6XG4gICAgICAgIHRoaXMuc2hvd1Jldmlld01vZGFsID0gIXRoaXMuc2hvd1Jldmlld01vZGFsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jldmlld0NvbnRlbnQnOlxuICAgICAgICB0aGlzLnJlZGlyZWN0VG9RdWVzdGlvblRhYigncmV2aWV3Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGFnaW5hdGlvbic6XG4gICAgICAgIHRoaXMucGFnZUlkID0gJ3BhZ2luYXRpb24nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Byb2dyZXNzU3RhdHVzJzpcbiAgICAgICAgdGhpcy5wYWdlSWQgPSAncHJvZ3Jlc3NTdGF0dXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGNhc2UgJ3Nob3dDb3JyZWN0aW9uY29tbWVudHMnOlxuICAgICAgICAvLyB0aGlzLmNvbnRlbnRDb21tZW50ID0gXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb250ZXh0LmNvcnJlY3Rpb25Db21tZW50cycpXG4gICAgICAgIC8vIHRoaXMuc2hvd1Jldmlld01vZGFsID0gIXRoaXMuc2hvd1Jldmlld01vZGFsO1xuICAgICAgICAvLyBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYihkYXRhPzogYW55KSB7XG4gICAgdGhpcy5lZGl0b3JFbWl0dGVyLmVtaXQoe1xuICAgICAgY2xvc2U6IHRydWUsIGxpYnJhcnk6ICdjb2xsZWN0aW9uX2VkaXRvcicsIGFjdGlvbjogdGhpcy5hY3Rpb25UeXBlLCBpZGVudGlmaWVyOiB0aGlzLmNvbGxlY3Rpb25JZCxcbiAgICAgIC4uLmRhdGFcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVRvb2xiYXJUaXRsZShkYXRhOiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldEFjdGl2ZU5vZGUoKTtcbiAgICBpZiAoIV8uaXNFbXB0eShkYXRhPy5kYXRhPy5uYW1lKSAmJiBzZWxlY3RlZE5vZGU/LmRhdGE/LnJvb3QpIHtcbiAgICAgIHRoaXMudG9vbGJhckNvbmZpZy50aXRsZSA9IGRhdGEuZGF0YS5uYW1lO1xuICAgIH0gZWxzZSBpZiAoXy5pc0VtcHR5KGRhdGE/LmRhdGE/Lm5hbWUpICYmIHNlbGVjdGVkTm9kZT8uZGF0YT8ucm9vdCkge1xuICAgICAgdGhpcy50b29sYmFyQ29uZmlnLnRpdGxlID0gJ1VudGl0bGVkJztcbiAgICB9XG4gIH1cblxuICBzaG93TGlicmFyeUNvbXBvbmVudFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5jaGVja0lmQ29udGVudHNDYW5iZUFkZGVkKCdhZGQnKSkge1xuICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLmFkZEZyb21MaWJyYXJ5QnV0dG9uTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2F2ZUNvbnRlbnQoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgIHRoaXMubGlicmFyeUNvbXBvbmVudElucHV0LmNvbGxlY3Rpb25JZCA9IHRoaXMuY29sbGVjdGlvbklkO1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkRnJvbUxpYnJhcnlCdXR0b25Mb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYWdlSWQgPSAnbGlicmFyeSc7XG4gICAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGVycy5hZGRGcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHNob3dRdWVzdGlvbkxpYnJhcnlDb21wb25lbnRQYWdlKCkge1xuICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMubGlicmFyeUNvbXBvbmVudElucHV0LnNlYXJjaEZvcm1Db25maWcpIHx8IF8uaXNFbXB0eSh0aGlzLmxpYnJhcnlDb21wb25lbnRJbnB1dC5zZWFyY2hGb3JtQ29uZmlnKSkge1xuICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5lcnIuc2VhcmNoQ29uZmlnTm90Rm91bmQnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuY2hlY2tJZkNvbnRlbnRzQ2FuYmVBZGRlZCgnYWRkJykpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uQ2F0ZWdvcnkgPSBbXTtcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGVycy5hZGRRdWVzdGlvbkZyb21MaWJyYXJ5QnV0dG9uTG9hZGVyID0gdHJ1ZTtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmVkaXRvclNlcnZpY2UudGVtcGxhdGVMaXN0KSAmJlxuICAgICAgICBfLmlzQXJyYXkodGhpcy5lZGl0b3JTZXJ2aWNlLnRlbXBsYXRlTGlzdCkpIHtcbiAgICAgICAgICBfLmZvckVhY2godGhpcy5lZGl0b3JTZXJ2aWNlLnRlbXBsYXRlTGlzdCwgKHRlbXBsYXRlKSA9PiB7XG4gICAgICAgICAgICBxdWVzdGlvbkNhdGVnb3J5LnB1c2goe25hbWU6IHRlbXBsYXRlLCB0YXJnZXRPYmplY3RUeXBlOiAnUXVlc3Rpb24nfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIHRoaXMuc2F2ZUNvbnRlbnQoKS50aGVuKChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlTm9kZSA9IHRoaXMudHJlZVNlcnZpY2UuZ2V0QWN0aXZlTm9kZSgpO1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkUXVlc3Rpb25Gcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnF1ZXN0aW9ubGlicmFyeUlucHV0ID0ge1xuICAgICAgICAgIGxpYnJhcnlMYWJlbHM6IHtcbiAgICAgICAgICAgIGl0ZW1UeXBlOiBfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5sYmwucXVlc3Rpb25zZXRBZGRGcm9tTGlicmFyeUl0ZW1MYWJlbCcpLFxuICAgICAgICAgICAgY29sbGVjdGlvblR5cGU6IF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLmxibC5xdWVzdGlvbnNldEFkZEZyb21MaWJyYXJ5Q29sbGVjdGlvbkxhYmVsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRhcmdldFByaW1hcnlDYXRlZ29yaWVzOiBxdWVzdGlvbkNhdGVnb3J5LFxuICAgICAgICAgIGNvbGxlY3Rpb25JZDogdGhpcy5jb2xsZWN0aW9uSWQsXG4gICAgICAgICAgZXhpc3Rpbmdjb250ZW50Q291bnRzOiB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0Q29udGVudENoaWxkcmVucygpLmxlbmd0aCxcbiAgICAgICAgICBjb2xsZWN0aW9uOiBhY3RpdmVOb2RlPy5kYXRhPy5tZXRhZGF0YSxcbiAgICAgICAgICBmcmFtZXdvcms6IHRoaXMub3JnYW5pc2F0aW9uRnJhbWV3b3JrLFxuICAgICAgICAgIGVkaXRvckNvbmZpZzogdGhpcy5lZGl0b3JDb25maWcsXG4gICAgICAgICAgc2VhcmNoRm9ybUNvbmZpZzogIHRoaXMubGlicmFyeUNvbXBvbmVudElucHV0LnNlYXJjaEZvcm1Db25maWdcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5wYWdlSWQgPSAncXVlc3Rpb25fbGlicmFyeSc7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucXVlc3Rpb25saWJyYXJ5SW5wdXQpO1xuICAgICAgfSkuY2F0Y2goKChlcnJvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkUXVlc3Rpb25Gcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIGxpYnJhcnlFdmVudExpc3RlbmVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMucGFnZUlkID0gJ2NvbGxlY3Rpb25fZWRpdG9yJztcbiAgICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQgPSB0aGlzLnBhZ2VJZDtcbiAgICAgIHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24gPSB0cnVlO1xuICAgICAgdGhpcy5pc0NvbXBvbmVuZXRJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBvblF1ZXN0aW9uTGlicmFyeUNoYW5nZShldmVudDogYW55KSB7XG4gICAgc3dpdGNoIChldmVudC5hY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2FkZEJ1bGsnOlxuICAgICAgICB0aGlzLmFkZFJlc291cmNlVG9RdWVzdGlvbnNldChldmVudC5jb2xsZWN0aW9uSWRzLCBldmVudC5yZXNvdXJjZVR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JhY2snOlxuICAgICAgICB0aGlzLmxpYnJhcnlFdmVudExpc3RlbmVyKHt9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZFJlc291cmNlVG9RdWVzdGlvbnNldChjb250ZW50SWQsIHJlc291cmNlVHlwZSkge1xuICAgIGNvbnN0IGFjdGl2ZU5vZGUgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldEFjdGl2ZU5vZGUoKTtcbiAgICBjb25zdCBjaGlsZHJlbjogYW55W10gPSBfLmlzQXJyYXkoY29udGVudElkKSA/IGNvbnRlbnRJZCA6IFtjb250ZW50SWRdO1xuICAgIGlmIChyZXNvdXJjZVR5cGUgPT09ICdRdWVzdGlvbicpIHtcbiAgICAgIGlmIChhY3RpdmVOb2RlICYmIGFjdGl2ZU5vZGUuZGF0YS5pZCkge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWRkUmVzb3VyY2VUb1F1ZXN0aW9uc2V0KHRoaXMuY29sbGVjdGlvbklkLCBhY3RpdmVOb2RlLmRhdGEuaWQsXG4gICAgICAgICAgY2hpbGRyZW4pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGlmIChfLmdldChyZXMsICdyZXNwb25zZUNvZGUnKSA9PT0gJ09LJykge1xuICAgICAgICAgICAgdGhpcy5saWJyYXJ5RXZlbnRMaXN0ZW5lcih7fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgIGNvbnN0IGVyckluZm8gPSB7XG4gICAgICAgICAgICBlcnJvck1zZzogXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDQzJylcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHRoaXMuZWRpdG9yU2VydmljZS5hcGlFcnJvckhhbmRsaW5nKGVyciwgZXJySW5mbykpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzYXZlQ29udGVudCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9ybVN0YXR1cygpKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDI5JykpO1xuICAgICAgfVxuICAgICAgY29uc3Qgbm9kZXNNb2RpZmllZCA9IF8uZ2V0KHRoaXMuZWRpdG9yU2VydmljZS5nZXRDb2xsZWN0aW9uSGllcmFyY2h5KCksICdub2Rlc01vZGlmaWVkJyk7XG4gICAgICBpZiAodGhpcy5vYmplY3RUeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdxdWVzdGlvbnNldCcpIHtcbiAgICAgICAgY29uc3QgbWF4U2NvcmUgPSBhd2FpdCB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0TWF4U2NvcmUoKTtcbiAgICAgICAgdGhpcy50cmVlU2VydmljZS51cGRhdGVNZXRhRGF0YVByb3BlcnR5KCdtYXhTY29yZScsIG1heFNjb3JlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS51cGRhdGVIaWVyYXJjaHkoKVxuICAgICAgICAucGlwZShtYXAoZGF0YSA9PiBfLmdldChkYXRhLCAncmVzdWx0JykpKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnRvb2xiYXJDb25maWcuc2hvd0RpYWxjb2RlID09PSAneWVzJykge1xuICAgICAgICAgICAgdGhpcy5kaWFsY29kZVNlcnZpY2UuaGlnaGxpZ2h0Tm9kZUZvckludmFsaWREaWFsQ29kZShyZXNwb25zZSwgbm9kZXNNb2RpZmllZCwgdGhpcy5jb2xsZWN0aW9uSWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIV8uaXNFbXB0eShyZXNwb25zZS5pZGVudGlmaWVycykpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UucmVwbGFjZU5vZGVJZChyZXNwb25zZS5pZGVudGlmaWVycyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy50cmVlU2VydmljZS5jbGVhclRyZWVDYWNoZSgpO1xuICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UubmV4dFRyZWVTdGF0dXMoJ3NhdmVkJyk7XG4gICAgICAgICAgcmVzb2x2ZShfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5zdWNjZXNzLjAwMScpKTtcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICByZWplY3QoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDAxJykpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdEhhbmRsZXIoKSB7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9ybVN0YXR1cygpKSB7XG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLmVycm9yLjAwNScpKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9vbGJhckNvbmZpZy5zaG93RGlhbGNvZGUgPT09ICd5ZXMnKSB7XG4gICAgICBpZiAodGhpcy5kaWFsY29kZVNlcnZpY2UudmFsaWRhdGVVbml0c0RpYWxjb2RlcygpKSB7XG4gICAgICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm5pbmcoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMud2FybmluZy4wMDEnKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVGb3JtU3RhdHVzKCkge1xuICAgIGNvbnN0IGlzVmFsaWQgPSBfLmV2ZXJ5KHRoaXMuZm9ybVN0YXR1c01hcHBlciwgQm9vbGVhbik7XG4gICAgaWYgKGlzVmFsaWQpIHsgcmV0dXJuIHRydWU7IH1cbiAgICBfLmZvckluKHRoaXMuZm9ybVN0YXR1c01hcHBlciwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLmhpZ2hsaWdodE5vZGUoa2V5LCAncmVtb3ZlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLmhpZ2hsaWdodE5vZGUoa2V5LCAnYWRkJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJldmlld0NvbnRlbnQoKSB7XG4gICAgdGhpcy5idXR0b25Mb2FkZXJzLnByZXZpZXdCdXR0b25Mb2FkZXIgPSB0cnVlO1xuICAgIGlmICghdGhpcy5pc1N0YXR1c1Jldmlld01vZGUpIHtcbiAgICAgIHRoaXMuc2F2ZUNvbnRlbnQoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc2V0VXBkYXRlZFRyZWVOb2RlRGF0YSgpO1xuICAgICAgfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnIpO1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMucHJldmlld0J1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0VXBkYXRlZFRyZWVOb2RlRGF0YSgpO1xuICAgIH1cbiAgfVxuICBzZW5kRm9yUmV2aWV3KCkge1xuICAgIHRoaXMuc2F2ZUNvbnRlbnQoKS50aGVuKG1lc3NnID0+IHtcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5yZXZpZXdDb250ZW50KHRoaXMuY29sbGVjdGlvbklkKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcyhfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5zdWNjZXNzLjAwMicpKTtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hhcHRlckxpc3RUYWIoKTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDAyJykpO1xuICAgICAgfSk7XG4gICAgfSkuY2F0Y2goZXJyID0+IHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyKSk7XG4gIH1cbiAgcmVqZWN0Q29udGVudChjb21tZW50KSB7XG4gICAgY29uc3QgZWRpdGFibGVGaWVsZHMgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZy5jb25maWcsICdlZGl0YWJsZUZpZWxkcycpO1xuICAgIGlmICh0aGlzLmVkaXRvck1vZGUgPT09ICdvcmdyZXZpZXcnICYmIGVkaXRhYmxlRmllbGRzICYmICFfLmlzRW1wdHkoZWRpdGFibGVGaWVsZHNbdGhpcy5lZGl0b3JNb2RlXSkpIHtcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZUZvcm1TdGF0dXMoKSkge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLmVycm9yLjAyOScpKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnVwZGF0ZUNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uSWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc3VibWl0UmVxdWVzdENoYW5nZXModGhpcy5jb2xsZWN0aW9uSWQsIGNvbW1lbnQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcyhfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5zdWNjZXNzLjAwMycpKTtcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYigpO1xuICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDAzJykpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc3VibWl0UmVxdWVzdENoYW5nZXModGhpcy5jb2xsZWN0aW9uSWQsIGNvbW1lbnQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuc3VjY2Vzcy4wMDMnKSk7XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKCk7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLmVycm9yLjAwMycpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1Ymxpc2hDb250ZW50KGV2ZW50KSB7XG4gICAgY29uc3QgZWRpdGFibGVGaWVsZHMgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5lZGl0YWJsZUZpZWxkcycpO1xuICAgIGlmICh0aGlzLmVkaXRvck1vZGUgPT09ICdvcmdyZXZpZXcnICYmIGVkaXRhYmxlRmllbGRzICYmICFfLmlzRW1wdHkoZWRpdGFibGVGaWVsZHNbdGhpcy5lZGl0b3JNb2RlXSkpIHtcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZUZvcm1TdGF0dXMoKSkge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLmVycm9yLjAyOScpKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnVwZGF0ZUNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uSWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UucHVibGlzaENvbnRlbnQodGhpcy5jb2xsZWN0aW9uSWQsIGV2ZW50KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcyhfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5zdWNjZXNzLjAwNCcpKTtcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYigpO1xuICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDA0JykpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UucHVibGlzaENvbnRlbnQodGhpcy5jb2xsZWN0aW9uSWQsIGV2ZW50KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLnN1Y2Nlc3MuMDA0JykpO1xuICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYigpO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDQnKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgc291cmNpbmdBcHByb3ZlQ29udGVudChldmVudCkge1xuICAgIGNvbnN0IGVkaXRhYmxlRmllbGRzID0gXy5nZXQodGhpcy5lZGl0b3JDb25maWcuY29uZmlnLCAnZWRpdGFibGVGaWVsZHMnKTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgaWYgKHRoaXMuZWRpdG9yTW9kZSA9PT0gJ3NvdXJjaW5ncmV2aWV3JyAmJiAoKGVkaXRhYmxlRmllbGRzICYmICFfLmlzRW1wdHkoZWRpdGFibGVGaWVsZHNbdGhpcy5lZGl0b3JNb2RlXSkpIHx8ICFfLmlzRW1wdHkodGhpcy5wdWJsaXNoY2hlY2tsaXN0KSkpIHtcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZUZvcm1TdGF0dXMoKSkge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLmVycm9yLjAyOScpKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnVwZGF0ZUNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uSWQsIGV2ZW50KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYigpO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnIpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hhcHRlckxpc3RUYWIoKTtcbiAgICB9XG4gIH1cbiAgc291cmNpbmdSZWplY3RDb250ZW50KG9iaikge1xuICAgIGNvbnN0IGVkaXRhYmxlRmllbGRzID0gXy5nZXQodGhpcy5lZGl0b3JDb25maWcuY29uZmlnLCAnZWRpdGFibGVGaWVsZHMnKTtcbiAgICBpZiAodGhpcy5lZGl0b3JNb2RlID09PSAnc291cmNpbmdyZXZpZXcnICYmIGVkaXRhYmxlRmllbGRzICYmICFfLmlzRW1wdHkoZWRpdGFibGVGaWVsZHNbdGhpcy5lZGl0b3JNb2RlXSkpIHtcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZUZvcm1TdGF0dXMoKSkge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZSwgJ2xhYmVsQ29uZmlnLm1lc3NhZ2VzLmVycm9yLjAyOScpKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnVwZGF0ZUNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uSWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYXB0ZXJMaXN0VGFiKG9iaik7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFwdGVyTGlzdFRhYihvYmopO1xuICAgIH1cbiAgfVxuICBzZXRVcGRhdGVkVHJlZU5vZGVEYXRhKCkge1xuICAgIHRoaXMuZWRpdG9yU2VydmljZS5mZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodGhpcy5jb2xsZWN0aW9uSWQpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICB0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMgPSB7XG4gICAgICAgIGRhdGE6IF8uZ2V0KHJlcywgYHJlc3VsdC4ke3RoaXMub2JqZWN0VHlwZX1gKVxuICAgICAgfTtcbiAgICAgIHRoaXMudXBkYXRlVHJlZU5vZGVEYXRhKCk7XG4gICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMucHJldmlld0J1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93UHJldmlldyA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudDogYW55ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3ByZXZpZXdQbGF5ZXJDb250YWluZXInKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwMCk7XG4gICAgfSwgZXJyb3IgPT4ge1xuICAgICAgdGhpcy5idXR0b25Mb2FkZXJzLnByZXZpZXdCdXR0b25Mb2FkZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXy5nZXQoZXJyb3IsICdlcnJvci5wYXJhbXMuZXJybXNnJykpO1xuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVRyZWVOb2RlRGF0YSgpIHtcbiAgICBjb25zdCB0cmVlTm9kZURhdGEgPSBfLmdldCh0aGlzLnRyZWVTZXJ2aWNlLmdldEZpcnN0Q2hpbGQoKSwgJ2RhdGEubWV0YWRhdGEnKTtcbiAgICBpZiAoIXRyZWVOb2RlRGF0YS50aW1lTGltaXRzKSB7XG4gICAgICB0cmVlTm9kZURhdGEudGltZUxpbWl0cyA9IHt9O1xuICAgIH1cbiAgICBpZiAodHJlZU5vZGVEYXRhLm1heFRpbWUpIHtcbiAgICAgIHRyZWVOb2RlRGF0YS50aW1lTGltaXRzLm1heFRpbWUgPSB0aGlzLmhlbHBlclNlcnZpY2UuaG1zVG9TZWNvbmRzKHRyZWVOb2RlRGF0YS5tYXhUaW1lKTtcbiAgICB9XG4gICAgaWYgKHRyZWVOb2RlRGF0YS53YXJuaW5nVGltZSkge1xuICAgICAgdHJlZU5vZGVEYXRhLnRpbWVMaW1pdHMud2FybmluZ1RpbWUgPSB0aGlzLmhlbHBlclNlcnZpY2UuaG1zVG9TZWNvbmRzKHRyZWVOb2RlRGF0YS53YXJuaW5nVGltZSk7XG4gICAgfVxuICAgIHRoaXMuY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhID0gXy5tZXJnZSh0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YSwgXy5vbWl0KHRyZWVOb2RlRGF0YSwgWydjaGlsZE5vZGVzJ10pKTtcbiAgfVxuICB0cmVlRXZlbnRMaXN0ZW5lcihldmVudDogYW55KSB7XG4gICAgdGhpcy5hY3Rpb25UeXBlID0gZXZlbnQudHlwZTtcbiAgICB0aGlzLnVwZGF0ZVRyZWVOb2RlRGF0YSgpO1xuICAgIGlmICh0aGlzLmlzT2JqZWN0VHlwZUNvbGxlY3Rpb24pIHtcbiAgICAgIHRoaXMuaGFuZGxlQ3N2RHJvcGRvd25PcHRpb25zT25Db2xsZWN0aW9uKCk7XG4gICAgfVxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnbm9kZVNlbGVjdCc6XG4gICAgICAgIHRoaXMudXBkYXRlU3VibWl0QnRuVmlzaWJpbGl0eSgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSBfLmNsb25lRGVlcChldmVudC5kYXRhKTtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnROb2RlRm9sZGVyID0gXy5nZXQodGhpcy5zZWxlY3RlZE5vZGVEYXRhLCAnZm9sZGVyJyk7XG4gICAgICAgIHRoaXMuaXNDdXJyZW50Tm9kZVJvb3QgPSBfLmdldCh0aGlzLnNlbGVjdGVkTm9kZURhdGEsICdkYXRhLnJvb3QnKTtcbiAgICAgICAgLy8gVE9ETzogcmV0aGluayBiZWxvdyBsaW5lIGNvZGVcbiAgICAgICAgdGhpcy5pc1F1bWxQbGF5ZXIgPSBfLmdldCh0aGlzLnNlbGVjdGVkTm9kZURhdGEsICdkYXRhLm1ldGFkYXRhLm1pbWVUeXBlJykgPT09ICdhcHBsaWNhdGlvbi92bmQuc3VuYmlyZC5xdWVzdGlvbic7XG4gICAgICAgIHRoaXMuc2V0VGVtcGxhdGVMaXN0KCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGVOb2RlJzpcbiAgICAgICAgdGhpcy5kZWxldGVDb25maXJtTWVzc2FnZSA9IHRoaXMuY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb25maXJtRGVsZXRlTm9kZTtcbiAgICAgICAgaWYgKCFldmVudC5pc0NvbnRlbnQgJiYgXy5oYXModGhpcy5lZGl0b3JDb25maWcuY29uZmlnLCAnaGllcmFyY2h5LmxldmVsMScpKSB7XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICAgIHRoaXMuZGVsZXRlQ29uZmlybU1lc3NhZ2UgPSBfLnJlcGxhY2UodGhpcy5kZWxldGVDb25maXJtTWVzc2FnZSwgJ05vZGUnLCBfLmdldCh0aGlzLmVkaXRvckNvbmZpZy5jb25maWcsICdoaWVyYXJjaHkubGV2ZWwxLm5hbWUnKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NyZWF0ZU5ld0NvbnRlbnQnOlxuICAgICAgICB0aGlzLnNldENoaWxkUXVlc3Rpb24gPSBldmVudC5pc0NoaWxkUXVlc3Rpb247XG4gICAgICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuY2hlY2tJZkNvbnRlbnRzQ2FuYmVBZGRlZCgnY3JlYXRlJykpIHtcbiAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkRnJvbUxpYnJhcnlCdXR0b25Mb2FkZXIgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gdGhpcy5lZGl0b3JTZXJ2aWNlLnRlbXBsYXRlTGlzdDtcbiAgICAgICAgICB0aGlzLnNhdmVDb250ZW50KCkudGhlbigobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRlcnMuYWRkRnJvbUxpYnJhcnlCdXR0b25Mb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1F1ZXN0aW9uVGVtcGxhdGVQb3B1cCA9IHRydWU7XG4gICAgICAgICAgfSkuY2F0Y2goKChlcnJvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTG9hZGVycy5hZGRGcm9tTGlicmFyeUJ1dHRvbkxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldFRlbXBsYXRlTGlzdCgpIHtcbiAgICBpZiAodGhpcy5pc0N1cnJlbnROb2RlUm9vdCkge1xuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBfLmZsYXRNYXAoXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcuY2hpbGRyZW4nKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gXy5mbGF0TWFwKFxuICAgICAgICBfLmdldCh0aGlzLmVkaXRvclNlcnZpY2UuZWRpdG9yQ29uZmlnLmNvbmZpZywgYGhpZXJhcmNoeS5sZXZlbCR7dGhpcy5zZWxlY3RlZE5vZGVEYXRhLmdldExldmVsKCkgLSAxfS5jaGlsZHJlbmApXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmVkaXRvclNlcnZpY2UudGVtcGxhdGVMaXN0ID0gdGhpcy50ZW1wbGF0ZUxpc3Q7XG4gIH1cblxuICBkZWxldGVOb2RlKCkge1xuICAgIGNvbnN0IGFjdGl2ZU5vZGUgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldEFjdGl2ZU5vZGUoKTtcbiAgICBkZWxldGUgdGhpcy5mb3JtU3RhdHVzTWFwcGVyW2FjdGl2ZU5vZGUuZGF0YS5pZF07XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnRyZWVTZXJ2aWNlLmdldENoaWxkcmVuKCk7XG4gICAgXy5mb3JFYWNoKGNoaWxkcmVuLCAobm9kZSkgPT4ge1xuICAgICAgaWYgKF8uaGFzKHRoaXMuZm9ybVN0YXR1c01hcHBlciwgbm9kZS5kYXRhLmlkKSkge1xuICAgICAgICBkZWxldGUgdGhpcy5mb3JtU3RhdHVzTWFwcGVyW25vZGUuZGF0YS5pZF07XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy50cmVlU2VydmljZS5yZW1vdmVOb2RlKCk7XG4gICAgdGhpcy51cGRhdGVTdWJtaXRCdG5WaXNpYmlsaXR5KCk7XG4gICAgdGhpcy5zaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSBmYWxzZTtcbiAgICB0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YS5jaGlsZE5vZGVzID0gXy5maWx0ZXIodGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLmRhdGEuY2hpbGROb2RlcywgKGtleSkgPT4ge1xuICAgICAgcmV0dXJuIGtleSAhPT0gYWN0aXZlTm9kZS5kYXRhLmlkO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3VibWl0QnRuVmlzaWJpbGl0eSgpIHtcbiAgICBjb25zdCByb290Rmlyc3RDaGlsZE5vZGUgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldEZpcnN0Q2hpbGQoKTtcbiAgICBpZiAocm9vdEZpcnN0Q2hpbGROb2RlICYmICFyb290Rmlyc3RDaGlsZE5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMudG9vbGJhckNvbmZpZy5oYXNDaGlsZHJlbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvb2xiYXJDb25maWcuaGFzQ2hpbGRyZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVGVsZW1ldHJ5RW5kRXZlbnQoKSB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RW5kID0ge1xuICAgICAgdHlwZTogJ2VkaXRvcicsXG4gICAgICBwYWdlaWQ6IHRoaXMudGVsZW1ldHJ5U2VydmljZT8udGVsZW1ldHJ5UGFnZUlkLFxuICAgICAgbW9kZTogdGhpcy5lZGl0b3JNb2RlLFxuICAgICAgZHVyYXRpb246IF8udG9TdHJpbmcoKERhdGUubm93KCkgLSB0aGlzLnBhZ2VTdGFydFRpbWUpIC8gMTAwMClcbiAgICB9O1xuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZT8uZW5kKHRlbGVtZXRyeUVuZCk7XG4gIH1cblxuICBoYW5kbGVUZW1wbGF0ZVNlbGVjdGlvbigkZXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RlZFF1ZXN0aW9uVHlwZSA9ICRldmVudDtcbiAgICB0aGlzLnNob3dRdWVzdGlvblRlbXBsYXRlUG9wdXAgPSBmYWxzZTtcbiAgICBpZiAoc2VsZWN0ZWRRdWVzdGlvblR5cGUgJiYgc2VsZWN0ZWRRdWVzdGlvblR5cGUudHlwZSA9PT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyB0aGlzIHdpbGwgYWN0aXZhdGUgdGhlIHNhdmUgYW5kIGNhbmNlbCBidXR0b25cbiAgICB0aGlzLmVkaXRvckNvbmZpZy5jb25maWcuc2hvd1NvdXJjaW5nU3RhdHVzID0gZmFsc2U7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRDYXRlZ29yeURlZmluaXRpb24oc2VsZWN0ZWRRdWVzdGlvblR5cGUsIG51bGwsICdRdWVzdGlvbicpXG4gICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZHRlbXBsYXRlRGV0YWlscyA9IHJlcy5yZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uO1xuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNlbGVjdGVkQ2hpbGRyZW5bJ2xhYmVsJ109c2VsZWN0ZWR0ZW1wbGF0ZURldGFpbHMubGFiZWw7XG4gICAgICBjb25zdCBzZWxlY3RlZFRlbXBsYXRlRm9ybUZpZWxkcyA9IF8uZ2V0KHNlbGVjdGVkdGVtcGxhdGVEZXRhaWxzLCAnZm9ybXMuY3JlYXRlLnByb3BlcnRpZXMnKTtcbiAgICAgIGlmICghXy5pc0VtcHR5KHNlbGVjdGVkVGVtcGxhdGVGb3JtRmllbGRzKSkge1xuICAgICAgICBjb25zdCBxdWVzdGlvbkNhdGVnb3J5Q29uZmlnID0gc2VsZWN0ZWRUZW1wbGF0ZUZvcm1GaWVsZHM7XG4gICAgICAgIHF1ZXN0aW9uQ2F0ZWdvcnlDb25maWcuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgaWYgKGZpZWxkLmNvZGUgPT09ICdldmlkZW5jZU1pbWVUeXBlJykge1xuICAgICAgICAgICAgZXZpZGVuY2VNaW1lVHlwZSA9IGZpZWxkLnJhbmdlO1xuICAgICAgICAgICAgZmllbGQub3B0aW9ucyA9IHRoaXMuc2V0RXZpZGVuY2U7XG4gICAgICAgICAgICBmaWVsZC5yYW5nZSA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sZWFmRm9ybUNvbmZpZyA9IHF1ZXN0aW9uQ2F0ZWdvcnlDb25maWc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhdE1ldGFEYXRhID0gXy5nZXQoc2VsZWN0ZWR0ZW1wbGF0ZURldGFpbHMsICdvYmplY3RNZXRhZGF0YScpO1xuICAgICAgdGhpcy5zb3VyY2luZ1NldHRpbmdzID0gXy5nZXQoY2F0TWV0YURhdGEsICdjb25maWcuc291cmNpbmdTZXR0aW5ncycpIHx8IHt9O1xuICAgICAgIV8uaXNVbmRlZmluZWQodGhpcy5lZGl0b3JDb25maWcuY29uZmlnLnJlbmRlclRheG9ub215KSA/ICh0aGlzLnF1ZXN0aW9uQ29tcG9uZW50SW5wdXQuY29uZmlnID17bWF4aW11bU9wdGlvbnM6Xy5nZXQoY2F0TWV0YURhdGEsICdjb25maWcubWF4aW11bU9wdGlvbnMnKX0pIDogJycgO1xuICAgICAgaWYgKCFfLmhhcyh0aGlzLnNvdXJjaW5nU2V0dGluZ3MsICdlbmZvcmNlQ29ycmVjdEFuc3dlcicpKSB7XG4gICAgICAgIHRoaXMuc291cmNpbmdTZXR0aW5ncy5lbmZvcmNlQ29ycmVjdEFuc3dlciA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoXy5pc0VtcHR5KF8uZ2V0KGNhdE1ldGFEYXRhLCAnc2NoZW1hLnByb3BlcnRpZXMuaW50ZXJhY3Rpb25UeXBlcy5pdGVtcy5lbnVtJykpKSB7XG4gICAgICAgIC8vIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IodGhpcy5yZXNvdXJjZVNlcnZpY2UubWVzc2FnZXMuZW1zZy5tMDAyNik7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWxlY3RlZENoaWxkcmVuID0ge1xuICAgICAgICAgIHByaW1hcnlDYXRlZ29yeTogc2VsZWN0ZWRRdWVzdGlvblR5cGUsXG4gICAgICAgICAgbWltZVR5cGU6IGNhdE1ldGFEYXRhLnNjaGVtYS5wcm9wZXJ0aWVzLm1pbWVUeXBlLmVudW1bMF0sXG4gICAgICAgICAgaW50ZXJhY3Rpb25UeXBlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb1F1ZXN0aW9uVGFiKHVuZGVmaW5lZCwgJ2RlZmF1bHQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uVHlwZXMgPSBjYXRNZXRhRGF0YS5zY2hlbWEucHJvcGVydGllcy5pbnRlcmFjdGlvblR5cGVzLml0ZW1zLmVudW07XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWxlY3RlZENoaWxkcmVuID0ge1xuICAgICAgICAgIHByaW1hcnlDYXRlZ29yeTogc2VsZWN0ZWRRdWVzdGlvblR5cGUsXG4gICAgICAgICAgbWltZVR5cGU6IGNhdE1ldGFEYXRhLnNjaGVtYS5wcm9wZXJ0aWVzLm1pbWVUeXBlLmVudW1bMF0sXG4gICAgICAgICAgaW50ZXJhY3Rpb25UeXBlOiBpbnRlcmFjdGlvblR5cGVzWzBdXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb1F1ZXN0aW9uVGFiKHVuZGVmaW5lZCwgaW50ZXJhY3Rpb25UeXBlc1swXSk7XG4gICAgICB9XG4gICAgfSwoZXJyb3IpID0+IHtcbiAgICAgIGNvbnN0IGVyckluZm8gPSB7XG4gICAgICAgIGVycm9yTXNnOiBfLmdldCh0aGlzLmNvbmZpZ1NlcnZpY2UsICdsYWJlbENvbmZpZy5tZXNzYWdlcy5lcnJvci4wMDYnKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcih0aGlzLmVkaXRvclNlcnZpY2UuYXBpRXJyb3JIYW5kbGluZyhlcnJvciwgZXJySW5mbykpXG4gICAgfSk7XG4gIH1cblxuICByZWRpcmVjdFRvUXVlc3Rpb25UYWIobW9kZSwgaW50ZXJhY3Rpb25UeXBlPykge1xuICAgIGxldCBxdWVzdGlvbklkID0gIV8uaXNVbmRlZmluZWQobW9kZSkgPyB0aGlzLnNlbGVjdGVkTm9kZURhdGE/LmRhdGE/Lm1ldGFkYXRhPy5pZGVudGlmaWVyIDogdW5kZWZpbmVkO1xuICAgIGxldCBxdWVzdGlvbkNhdGVnb3J5ID0gJyc7XG4gICAgaWYgKHRoaXMub2JqZWN0VHlwZSA9PT0gJ3F1ZXN0aW9uJykge1xuICAgICAgcXVlc3Rpb25JZCA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5pZGVudGlmaWVyJyk7XG4gICAgICBpbnRlcmFjdGlvblR5cGUgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5pbnRlcmFjdGlvblR5cGUnKTtcbiAgICAgIHF1ZXN0aW9uQ2F0ZWdvcnkgPSBfLmdldCh0aGlzLmVkaXRvckNvbmZpZywgJ2NvbmZpZy5xdWVzdGlvbkNhdGVnb3J5Jyk7XG4gICAgICB0aGlzLmNyZWF0aW9uQ29udGV4dCA9ICB7XG4gICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgIG9iamVjdFR5cGU6IHRoaXMub2JqZWN0VHlwZSxcbiAgICAgICAgY29sbGVjdGlvbk9iamVjdFR5cGU6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5jb2xsZWN0aW9uT2JqZWN0VHlwZScpLFxuICAgICAgICBpc1JlYWRPbmx5TW9kZTogXy5nZXQodGhpcy5lZGl0b3JDb25maWcsICdjb25maWcuaXNSZWFkT25seU1vZGUnKSxcbiAgICAgICAgdW5pdElkZW50aWZpZXI6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC51bml0SWRlbnRpZmllcicpLFxuICAgICAgICBjb3JyZWN0aW9uQ29tbWVudHM6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5jb3JyZWN0aW9uQ29tbWVudHMnKSxcbiAgICAgICAgZWRpdGFibGVGaWVsZHM6IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29uZmlnLmVkaXRhYmxlRmllbGRzJylcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5xdWVzdGlvbkNvbXBvbmVudElucHV0ID0ge1xuICAgICAgLi4udGhpcy5xdWVzdGlvbkNvbXBvbmVudElucHV0LFxuICAgICAgcXVlc3Rpb25TZXRJZDogdGhpcy5jb2xsZWN0aW9uSWQsXG4gICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbklkLFxuICAgICAgdHlwZTogaW50ZXJhY3Rpb25UeXBlLFxuICAgICAgc2V0Q2hpbGRRdWVzdG9uOm1vZGUgPT09ICdlZGl0JyA/IGZhbHNlIDogdGhpcy5zZXRDaGlsZFF1ZXN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IHF1ZXN0aW9uQ2F0ZWdvcnksXG4gICAgICBjcmVhdGlvbkNvbnRleHQ6IHRoaXMuY3JlYXRpb25Db250ZXh0LCAvLyBQYXNzIHRoZSBjcmVhdGlvbiBjb250ZXh0IHRvIHRoZSBxdWVzdGlvbi1jb21wb25lbnRcbiAgICAgIGNyZWF0aW9uTW9kZTogbW9kZVxuICAgIH07XG5cbiAgICBpZighXy5pc1VuZGVmaW5lZChtb2RlKSAmJiAhXy5pc1VuZGVmaW5lZCh0aGlzLmVkaXRvckNvbmZpZy5jb25maWcucmVuZGVyVGF4b25vbXkpKXtcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZWxlY3RlZENoaWxkcmVuID0ge1xuICAgICAgICBwcmltYXJ5Q2F0ZWdvcnk6IF8uZ2V0KHRoaXMuc2VsZWN0ZWROb2RlRGF0YSwgJ2RhdGEubWV0YWRhdGEucHJpbWFyeUNhdGVnb3J5JyksXG4gICAgICAgIGludGVyYWN0aW9uVHlwZTogXy5nZXQodGhpcy5zZWxlY3RlZE5vZGVEYXRhLCAnZGF0YS5tZXRhZGF0YS5pbnRlcmFjdGlvblR5cGVzWzBdJylcbiAgICAgIH07XG4gICAgICAgIHRoaXMucXVlc3Rpb25Db21wb25lbnRJbnB1dCA9IHtcbiAgICAgICAgICAuLi50aGlzLnF1ZXN0aW9uQ29tcG9uZW50SW5wdXQsXG4gICAgICAgICAgY3JlYXRpb25Db250ZXh0OntcbiAgICAgICAgICAgIGlzUmVhZE9ubHlNb2RlOiBtb2RlICE9PSAnZWRpdCcgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICBjb3JyZWN0aW9uQ29tbWVudHM6dGhpcy5jb250ZW50Q29tbWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0Q2F0ZWdvcnlEZWZpbml0aW9uKHRoaXMuc2VsZWN0ZWROb2RlRGF0YS5kYXRhLm1ldGFkYXRhLnByaW1hcnlDYXRlZ29yeSwgbnVsbCwgJ1F1ZXN0aW9uJylcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZHRlbXBsYXRlRGV0YWlscyA9IHJlcy5yZXN1bHQub2JqZWN0Q2F0ZWdvcnlEZWZpbml0aW9uO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2VsZWN0ZWRDaGlsZHJlblsnbGFiZWwnXT1zZWxlY3RlZHRlbXBsYXRlRGV0YWlscy5sYWJlbDtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZW1wbGF0ZUZvcm1GaWVsZHMgPSBfLmdldChzZWxlY3RlZHRlbXBsYXRlRGV0YWlscywgJ2Zvcm1zLmNyZWF0ZS5wcm9wZXJ0aWVzJyk7XG4gICAgICAgIHRoaXMucXVlc3Rpb25Db21wb25lbnRJbnB1dC5jb25maWcgPXttYXhpbXVtT3B0aW9uczpfLmdldChzZWxlY3RlZHRlbXBsYXRlRGV0YWlscywgJ29iamVjdE1ldGFkYXRhLmNvbmZpZy5tYXhpbXVtT3B0aW9ucycpfVxuICAgICAgICBpZiAoIV8uaXNFbXB0eShzZWxlY3RlZFRlbXBsYXRlRm9ybUZpZWxkcykpIHtcbiAgICAgICAgICBjb25zdCBxdWVzdGlvbkNhdGVnb3J5Q29uZmlnID0gc2VsZWN0ZWRUZW1wbGF0ZUZvcm1GaWVsZHM7XG4gICAgICAgICAgcXVlc3Rpb25DYXRlZ29yeUNvbmZpZy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5jb2RlID09PSAnZXZpZGVuY2VNaW1lVHlwZScpIHtcbiAgICAgICAgICAgICAgZXZpZGVuY2VNaW1lVHlwZSA9IGZpZWxkLnJhbmdlO1xuICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zID0gdGhpcy5zZXRFdmlkZW5jZTtcbiAgICAgICAgICAgICAgZmllbGQucmFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubGVhZkZvcm1Db25maWcgPSBxdWVzdGlvbkNhdGVnb3J5Q29uZmlnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhdE1ldGFEYXRhID0gc2VsZWN0ZWR0ZW1wbGF0ZURldGFpbHMub2JqZWN0TWV0YWRhdGE7XG4gICAgICAgIHRoaXMuc291cmNpbmdTZXR0aW5ncyA9IGNhdE1ldGFEYXRhPy5jb25maWc/LnNvdXJjaW5nU2V0dGluZ3MgfHwge307XG4gICAgICAgIGlmICghXy5oYXModGhpcy5zb3VyY2luZ1NldHRpbmdzLCAnZW5mb3JjZUNvcnJlY3RBbnN3ZXInKSkge1xuICAgICAgICAgIHRoaXMuc291cmNpbmdTZXR0aW5ncy5lbmZvcmNlQ29ycmVjdEFuc3dlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYWdlSWQgPSAncXVlc3Rpb24nO1xuICAgICAgfSwoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc3QgZXJySW5mbyA9IHtcbiAgICAgICAgICBlcnJvck1zZzogXy5nZXQodGhpcy5jb25maWdTZXJ2aWNlLCAnbGFiZWxDb25maWcubWVzc2FnZXMuZXJyb3IuMDA2JyksXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHRoaXMuZWRpdG9yU2VydmljZS5hcGlFcnJvckhhbmRsaW5nKGVycm9yLCBlcnJJbmZvKSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNle1xuICAgIHRoaXMucGFnZUlkID0gJ3F1ZXN0aW9uJztcbiAgICB9XG4gIH1cblxuICBxdWVzdGlvbkV2ZW50TGlzdGVuZXIoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50eXBlID09PSAnY3JlYXRlTmV3Q29udGVudCcpIHtcbiAgICAgIHRoaXMudHJlZUV2ZW50TGlzdGVuZXIoZXZlbnQpXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSA9IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5vYmplY3RUeXBlID09PSAncXVlc3Rpb24nKSB7XG4gICAgICB0aGlzLmVkaXRvckVtaXR0ZXIuZW1pdCh7XG4gICAgICAgIGNsb3NlOiB0cnVlLCBsaWJyYXJ5OiAnY29sbGVjdGlvbl9lZGl0b3InLCBhY3Rpb246IGV2ZW50LmFjdGlvblR5cGUsIGlkZW50aWZpZXI6IGV2ZW50LmlkZW50aWZpZXJcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lcmdlQ29sbGVjdGlvbkV4dGVybmFsUHJvcGVydGllcygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wYWdlSWQgPSAnY29sbGVjdGlvbl9lZGl0b3InO1xuICAgICAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkID0gdGhpcy5wYWdlSWQ7XG4gICAgICAgIHRoaXMuaXNFbmFibGVDc3ZBY3Rpb24gPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbnRlbnRQb2xpY3lVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yU2VydmljZS5jb250ZW50UG9saWN5VXJsO1xuICB9XG5cbiAgc2hvd0NvbW1lbnRBZGRlZEFnYWluc3RDb250ZW50KCkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICBpZiAodGhpcy5jb2xsZWN0aW9uVHJlZU5vZGVzLmRhdGEuc3RhdHVzID09PSAnRHJhZnQnICYmIHRoaXMuY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhLnByZXZTdGF0dXMgID09PSAnUmV2aWV3JyAmJiBfLmhhcyh0aGlzLmNvbGxlY3Rpb25UcmVlTm9kZXMuZGF0YSwgJ3JlamVjdENvbW1lbnQnKSkge1xuICAgICAgdGhpcy5jb250ZW50Q29tbWVudCA9IF8uZ2V0KHRoaXMuY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhLCAncmVqZWN0Q29tbWVudCcpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChfLmdldCh0aGlzLmVkaXRvclNlcnZpY2UsICdlZGl0b3JDb25maWcuY29uZmlnLnNob3dDb3JyZWN0aW9uQ29tbWVudHMnKSkge1xuICAgICAgdGhpcy5jb250ZW50Q29tbWVudCA9IF8uZ2V0KHRoaXMuZWRpdG9yQ29uZmlnLCAnY29udGV4dC5jb3JyZWN0aW9uQ29tbWVudHMnKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaGFuZGxlQ3N2RHJvcGRvd25PcHRpb25zT25Db2xsZWN0aW9uKCkge1xuICAgIGlmICh0aGlzLmlzVHJlZUluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmlzRW5hYmxlQ3N2QWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNUcmVlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0VuYWJsZUNzdkFjdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnNldENzdkRyb3BEb3duT3B0aW9uc0Rpc2FibGUodHJ1ZSk7XG4gIH1cbiAgb25DbGlja0ZvbGRlcigpIHtcbiAgICBpZiAodGhpcy5pc0NvbXBvbmVuZXRJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5pc0NvbXBvbmVuZXRJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRDc3ZEcm9wRG93bk9wdGlvbnNEaXNhYmxlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRW5hYmxlQ3N2QWN0aW9uKSB7XG4gICAgIHRoaXMuc2V0Q3N2RHJvcERvd25PcHRpb25zRGlzYWJsZSgpO1xuICB9XG4gIH1cbiAgc2V0Q3N2RHJvcERvd25PcHRpb25zRGlzYWJsZShkaXNhYmxlPykge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRIaWVyYXJjaHlGb2xkZXIoKS5sZW5ndGggPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5jc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlQ3JlYXRlQ3N2ID0gZGlzYWJsZSA/IGRpc2FibGUgOiBzdGF0dXM7XG4gICAgdGhpcy5jc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlVXBkYXRlQ3N2ID0gZGlzYWJsZSA/IGRpc2FibGUgOiAhc3RhdHVzO1xuICAgIHRoaXMuY3N2RHJvcERvd25PcHRpb25zLmlzRGlzYWJsZURvd25sb2FkQ3N2ID0gZGlzYWJsZSA/IGRpc2FibGUgOiAhc3RhdHVzO1xuICB9XG4gIGRvd25sb2FkSGllcmFyY2h5Q3N2KCkge1xuICAgIHRoaXMuZWRpdG9yU2VydmljZS5kb3dubG9hZEhpZXJhcmNoeUNzdih0aGlzLmNvbGxlY3Rpb25JZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBjb25zdCB0b2NVcmwgPSBfLmdldChyZXMsICdyZXN1bHQuY29sbGVjdGlvbi50b2NVcmwnKTtcbiAgICAgIHRoaXMuZG93bmxvYWRDU1ZGaWxlKHRvY1VybCk7XG4gICAgfSwgZXJyb3IgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihfLmdldChlcnJvciwgJ2Vycm9yLnBhcmFtcy5lcnJtc2cnKSk7XG4gICAgfSk7XG4gIH1cbiAgaXNSZXZpZXdNb2RlKCkge1xuICAgIHJldHVybiAgXy5pbmNsdWRlcyhbICdyZXZpZXcnLCAncmVhZCcsICdzb3VyY2luZ3JldmlldycsICdvcmdyZXZpZXcnIF0sIHRoaXMuZWRpdG9yU2VydmljZS5lZGl0b3JNb2RlKTtcbiAgIH1cbiAgZG93bmxvYWRDU1ZGaWxlKHRvY1VybCkge1xuICAgIGNvbnN0IGRvd25sb2FkQ29uZmlnID0ge1xuICAgICAgYmxvYlVybDogdG9jVXJsLFxuICAgICAgc3VjY2Vzc01lc3NhZ2U6IGZhbHNlLFxuICAgICAgZmlsZVR5cGU6ICdjc3YnLFxuICAgICAgZmlsZU5hbWU6IHRoaXMuY29sbGVjdGlvbklkXG4gICAgfTtcbiAgICB3aW5kb3cub3Blbihkb3dubG9hZENvbmZpZy5ibG9iVXJsLCAnX2JsYW5rJyk7XG4gICAgLyp0aGlzLmVkaXRvclNlcnZpY2UuZG93bmxvYWRCbG9iVXJsRmlsZShkb3dubG9hZENvbmZpZyk7Ki9cbiAgfVxuICBoYW5uZGxlQ3N2RW1pdHRlcihldmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnY2xvc2VNb2RhbCc6XG4gICAgICAgIHRoaXMuc2hvd0NzdlVwbG9hZFBvcHVwID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXBkYXRlSGllcmFyY2h5JzpcbiAgICAgICAgdGhpcy5tZXJnZUNvbGxlY3Rpb25FeHRlcm5hbFByb3BlcnRpZXMoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5wYWdlSWQgPSAnY29sbGVjdGlvbl9lZGl0b3InO1xuICAgICAgICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQgPSB0aGlzLnBhZ2VJZDtcbiAgICAgICAgICB0aGlzLmlzRW5hYmxlQ3N2QWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY3JlYXRlQ3N2JzpcbiAgICAgICAgdGhpcy5zaG93Q3N2VXBsb2FkUG9wdXAgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzQ3JlYXRlQ3N2ID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1cGRhdGVDc3YnOlxuICAgICAgICB0aGlzLnNob3dDc3ZVcGxvYWRQb3B1cCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNDcmVhdGVDc3YgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb3dubG9hZENzdic6XG4gICAgICAgIHRoaXMuZG93bmxvYWRIaWVyYXJjaHlDc3YoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBvbkZvcm1TdGF0dXNDaGFuZ2UoZm9ybSkge1xuICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IHRoaXMudHJlZVNlcnZpY2UuZ2V0QWN0aXZlTm9kZSgpO1xuICAgIGlmIChzZWxlY3RlZE5vZGUgJiYgc2VsZWN0ZWROb2RlLmRhdGEuaWQpIHtcbiAgICAgIHRoaXMuZm9ybVN0YXR1c01hcHBlcltzZWxlY3RlZE5vZGUuZGF0YS5pZF0gPSBmb3JtLmlzVmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgYXNzaWduUGFnZUVtaXR0ZXJMaXN0ZW5lcihldmVudDogYW55KSB7XG4gICAgdGhpcy5wYWdlSWQgPSAnY29sbGVjdGlvbl9lZGl0b3InO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudGVsZW1ldHJ5U2VydmljZSAmJiB0aGlzLnRlbGVtZXRyeVNlcnZpY2U/LmVuZCkge1xuICAgICAgdGhpcy5nZW5lcmF0ZVRlbGVtZXRyeUVuZEV2ZW50KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRyZWVTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNsZWFyVHJlZUNhY2hlKCk7XG4gICAgfVxuICAgICBpZiAodGhpcy5kaWFsY29kZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMuZGlhbGNvZGVTZXJ2aWNlLmNsZWFyRGlhbENvZGVNYXBzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGFsICYmIHRoaXMubW9kYWwuZGVueSkge1xuICAgICAgdGhpcy5tb2RhbC5kZW55KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVuU3Vic2NyaWJlU2hvd0xpYnJhcnlQYWdlRW1pdHRlcikge1xuICAgICAgdGhpcy51blN1YnNjcmliZVNob3dMaWJyYXJ5UGFnZUVtaXR0ZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudW5TdWJzY3JpYmVzaG93UXVlc3Rpb25MaWJyYXJ5UGFnZUVtaXR0ZXIpIHtcbiAgICAgIHRoaXMudW5TdWJzY3JpYmVzaG93UXVlc3Rpb25MaWJyYXJ5UGFnZUVtaXR0ZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZSQgJiYgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkICYmIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuXG4gIHNldEV2aWRlbmNlKGNvbnRyb2wsIGRlcGVuZHM6IEZvcm1Db250cm9sW10sIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsb2FkaW5nLCBsb2FkZWQpIHtcbiAgICBjb250cm9sLmlzVmlzaWJsZSA9ICdubyc7XG4gICAgY29udHJvbC5yYW5nZSA9IGV2aWRlbmNlTWltZVR5cGU7XG4gICAgcmV0dXJuIG1lcmdlKC4uLl8ubWFwKGRlcGVuZHMsIGRlcGVuZCA9PiBkZXBlbmQudmFsdWVDaGFuZ2VzKSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIV8uaXNFbXB0eSh2YWx1ZSkgJiYgXy50b0xvd2VyKHZhbHVlKSA9PT0gJ3llcycpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmlzVmlzaWJsZSA9ICd5ZXMnO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZih7cmFuZ2U6IGV2aWRlbmNlTWltZVR5cGV9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5pc1Zpc2libGUgPSAnbm8nO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2V0RWNtKGNvbnRyb2wsIGRlcGVuZHM6IEZvcm1Db250cm9sW10sIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsb2FkaW5nLCBsb2FkZWQpIHtcbiAgICBjb250cm9sLmlzVmlzaWJsZSA9ICdubyc7XG4gICAgY29udHJvbC5vcHRpb25zID0gZWNtO1xuICAgIHJldHVybiBtZXJnZSguLi5fLm1hcChkZXBlbmRzLCBkZXBlbmQgPT4gZGVwZW5kLnZhbHVlQ2hhbmdlcykpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodmFsdWUpICYmIF8udG9Mb3dlcih2YWx1ZSkgPT09ICd5ZXMnKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5pc1Zpc2libGUgPSAneWVzJztcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe29wdGlvbnM6IGVjbX0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmlzVmlzaWJsZSA9ICdubyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzZXRBbGxvd0VjbShjb250cm9sLCBkZXBlbmRzOiBGb3JtQ29udHJvbFtdKSB7XG4gICAgY29udHJvbC5pc1Zpc2libGUgPSAnbm8nO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gbWVyZ2UoLi4uXy5tYXAoZGVwZW5kcywgZGVwZW5kID0+IGRlcGVuZC52YWx1ZUNoYW5nZXMpKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eSh2YWx1ZSkgJiYgXy50b0xvd2VyKHZhbHVlKSA9PT0gJ3NlbGYnICkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuaXNWaXNpYmxlID0gJ25vJztcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmlzVmlzaWJsZSA9ICd5ZXMnO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFnZUlkXCI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb2xsZWN0aW9uX2VkaXRvcidcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRkLXRvLWxpYnJhcnkgbWItMTBcIj5cbiAgICAgIDxsaWItaGVhZGVyIFtwYWdlSWRdPVwicGFnZUlkXCIgW3B1Ymxpc2hjaGVja2xpc3RdPVwicHVibGlzaGNoZWNrbGlzdFwiXG4gICAgICBbbGFiZWxDb25maWdEYXRhXT1cInRvb2xiYXJDb25maWdcIiBbYnV0dG9uTG9hZGVyc109XCJidXR0b25Mb2FkZXJzXCIgKHRvb2xiYXJFbWl0dGVyKT1cInRvb2xiYXJFdmVudExpc3RlbmVyKCRldmVudClcIiAoYnVsa1VwbG9hZEVtaXR0ZXIpPSBcImhhbm5kbGVDc3ZFbWl0dGVyKCRldmVudClcIj4gPC9saWItaGVhZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImgtMTAwdmggc2ItYmctd2hpdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVpIHR3ZWx2ZSBjb2x1bW4gZ3JpZCBtLTAgXCI+XG4gICAgICAgICAgICA8IS0tIExlZnQgU2lkZWJhciBmb3IgY2FyZHMgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC01MCBzYi1mb2xkZXItbWVudVwiICpuZ0lmPVwiaXNPYmplY3RUeXBlQ29sbGVjdGlvblwiPlxuICAgICAgICAgICAgPGRpdj4gIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5mb2xkZXJzfX0gPC9kaXY+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwicHJvZmlsZS1hdnRhciBjb21wdXRlciBvbmx5IHAtMCBwci0xMFwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICA8ZGl2IHN1aURyb3Bkb3duIGNsYXNzPVwidWkgZHJvcGRvd24gcmlnaHQgdG9wIHBvaW50aW5nIHotaW5kZXgtOVwiICBpZD1cImRyb3Bkb3duLW1lbnUtbGlzdC1oZWFkZXJcIiAqbmdJZj1cIiFpc1N0YXR1c1Jldmlld01vZGVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBlbGxpcHNpcyB2ZXJ0aWNhbCBoLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAgW25nQ2xhc3NdPVwieydzYi1kaXNhYmxlLWljb24nOiBpc1N0YXR1c1Jldmlld01vZGV9XCIgKGNsaWNrKT1cIm9uQ2xpY2tGb2xkZXIoKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgc3VpRHJvcGRvd25NZW51ID5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpdGVtIGZzLTAtNzg1IGJnLW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBsaWJUZWxlbWV0cnlJbnRlcmFjdFxuICAgICAgICAgICAgICAgICAgICBbdGVsZW1ldHJ5SW50ZXJhY3RFZGF0YV09XCJ0ZWxlbWV0cnlTZXJ2aWNlLmdldFRlbGVtZXRyeUludGVyYWN0RWRhdGEoJ29wZW5fcG9wdXAnLCdjbGljaycsY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jcmVhdGVIaWVyYXJjaHlDc3YsXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLHtrZXk6ICdkaWFsb2dfaWQnLCB2YWx1ZTogY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jcmVhdGVIaWVyYXJjaHlDc3Z9KVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5uZGxlQ3N2RW1pdHRlcih7dHlwZTogJ2NyZWF0ZUNzdid9KVwiIFtkaXNhYmxlZF09XCJjc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlQ3JlYXRlQ3N2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBmb2xkZXIgb3V0bGluZSBzYi1jb2xvci1wcmltYXJ5XCIgW25nQ2xhc3NdPVwieydzYi1kaXNhYmxlLWljb24nOiBjc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlQ3JlYXRlQ3N2fVwiICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCIgW25nQ2xhc3NdPVwieydsYWJlbC1kaXNhYmxlJzogY3N2RHJvcERvd25PcHRpb25zLmlzRGlzYWJsZUNyZWF0ZUNzdn1cIj57e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uY3JlYXRlSGllcmFyY2h5Q3N2fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBkaXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uICBsaWJUZWxlbWV0cnlJbnRlcmFjdFxuICAgICAgICAgICAgICAgICAgW3RlbGVtZXRyeUludGVyYWN0RWRhdGFdPVwidGVsZW1ldHJ5U2VydmljZS5nZXRUZWxlbWV0cnlJbnRlcmFjdEVkYXRhKCdjc3ZfZG93bmxvYWQnLCdjbGljaycsY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5kb3dubG9hZEZvbGRlcnNJbkNTVixcbiAgICAgICAgICAgICAgICAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLHtrZXk6ICdpZGVudGlmaWVyJywgdmFsdWU6IGNvbGxlY3Rpb25JZH0pXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIml0ZW0gZnMtMC03ODUgYmctbm9uZVwiIChjbGljayk9XCJoYW5uZGxlQ3N2RW1pdHRlcih7dHlwZTogJ2Rvd25sb2FkQ3N2J30pXCIgW2Rpc2FibGVkXT1cImNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVEb3dubG9hZENzdlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBkb3dubG9hZCBzYi1jb2xvci1wcmltYXJ5XCIgW25nQ2xhc3NdPVwieydzYi1kaXNhYmxlLWljb24nOiBjc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlRG93bmxvYWRDc3Z9XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIiBbbmdDbGFzc109XCJ7J2xhYmVsLWRpc2FibGUnOiBjc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlRG93bmxvYWRDc3Z9XCIgPlxuICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uZG93bmxvYWRGb2xkZXJzSW5DU1Z9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRpdmlkZXJcIj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgbGliVGVsZW1ldHJ5SW50ZXJhY3RcbiAgICAgICAgICAgICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnb3Blbl9wb3B1cCcsJ2NsaWNrJyxjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LnVwbG9hZFVwZGF0ZUNTVixcbiAgICAgICAgICAgICAgICAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLHtrZXk6ICdkaWFsb2dfaWQnLCB2YWx1ZTogY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy51cGxvYWRVcGRhdGVDU1Z9KVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpdGVtIGZzLTAtNzg1IGJnLW5vbmVcIiAoY2xpY2spPVwiaGFubmRsZUNzdkVtaXR0ZXIoe3R5cGU6ICd1cGRhdGVDc3YnfSlcIiBbZGlzYWJsZWRdPVwiY3N2RHJvcERvd25PcHRpb25zLmlzRGlzYWJsZVVwZGF0ZUNzdlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiB1cGxvYWQgc2ItY29sb3ItcHJpbWFyeVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ0NsYXNzXT1cInsnbGFiZWwtZGlzYWJsZSc6IGNzdkRyb3BEb3duT3B0aW9ucy5pc0Rpc2FibGVVcGRhdGVDc3Z9XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIiBbbmdDbGFzc109XCJ7J2xhYmVsLWRpc2FibGUnOiBjc3ZEcm9wRG93bk9wdGlvbnMuaXNEaXNhYmxlVXBkYXRlQ3N2fVwiID5cbiAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8udXBsb2FkVXBkYXRlQ1NWfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWUgd2lkZSBjb2x1bW4gcC0wIG92ZXJmbG93LXkgIG1iLTQwIGgtMTAwdmhcIiBbbmdDbGFzc109XCJ7J210LTUwJzogaXNPYmplY3RUeXBlQ29sbGVjdGlvbn1cIj5cbiAgICAgICAgICAgICAgPGxpYi1mYW5jeS10cmVlICAqbmdJZj1cImNvbGxlY3Rpb25UcmVlTm9kZXMgJiYgY29sbGVjdGlvblRyZWVOb2Rlcy5kYXRhICYmIGlzaGllcmFyY2h5Q29uZmlnU2V0XCJcbiAgICAgICAgICAgICAgW25vZGVzXT1cImNvbGxlY3Rpb25UcmVlTm9kZXNcIiBbb3B0aW9uc109XCJ7IHNob3dDb25uZWN0b3JzOiB0cnVlIH1cIiBbYnV0dG9uTG9hZGVyc109XCJidXR0b25Mb2FkZXJzXCJcbiAgICAgICAgICAgICAgKHRyZWVFdmVudEVtaXR0ZXIpPVwidHJlZUV2ZW50TGlzdGVuZXIoJGV2ZW50KVwiIGNsYXNzPVwic2ItY29sbGVjdGlvblRyZWUtZmFuY3lUcmVlIHNiLWNvbGxlY3Rpb25UcmVlLWZhbmN5VHJlZWxpc3Qgc2ItcXVlc3Rpb25zZXQtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgIDwvbGliLWZhbmN5LXRyZWU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gUmlnaHQgUGxheWVyIFNlY3Rpb25zIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVpZ2h0IHdpZGUgY29sdW1uIGJnLXdoaXRlIHBsLTQwIG1iLTEwIHctNzNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc0N1cnJlbnROb2RlRm9sZGVyID09PSB0cnVlIHx8IGlzQ3VycmVudE5vZGVSb290ID09PSB0cnVlKSAmJiB1bml0Rm9ybUNvbmZpZyAmJiBzZWxlY3RlZE5vZGVEYXRhICYmIHJvb3RGb3JtQ29uZmlnXCI+XG4gICAgICAgICAgICAgICAgPGxpYi1tZXRhLWZvcm0gW3Jvb3RGb3JtQ29uZmlnXT1cInJvb3RGb3JtQ29uZmlnXCIgW25vZGVNZXRhZGF0YV09XCJzZWxlY3RlZE5vZGVEYXRhXCIgW3VuaXRGb3JtQ29uZmlnXT1cInVuaXRGb3JtQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAodG9vbGJhckVtaXR0ZXIpPVwidG9vbGJhckV2ZW50TGlzdGVuZXIoJGV2ZW50KVwiPjwvbGliLW1ldGEtZm9ybT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0N1cnJlbnROb2RlRm9sZGVyID09PSBmYWxzZSAmJiBpc0N1cnJlbnROb2RlUm9vdCAhPT0gdHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGxpYi1jb250ZW50cGxheWVyLXBhZ2UgKm5nSWY9XCIhaXNRdW1sUGxheWVyXCIgIFtjb250ZW50TWV0YWRhdGFdPVwic2VsZWN0ZWROb2RlRGF0YVwiID48L2xpYi1jb250ZW50cGxheWVyLXBhZ2U+XG4gICAgICAgICAgICAgICAgICA8bGliLXF1bWxwbGF5ZXItcGFnZSAqbmdJZj1cImlzUXVtbFBsYXllclwiIFtxdWVzdGlvbk1ldGFEYXRhXT1cInNlbGVjdGVkTm9kZURhdGFcIiBbcXVlc3Rpb25TZXRIaWVyYXJjaHldPVwiY29sbGVjdGlvblRyZWVOb2Rlcz8uZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgKHRvb2xiYXJFbWl0dGVyKT1cInRvb2xiYXJFdmVudExpc3RlbmVyKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9saWItcXVtbHBsYXllci1wYWdlPlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlbGF0aW9uRm9ybUNvbmZpZ1wiIGNsYXNzPVwicC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxocj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWxhdGlvbmFsLW1ldGFkYXRhIFtjb250ZW50TWV0YWRhdGFdPVwic2VsZWN0ZWROb2RlRGF0YVwiIFtmb3JtQ29uZmlnXT1cInJlbGF0aW9uRm9ybUNvbmZpZ1wiIChzdGF0dXNDaGFuZ2VzKT1cIm9uRm9ybVN0YXR1c0NoYW5nZSgkZXZlbnQpXCI+PC9saWItcmVsYXRpb25hbC1tZXRhZGF0YT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8c3VpLW1vZGFsICpuZ0lmPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvblBvcFVwXCIgW211c3RTY3JvbGxdPVwidHJ1ZVwiIFtpc0Nsb3NhYmxlXT1cInRydWVcIiBbdHJhbnNpdGlvbkR1cmF0aW9uXT1cIjBcIlxuICAgICAgICBbc2l6ZV09XCInbm9ybWFsJ1wiIGNsYXNzPVwic2ItbW9kYWwgYngtbm9uZSBvdmVyZmxvdy1tb2RhbFwiIGFwcEJvZHlTY3JvbGxcbiAgICAgICAgKGRpc21pc3NlZCk9XCJzaG93RGVsZXRlQ29uZmlybWF0aW9uUG9wVXAgPSAhc2hvd0RlbGV0ZUNvbmZpcm1hdGlvblBvcFVwXCIgI21vZGFsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNvbmZpcm1EZWxldGVDb250ZW50fX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzYi1wdWJsaXNoLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJldmlldy1tb2RhbC1saXN0XCI+XG4gICAgICAgICAgICAgICAge3sgY29udGVudENvbW1lbnQgfX1cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxkaXY+IHt7ZGVsZXRlQ29uZmlybU1lc3NhZ2V9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IG1yLThcIiAoY2xpY2spPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvblBvcFVwID0gIXNob3dEZWxldGVDb25maXJtYXRpb25Qb3BVcFwiXG4gICAgICAgICAgbGliVGVsZW1ldHJ5SW50ZXJhY3RcbiAgICAgICAgICBbdGVsZW1ldHJ5SW50ZXJhY3RFZGF0YV09XCJ0ZWxlbWV0cnlTZXJ2aWNlLmdldFRlbGVtZXRyeUludGVyYWN0RWRhdGEoJ25vJywnY2xpY2snLCdjYW5jZWwnLCB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLHtrZXk6ICdkaWFsb2dfaWQnLCB2YWx1ZTogJ2NvbmZpcm1fZGVsZXRlX2NvbnRlbnQnLCdpZGVudGlmaWVyJyA6IHNlbGVjdGVkTm9kZURhdGE/LmRhdGE/LmlkfSlcIj4ge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5idXR0b25fbGFiZWxzPy5ub19idG5fbGFiZWx9fSA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNiLWJ0biBzYi1idG4tc2Vjb25kYXJ5IHNiLWJ0bi1ub3JtYWwgXCIgKGNsaWNrKT1cImRlbGV0ZU5vZGUoKTtcIlxuICAgICAgICAgIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICAgICAgW3RlbGVtZXRyeUludGVyYWN0RWRhdGFdPVwidGVsZW1ldHJ5U2VydmljZS5nZXRUZWxlbWV0cnlJbnRlcmFjdEVkYXRhKCd5ZXMnLCdjbGljaycsJ3N1Ym1pdCcsIHRoaXMudGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQse2tleTogJ2RpYWxvZ19pZCcsIHZhbHVlOiAnY29uZmlybV9kZWxldGVfY29udGVudCcsJ2lkZW50aWZpZXInIDogc2VsZWN0ZWROb2RlRGF0YT8uZGF0YT8uaWR9KVwiPiB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmJ1dHRvbl9sYWJlbHM/Lnllc19idG5fbGFiZWx9fSA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3N1aS1tb2RhbD5cbiAgICAgIDxzdWktbW9kYWwgKm5nSWY9J3Nob3dDb25maXJtUG9wdXAnIFttdXN0U2Nyb2xsXT1cImZhbHNlXCIgW2lzQ2xvc2FibGVdPVwidHJ1ZVwiIFt0cmFuc2l0aW9uRHVyYXRpb25dPVwiMFwiIFtzaXplXT1cIidub3JtYWwnXCJcbiAgICAgICAgICBjbGFzcz1cInNiLW1vZGFsIG92ZXJmbG93LW1vZGFsXCIgYXBwQm9keVNjcm9sbCAoZGlzbWlzc2VkKT1cInNob3dDb25maXJtUG9wdXAgPSAhc2hvd0NvbmZpcm1Qb3B1cDsgdGVybXMgPSBmYWxzZTtcIiAjbW9kYWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmFjY2VwdFRlcm1zfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBzYi1jaGVja2JveC10bmMgbXQtMTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ItY2hlY2tib3ggc2ItY2hlY2tib3gtcHJpbWFyeSBmb250LWl0YWxpYyBwLTAgbS0wXCI+PGlucHV0IFsobmdNb2RlbCldPVwidGVybXNcIiBpZD1cInRlcm1BbmRDb25kaXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4YW1wbGVcIiB0eXBlPVwiY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0ZXJtQW5kQ29uZGl0aW9uc1wiIGNsYXNzPVwiZnNtYWxsIHBsLTMyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1haS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiLXJlcXVpcmVkXCI+Kjwvc3Bhbj48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkIG1iLTQgZC1ibG9ja1wiPlwie3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmlBZ3JlZVN1Ym1pdH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiLWNvbG9yLWdyYXktMzAwXCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/Lmljb25maXJtQ29udGVudH19PGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ItY29sb3ItcHJpbWFyeSBmb250LXdlaWdodC1ib2xkIGN1cnNvci1wb2ludGVyXCIgaHJlZj1cImh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlc1wiIHRhcmdldD1cIl9ibGFua1wiID4ge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNyZWF0ZUNvbW1vbkZyYW1ld29ya319PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmFjY29yZGFuY2V9fVxuICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJzYi1jb2xvci1wcmltYXJ5IGZvbnQtd2VpZ2h0LWJvbGQgY3Vyc29yLXBvaW50ZXJcIiBocmVmPVwie3tjb250ZW50UG9saWN5VXJsfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiA+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNvbnRlbnRQb2xpY3l9fTwvYT4ge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LnByaXZhY3lSaWdodHN9fVwiPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsXCIgW25nQ2xhc3NdPVwiIXRlcm1zID8gJ3NiLWJ0bi1kaXNhYmxlZCcgOiAnc2ItYnRuLXByaW1hcnknXCIgW2Rpc2FibGVkXT1cIiF0ZXJtc1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZW5kRm9yUmV2aWV3KClcIiBsaWJUZWxlbWV0cnlJbnRlcmFjdFxuICAgICAgICAgICAgICBbdGVsZW1ldHJ5SW50ZXJhY3RFZGF0YV09XCJ0ZWxlbWV0cnlTZXJ2aWNlLmdldFRlbGVtZXRyeUludGVyYWN0RWRhdGEoJ3N1Ym1pdCcsJ2NsaWNrJywnc3VibWl0JywgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZCx7a2V5OiAnZGlhbG9nX2lkJywgdmFsdWU6ICdhY2NlcHRpbmdfdGVybXNfY29uZGl0aW9ucycsJ3Rlcm1BbmRDb25kaXRpb25zJyA6IHRlcm1zfSlcIj5cbiAgICAgICAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5idXR0b25fbGFiZWxzPy5zdWJtaXRfYnRuX2xhYmVsfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9zdWktbW9kYWw+XG4gICAgICA8c3VpLW1vZGFsICpuZ0lmPSdzaG93UHJldmlldycgW211c3RTY3JvbGxdPVwiZmFsc2VcIiBbaXNDbG9zYWJsZV09XCJ0cnVlXCIgW3RyYW5zaXRpb25EdXJhdGlvbl09XCIwXCIgW3NpemVdPVwiJ2xhcmdlJ1wiXG4gICAgICAgICAgY2xhc3M9XCJzYi1tb2RhbCBvdmVyZmxvdy1tb2RhbCBwcmV2aWV3LW1vZGFsXCIgYXBwQm9keVNjcm9sbCAoZGlzbWlzc2VkKT1cInNob3dQcmV2aWV3ID0gIXNob3dQcmV2aWV3O1wiICNtb2RhbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgICB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8ucXVlc3Rpb25TZXRQcmV2aWV3fX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyLTIgYi0xLTEwMFwiIGlkPVwicHJldmlld1BsYXllckNvbnRhaW5lclwiIHRhYmluZGV4PVwiMFwiIGNka1RyYXBGb2N1cz5cbiAgICAgICAgICAgICAgPGxpYi1xdW1sLXBsYXllciBbcXVlc3Rpb25TZXRIaWVyYXJjaHldPVwiY29sbGVjdGlvblRyZWVOb2Rlcz8uZGF0YVwiPjwvbGliLXF1bWwtcGxheWVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L3N1aS1tb2RhbD5cbiAgICAgIDxsaWItdGVtcGxhdGUgKm5nSWY9J3Nob3dRdWVzdGlvblRlbXBsYXRlUG9wdXAnIFt0ZW1wbGF0ZUxpc3RdPVwidGVtcGxhdGVMaXN0XCJcbiAgICAgICh0ZW1wbGF0ZVNlbGVjdGlvbik9XCJoYW5kbGVUZW1wbGF0ZVNlbGVjdGlvbigkZXZlbnQpXCI+XG4gICAgICA8L2xpYi10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidxdWVzdGlvbl9saWJyYXJ5J1wiPlxuICAgIDxsaWItbGlicmFyeSBbbGlicmFyeUlucHV0XT1cInF1ZXN0aW9ubGlicmFyeUlucHV0XCIgKGxpYnJhcnlFbWl0dGVyKT1cIm9uUXVlc3Rpb25MaWJyYXJ5Q2hhbmdlKCRldmVudClcIj48L2xpYi1saWJyYXJ5PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpYnJhcnknXCI+XG4gICAgPGxpYi1jb250ZW50LWxpYnJhcnkgW2xpYnJhcnlJbnB1dF09XCJsaWJyYXJ5Q29tcG9uZW50SW5wdXRcIiAobGlicmFyeUVtaXR0ZXIpPVwibGlicmFyeUV2ZW50TGlzdGVuZXIoJGV2ZW50KVwiPlxuICAgIDwvbGliLWNvbnRlbnQtbGlicmFyeT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidxdWVzdGlvbidcIj5cbiAgICA8bGliLXF1ZXN0aW9uICpuZ0lmPVwibGVhZkZvcm1Db25maWdcIiBbcXVlc3Rpb25JbnB1dF09XCJxdWVzdGlvbkNvbXBvbmVudElucHV0XCIgW2xlYWZGb3JtQ29uZmlnXT1cImxlYWZGb3JtQ29uZmlnXCIgW3NvdXJjaW5nU2V0dGluZ3NdPVwic291cmNpbmdTZXR0aW5nc1wiICAocXVlc3Rpb25FbWl0dGVyKT1cInF1ZXN0aW9uRXZlbnRMaXN0ZW5lcigkZXZlbnQpXCIgPlxuICAgIDwvbGliLXF1ZXN0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3BhZ2luYXRpb24nXCI+XG4gICAgPGxpYi1hc3NpZ24tcGFnZS1udW1iZXIgKGFzc2lnblBhZ2VFbWl0dGVyKT1cImFzc2lnblBhZ2VFbWl0dGVyTGlzdGVuZXIoJGV2ZW50KVwiPjwvbGliLWFzc2lnbi1wYWdlLW51bWJlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwcm9ncmVzc1N0YXR1cydcIj5cbiAgICA8bGliLXByb2dyZXNzLXN0YXR1cyAoYXNzaWduUGFnZUVtaXR0ZXIpPVwiYXNzaWduUGFnZUVtaXR0ZXJMaXN0ZW5lcigkZXZlbnQpXCI+PC9saWItcHJvZ3Jlc3Mtc3RhdHVzPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZENvbGxhYm9yYXRvclwiPlxuICA8bGliLW1hbmFnZS1jb2xsYWJvcmF0b3IgW2FkZENvbGxhYm9yYXRvcl09XCJhZGRDb2xsYWJvcmF0b3JcIiBbY29sbGVjdGlvbklkXT1cImNvbGxlY3Rpb25JZFwiIChtb2RhbERpc21pc3NFbWl0dGVyKT1cInRvZ2dsZUNvbGxhYm9yYXRvck1vZGFsUG91cCgpXCI+PC9saWItbWFuYWdlLWNvbGxhYm9yYXRvcj5cbjwvbmctY29udGFpbmVyPlxuPHN1aS1tb2RhbCAqbmdJZj1cInNob3dSZXZpZXdNb2RhbFwiIFttdXN0U2Nyb2xsXT1cInRydWVcIiBbaXNDbG9zYWJsZV09XCJmYWxzZVwiIFt0cmFuc2l0aW9uRHVyYXRpb25dPVwiMFwiXG4gIFtzaXplXT1cIidub3JtYWwnXCIgY2xhc3M9XCJzYi1tb2RhbCBieC1ub25lIG92ZXJmbG93LW1vZGFsXCIgYXBwQm9keVNjcm9sbCAjbW9kYWwgKGRpc21pc3NlZCk9XCJzaG93UmV2aWV3TW9kYWwgPSBmYWxzZTtcIj5cbiAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWhlYWRlclwiPlxuICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5yZXZpZXdDb21tZW50c319XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNiLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb21tZW50c319PC9sYWJlbD5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBkaXNhYmxlZD1cImRpc2FibGVkXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cIndtZC1pbnB1dCB3aWR0aC0xMDAgc2ItZm9ybS1jb250cm9sIHAtMTAgc2ItZGlzYWJsZWQtdGV4dGFyZWFcIiBpZD1cIndtZC1pbnB1dFwiIFsobmdNb2RlbCldPVwiY29udGVudENvbW1lbnRcIiBuYW1lPVwicmVqZWN0ZWRDb21tZW50XCI+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWFjdGlvbnNcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeVwiIChjbGljayk9XCJtb2RhbC5kZW55KCdkZW5pZWQnKVwiXG4gICAgbGliVGVsZW1ldHJ5SW50ZXJhY3QgW3RlbGVtZXRyeUludGVyYWN0RWRhdGFdPVwidGVsZW1ldHJ5U2VydmljZS5nZXRUZWxlbWV0cnlJbnRlcmFjdEVkYXRhKCdjbG9zZScsJ2NsaWNrJywnY2FuY2VsJywgdGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQsICB7a2V5OiAnZGlhbG9nX2lkJywgdmFsdWU6ICdyZXZpZXdfY29tbWVudHMnfSlcIj57e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmJ1dHRvbl9sYWJlbHM/LmNsb3NlX2J0bl9sYWJlbH19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9zdWktbW9kYWw+XG5cbiAgPGxpYi1jc3YtdXBsb2FkICpuZ0lmPVwic2hvd0NzdlVwbG9hZFBvcHVwXCIgW2lzQ3JlYXRlQ3N2XT0gXCJpc0NyZWF0ZUNzdlwiICAoY3N2VXBsb2FkRW1pdHRlcik9IFwiaGFubmRsZUNzdkVtaXR0ZXIoJGV2ZW50KVwiIFtjb2xsZWN0aW9uSWRdPVwiY29sbGVjdGlvbklkXCI+XG4gIDwvbGliLWNzdi11cGxvYWQ+XG5cbiJdfQ==
|