@talrace/ngx-noder 0.0.11 → 0.0.13
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/README.md +374 -71
- package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +1 -1
- package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +2 -2
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +2 -5
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +3 -3
- package/esm2022/lib/editor/components/edges/edge-element.model.mjs +30 -1
- package/esm2022/lib/editor/components/edges/edge.component.mjs +23 -23
- package/esm2022/lib/editor/components/edges/edges.mjs +30 -15
- package/esm2022/lib/editor/components/image/components/image.component.mjs +2 -2
- package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +2 -2
- package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +5 -3
- package/esm2022/lib/editor/components/table/components/table.component.mjs +7 -5
- package/esm2022/lib/editor/components/table/selection/table-selection.mjs +12 -5
- package/esm2022/lib/editor/content/display-data/display-data.mjs +4 -4
- package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +1 -1
- package/esm2022/lib/editor/content/helpers/link.helper.mjs +39 -3
- package/esm2022/lib/editor/display/layers/text.layer.mjs +100 -75
- package/esm2022/lib/editor/display/print/print.helper.mjs +3 -3
- package/esm2022/lib/editor/display/print/print.renderer.mjs +5 -5
- package/esm2022/lib/editor/display/renderer.mjs +23 -25
- package/esm2022/lib/editor/display/virtual.renderer.mjs +10 -43
- package/esm2022/lib/editor/execution/edit.session.mjs +26 -16
- package/esm2022/lib/editor/execution/editor.mjs +88 -127
- package/esm2022/lib/editor/execution/regulator.service.mjs +44 -39
- package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +2 -3
- package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +2 -3
- package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +2 -2
- package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +1 -1
- package/esm2022/lib/editor/gadgets/history/operation-history.mjs +39 -37
- package/esm2022/lib/editor/interaction/editor.service.mjs +22 -22
- package/esm2022/lib/editor/interaction/mouse.handler.mjs +2 -2
- package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +4 -4
- package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +2 -2
- package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +59 -7
- package/esm2022/lib/editor/operations/operations-helper.helper.mjs +24 -25
- package/esm2022/lib/editor/operations/save-commands.helper.mjs +6 -5
- package/esm2022/lib/editor/positioning/content.helper.mjs +10 -1
- package/esm2022/lib/editor/positioning/position.helper.mjs +49 -35
- package/esm2022/lib/editor/revision.helper.mjs +3 -1
- package/esm2022/lib/models/generated/delete.model.mjs +1 -1
- package/esm2022/lib/models/generated/link-data.model.mjs +1 -1
- package/esm2022/lib/models/generated/link.model.mjs +1 -1
- package/esm2022/lib/models/generated/restore-text-styles.model.mjs +1 -1
- package/esm2022/lib/models/generated/target.model.mjs +1 -1
- package/fesm2022/talrace-ngx-noder.mjs +672 -545
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +1 -3
- package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +1 -1
- package/lib/editor/components/edges/edge-element.model.d.ts +9 -1
- package/lib/editor/components/edges/edge.component.d.ts +4 -4
- package/lib/editor/components/edges/edges.d.ts +8 -2
- package/lib/editor/components/table/components/table.component.d.ts +4 -2
- package/lib/editor/components/table/selection/table-selection.d.ts +5 -2
- package/lib/editor/content/display-data/display-data.d.ts +2 -1
- package/lib/editor/content/helpers/content-style.helper.d.ts +1 -1
- package/lib/editor/content/helpers/link.helper.d.ts +4 -1
- package/lib/editor/display/layers/text.layer.d.ts +8 -10
- package/lib/editor/display/print/print.helper.d.ts +1 -2
- package/lib/editor/display/print/print.renderer.d.ts +1 -2
- package/lib/editor/display/renderer.d.ts +9 -9
- package/lib/editor/display/virtual.renderer.d.ts +3 -10
- package/lib/editor/execution/edit.session.d.ts +7 -2
- package/lib/editor/execution/editor.d.ts +10 -9
- package/lib/editor/execution/regulator.service.d.ts +6 -4
- package/lib/editor/execution/targeting/cell-session-source.model.d.ts +0 -1
- package/lib/editor/execution/targeting/edge-session-source.model.d.ts +0 -1
- package/lib/editor/execution/targeting/session-source.model.d.ts +0 -1
- package/lib/editor/gadgets/history/operation-history.d.ts +7 -3
- package/lib/editor/interaction/editor.service.d.ts +13 -12
- package/lib/editor/operations/helpers/content-operations.helper.d.ts +1 -1
- package/lib/editor/operations/helpers/link-operations.helper.d.ts +7 -2
- package/lib/editor/operations/operations-helper.helper.d.ts +3 -3
- package/lib/editor/operations/save-commands.helper.d.ts +1 -1
- package/lib/editor/positioning/content.helper.d.ts +2 -0
- package/lib/editor/positioning/position.helper.d.ts +21 -6
- package/lib/models/generated/delete.model.d.ts +1 -1
- package/lib/models/generated/restore-text-styles.model.d.ts +1 -0
- package/lib/models/generated/target.model.d.ts +0 -1
- package/package.json +1 -1
- package/src/scss/base-editor.scss +4 -0
|
@@ -3,6 +3,7 @@ import { ApplyElementStyleModel } from '../../../models/generated/apply-element-
|
|
|
3
3
|
import { ApplyImageStyleModel } from '../../../models/generated/apply-image-style.model';
|
|
4
4
|
import { ApplyParagraphStyleModel } from '../../../models/generated/apply-paragraph-style.model';
|
|
5
5
|
import { ApplyTextStyleModel } from '../../../models/generated/apply-text-style.model';
|
|
6
|
+
import { CUSTOM_ELEMENT_MARKER } from '../../components/shared/custom-content-markers.const';
|
|
6
7
|
import { DeleteModel } from '../../../models/generated/delete.model';
|
|
7
8
|
import { InsertStyledTextModel } from '../../../models/generated/insert-styled-text.model';
|
|
8
9
|
import { InsertTableColumnsModel } from '../../../models/generated/insert-table-columns.model';
|
|
@@ -28,70 +29,49 @@ export class OperationHistory {
|
|
|
28
29
|
}
|
|
29
30
|
pushInsertText(insertIndex, text) {
|
|
30
31
|
const redoStep = new InsertTextModel({ insertIndex, text });
|
|
31
|
-
const undoStep = new DeleteModel({ startIndex: insertIndex,
|
|
32
|
+
const undoStep = new DeleteModel({ startIndex: insertIndex, count: text.length });
|
|
32
33
|
this.addToHistory(undoStep, redoStep);
|
|
33
34
|
}
|
|
34
|
-
pushInsertParagraph(model, paragraphs) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
.sort((a, b) => a.insertIndex - b.insertIndex)
|
|
38
|
-
.find(x => x.insertIndex >= model.insertIndex);
|
|
39
|
-
const previousParagraph = paragraphs
|
|
40
|
-
.slice()
|
|
41
|
-
.sort((a, b) => b.insertIndex - a.insertIndex)
|
|
42
|
-
.find(x => x.insertIndex < currentParagraph.insertIndex);
|
|
43
|
-
let startIndex = model.insertIndex;
|
|
44
|
-
let endIndex = model.insertIndex;
|
|
45
|
-
if (model.insertIndex === 0 || previousParagraph?.insertIndex === model.insertIndex - 1) {
|
|
46
|
-
endIndex++;
|
|
47
|
-
}
|
|
48
|
-
else if (currentParagraph.insertIndex === model.insertIndex) {
|
|
49
|
-
startIndex++;
|
|
50
|
-
endIndex++;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
endIndex = startIndex + 2;
|
|
54
|
-
}
|
|
55
|
-
endIndex = endIndex + (model.insertText ? model.insertText.text.length : 1);
|
|
56
|
-
const undoStep = new DeleteModel({ startIndex, endIndex });
|
|
57
|
-
this.addToHistory(undoStep, model);
|
|
35
|
+
pushInsertParagraph(content, model, paragraphs) {
|
|
36
|
+
const undoStep = this.getDeleteDataForInsertParagraphs(content, model, paragraphs);
|
|
37
|
+
this.addToHistory(new DeleteModel({ ...undoStep }), model);
|
|
58
38
|
}
|
|
59
39
|
pushInsertElement(model) {
|
|
60
|
-
const undoStep = new DeleteModel({ startIndex: model.element.insertIndex,
|
|
40
|
+
const undoStep = new DeleteModel({ startIndex: model.element.insertIndex, count: CUSTOM_ELEMENT_MARKER.length });
|
|
61
41
|
this.addToHistory(undoStep, model);
|
|
62
42
|
}
|
|
63
|
-
pushInsertBreak(model,
|
|
64
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex,
|
|
43
|
+
pushInsertBreak(model, count) {
|
|
44
|
+
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count });
|
|
65
45
|
this.addToHistory(undoStep, model);
|
|
66
46
|
}
|
|
67
47
|
pushInsertTab(model) {
|
|
68
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex,
|
|
48
|
+
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: CUSTOM_ELEMENT_MARKER.length });
|
|
69
49
|
this.addToHistory(undoStep, model);
|
|
70
50
|
}
|
|
71
51
|
pushInsertImage(model) {
|
|
72
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex,
|
|
52
|
+
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: CUSTOM_ELEMENT_MARKER.length });
|
|
73
53
|
this.addToHistory(undoStep, model);
|
|
74
54
|
}
|
|
75
55
|
pushInsertLink(model) {
|
|
76
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex,
|
|
56
|
+
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: model.linkDataModel.text.length });
|
|
77
57
|
this.addToHistory(undoStep, model);
|
|
78
58
|
}
|
|
79
59
|
pushInsertTable(model) {
|
|
80
|
-
const undoStep = new DeleteModel({ startIndex: model.insertIndex,
|
|
60
|
+
const undoStep = new DeleteModel({ startIndex: model.insertIndex, count: model.content.length });
|
|
81
61
|
this.addToHistory(undoStep, model);
|
|
82
62
|
}
|
|
83
63
|
pushInsertStyledText(insertIndex, text, style) {
|
|
84
64
|
const redoStep = new InsertStyledTextModel({ insertIndex, text, textStyle: style });
|
|
85
|
-
const undoStep = new DeleteModel({ startIndex: insertIndex,
|
|
65
|
+
const undoStep = new DeleteModel({ startIndex: insertIndex, count: text.length });
|
|
86
66
|
this.addToHistory(undoStep, redoStep);
|
|
87
67
|
}
|
|
88
68
|
pushDelete(model) {
|
|
89
|
-
const redoStep = new DeleteModel({ startIndex: model.startIndex,
|
|
69
|
+
const redoStep = new DeleteModel({ startIndex: model.startIndex, count: model.text.length });
|
|
90
70
|
this.addToHistory(model, redoStep);
|
|
91
71
|
}
|
|
92
|
-
pushApplyTextStyle(startIndex, endIndex, style, formats) {
|
|
72
|
+
pushApplyTextStyle(startIndex, endIndex, style, formats, linkFormats) {
|
|
93
73
|
const redoStep = new ApplyTextStyleModel({ startIndex, endIndex, textStyle: style });
|
|
94
|
-
const undoStep = new RestoreTextStylesModel({ formats });
|
|
74
|
+
const undoStep = new RestoreTextStylesModel({ formats, linkFormats });
|
|
95
75
|
this.addToHistory(undoStep, redoStep);
|
|
96
76
|
}
|
|
97
77
|
pushApplyParagraphStyle(startIndex, endIndex, style, paragraphs) {
|
|
@@ -202,5 +182,27 @@ export class OperationHistory {
|
|
|
202
182
|
}
|
|
203
183
|
this.editorService.historyInfo = new OperationsHistoryInfoModel(this.step, this.storage.length - 1);
|
|
204
184
|
}
|
|
185
|
+
getDeleteDataForInsertParagraphs(content, model, paragraphs) {
|
|
186
|
+
const currentParagraph = paragraphs
|
|
187
|
+
.slice()
|
|
188
|
+
.sort((a, b) => a.insertIndex - b.insertIndex)
|
|
189
|
+
.find(x => x.insertIndex >= model.insertIndex);
|
|
190
|
+
const previousParagraph = paragraphs
|
|
191
|
+
.slice()
|
|
192
|
+
.sort((a, b) => b.insertIndex - a.insertIndex)
|
|
193
|
+
.find(x => x.insertIndex < currentParagraph.insertIndex);
|
|
194
|
+
let startIndex = model.insertIndex;
|
|
195
|
+
let count = content.length;
|
|
196
|
+
if (model.insertIndex === 0 || previousParagraph?.insertIndex === model.insertIndex - 1) {
|
|
197
|
+
count++;
|
|
198
|
+
}
|
|
199
|
+
else if (currentParagraph.insertIndex === model.insertIndex) {
|
|
200
|
+
startIndex++;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
count = count + 2;
|
|
204
|
+
}
|
|
205
|
+
return { startIndex, count };
|
|
206
|
+
}
|
|
205
207
|
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbi1oaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVVyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUUvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFJOUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDMUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENB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RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkTnVtYmVyaW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2FkZC1udW1iZXJpbmcubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlFbGVtZW50U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktZWxlbWVudC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBBcHBseUltYWdlU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktaW1hZ2Utc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlQYXJhZ3JhcGhTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9hcHBseS1wYXJhZ3JhcGgtc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktdGV4dC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBDdXJzb3JQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi8uLi9lZGl0b3IvcG9zaXRpb25pbmcvY3Vyc29yLXBhcmFncmFwaCc7XG5pbXBvcnQgeyBEZWxldGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZGVsZXRlLm1vZGVsJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9lbGVtZW50Lm1vZGVsJztcbmltcG9ydCB7IEZvcm1hdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9mb3JtYXQubW9kZWwnO1xuaW1wb3J0IHsgSW1hZ2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW1hZ2UubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0QnJlYWtNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LWJyZWFrLm1vZGVsJztcbmltcG9ydCB7IEluc2VydEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LWVsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0SW1hZ2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LWltYWdlLm1vZGVsJztcbmltcG9ydCB7IEluc2VydExpbmtNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LWxpbmsubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0UGFyYWdyYXBoTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC1wYXJhZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0U3R5bGVkVGV4dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtc3R5bGVkLXRleHQubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0VGFibGVDb2x1bW5zTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC10YWJsZS1jb2x1bW5zLm1vZGVsJztcbmltcG9ydCB7IEluc2VydFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC10YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUYWJsZVJvd3NNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYmxlLXJvd3MubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0VGFiTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC10YWIubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0VGV4dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtdGV4dC5tb2RlbCc7XG5pbXBvcnQgeyBOdW1iZXJpbmdMZXZlbE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9udW1iZXJpbmctbGV2ZWwubW9kZWwnO1xuaW1wb3J0IHsgTnVtYmVyaW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL251bWJlcmluZy5tb2RlbCc7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbi50eXBlJztcbmltcG9ydCB7IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsIH0gZnJvbSAnLi9vcGVyYXRpb25zLWhpc3RvcnktaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLm1vZGVsJztcbmltcG9ydCB7IFBhcmFncmFwaFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3BhcmFncmFwaC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBSZWd1bGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL3JlZ3VsYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlbW92ZU51bWJlcmluZ3NNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVtb3ZlLW51bWJlcmluZ3MubW9kZWwnO1xuaW1wb3J0IHsgUmVtb3ZlVGFibGVDb2x1bW5zTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3JlbW92ZS10YWJsZS1jb2x1bW5zLm1vZGVsJztcbmltcG9ydCB7IFJlbW92ZVRhYmxlUm93c01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZW1vdmUtdGFibGUtcm93cy5tb2RlbCc7XG5pbXBvcnQgeyBSZXBsYWNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3JlcGxhY2UubW9kZWwnO1xuaW1wb3J0IHsgUmVzaXplVGFibGVDb2x1bW5zTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc2l6ZS10YWJsZS1jb2x1bW5zLm1vZGVsJztcbmltcG9ydCB7IFJlc3RvcmVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzdG9yZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlTnVtYmVyaW5nc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLW51bWJlcmluZ3MubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZVBhcmFncmFwaFN0eWxlc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLXBhcmFncmFwaC1zdHlsZXMubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZVRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc3RvcmUtdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZVRleHRTdHlsZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzdG9yZS10ZXh0LXN0eWxlcy5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbkhpc3Rvcnkge1xuICAgIHJlYWRvbmx5IE1BWF9ISVNUT1JZID0gMTAwO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlOiB7XG4gICAgICAgIHVuZG86IE9wZXJhdGlvbjtcbiAgICAgICAgcmVkbzogT3BlcmF0aW9uO1xuICAgICAgICB0YXJnZXRzOiBUYXJnZXRNb2RlbFtdO1xuICAgICAgICBjdXJzb3I6IEN1cnNvclBhcmFncmFwaDtcbiAgICAgICAgYW5jaG9yOiBDdXJzb3JQYXJhZ3JhcGggfCBudWxsO1xuICAgIH1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBzdGVwID0gLTE7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsIHByaXZhdGUgcmVndWxhdG9yU2VydmljZTogUmVndWxhdG9yU2VydmljZSkge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuaGlzdG9yeUluZm8gPSBuZXcgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwodGhpcy5zdGVwLCB0aGlzLnN0b3JhZ2UubGVuZ3RoIC0gMSk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydFRleHQoaW5zZXJ0SW5kZXg6IG51bWJlciwgdGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEluc2VydFRleHRNb2RlbCh7IGluc2VydEluZGV4LCB0ZXh0IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IGluc2VydEluZGV4LCBlbmRJbmRleDogaW5zZXJ0SW5kZXggKyB0ZXh0Lmxlbmd0aCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0UGFyYWdyYXBoKG1vZGVsOiBJbnNlcnRQYXJhZ3JhcGhNb2RlbCwgcGFyYWdyYXBoczogUGFyYWdyYXBoTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50UGFyYWdyYXBoID0gcGFyYWdyYXBoc1xuICAgICAgICAgICAgLnNsaWNlKClcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmluc2VydEluZGV4IC0gYi5pbnNlcnRJbmRleClcbiAgICAgICAgICAgIC5maW5kKHggPT4geC5pbnNlcnRJbmRleCA+PSBtb2RlbC5pbnNlcnRJbmRleCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFyYWdyYXBoID0gcGFyYWdyYXBoc1xuICAgICAgICAgICAgLnNsaWNlKClcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBiLmluc2VydEluZGV4IC0gYS5pbnNlcnRJbmRleClcbiAgICAgICAgICAgIC5maW5kKHggPT4geC5pbnNlcnRJbmRleCA8IGN1cnJlbnRQYXJhZ3JhcGguaW5zZXJ0SW5kZXgpO1xuICAgICAgICBsZXQgc3RhcnRJbmRleCA9IG1vZGVsLmluc2VydEluZGV4O1xuICAgICAgICBsZXQgZW5kSW5kZXggPSBtb2RlbC5pbnNlcnRJbmRleDtcbiAgICAgICAgaWYgKG1vZGVsLmluc2VydEluZGV4ID09PSAwIHx8IHByZXZpb3VzUGFyYWdyYXBoPy5pbnNlcnRJbmRleCA9PT0gbW9kZWwuaW5zZXJ0SW5kZXggLSAxKSB7XG4gICAgICAgICAgICBlbmRJbmRleCsrO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRQYXJhZ3JhcGguaW5zZXJ0SW5kZXggPT09IG1vZGVsLmluc2VydEluZGV4KSB7XG4gICAgICAgICAgICBzdGFydEluZGV4Kys7XG4gICAgICAgICAgICBlbmRJbmRleCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgMjtcbiAgICAgICAgfVxuICAgICAgICBlbmRJbmRleCA9IGVuZEluZGV4ICsgKG1vZGVsLmluc2VydFRleHQgPyBtb2RlbC5pbnNlcnRUZXh0LnRleHQubGVuZ3RoIDogMSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IERlbGV0ZU1vZGVsKHsgc3RhcnRJbmRleCwgZW5kSW5kZXggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydEVsZW1lbnQobW9kZWw6IEluc2VydEVsZW1lbnRNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmVsZW1lbnQuaW5zZXJ0SW5kZXgsIGVuZEluZGV4OiBtb2RlbC5lbGVtZW50Lmluc2VydEluZGV4ICsgMSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0QnJlYWsobW9kZWw6IEluc2VydEJyZWFrTW9kZWwsIGVuZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgZW5kSW5kZXggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydFRhYihtb2RlbDogSW5zZXJ0VGFiTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgZW5kSW5kZXg6IG1vZGVsLmluc2VydEluZGV4ICsgMSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0SW1hZ2UobW9kZWw6IEluc2VydEltYWdlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgZW5kSW5kZXg6IG1vZGVsLmluc2VydEluZGV4ICsgMSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0TGluayhtb2RlbDogSW5zZXJ0TGlua01vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IERlbGV0ZU1vZGVsKHsgc3RhcnRJbmRleDogbW9kZWwuaW5zZXJ0SW5kZXgsIGVuZEluZGV4OiBtb2RlbC5lbmRJbmRleCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGFibGUobW9kZWw6IEluc2VydFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgZW5kSW5kZXg6IG1vZGVsLmluc2VydEluZGV4ICsgbW9kZWwuY29udGVudC5sZW5ndGggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydFN0eWxlZFRleHQoaW5zZXJ0SW5kZXg6IG51bWJlciwgdGV4dDogc3RyaW5nLCBzdHlsZTogVGV4dFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgSW5zZXJ0U3R5bGVkVGV4dE1vZGVsKHsgaW5zZXJ0SW5kZXgsIHRleHQsIHRleHRTdHlsZTogc3R5bGUgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IERlbGV0ZU1vZGVsKHsgc3RhcnRJbmRleDogaW5zZXJ0SW5kZXgsIGVuZEluZGV4OiBpbnNlcnRJbmRleCArIHRleHQubGVuZ3RoIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hEZWxldGUobW9kZWw6IFJlc3RvcmVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLnN0YXJ0SW5kZXgsIGVuZEluZGV4OiBtb2RlbC5zdGFydEluZGV4ICsgbW9kZWwudGV4dC5sZW5ndGggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KG1vZGVsLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaEFwcGx5VGV4dFN0eWxlKHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgc3R5bGU6IFRleHRTdHlsZU1vZGVsLCBmb3JtYXRzOiBGb3JtYXRNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFwcGx5VGV4dFN0eWxlTW9kZWwoeyBzdGFydEluZGV4LCBlbmRJbmRleCwgdGV4dFN0eWxlOiBzdHlsZSB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZVRleHRTdHlsZXNNb2RlbCh7IGZvcm1hdHMgfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaEFwcGx5UGFyYWdyYXBoU3R5bGUoc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCBzdHlsZTogUGFyYWdyYXBoU3R5bGVNb2RlbCwgcGFyYWdyYXBoczogUGFyYWdyYXBoTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWRvU3RlcCA9IG5ldyBBcHBseVBhcmFncmFwaFN0eWxlTW9kZWwoeyBzdGFydEluZGV4LCBlbmRJbmRleCwgcGFyYWdyYXBoU3R5bGU6IHN0eWxlIH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlUGFyYWdyYXBoU3R5bGVzTW9kZWwoeyBwYXJhZ3JhcGhzIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hBcHBseUVsZW1lbnRTdHlsZShwcmV2aW91czogRWxlbWVudE1vZGVsLCBjdXJyZW50OiBFbGVtZW50TW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgQXBwbHlFbGVtZW50U3R5bGVNb2RlbCh7IGluc2VydEluZGV4OiBjdXJyZW50Lmluc2VydEluZGV4LCB3aWR0aDogY3VycmVudC53aWR0aCwgaGVpZ2h0OiBjdXJyZW50LmhlaWdodCB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgQXBwbHlFbGVtZW50U3R5bGVNb2RlbCh7IGluc2VydEluZGV4OiBwcmV2aW91cy5pbnNlcnRJbmRleCwgd2lkdGg6IHByZXZpb3VzLndpZHRoLCBoZWlnaHQ6IHByZXZpb3VzLmhlaWdodCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGFibGVSb3dzKGluc2VydEluZGV4OiBudW1iZXIsIHJvd3NDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyLCBpbmhlcml0SW5kZXg6IG51bWJlciwgdGFibGU6IFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkVGFibGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRhYmxlKSk7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEluc2VydFRhYmxlUm93c01vZGVsKHsgaW5zZXJ0SW5kZXgsIHJvd3NDb3VudCwgdGFyZ2V0SW5kZXgsIGluaGVyaXRJbmRleCB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZVRhYmxlTW9kZWwoeyBpbnNlcnRJbmRleCwgb2xkVGFibGUgfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydFRhYmxlQ29sdW1ucyhpbnNlcnRJbmRleDogbnVtYmVyLCBjb2x1bW5zQ291bnQ6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlciwgaW5oZXJpdEluZGV4OiBudW1iZXIsIHRhYmxlOiBUYWJsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9sZFRhYmxlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0YWJsZSkpO1xuICAgICAgICBjb25zdCByZWRvU3RlcCA9IG5ldyBJbnNlcnRUYWJsZUNvbHVtbnNNb2RlbCh7IGluc2VydEluZGV4LCBjb2x1bW5zQ291bnQsIHRhcmdldEluZGV4LCBpbmhlcml0SW5kZXggfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc3RvcmVUYWJsZU1vZGVsKHsgaW5zZXJ0SW5kZXgsIG9sZFRhYmxlIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hSZW1vdmVUYWJsZVJvd3MoaW5zZXJ0SW5kZXg6IG51bWJlciwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCB0YWJsZTogVGFibGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRUYWJsZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGFibGUpKTtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgUmVtb3ZlVGFibGVSb3dzTW9kZWwoeyBpbnNlcnRJbmRleCwgc3RhcnRJbmRleCwgZW5kSW5kZXggfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc3RvcmVUYWJsZU1vZGVsKHsgaW5zZXJ0SW5kZXgsIG9sZFRhYmxlIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hSZW1vdmVUYWJsZUNvbHVtbnMoaW5zZXJ0SW5kZXg6IG51bWJlciwgc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCB0YWJsZTogVGFibGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRUYWJsZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGFibGUpKTtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgUmVtb3ZlVGFibGVDb2x1bW5zTW9kZWwoeyBpbnNlcnRJbmRleCwgc3RhcnRJbmRleCwgZW5kSW5kZXggfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc3RvcmVUYWJsZU1vZGVsKHsgaW5zZXJ0SW5kZXgsIG9sZFRhYmxlIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hSZXNpemVUYWJsZUNvbHVtbnMocmVzaXplVGFibGVDb2x1bW5zOiBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWRvU3RlcCA9IG5ldyBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCh7XG4gICAgICAgICAgICBjZWxsSW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5jZWxsSW5kZXgsXG4gICAgICAgICAgICBjb2x1bW5JbmRleDogcmVzaXplVGFibGVDb2x1bW5zLmNvbHVtbkluZGV4LFxuICAgICAgICAgICAgZGlzdGFuY2U6IHJlc2l6ZVRhYmxlQ29sdW1ucy5kaXN0YW5jZSxcbiAgICAgICAgICAgIGluc2VydEluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuaW5zZXJ0SW5kZXgsXG4gICAgICAgICAgICByZXNpemVyU2lkZTogcmVzaXplVGFibGVDb2x1bW5zLnJlc2l6ZXJTaWRlLFxuICAgICAgICAgICAgcm93SW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5yb3dJbmRleFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzaXplVGFibGVDb2x1bW5zTW9kZWwoe1xuICAgICAgICAgICAgY2VsbEluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuY2VsbEluZGV4LFxuICAgICAgICAgICAgY29sdW1uSW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5jb2x1bW5JbmRleCxcbiAgICAgICAgICAgIGRpc3RhbmNlOiAtcmVzaXplVGFibGVDb2x1bW5zLmRpc3RhbmNlLFxuICAgICAgICAgICAgaW5zZXJ0SW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5pbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHJlc2l6ZXJTaWRlOiByZXNpemVUYWJsZUNvbHVtbnMucmVzaXplclNpZGUsXG4gICAgICAgICAgICByb3dJbmRleDogcmVzaXplVGFibGVDb2x1bW5zLnJvd0luZGV4XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hBcHBseUltYWdlU3R5bGUocHJldmlvdXM6IEltYWdlTW9kZWwsIGN1cnJlbnQ6IEltYWdlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgQXBwbHlJbWFnZVN0eWxlTW9kZWwoeyBpbnNlcnRJbmRleDogY3VycmVudC5pbnNlcnRJbmRleCwgd2lkdGg6IGN1cnJlbnQud2lkdGgsIGhlaWdodDogY3VycmVudC5oZWlnaHQgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IEFwcGx5SW1hZ2VTdHlsZU1vZGVsKHsgaW5zZXJ0SW5kZXg6IHByZXZpb3VzLmluc2VydEluZGV4LCB3aWR0aDogcHJldmlvdXMud2lkdGgsIGhlaWdodDogcHJldmlvdXMuaGVpZ2h0IH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hBZGROdW1iZXJpbmcoXG4gICAgICAgIHN0YXJ0SW5kZXg6IG51bWJlcixcbiAgICAgICAgZW5kSW5kZXg6IG51bWJlcixcbiAgICAgICAgbGV2ZWxzOiBOdW1iZXJpbmdMZXZlbE1vZGVsW10sXG4gICAgICAgIHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10sXG4gICAgICAgIG51bWJlcmluZ3M6IE51bWJlcmluZ01vZGVsW11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgQWRkTnVtYmVyaW5nTW9kZWwoeyBzdGFydEluZGV4LCBlbmRJbmRleCwgbGV2ZWxzIH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlTnVtYmVyaW5nc01vZGVsKHsgcGFyYWdyYXBocywgbnVtYmVyaW5ncyB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVtb3ZlTnVtYmVyaW5ncyhzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIG51bWJlcmluZ3M6IE51bWJlcmluZ01vZGVsW10sIHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgUmVtb3ZlTnVtYmVyaW5nc01vZGVsKHsgc3RhcnRJbmRleCwgZW5kSW5kZXggfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc3RvcmVOdW1iZXJpbmdzTW9kZWwoeyBudW1iZXJpbmdzLCBwYXJhZ3JhcGhzIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hSZXBsYWNlKHJlc3RvcmU6IFJlc3RvcmVNb2RlbCwgcmVwbGFjZTogUmVwbGFjZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHJlc3RvcmUsIHJlcGxhY2UpO1xuICAgIH1cblxuICAgIHBvcFVuZG9PcGVyYXRpb24oKToge1xuICAgICAgICBvcGVyYXRpb246IE9wZXJhdGlvbiB8IG51bGw7XG4gICAgICAgIHRhcmdldHM6IFRhcmdldE1vZGVsW107XG4gICAgICAgIGN1cnNvcjogQ3Vyc29yUGFyYWdyYXBoO1xuICAgICAgICBhbmNob3I6IEN1cnNvclBhcmFncmFwaCB8IG51bGw7XG4gICAgfSB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5zdGVwID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0udW5kbztcbiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLnRhcmdldHM7XG4gICAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLmN1cnNvcjtcbiAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0uYW5jaG9yO1xuICAgICAgICB0aGlzLnN0ZXAtLTtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmhpc3RvcnlJbmZvID0gbmV3IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKHRoaXMuc3RlcCwgdGhpcy5zdG9yYWdlLmxlbmd0aCAtIDEpO1xuICAgICAgICByZXR1cm4geyBvcGVyYXRpb24sIHRhcmdldHMsIGN1cnNvciwgYW5jaG9yIH07XG4gICAgfVxuXG4gICAgcG9wUmVkb09wZXJhdGlvbigpOiB7XG4gICAgICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uIHwgbnVsbDtcbiAgICAgICAgdGFyZ2V0czogVGFyZ2V0TW9kZWxbXTtcbiAgICAgICAgY3Vyc29yOiBDdXJzb3JQYXJhZ3JhcGg7XG4gICAgICAgIGFuY2hvcjogQ3Vyc29yUGFyYWdyYXBoIHwgbnVsbDtcbiAgICB9IHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXAgPj0gdGhpcy5zdG9yYWdlLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RlcCsrO1xuICAgICAgICBjb25zdCBvcGVyYXRpb24gPSB0aGlzLnN0b3JhZ2VbdGhpcy5zdGVwXS5yZWRvO1xuICAgICAgICBjb25zdCB0YXJnZXRzID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0udGFyZ2V0cztcbiAgICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0uY3Vyc29yO1xuICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLnN0b3JhZ2VbdGhpcy5zdGVwXS5hbmNob3I7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5oaXN0b3J5SW5mbyA9IG5ldyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0aW9uLCB0YXJnZXRzLCBjdXJzb3IsIGFuY2hvciB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVG9IaXN0b3J5KHVuZG9TdGVwOiBPcGVyYXRpb24sIHJlZG9TdGVwOiBPcGVyYXRpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMucmVndWxhdG9yU2VydmljZS5nZXRDdXJyZW50U2Vzc2lvblRhcmdldHMoKTtcbiAgICAgICAgY29uc3QgY3Vyc29yID0gdGhpcy5yZWd1bGF0b3JTZXJ2aWNlLnNlbGVjdGlvbi5jdXJzb3I7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMucmVndWxhdG9yU2VydmljZS5zZWxlY3Rpb24uYW5jaG9yO1xuICAgICAgICB0aGlzLnN0ZXArKztcbiAgICAgICAgdGhpcy5zdG9yYWdlLnNwbGljZSh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGgpO1xuICAgICAgICB0aGlzLnN0b3JhZ2UucHVzaCh7IHVuZG86IHVuZG9TdGVwLCByZWRvOiByZWRvU3RlcCwgdGFyZ2V0cywgY3Vyc29yLCBhbmNob3IgfSk7XG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2UubGVuZ3RoID4gdGhpcy5NQVhfSElTVE9SWSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNwbGljZSgwLCAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RlcC0tO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmhpc3RvcnlJbmZvID0gbmV3IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKHRoaXMuc3RlcCwgdGhpcy5zdG9yYWdlLmxlbmd0aCAtIDEpO1xuICAgIH1cbn1cbiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbi1oaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVVyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUUvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFJOUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDMUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFLN0YsTUFBTSxPQUFPLGdCQUFnQjtJQWF6QixZQUFvQixhQUE0QixFQUFVLGdCQUFrQztRQUF4RSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFabkYsZ0JBQVcsR0FBRyxHQUFHLENBQUM7UUFFVixZQUFPLEdBTWxCLEVBQUUsQ0FBQztRQUVELFNBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUdkLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQW1CLEVBQUUsSUFBWTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQWUsRUFBRSxLQUEyQixFQUFFLFVBQTRCO1FBQzFGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxXQUFXLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQXlCO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pILElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBdUIsRUFBRSxLQUFhO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXFCO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDekcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUF1QjtRQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBc0I7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1RyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXVCO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsV0FBbUIsRUFBRSxJQUFZLEVBQUUsS0FBcUI7UUFDekUsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDcEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW1CO1FBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsa0JBQWtCLENBQ2QsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDaEIsS0FBcUIsRUFDckIsT0FBc0IsRUFDdEIsV0FBMEI7UUFFMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckYsTUFBTSxRQUFRLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxVQUFrQixFQUFFLFFBQWdCLEVBQUUsS0FBMEIsRUFBRSxVQUE0QjtRQUNsSCxNQUFNLFFBQVEsR0FBRyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvRixNQUFNLFFBQVEsR0FBRyxJQUFJLDJCQUEyQixDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsUUFBc0IsRUFBRSxPQUFxQjtRQUMvRCxNQUFNLFFBQVEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2hJLE1BQU0sUUFBUSxHQUFHLElBQUksc0JBQXNCLENBQUMsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbkksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLFlBQW9CLEVBQUUsS0FBaUI7UUFDcEgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDakcsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxXQUFtQixFQUFFLFlBQW9CLEVBQUUsV0FBbUIsRUFBRSxZQUFvQixFQUFFLEtBQWlCO1FBQzFILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLElBQUksdUJBQXVCLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQWlCLENBQUMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsV0FBbUIsRUFBRSxVQUFrQixFQUFFLFFBQWdCLEVBQUUsS0FBaUI7UUFDNUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqRixNQUFNLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELHNCQUFzQixDQUFDLFdBQW1CLEVBQUUsVUFBa0IsRUFBRSxRQUFnQixFQUFFLEtBQWlCO1FBQy9GLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLElBQUksdUJBQXVCLENBQUMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxrQkFBMkM7UUFDOUQsTUFBTSxRQUFRLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQztZQUN6QyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsU0FBUztZQUN2QyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsV0FBVztZQUMzQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtZQUNyQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsV0FBVztZQUMzQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsV0FBVztZQUMzQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtTQUN4QyxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLHVCQUF1QixDQUFDO1lBQ3pDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTO1lBQ3ZDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxXQUFXO1lBQzNDLFFBQVEsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFFBQVE7WUFDdEMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLFdBQVc7WUFDM0MsV0FBVyxFQUFFLGtCQUFrQixDQUFDLFdBQVc7WUFDM0MsUUFBUSxFQUFFLGtCQUFrQixDQUFDLFFBQVE7U0FDeEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFFBQW9CLEVBQUUsT0FBbUI7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5SCxNQUFNLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixDQUFDLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxnQkFBZ0IsQ0FDWixVQUFrQixFQUNsQixRQUFnQixFQUNoQixNQUE2QixFQUM3QixVQUE0QixFQUM1QixVQUE0QjtRQUU1QixNQUFNLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLElBQUksc0JBQXNCLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsVUFBa0IsRUFBRSxRQUFnQixFQUFFLFVBQTRCLEVBQUUsVUFBNEI7UUFDakgsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sUUFBUSxHQUFHLElBQUksc0JBQXNCLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXFCLEVBQUUsT0FBcUI7UUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQjtRQU1aLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELGdCQUFnQjtRQU1aLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTyxZQUFZLENBQUMsUUFBbUIsRUFBRSxRQUFtQjtRQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELGdDQUFnQyxDQUM1QixPQUFlLEVBQ2YsS0FBMkIsRUFDM0IsVUFBNEI7UUFFNUIsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVO2FBQzlCLEtBQUssRUFBRTthQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQzthQUM3QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxNQUFNLGlCQUFpQixHQUFHLFVBQVU7YUFDL0IsS0FBSyxFQUFFO2FBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO2FBQzdDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxDQUFDLElBQUksaUJBQWlCLEVBQUUsV0FBVyxLQUFLLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFO1lBQ3JGLEtBQUssRUFBRSxDQUFDO1NBQ1g7YUFBTSxJQUFJLGdCQUFnQixDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzNELFVBQVUsRUFBRSxDQUFDO1NBQ2hCO2FBQU07WUFDSCxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNyQjtRQUVELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkTnVtYmVyaW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2FkZC1udW1iZXJpbmcubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlFbGVtZW50U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktZWxlbWVudC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBBcHBseUltYWdlU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktaW1hZ2Utc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlQYXJhZ3JhcGhTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9hcHBseS1wYXJhZ3JhcGgtc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwbHlUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYXBwbHktdGV4dC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBDdXJzb3JQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi8uLi9lZGl0b3IvcG9zaXRpb25pbmcvY3Vyc29yLXBhcmFncmFwaCc7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVF9NQVJLRVIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC9jdXN0b20tY29udGVudC1tYXJrZXJzLmNvbnN0JztcbmltcG9ydCB7IERlbGV0ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9kZWxldGUubW9kZWwnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWF0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2Zvcm1hdC5tb2RlbCc7XG5pbXBvcnQgeyBJbWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRCcmVha01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtYnJlYWsubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0RWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtZWxlbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRJbWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtaW1hZ2UubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0TGlua01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtbGluay5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRQYXJhZ3JhcGhNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXBhcmFncmFwaC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRTdHlsZWRUZXh0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC1zdHlsZWQtdGV4dC5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgSW5zZXJ0VGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYmxlLm1vZGVsJztcbmltcG9ydCB7IEluc2VydFRhYmxlUm93c01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbnNlcnQtdGFibGUtcm93cy5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUYWJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXRhYi5tb2RlbCc7XG5pbXBvcnQgeyBJbnNlcnRUZXh0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2luc2VydC10ZXh0Lm1vZGVsJztcbmltcG9ydCB7IE51bWJlcmluZ0xldmVsTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL251bWJlcmluZy1sZXZlbC5tb2RlbCc7XG5pbXBvcnQgeyBOdW1iZXJpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLm1vZGVsJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwgfSBmcm9tICcuL29wZXJhdGlvbnMtaGlzdG9yeS1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFBhcmFncmFwaE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFJlZ3VsYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vcmVndWxhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVtb3ZlTnVtYmVyaW5nc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZW1vdmUtbnVtYmVyaW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBSZW1vdmVUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVtb3ZlLXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgUmVtb3ZlVGFibGVSb3dzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3JlbW92ZS10YWJsZS1yb3dzLm1vZGVsJztcbmltcG9ydCB7IFJlcGxhY2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVwbGFjZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzaXplLXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgUmVzdG9yZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLm1vZGVsJztcbmltcG9ydCB7IFJlc3RvcmVOdW1iZXJpbmdzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc3RvcmUtbnVtYmVyaW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlUGFyYWdyYXBoU3R5bGVzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jlc3RvcmUtcGFyYWdyYXBoLXN0eWxlcy5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzdG9yZS10YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXN0b3JlVGV4dFN0eWxlc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXN0b3JlLXRleHQtc3R5bGVzLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhYmxlLm1vZGVsJztcbmltcG9ydCB7IFRhcmdldE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YXJnZXQubW9kZWwnO1xuaW1wb3J0IHsgVGV4dFN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uSGlzdG9yeSB7XG4gICAgcmVhZG9ubHkgTUFYX0hJU1RPUlkgPSAxMDA7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2U6IHtcbiAgICAgICAgdW5kbzogT3BlcmF0aW9uO1xuICAgICAgICByZWRvOiBPcGVyYXRpb247XG4gICAgICAgIHRhcmdldHM6IFRhcmdldE1vZGVsW107XG4gICAgICAgIGN1cnNvcjogQ3Vyc29yUGFyYWdyYXBoO1xuICAgICAgICBhbmNob3I6IEN1cnNvclBhcmFncmFwaCB8IG51bGw7XG4gICAgfVtdID0gW107XG5cbiAgICBwcml2YXRlIHN0ZXAgPSAtMTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSwgcHJpdmF0ZSByZWd1bGF0b3JTZXJ2aWNlOiBSZWd1bGF0b3JTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5oaXN0b3J5SW5mbyA9IG5ldyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGV4dChpbnNlcnRJbmRleDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgSW5zZXJ0VGV4dE1vZGVsKHsgaW5zZXJ0SW5kZXgsIHRleHQgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IERlbGV0ZU1vZGVsKHsgc3RhcnRJbmRleDogaW5zZXJ0SW5kZXgsIGNvdW50OiB0ZXh0Lmxlbmd0aCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0UGFyYWdyYXBoKGNvbnRlbnQ6IHN0cmluZywgbW9kZWw6IEluc2VydFBhcmFncmFwaE1vZGVsLCBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gdGhpcy5nZXREZWxldGVEYXRhRm9ySW5zZXJ0UGFyYWdyYXBocyhjb250ZW50LCBtb2RlbCwgcGFyYWdyYXBocyk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KG5ldyBEZWxldGVNb2RlbCh7IC4uLnVuZG9TdGVwIH0pLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydEVsZW1lbnQobW9kZWw6IEluc2VydEVsZW1lbnRNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmVsZW1lbnQuaW5zZXJ0SW5kZXgsIGNvdW50OiBDVVNUT01fRUxFTUVOVF9NQVJLRVIubGVuZ3RoIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgbW9kZWwpO1xuICAgIH1cblxuICAgIHB1c2hJbnNlcnRCcmVhayhtb2RlbDogSW5zZXJ0QnJlYWtNb2RlbCwgY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmluc2VydEluZGV4LCBjb3VudCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGFiKG1vZGVsOiBJbnNlcnRUYWJNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmluc2VydEluZGV4LCBjb3VudDogQ1VTVE9NX0VMRU1FTlRfTUFSS0VSLmxlbmd0aCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0SW1hZ2UobW9kZWw6IEluc2VydEltYWdlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgY291bnQ6IENVU1RPTV9FTEVNRU5UX01BUktFUi5sZW5ndGggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydExpbmsobW9kZWw6IEluc2VydExpbmtNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IG1vZGVsLmluc2VydEluZGV4LCBjb3VudDogbW9kZWwubGlua0RhdGFNb2RlbC50ZXh0Lmxlbmd0aCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdXNoSW5zZXJ0VGFibGUobW9kZWw6IEluc2VydFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgRGVsZXRlTW9kZWwoeyBzdGFydEluZGV4OiBtb2RlbC5pbnNlcnRJbmRleCwgY291bnQ6IG1vZGVsLmNvbnRlbnQubGVuZ3RoIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgbW9kZWwpO1xuICAgIH1cblxuICAgIHB1c2hJbnNlcnRTdHlsZWRUZXh0KGluc2VydEluZGV4OiBudW1iZXIsIHRleHQ6IHN0cmluZywgc3R5bGU6IFRleHRTdHlsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEluc2VydFN0eWxlZFRleHRNb2RlbCh7IGluc2VydEluZGV4LCB0ZXh0LCB0ZXh0U3R5bGU6IHN0eWxlIH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBEZWxldGVNb2RlbCh7IHN0YXJ0SW5kZXg6IGluc2VydEluZGV4LCBjb3VudDogdGV4dC5sZW5ndGggfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaERlbGV0ZShtb2RlbDogUmVzdG9yZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IERlbGV0ZU1vZGVsKHsgc3RhcnRJbmRleDogbW9kZWwuc3RhcnRJbmRleCwgY291bnQ6IG1vZGVsLnRleHQubGVuZ3RoIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeShtb2RlbCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hBcHBseVRleHRTdHlsZShcbiAgICAgICAgc3RhcnRJbmRleDogbnVtYmVyLFxuICAgICAgICBlbmRJbmRleDogbnVtYmVyLFxuICAgICAgICBzdHlsZTogVGV4dFN0eWxlTW9kZWwsXG4gICAgICAgIGZvcm1hdHM6IEZvcm1hdE1vZGVsW10sXG4gICAgICAgIGxpbmtGb3JtYXRzOiBGb3JtYXRNb2RlbFtdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFwcGx5VGV4dFN0eWxlTW9kZWwoeyBzdGFydEluZGV4LCBlbmRJbmRleCwgdGV4dFN0eWxlOiBzdHlsZSB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZVRleHRTdHlsZXNNb2RlbCh7IGZvcm1hdHMsIGxpbmtGb3JtYXRzIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hBcHBseVBhcmFncmFwaFN0eWxlKHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgc3R5bGU6IFBhcmFncmFwaFN0eWxlTW9kZWwsIHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgQXBwbHlQYXJhZ3JhcGhTdHlsZU1vZGVsKHsgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHBhcmFncmFwaFN0eWxlOiBzdHlsZSB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZVBhcmFncmFwaFN0eWxlc01vZGVsKHsgcGFyYWdyYXBocyB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoQXBwbHlFbGVtZW50U3R5bGUocHJldmlvdXM6IEVsZW1lbnRNb2RlbCwgY3VycmVudDogRWxlbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFwcGx5RWxlbWVudFN0eWxlTW9kZWwoeyBpbnNlcnRJbmRleDogY3VycmVudC5pbnNlcnRJbmRleCwgd2lkdGg6IGN1cnJlbnQud2lkdGgsIGhlaWdodDogY3VycmVudC5oZWlnaHQgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IEFwcGx5RWxlbWVudFN0eWxlTW9kZWwoeyBpbnNlcnRJbmRleDogcHJldmlvdXMuaW5zZXJ0SW5kZXgsIHdpZHRoOiBwcmV2aW91cy53aWR0aCwgaGVpZ2h0OiBwcmV2aW91cy5oZWlnaHQgfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaEluc2VydFRhYmxlUm93cyhpbnNlcnRJbmRleDogbnVtYmVyLCByb3dzQ291bnQ6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlciwgaW5oZXJpdEluZGV4OiBudW1iZXIsIHRhYmxlOiBUYWJsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9sZFRhYmxlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0YWJsZSkpO1xuICAgICAgICBjb25zdCByZWRvU3RlcCA9IG5ldyBJbnNlcnRUYWJsZVJvd3NNb2RlbCh7IGluc2VydEluZGV4LCByb3dzQ291bnQsIHRhcmdldEluZGV4LCBpbmhlcml0SW5kZXggfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc3RvcmVUYWJsZU1vZGVsKHsgaW5zZXJ0SW5kZXgsIG9sZFRhYmxlIH0pO1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeSh1bmRvU3RlcCwgcmVkb1N0ZXApO1xuICAgIH1cblxuICAgIHB1c2hJbnNlcnRUYWJsZUNvbHVtbnMoaW5zZXJ0SW5kZXg6IG51bWJlciwgY29sdW1uc0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIsIGluaGVyaXRJbmRleDogbnVtYmVyLCB0YWJsZTogVGFibGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRUYWJsZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGFibGUpKTtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgSW5zZXJ0VGFibGVDb2x1bW5zTW9kZWwoeyBpbnNlcnRJbmRleCwgY29sdW1uc0NvdW50LCB0YXJnZXRJbmRleCwgaW5oZXJpdEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlVGFibGVNb2RlbCh7IGluc2VydEluZGV4LCBvbGRUYWJsZSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVtb3ZlVGFibGVSb3dzKGluc2VydEluZGV4OiBudW1iZXIsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgdGFibGU6IFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkVGFibGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRhYmxlKSk7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IFJlbW92ZVRhYmxlUm93c01vZGVsKHsgaW5zZXJ0SW5kZXgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlVGFibGVNb2RlbCh7IGluc2VydEluZGV4LCBvbGRUYWJsZSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVtb3ZlVGFibGVDb2x1bW5zKGluc2VydEluZGV4OiBudW1iZXIsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgdGFibGU6IFRhYmxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkVGFibGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRhYmxlKSk7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IFJlbW92ZVRhYmxlQ29sdW1uc01vZGVsKHsgaW5zZXJ0SW5kZXgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlVGFibGVNb2RlbCh7IGluc2VydEluZGV4LCBvbGRUYWJsZSB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVzaXplVGFibGVDb2x1bW5zKHJlc2l6ZVRhYmxlQ29sdW1uczogUmVzaXplVGFibGVDb2x1bW5zTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVkb1N0ZXAgPSBuZXcgUmVzaXplVGFibGVDb2x1bW5zTW9kZWwoe1xuICAgICAgICAgICAgY2VsbEluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuY2VsbEluZGV4LFxuICAgICAgICAgICAgY29sdW1uSW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5jb2x1bW5JbmRleCxcbiAgICAgICAgICAgIGRpc3RhbmNlOiByZXNpemVUYWJsZUNvbHVtbnMuZGlzdGFuY2UsXG4gICAgICAgICAgICBpbnNlcnRJbmRleDogcmVzaXplVGFibGVDb2x1bW5zLmluc2VydEluZGV4LFxuICAgICAgICAgICAgcmVzaXplclNpZGU6IHJlc2l6ZVRhYmxlQ29sdW1ucy5yZXNpemVyU2lkZSxcbiAgICAgICAgICAgIHJvd0luZGV4OiByZXNpemVUYWJsZUNvbHVtbnMucm93SW5kZXhcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHVuZG9TdGVwID0gbmV3IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsKHtcbiAgICAgICAgICAgIGNlbGxJbmRleDogcmVzaXplVGFibGVDb2x1bW5zLmNlbGxJbmRleCxcbiAgICAgICAgICAgIGNvbHVtbkluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuY29sdW1uSW5kZXgsXG4gICAgICAgICAgICBkaXN0YW5jZTogLXJlc2l6ZVRhYmxlQ29sdW1ucy5kaXN0YW5jZSxcbiAgICAgICAgICAgIGluc2VydEluZGV4OiByZXNpemVUYWJsZUNvbHVtbnMuaW5zZXJ0SW5kZXgsXG4gICAgICAgICAgICByZXNpemVyU2lkZTogcmVzaXplVGFibGVDb2x1bW5zLnJlc2l6ZXJTaWRlLFxuICAgICAgICAgICAgcm93SW5kZXg6IHJlc2l6ZVRhYmxlQ29sdW1ucy5yb3dJbmRleFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoQXBwbHlJbWFnZVN0eWxlKHByZXZpb3VzOiBJbWFnZU1vZGVsLCBjdXJyZW50OiBJbWFnZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFwcGx5SW1hZ2VTdHlsZU1vZGVsKHsgaW5zZXJ0SW5kZXg6IGN1cnJlbnQuaW5zZXJ0SW5kZXgsIHdpZHRoOiBjdXJyZW50LndpZHRoLCBoZWlnaHQ6IGN1cnJlbnQuaGVpZ2h0IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBBcHBseUltYWdlU3R5bGVNb2RlbCh7IGluc2VydEluZGV4OiBwcmV2aW91cy5pbnNlcnRJbmRleCwgd2lkdGg6IHByZXZpb3VzLndpZHRoLCBoZWlnaHQ6IHByZXZpb3VzLmhlaWdodCB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoQWRkTnVtYmVyaW5nKFxuICAgICAgICBzdGFydEluZGV4OiBudW1iZXIsXG4gICAgICAgIGVuZEluZGV4OiBudW1iZXIsXG4gICAgICAgIGxldmVsczogTnVtYmVyaW5nTGV2ZWxNb2RlbFtdLFxuICAgICAgICBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdLFxuICAgICAgICBudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IEFkZE51bWJlcmluZ01vZGVsKHsgc3RhcnRJbmRleCwgZW5kSW5kZXgsIGxldmVscyB9KTtcbiAgICAgICAgY29uc3QgdW5kb1N0ZXAgPSBuZXcgUmVzdG9yZU51bWJlcmluZ3NNb2RlbCh7IHBhcmFncmFwaHMsIG51bWJlcmluZ3MgfSk7XG4gICAgICAgIHRoaXMuYWRkVG9IaXN0b3J5KHVuZG9TdGVwLCByZWRvU3RlcCk7XG4gICAgfVxuXG4gICAgcHVzaFJlbW92ZU51bWJlcmluZ3Moc3RhcnRJbmRleDogbnVtYmVyLCBlbmRJbmRleDogbnVtYmVyLCBudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdLCBwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZG9TdGVwID0gbmV3IFJlbW92ZU51bWJlcmluZ3NNb2RlbCh7IHN0YXJ0SW5kZXgsIGVuZEluZGV4IH0pO1xuICAgICAgICBjb25zdCB1bmRvU3RlcCA9IG5ldyBSZXN0b3JlTnVtYmVyaW5nc01vZGVsKHsgbnVtYmVyaW5ncywgcGFyYWdyYXBocyB9KTtcbiAgICAgICAgdGhpcy5hZGRUb0hpc3RvcnkodW5kb1N0ZXAsIHJlZG9TdGVwKTtcbiAgICB9XG5cbiAgICBwdXNoUmVwbGFjZShyZXN0b3JlOiBSZXN0b3JlTW9kZWwsIHJlcGxhY2U6IFJlcGxhY2VNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZFRvSGlzdG9yeShyZXN0b3JlLCByZXBsYWNlKTtcbiAgICB9XG5cbiAgICBwb3BVbmRvT3BlcmF0aW9uKCk6IHtcbiAgICAgICAgb3BlcmF0aW9uOiBPcGVyYXRpb24gfCBudWxsO1xuICAgICAgICB0YXJnZXRzOiBUYXJnZXRNb2RlbFtdO1xuICAgICAgICBjdXJzb3I6IEN1cnNvclBhcmFncmFwaDtcbiAgICAgICAgYW5jaG9yOiBDdXJzb3JQYXJhZ3JhcGggfCBudWxsO1xuICAgIH0gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuc3RlcCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLnVuZG87XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLnN0b3JhZ2VbdGhpcy5zdGVwXS50YXJnZXRzO1xuICAgICAgICBjb25zdCBjdXJzb3IgPSB0aGlzLnN0b3JhZ2VbdGhpcy5zdGVwXS5jdXJzb3I7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLmFuY2hvcjtcbiAgICAgICAgdGhpcy5zdGVwLS07XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5oaXN0b3J5SW5mbyA9IG5ldyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0aW9uLCB0YXJnZXRzLCBjdXJzb3IsIGFuY2hvciB9O1xuICAgIH1cblxuICAgIHBvcFJlZG9PcGVyYXRpb24oKToge1xuICAgICAgICBvcGVyYXRpb246IE9wZXJhdGlvbiB8IG51bGw7XG4gICAgICAgIHRhcmdldHM6IFRhcmdldE1vZGVsW107XG4gICAgICAgIGN1cnNvcjogQ3Vyc29yUGFyYWdyYXBoO1xuICAgICAgICBhbmNob3I6IEN1cnNvclBhcmFncmFwaCB8IG51bGw7XG4gICAgfSB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5zdGVwID49IHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0ZXArKztcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0ucmVkbztcbiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLnRhcmdldHM7XG4gICAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMuc3RvcmFnZVt0aGlzLnN0ZXBdLmN1cnNvcjtcbiAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy5zdG9yYWdlW3RoaXMuc3RlcF0uYW5jaG9yO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuaGlzdG9yeUluZm8gPSBuZXcgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwodGhpcy5zdGVwLCB0aGlzLnN0b3JhZ2UubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiB7IG9wZXJhdGlvbiwgdGFyZ2V0cywgY3Vyc29yLCBhbmNob3IgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRvSGlzdG9yeSh1bmRvU3RlcDogT3BlcmF0aW9uLCByZWRvU3RlcDogT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLnJlZ3VsYXRvclNlcnZpY2UuZ2V0Q3VycmVudFNlc3Npb25UYXJnZXRzKCk7XG4gICAgICAgIGNvbnN0IGN1cnNvciA9IHRoaXMucmVndWxhdG9yU2VydmljZS5zZWxlY3Rpb24uY3Vyc29yO1xuICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLnJlZ3VsYXRvclNlcnZpY2Uuc2VsZWN0aW9uLmFuY2hvcjtcbiAgICAgICAgdGhpcy5zdGVwKys7XG4gICAgICAgIHRoaXMuc3RvcmFnZS5zcGxpY2UodGhpcy5zdGVwLCB0aGlzLnN0b3JhZ2UubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5zdG9yYWdlLnB1c2goeyB1bmRvOiB1bmRvU3RlcCwgcmVkbzogcmVkb1N0ZXAsIHRhcmdldHMsIGN1cnNvciwgYW5jaG9yIH0pO1xuICAgICAgICBpZiAodGhpcy5zdG9yYWdlLmxlbmd0aCA+IHRoaXMuTUFYX0hJU1RPUlkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zcGxpY2UoMCwgMSk7XG4gICAgICAgICAgICB0aGlzLnN0ZXAtLTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5oaXN0b3J5SW5mbyA9IG5ldyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCh0aGlzLnN0ZXAsIHRoaXMuc3RvcmFnZS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICBnZXREZWxldGVEYXRhRm9ySW5zZXJ0UGFyYWdyYXBocyhcbiAgICAgICAgY29udGVudDogc3RyaW5nLFxuICAgICAgICBtb2RlbDogSW5zZXJ0UGFyYWdyYXBoTW9kZWwsXG4gICAgICAgIHBhcmFncmFwaHM6IFBhcmFncmFwaE1vZGVsW11cbiAgICApOiB7IHN0YXJ0SW5kZXg6IG51bWJlcjsgY291bnQ6IG51bWJlciB9IHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhcmFncmFwaCA9IHBhcmFncmFwaHNcbiAgICAgICAgICAgIC5zbGljZSgpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5pbnNlcnRJbmRleCAtIGIuaW5zZXJ0SW5kZXgpXG4gICAgICAgICAgICAuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPj0gbW9kZWwuaW5zZXJ0SW5kZXgpO1xuICAgICAgICBjb25zdCBwcmV2aW91c1BhcmFncmFwaCA9IHBhcmFncmFwaHNcbiAgICAgICAgICAgIC5zbGljZSgpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5pbnNlcnRJbmRleCAtIGEuaW5zZXJ0SW5kZXgpXG4gICAgICAgICAgICAuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPCBjdXJyZW50UGFyYWdyYXBoLmluc2VydEluZGV4KTtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSBtb2RlbC5pbnNlcnRJbmRleDtcbiAgICAgICAgbGV0IGNvdW50ID0gY29udGVudC5sZW5ndGg7XG4gICAgICAgIGlmIChtb2RlbC5pbnNlcnRJbmRleCA9PT0gMCB8fCBwcmV2aW91c1BhcmFncmFwaD8uaW5zZXJ0SW5kZXggPT09IG1vZGVsLmluc2VydEluZGV4IC0gMSkge1xuICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UGFyYWdyYXBoLmluc2VydEluZGV4ID09PSBtb2RlbC5pbnNlcnRJbmRleCkge1xuICAgICAgICAgICAgc3RhcnRJbmRleCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY291bnQgPSBjb3VudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBzdGFydEluZGV4LCBjb3VudCB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -28,6 +28,9 @@ export class EditorService {
|
|
|
28
28
|
this._endMousePress$ = new Subject();
|
|
29
29
|
this._disableSelection$ = new Subject();
|
|
30
30
|
this._changedTableSize$ = new Subject();
|
|
31
|
+
this._changedEdgeSize$ = new Subject();
|
|
32
|
+
this._imageLoaded$ = new Subject();
|
|
33
|
+
this._changedEdge$ = new Subject();
|
|
31
34
|
this._insertTableRows$ = new Subject();
|
|
32
35
|
this._insertTableColumns$ = new Subject();
|
|
33
36
|
this._removeTableRows$ = new Subject();
|
|
@@ -35,9 +38,6 @@ export class EditorService {
|
|
|
35
38
|
this._removeImage$ = new Subject();
|
|
36
39
|
this._resizeTableColumns$ = new Subject();
|
|
37
40
|
this._insertTable$ = new Subject();
|
|
38
|
-
this._rendererUpdated$ = new Subject();
|
|
39
|
-
this._edgeElementCopyUpdated$ = new Subject();
|
|
40
|
-
this._changedEdgeHeight$ = new Subject();
|
|
41
41
|
this._redo$ = new Subject();
|
|
42
42
|
this._undo$ = new Subject();
|
|
43
43
|
this._print$ = new Subject();
|
|
@@ -145,6 +145,15 @@ export class EditorService {
|
|
|
145
145
|
get changedTableSize$() {
|
|
146
146
|
return this._changedTableSize$.asObservable();
|
|
147
147
|
}
|
|
148
|
+
get changedEdgeSize$() {
|
|
149
|
+
return this._changedEdgeSize$.asObservable();
|
|
150
|
+
}
|
|
151
|
+
get imageLoaded$() {
|
|
152
|
+
return this._imageLoaded$.asObservable();
|
|
153
|
+
}
|
|
154
|
+
get changedEdge$() {
|
|
155
|
+
return this._changedEdge$.asObservable();
|
|
156
|
+
}
|
|
148
157
|
get insertTableRows$() {
|
|
149
158
|
return this._insertTableRows$.asObservable();
|
|
150
159
|
}
|
|
@@ -166,15 +175,6 @@ export class EditorService {
|
|
|
166
175
|
get insertTable$() {
|
|
167
176
|
return this._insertTable$.asObservable();
|
|
168
177
|
}
|
|
169
|
-
get rendererUpdated$() {
|
|
170
|
-
return this._rendererUpdated$.asObservable();
|
|
171
|
-
}
|
|
172
|
-
get edgeElementCopyUpdated$() {
|
|
173
|
-
return this._edgeElementCopyUpdated$.asObservable();
|
|
174
|
-
}
|
|
175
|
-
get changedEdgeHeight$() {
|
|
176
|
-
return this._changedEdgeHeight$.asObservable();
|
|
177
|
-
}
|
|
178
178
|
get redo$() {
|
|
179
179
|
return this._redo$.asObservable();
|
|
180
180
|
}
|
|
@@ -272,6 +272,15 @@ export class EditorService {
|
|
|
272
272
|
changedTableSize(insertIndex, sessionId) {
|
|
273
273
|
this._changedTableSize$.next({ insertIndex, sessionId });
|
|
274
274
|
}
|
|
275
|
+
changedEdgeSize(edgeType, pageType) {
|
|
276
|
+
this._changedEdgeSize$.next({ edgeType, pageType });
|
|
277
|
+
}
|
|
278
|
+
imageLoaded(sessionId) {
|
|
279
|
+
this._imageLoaded$.next(sessionId);
|
|
280
|
+
}
|
|
281
|
+
changedEdge(sessionId) {
|
|
282
|
+
this._changedEdge$.next(sessionId);
|
|
283
|
+
}
|
|
275
284
|
insertTableRows(insertIndex, rowsCount, targetIndex, inheritIndex, sessionId) {
|
|
276
285
|
this._insertTableRows$.next({ insertIndex, rowsCount, targetIndex, inheritIndex, sessionId });
|
|
277
286
|
}
|
|
@@ -296,15 +305,6 @@ export class EditorService {
|
|
|
296
305
|
insertTable(tableData) {
|
|
297
306
|
this._insertTable$.next(tableData);
|
|
298
307
|
}
|
|
299
|
-
rendererUpdated(sessionId) {
|
|
300
|
-
this._rendererUpdated$.next(sessionId);
|
|
301
|
-
}
|
|
302
|
-
edgeElementCopyUpdated(newElementCopy, page) {
|
|
303
|
-
this._edgeElementCopyUpdated$.next({ newElementCopy, page });
|
|
304
|
-
}
|
|
305
|
-
changedEdgeHeight(type) {
|
|
306
|
-
this._changedEdgeHeight$.next(type);
|
|
307
|
-
}
|
|
308
308
|
undo() {
|
|
309
309
|
this._undo$.next();
|
|
310
310
|
}
|
|
@@ -350,4 +350,4 @@ export class EditorService {
|
|
|
350
350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorService, decorators: [{
|
|
351
351
|
type: Injectable
|
|
352
352
|
}] });
|
|
353
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQVdqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7QUFTeEcsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFXWSxhQUFRLEdBQW9DLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQVFwRixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM3RSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQixvQkFBZSxHQUE0QixJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUszRSxtQkFBYyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVEvRSxrQkFBYSxHQUFnRCxJQUFJLGVBQWUsQ0FDcEYsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBS00sb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBMEQsQ0FBQztRQVF4Rix1QkFBa0IsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQVE5RCxvQkFBZSxHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQVF2RSxzQkFBaUIsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFRN0UsY0FBUyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBS3JELG9CQUFlLEdBQTRCLElBQUksT0FBTyxFQUFrQixDQUFDO1FBS3pFLHlCQUFvQixHQUFpQyxJ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QUFDLFNBQWlCO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxRQUF3QjtRQUM3QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7K0dBN2NRLGFBQWE7bUhBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCcmVha1R5cGVzIH0gZnJvbSAnLi4vZ2FkZ2V0cy9wYWdlLWJyZWFrL2JyZWFrLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRWRnZVR5cGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2VzL2VkZ2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IEVsZW1lbnREYXRhTW9kZWwgfSBmcm9tICcuLi9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2VsZW1lbnQtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRXh0ZXJuYWxTaWRlbmF2SW50ZXJmYWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLXNpZGVuYXYuaW50ZXJmYWNlJztcbmltcG9ydCB7IEltYWdlRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbWFnZS1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEltYWdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2ltYWdlLm1vZGVsJztcbmltcG9ydCB7IElUb29sYmFyU3R5bGVzIH0gZnJvbSAnLi4vY29udGVudC9kaXNwbGF5LWRhdGEvdG9vbGJhci1zdHlsZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IE51bWJlcmluZ0xldmVsTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL251bWJlcmluZy1sZXZlbC5tb2RlbCc7XG5pbXBvcnQgeyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCB9IGZyb20gJy4uLy4uL2VkaXRvci9nYWRnZXRzL2hpc3Rvcnkvb3BlcmF0aW9ucy1oaXN0b3J5LWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFJlcGxhY2UgfSBmcm9tICcuLi9nYWRnZXRzL3NlYXJjaC9yZXBsYWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzaXplLXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoSXRlcmF0aW9uIH0gZnJvbSAnLi4vZ2FkZ2V0cy9zZWFyY2gvc2VhcmNoLWl0ZXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoT3B0aW9ucyB9IGZyb20gJy4uL2dhZGdldHMvc2VhcmNoL3NlYXJjaCc7XG5pbXBvcnQgeyBUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGV4dC1zdHlsZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFZGl0b3JTZXJ2aWNlIHtcbiAgICBzZXQgc3R5bGVzKHZhbHVlOiBJVG9vbGJhclN0eWxlcykge1xuICAgICAgICB0aGlzLl9zdHlsZXMkLm5leHQoeyAuLi52YWx1ZSB9KTtcbiAgICB9XG4gICAgZ2V0IHN0eWxlcygpOiBJVG9vbGJhclN0eWxlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZXMkLnZhbHVlO1xuICAgIH1cbiAgICBnZXQgc3R5bGVzJCgpOiBPYnNlcnZhYmxlPElUb29sYmFyU3R5bGVzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zdHlsZXMkOiBCZWhhdmlvclN1YmplY3Q8SVRvb2xiYXJTdHlsZXM+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJVG9vbGJhclN0eWxlcz4oe30pO1xuXG4gICAgZ2V0IGlzVmlld09ubHkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaWV3T25seSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBpc1ZpZXdPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaWV3T25seTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNWaWV3T25seSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2lzVmlld09ubHkgPSBmYWxzZTtcblxuICAgIGdldCBjbGlwYm9hcmREYXRhJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xpcGJvYXJkRGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NsaXBib2FyZERhdGEkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgICBnZXQgaGFzU2VsZWN0aW9uJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1NlbGVjdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1NlbGVjdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgc2V0IGhpc3RvcnlJbmZvKHZhbHVlOiBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCkge1xuICAgICAgICB0aGlzLl9oaXN0b3J5SW5mbyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBoaXN0b3J5SW5mbyQoKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlzdG9yeUluZm8kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oaXN0b3J5SW5mbyQ6IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsPihcbiAgICAgICAgbmV3IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKC0xLCAtMSlcbiAgICApO1xuXG4gICAgZ2V0IHRvZ2dsZVNpZGVuYXYkKCk6IE9ic2VydmFibGU8eyBvcGVuOiBib29sZWFuOyBjb21wb25lbnQ6IFR5cGU8YW55PjsgZGF0YT86IG9iamVjdCB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b2dnbGVTaWRlbmF2JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdG9nZ2xlU2lkZW5hdiQgPSBuZXcgU3ViamVjdDx7IG9wZW46IGJvb2xlYW47IGNvbXBvbmVudDogVHlwZTxhbnk+OyBkYXRhPzogb2JqZWN0IH0+KCk7XG5cbiAgICBzZXQgb3BlblNlYXJjaERpYWxvZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9vcGVuU2VhcmNoRGlhbG9nJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IG9wZW5TZWFyY2hEaWFsb2ckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlblNlYXJjaERpYWxvZyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX29wZW5TZWFyY2hEaWFsb2ckOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHNldCBzZWFyY2hPcHRpb25zKHZhbHVlOiBTZWFyY2hPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaE9wdGlvbnMkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoT3B0aW9ucyQoKTogT2JzZXJ2YWJsZTxTZWFyY2hPcHRpb25zPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hPcHRpb25zJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2VhcmNoT3B0aW9ucyQ6IFN1YmplY3Q8U2VhcmNoT3B0aW9ucz4gPSBuZXcgU3ViamVjdDxTZWFyY2hPcHRpb25zPigpO1xuXG4gICAgc2V0IHNlYXJjaEl0ZXJhdGlvbih2YWx1ZTogU2VhcmNoSXRlcmF0aW9uKSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaEl0ZXJhdGlvbiQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzZWFyY2hJdGVyYXRpb24kKCk6IE9ic2VydmFibGU8U2VhcmNoSXRlcmF0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hJdGVyYXRpb24kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZWFyY2hJdGVyYXRpb24kOiBTdWJqZWN0PFNlYXJjaEl0ZXJhdGlvbj4gPSBuZXcgU3ViamVjdDxTZWFyY2hJdGVyYXRpb24+KCk7XG5cbiAgICBzZXQgcmVwbGFjZSh2YWx1ZTogUmVwbGFjZSkge1xuICAgICAgICB0aGlzLl9yZXBsYWNlJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHJlcGxhY2UkKCk6IE9ic2VydmFibGU8UmVwbGFjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcGxhY2UkOiBTdWJqZWN0PFJlcGxhY2U+ID0gbmV3IFN1YmplY3Q8UmVwbGFjZT4oKTtcblxuICAgIGdldCBzZXRUZXh0U3R5bGVzJCgpOiBPYnNlcnZhYmxlPFRleHRTdHlsZU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZXRUZXh0U3R5bGVzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0VGV4dFN0eWxlcyQ6IFN1YmplY3Q8VGV4dFN0eWxlTW9kZWw+ID0gbmV3IFN1YmplY3Q8VGV4dFN0eWxlTW9kZWw+KCk7XG5cbiAgICBnZXQgc2V0UGFyYWdyYXBoU3R5bGVzJCgpOiBPYnNlcnZhYmxlPFBhcmFncmFwaFN0eWxlTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldFBhcmFncmFwaFN0eWxlcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldFBhcmFncmFwaFN0eWxlcyQ6IFN1YmplY3Q8UGFyYWdyYXBoU3R5bGVNb2RlbD4gPSBuZXcgU3ViamVjdDxQYXJhZ3JhcGhTdHlsZU1vZGVsPigpO1xuXG4gICAgZ2V0IHNldE51bWJlcmluZ1RlbXBsYXRlVHlwZSQoKTogT2JzZXJ2YWJsZTxOdW1iZXJpbmdMZXZlbE1vZGVsW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldE51bWJlcmluZ1RlbXBsYXRlVHlwZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldE51bWJlcmluZ1RlbXBsYXRlVHlwZSQ6IFN1YmplY3Q8TnVtYmVyaW5nTGV2ZWxNb2RlbFtdPiA9IG5ldyBTdWJqZWN0PE51bWJlcmluZ0xldmVsTW9kZWxbXT4oKTtcblxuICAgIGdldCByZW1vdmVOdW1iZXJpbmdzJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZU51bWJlcmluZ3MkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVOdW1iZXJpbmdzJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgc2V0SW1hZ2VTdHlsZSQoKTogT2JzZXJ2YWJsZTxJbWFnZU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VJbWFnZVN0eWxlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlSW1hZ2VTdHlsZSQgPSBuZXcgU3ViamVjdDxJbWFnZU1vZGVsPigpO1xuXG4gICAgZ2V0IGNoYW5nZUVsZW1lbnRTdHlsZSQoKTogT2JzZXJ2YWJsZTxFbGVtZW50TW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZUVsZW1lbnRTdHlsZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZUVsZW1lbnRTdHlsZSQgPSBuZXcgU3ViamVjdDxFbGVtZW50TW9kZWw+KCk7XG5cbiAgICBnZXQgY3JlYXRlQ3VzdG9tQ29tcG9uZW50JCgpOiBPYnNlcnZhYmxlPEVsZW1lbnREYXRhTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUN1c3RvbUNvbXBvbmVudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NyZWF0ZUN1c3RvbUNvbXBvbmVudCQ6IFN1YmplY3Q8RWxlbWVudERhdGFNb2RlbD4gPSBuZXcgU3ViamVjdDxFbGVtZW50RGF0YU1vZGVsPigpO1xuXG4gICAgZ2V0IGluc2VydEJyZWFrJCgpOiBPYnNlcnZhYmxlPEJyZWFrVHlwZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc2VydEJyZWFrJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0QnJlYWskOiBTdWJqZWN0PEJyZWFrVHlwZXM+ID0gbmV3IFN1YmplY3Q8QnJlYWtUeXBlcz4oKTtcblxuICAgIGdldCBpbnNlcnRJbWFnZSQoKTogT2JzZXJ2YWJsZTxJbWFnZURhdGFNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0SW1hZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pbnNlcnRJbWFnZSQgPSBuZXcgU3ViamVjdDxJbWFnZURhdGFNb2RlbD4oKTtcblxuICAgIGdldCBpbnNlcnRMaW5rJCgpOiBPYnNlcnZhYmxlPHsgdGV4dDogc3RyaW5nOyBsaW5rOiBzdHJpbmcgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0TGluayQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydExpbmskID0gbmV3IFN1YmplY3Q8eyB0ZXh0OiBzdHJpbmc7IGxpbms6IHN0cmluZyB9PigpO1xuXG4gICAgZ2V0IGVuZE1vdXNlUHJlc3MkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5kTW91c2VQcmVzcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2VuZE1vdXNlUHJlc3MkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBkaXNhYmxlU2VsZWN0aW9uJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVTZWxlY3Rpb24kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlU2VsZWN0aW9uJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgY2hhbmdlZFRhYmxlU2l6ZSQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXI7IHNlc3Npb25JZDogbnVtYmVyIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRUYWJsZVNpemUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VkVGFibGVTaXplJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCBpbnNlcnRUYWJsZVJvd3MkKCk6IE9ic2VydmFibGU8e1xuICAgICAgICBpbnNlcnRJbmRleDogbnVtYmVyO1xuICAgICAgICByb3dzQ291bnQ6IG51bWJlcjtcbiAgICAgICAgdGFyZ2V0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgaW5oZXJpdEluZGV4OiBudW1iZXI7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc2VydFRhYmxlUm93cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydFRhYmxlUm93cyQgPSBuZXcgU3ViamVjdDx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIHJvd3NDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4oKTtcblxuICAgIGdldCBpbnNlcnRUYWJsZUNvbHVtbnMkKCk6IE9ic2VydmFibGU8e1xuICAgICAgICBpbnNlcnRJbmRleDogbnVtYmVyO1xuICAgICAgICBjb2x1bW5zQ291bnQ6IG51bWJlcjtcbiAgICAgICAgdGFyZ2V0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgaW5oZXJpdEluZGV4OiBudW1iZXI7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc2VydFRhYmxlQ29sdW1ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydFRhYmxlQ29sdW1ucyQgPSBuZXcgU3ViamVjdDx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIGNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4oKTtcblxuICAgIGdldCByZW1vdmVUYWJsZVJvd3MkKCk6IE9ic2VydmFibGU8eyBpbnNlcnRJbmRleDogbnVtYmVyOyBzdGFydEluZGV4OiBudW1iZXI7IGVuZEluZGV4OiBudW1iZXI7IHNlc3Npb25JZDogbnVtYmVyIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZVRhYmxlUm93cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZVRhYmxlUm93cyQgPSBuZXcgU3ViamVjdDx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZW1vdmVUYWJsZUNvbHVtbnMkKCk6IE9ic2VydmFibGU8eyBpbnNlcnRJbmRleDogbnVtYmVyOyBzdGFydEluZGV4OiBudW1iZXI7IGVuZEluZGV4OiBudW1iZXI7IHNlc3Npb25JZDogbnVtYmVyIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZVRhYmxlQ29sdW1ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZVRhYmxlQ29sdW1ucyQgPSBuZXcgU3ViamVjdDx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZW1vdmVJbWFnZSQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlSW1hZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVJbWFnZSQgPSBuZXcgU3ViamVjdDx7IGluc2VydEluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZXNpemVUYWJsZUNvbHVtbnMkKCk6IE9ic2VydmFibGU8e1xuICAgICAgICByZXNpemVUYWJsZUNvbHVtbnM6IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNpemVUYWJsZUNvbHVtbnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZXNpemVUYWJsZUNvbHVtbnMkID0gbmV3IFN1YmplY3Q8e1xuICAgICAgICByZXNpemVUYWJsZUNvbHVtbnM6IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IGluc2VydFRhYmxlJCgpOiBPYnNlcnZhYmxlPHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0VGFibGUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pbnNlcnRUYWJsZSQgPSBuZXcgU3ViamVjdDx7IHJvd3M6IG51bWJlcjsgY29sdW1uczogbnVtYmVyIH0+KCk7XG5cbiAgICBnZXQgcmVuZGVyZXJVcGRhdGVkJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVuZGVyZXJVcGRhdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVuZGVyZXJVcGRhdGVkJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIGdldCBlZGdlRWxlbWVudENvcHlVcGRhdGVkJCgpOiBPYnNlcnZhYmxlPHsgbmV3RWxlbWVudENvcHk6IEhUTUxFbGVtZW50OyBwYWdlOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRnZUVsZW1lbnRDb3B5VXBkYXRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2VkZ2VFbGVtZW50Q29weVVwZGF0ZWQkID0gbmV3IFN1YmplY3Q8e1xuICAgICAgICBuZXdFbGVtZW50Q29weTogSFRNTEVsZW1lbnQ7XG4gICAgICAgIHBhZ2U6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IGNoYW5nZWRFZGdlSGVpZ2h0JCgpOiBPYnNlcnZhYmxlPEVkZ2VUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VkRWRnZUhlaWdodCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZWRFZGdlSGVpZ2h0JDogU3ViamVjdDxFZGdlVHlwZT4gPSBuZXcgU3ViamVjdDxFZGdlVHlwZT4oKTtcblxuICAgIGdldCByZWRvJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZG8kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZWRvJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgdW5kbyQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91bmRvJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdW5kbyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHByaW50JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByaW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJpbnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBjdXRTZWxlY3RlZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXRTZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1dFNlbGVjdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgY29weVNlbGVjdGVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvcHlTZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NvcHlTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHBhc3RlRnJvbUNsaXBib2FyZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXN0ZUZyb21DbGlwYm9hcmQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9wYXN0ZUZyb21DbGlwYm9hcmQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBzZWxlY3RBbGwkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0QWxsJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2VsZWN0QWxsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgcmVtb3ZlU2VsZWN0ZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlU2VsZWN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGtleURvd24kKCk6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5RG93biQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2tleURvd24kID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIGdldCB1cGRhdGVFZGdlcyQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZUVkZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdXBkYXRlRWRnZXMkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgZ2V0IGluc2VydFRleHQkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRUZXh0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0VGV4dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBnZXQgYmx1ckN1c3RvbUNvbXBvbmVudCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibHVyQ3VzdG9tQ29tcG9uZW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYmx1ckN1c3RvbUNvbXBvbmVudCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHJlbW92ZUN1c3RvbUVsZW1lbnRzRGF0YSQoKTogT2JzZXJ2YWJsZTxFbGVtZW50TW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlQ3VzdG9tRWxlbWVudHNEYXRhJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlQ3VzdG9tRWxlbWVudHNEYXRhJCA9IG5ldyBTdWJqZWN0PEVsZW1lbnRNb2RlbFtdPigpO1xuXG4gICAgc2V0SXNWaWV3T25seSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1ZpZXdPbmx5ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2lzVmlld09ubHkkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldEhhc1NlbGVjdGlvbih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYXNTZWxlY3Rpb24kLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldENsaXBib2FyZERhdGEodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGlwYm9hcmREYXRhJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRUZXh0U3R5bGVzKHZhbHVlOiBUZXh0U3R5bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRUZXh0U3R5bGVzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRQYXJhZ3JhcGhTdHlsZXModmFsdWU6IFBhcmFncmFwaFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0UGFyYWdyYXBoU3R5bGVzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUodmFsdWU6IE51bWJlcmluZ0xldmVsTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHJlbW92ZU51bWJlcmluZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZU51bWJlcmluZ3MkLm5leHQoKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VJbWFnZVN0eWxlKHZhbHVlOiBJbWFnZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUltYWdlU3R5bGUkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGNoYW5nZUVsZW1lbnRTdHlsZSh2YWx1ZTogRWxlbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUVsZW1lbnRTdHlsZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQ3VzdG9tQ29tcG9uZW50KG1vZGVsOiBFbGVtZW50RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUN1c3RvbUNvbXBvbmVudCQubmV4dChtb2RlbCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0QnJlYWsodmFsdWU6IEJyZWFrVHlwZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0QnJlYWskLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGluc2VydEltYWdlKGltYWdlRGF0YTogSW1hZ2VEYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0SW1hZ2UkLm5leHQoaW1hZ2VEYXRhKTtcbiAgICB9XG5cbiAgICBpbnNlcnRMaW5rKHRleHQ6IHN0cmluZywgbGluazogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luc2VydExpbmskLm5leHQoeyB0ZXh0LCBsaW5rIH0pO1xuICAgIH1cblxuICAgIGVuZE1vdXNlUHJlc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VuZE1vdXNlUHJlc3MkLm5leHQoKTtcbiAgICB9XG5cbiAgICBkaXNhYmxlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlU2VsZWN0aW9uJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgb3BlbkVsZW1lbnRTaWRlbmF2KGNvbXBvbmVudDogVHlwZTxFeHRlcm5hbFNpZGVuYXZJbnRlcmZhY2U+LCBtb2RlbDogRWxlbWVudE1vZGVsLCBjb250ZW50V2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl90b2dnbGVTaWRlbmF2JC5uZXh0KHsgb3BlbjogdHJ1ZSwgY29tcG9uZW50LCBkYXRhOiB7IG1vZGVsLCBjb250ZW50V2lkdGggfSB9KTtcbiAgICB9XG5cbiAgICBvcGVuU2lkZW5hdihjb21wb25lbnQ6IFR5cGU8YW55Pik6IHZvaWQge1xuICAgICAgICB0aGlzLl90b2dnbGVTaWRlbmF2JC5uZXh0KHsgb3BlbjogdHJ1ZSwgY29tcG9uZW50IH0pO1xuICAgIH1cblxuICAgIGNsb3NlU2lkZW5hdigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlU2lkZW5hdiQubmV4dCh7IG9wZW46IGZhbHNlLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgfVxuXG4gICAgY2hhbmdlZFRhYmxlU2l6ZShpbnNlcnRJbmRleDogbnVtYmVyLCBzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VkVGFibGVTaXplJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIHNlc3Npb25JZCB9KTtcbiAgICB9XG5cbiAgICBpbnNlcnRUYWJsZVJvd3MoaW5zZXJ0SW5kZXg6IG51bWJlciwgcm93c0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIsIGluaGVyaXRJbmRleDogbnVtYmVyLCBzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUYWJsZVJvd3MkLm5leHQoeyBpbnNlcnRJbmRleCwgcm93c0NvdW50LCB0YXJnZXRJbmRleCwgaW5oZXJpdEluZGV4LCBzZXNzaW9uSWQgfSk7XG4gICAgfVxuXG4gICAgaW5zZXJ0VGFibGVDb2x1bW5zKGluc2VydEluZGV4OiBudW1iZXIsIGNvbHVtbnNDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyLCBpbmhlcml0SW5kZXg6IG51bWJlciwgc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0VGFibGVDb2x1bW5zJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIGNvbHVtbnNDb3VudCwgdGFyZ2V0SW5kZXgsIGluaGVyaXRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVRhYmxlUm93cyhpbnNlcnRJbmRleDogbnVtYmVyLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRhYmxlUm93cyQubmV4dCh7IGluc2VydEluZGV4LCBzdGFydEluZGV4LCBlbmRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVRhYmxlQ29sdW1ucyhpbnNlcnRJbmRleDogbnVtYmVyLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRhYmxlQ29sdW1ucyQubmV4dCh7IGluc2VydEluZGV4LCBzdGFydEluZGV4LCBlbmRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUltYWdlKGluc2VydEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlSW1hZ2UkLm5leHQoeyBpbnNlcnRJbmRleCB9KTtcbiAgICB9XG5cbiAgICByZXNpemVUYWJsZUNvbHVtbnMocmVzaXplVGFibGVDb2x1bW5zOiBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCwgc2Vzc2lvbklkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fcmVzaXplVGFibGVDb2x1bW5zJC5uZXh0KHtcbiAgICAgICAgICAgIHJlc2l6ZVRhYmxlQ29sdW1ucyxcbiAgICAgICAgICAgIHNlc3Npb25JZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbnNlcnRUYWJsZSh0YWJsZURhdGE6IHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUYWJsZSQubmV4dCh0YWJsZURhdGEpO1xuICAgIH1cblxuICAgIHJlbmRlcmVyVXBkYXRlZChzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW5kZXJlclVwZGF0ZWQkLm5leHQoc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBlZGdlRWxlbWVudENvcHlVcGRhdGVkKG5ld0VsZW1lbnRDb3B5LCBwYWdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VkZ2VFbGVtZW50Q29weVVwZGF0ZWQkLm5leHQoeyBuZXdFbGVtZW50Q29weSwgcGFnZSB9KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VkRWRnZUhlaWdodCh0eXBlOiBFZGdlVHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VkRWRnZUhlaWdodCQubmV4dCh0eXBlKTtcbiAgICB9XG5cbiAgICB1bmRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bmRvJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcmVkbygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVkbyQubmV4dCgpO1xuICAgIH1cblxuICAgIHByaW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmludCQubmV4dCgpO1xuICAgIH1cblxuICAgIGN1dFNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXRTZWxlY3RlZCQubmV4dCgpO1xuICAgIH1cblxuICAgIGNvcHlTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29weVNlbGVjdGVkJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcGFzdGVGcm9tQ2xpcGJvYXJkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wYXN0ZUZyb21DbGlwYm9hcmQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdEFsbCQubmV4dCgpO1xuICAgIH1cblxuICAgIHJlbW92ZVNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVTZWxlY3RlZCQubmV4dCgpO1xuICAgIH1cblxuICAgIGtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5RG93biQubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgdXBkYXRlRWRnZXMoc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlRWRnZXMkLm5leHQoc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBpbnNlcnRUZXh0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUZXh0JC5uZXh0KHRleHQpO1xuICAgIH1cblxuICAgIGJsdXJDdXN0b21Db21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JsdXJDdXN0b21Db21wb25lbnQkLm5leHQoKTtcbiAgICB9XG5cbiAgICByZW1vdmVDdXN0b21FbGVtZW50c0RhdGEoZWxlbWVudHM6IEVsZW1lbnRNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUN1c3RvbUVsZW1lbnRzRGF0YSQubmV4dChlbGVtZW50cyk7XG4gICAgfVxufVxuIl19
|
|
353
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQVdqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7QUFVeEcsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFXWSxhQUFRLEdBQW9DLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQVFwRixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM3RSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQixvQkFBZSxHQUE0QixJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUszRSxtQkFBYyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVEvRSxrQkFBYSxHQUFnRCxJQUFJLGVBQWUsQ0FDcEYsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBS00sb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBMEQsQ0FBQztRQVF4Rix1QkFBa0IsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQVE5RCxvQkFBZSxHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQVF2RSxzQkFBaUIsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFRN0UsY0FBUyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBS3JELG9CQUFlLEdBQTRCLElBQUksT0FBTyxFQUFrQixDQUFDO1FBS3pFLHlCQUFvQixHQUFpQyxJ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QUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsd0JBQXdCLENBQUMsUUFBd0I7UUFDN0MsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDOytHQTFjUSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQnJlYWtUeXBlcyB9IGZyb20gJy4uL2dhZGdldHMvcGFnZS1icmVhay9icmVhay10eXBlcy5lbnVtJztcbmltcG9ydCB7IEVkZ2VUeXBlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9lZGdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBFbGVtZW50RGF0YU1vZGVsIH0gZnJvbSAnLi4vY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L21vZGVscy9lbGVtZW50LWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgRWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9lbGVtZW50Lm1vZGVsJztcbmltcG9ydCB7IEV4dGVybmFsU2lkZW5hdkludGVyZmFjZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1zaWRlbmF2LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbWFnZURhdGFNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW1hZ2UtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBJbWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBJVG9vbGJhclN0eWxlcyB9IGZyb20gJy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL3Rvb2xiYXItc3R5bGVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOdW1iZXJpbmdMZXZlbE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9udW1iZXJpbmctbGV2ZWwubW9kZWwnO1xuaW1wb3J0IHsgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwgfSBmcm9tICcuLi8uLi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbnMtaGlzdG9yeS1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VUeXBlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9wYWdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgtc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgUmVwbGFjZSB9IGZyb20gJy4uL2dhZGdldHMvc2VhcmNoL3JlcGxhY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXNpemUtdGFibGUtY29sdW1ucy5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hJdGVyYXRpb24gfSBmcm9tICcuLi9nYWRnZXRzL3NlYXJjaC9zZWFyY2gtaXRlcmF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi4vZ2FkZ2V0cy9zZWFyY2gvc2VhcmNoJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVkaXRvclNlcnZpY2Uge1xuICAgIHNldCBzdHlsZXModmFsdWU6IElUb29sYmFyU3R5bGVzKSB7XG4gICAgICAgIHRoaXMuX3N0eWxlcyQubmV4dCh7IC4uLnZhbHVlIH0pO1xuICAgIH1cbiAgICBnZXQgc3R5bGVzKCk6IElUb29sYmFyU3R5bGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlcyQudmFsdWU7XG4gICAgfVxuICAgIGdldCBzdHlsZXMkKCk6IE9ic2VydmFibGU8SVRvb2xiYXJTdHlsZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3N0eWxlcyQ6IEJlaGF2aW9yU3ViamVjdDxJVG9vbGJhclN0eWxlcz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElUb29sYmFyU3R5bGVzPih7fSk7XG5cbiAgICBnZXQgaXNWaWV3T25seSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZpZXdPbmx5JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IGlzVmlld09ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZpZXdPbmx5O1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1ZpZXdPbmx5JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfaXNWaWV3T25seSA9IGZhbHNlO1xuXG4gICAgZ2V0IGNsaXBib2FyZERhdGEkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGlwYm9hcmREYXRhJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2xpcGJvYXJkRGF0YSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIGdldCBoYXNTZWxlY3Rpb24kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzU2VsZWN0aW9uJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzU2VsZWN0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBzZXQgaGlzdG9yeUluZm8odmFsdWU6IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKSB7XG4gICAgICAgIHRoaXMuX2hpc3RvcnlJbmZvJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGhpc3RvcnlJbmZvJCgpOiBPYnNlcnZhYmxlPE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaXN0b3J5SW5mbyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hpc3RvcnlJbmZvJDogQmVoYXZpb3JTdWJqZWN0PE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWw+KFxuICAgICAgICBuZXcgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwoLTEsIC0xKVxuICAgICk7XG5cbiAgICBnZXQgdG9nZ2xlU2lkZW5hdiQoKTogT2JzZXJ2YWJsZTx7IG9wZW46IGJvb2xlYW47IGNvbXBvbmVudDogVHlwZTxhbnk+OyBkYXRhPzogb2JqZWN0IH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsZVNpZGVuYXYkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF90b2dnbGVTaWRlbmF2JCA9IG5ldyBTdWJqZWN0PHsgb3BlbjogYm9vbGVhbjsgY29tcG9uZW50OiBUeXBlPGFueT47IGRhdGE/OiBvYmplY3QgfT4oKTtcblxuICAgIHNldCBvcGVuU2VhcmNoRGlhbG9nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX29wZW5TZWFyY2hEaWFsb2ckLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgb3BlblNlYXJjaERpYWxvZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVuU2VhcmNoRGlhbG9nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfb3BlblNlYXJjaERpYWxvZyQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgc2V0IHNlYXJjaE9wdGlvbnModmFsdWU6IFNlYXJjaE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoT3B0aW9ucyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzZWFyY2hPcHRpb25zJCgpOiBPYnNlcnZhYmxlPFNlYXJjaE9wdGlvbnM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaE9wdGlvbnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZWFyY2hPcHRpb25zJDogU3ViamVjdDxTZWFyY2hPcHRpb25zPiA9IG5ldyBTdWJqZWN0PFNlYXJjaE9wdGlvbnM+KCk7XG5cbiAgICBzZXQgc2VhcmNoSXRlcmF0aW9uKHZhbHVlOiBTZWFyY2hJdGVyYXRpb24pIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoSXRlcmF0aW9uJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaEl0ZXJhdGlvbiQoKTogT2JzZXJ2YWJsZTxTZWFyY2hJdGVyYXRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaEl0ZXJhdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NlYXJjaEl0ZXJhdGlvbiQ6IFN1YmplY3Q8U2VhcmNoSXRlcmF0aW9uPiA9IG5ldyBTdWJqZWN0PFNlYXJjaEl0ZXJhdGlvbj4oKTtcblxuICAgIHNldCByZXBsYWNlKHZhbHVlOiBSZXBsYWNlKSB7XG4gICAgICAgIHRoaXMuX3JlcGxhY2UkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgcmVwbGFjZSQoKTogT2JzZXJ2YWJsZTxSZXBsYWNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVwbGFjZSQ6IFN1YmplY3Q8UmVwbGFjZT4gPSBuZXcgU3ViamVjdDxSZXBsYWNlPigpO1xuXG4gICAgZ2V0IHNldFRleHRTdHlsZXMkKCk6IE9ic2VydmFibGU8VGV4dFN0eWxlTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldFRleHRTdHlsZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZXRUZXh0U3R5bGVzJDogU3ViamVjdDxUZXh0U3R5bGVNb2RlbD4gPSBuZXcgU3ViamVjdDxUZXh0U3R5bGVNb2RlbD4oKTtcblxuICAgIGdldCBzZXRQYXJhZ3JhcGhTdHlsZXMkKCk6IE9ic2VydmFibGU8UGFyYWdyYXBoU3R5bGVNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2V0UGFyYWdyYXBoU3R5bGVzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0UGFyYWdyYXBoU3R5bGVzJDogU3ViamVjdDxQYXJhZ3JhcGhTdHlsZU1vZGVsPiA9IG5ldyBTdWJqZWN0PFBhcmFncmFwaFN0eWxlTW9kZWw+KCk7XG5cbiAgICBnZXQgc2V0TnVtYmVyaW5nVGVtcGxhdGVUeXBlJCgpOiBPYnNlcnZhYmxlPE51bWJlcmluZ0xldmVsTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2V0TnVtYmVyaW5nVGVtcGxhdGVUeXBlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0TnVtYmVyaW5nVGVtcGxhdGVUeXBlJDogU3ViamVjdDxOdW1iZXJpbmdMZXZlbE1vZGVsW10+ID0gbmV3IFN1YmplY3Q8TnVtYmVyaW5nTGV2ZWxNb2RlbFtdPigpO1xuXG4gICAgZ2V0IHJlbW92ZU51bWJlcmluZ3MkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlTnVtYmVyaW5ncyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZU51bWJlcmluZ3MkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBzZXRJbWFnZVN0eWxlJCgpOiBPYnNlcnZhYmxlPEltYWdlTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZUltYWdlU3R5bGUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VJbWFnZVN0eWxlJCA9IG5ldyBTdWJqZWN0PEltYWdlTW9kZWw+KCk7XG5cbiAgICBnZXQgY2hhbmdlRWxlbWVudFN0eWxlJCgpOiBPYnNlcnZhYmxlPEVsZW1lbnRNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hhbmdlRWxlbWVudFN0eWxlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlRWxlbWVudFN0eWxlJCA9IG5ldyBTdWJqZWN0PEVsZW1lbnRNb2RlbD4oKTtcblxuICAgIGdldCBjcmVhdGVDdXN0b21Db21wb25lbnQkKCk6IE9ic2VydmFibGU8RWxlbWVudERhdGFNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlQ3VzdG9tQ29tcG9uZW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY3JlYXRlQ3VzdG9tQ29tcG9uZW50JDogU3ViamVjdDxFbGVtZW50RGF0YU1vZGVsPiA9IG5ldyBTdWJqZWN0PEVsZW1lbnREYXRhTW9kZWw+KCk7XG5cbiAgICBnZXQgaW5zZXJ0QnJlYWskKCk6IE9ic2VydmFibGU8QnJlYWtUeXBlcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0QnJlYWskLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pbnNlcnRCcmVhayQ6IFN1YmplY3Q8QnJlYWtUeXBlcz4gPSBuZXcgU3ViamVjdDxCcmVha1R5cGVzPigpO1xuXG4gICAgZ2V0IGluc2VydEltYWdlJCgpOiBPYnNlcnZhYmxlPEltYWdlRGF0YU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRJbWFnZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydEltYWdlJCA9IG5ldyBTdWJqZWN0PEltYWdlRGF0YU1vZGVsPigpO1xuXG4gICAgZ2V0IGluc2VydExpbmskKCk6IE9ic2VydmFibGU8eyB0ZXh0OiBzdHJpbmc7IGxpbms6IHN0cmluZyB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRMaW5rJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0TGluayQgPSBuZXcgU3ViamVjdDx7IHRleHQ6IHN0cmluZzsgbGluazogc3RyaW5nIH0+KCk7XG5cbiAgICBnZXQgZW5kTW91c2VQcmVzcyQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbmRNb3VzZVByZXNzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZW5kTW91c2VQcmVzcyQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGRpc2FibGVTZWxlY3Rpb24kKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZVNlbGVjdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2Rpc2FibGVTZWxlY3Rpb24kOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBjaGFuZ2VkVGFibGVTaXplJCgpOiBPYnNlcnZhYmxlPHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hhbmdlZFRhYmxlU2l6ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZWRUYWJsZVNpemUkID0gbmV3IFN1YmplY3Q8eyBpbnNlcnRJbmRleDogbnVtYmVyOyBzZXNzaW9uSWQ6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IGNoYW5nZWRFZGdlU2l6ZSQoKTogT2JzZXJ2YWJsZTx7IGVkZ2VUeXBlOiBFZGdlVHlwZTsgcGFnZVR5cGU6IFBhZ2VUeXBlIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRFZGdlU2l6ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZWRFZGdlU2l6ZSQgPSBuZXcgU3ViamVjdDx7IGVkZ2VUeXBlOiBFZGdlVHlwZTsgcGFnZVR5cGU6IFBhZ2VUeXBlIH0+KCk7XG5cbiAgICBnZXQgaW1hZ2VMb2FkZWQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbWFnZUxvYWRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2ltYWdlTG9hZGVkJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIGdldCBjaGFuZ2VkRWRnZSQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRFZGdlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlZEVkZ2UkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgZ2V0IGluc2VydFRhYmxlUm93cyQoKTogT2JzZXJ2YWJsZTx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIHJvd3NDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0VGFibGVSb3dzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0VGFibGVSb3dzJCA9IG5ldyBTdWJqZWN0PHtcbiAgICAgICAgaW5zZXJ0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgcm93c0NvdW50OiBudW1iZXI7XG4gICAgICAgIHRhcmdldEluZGV4OiBudW1iZXI7XG4gICAgICAgIGluaGVyaXRJbmRleDogbnVtYmVyO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IGluc2VydFRhYmxlQ29sdW1ucyQoKTogT2JzZXJ2YWJsZTx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIGNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0VGFibGVDb2x1bW5zJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0VGFibGVDb2x1bW5zJCA9IG5ldyBTdWJqZWN0PHtcbiAgICAgICAgaW5zZXJ0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgY29sdW1uc0NvdW50OiBudW1iZXI7XG4gICAgICAgIHRhcmdldEluZGV4OiBudW1iZXI7XG4gICAgICAgIGluaGVyaXRJbmRleDogbnVtYmVyO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IHJlbW92ZVRhYmxlUm93cyQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlVGFibGVSb3dzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlVGFibGVSb3dzJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyBzZXNzaW9uSWQ6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IHJlbW92ZVRhYmxlQ29sdW1ucyQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlVGFibGVDb2x1bW5zJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlVGFibGVDb2x1bW5zJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyBzZXNzaW9uSWQ6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IHJlbW92ZUltYWdlJCgpOiBPYnNlcnZhYmxlPHsgaW5zZXJ0SW5kZXg6IG51bWJlciB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW1vdmVJbWFnZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZUltYWdlJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IHJlc2l6ZVRhYmxlQ29sdW1ucyQoKTogT2JzZXJ2YWJsZTx7XG4gICAgICAgIHJlc2l6ZVRhYmxlQ29sdW1uczogUmVzaXplVGFibGVDb2x1bW5zTW9kZWw7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc2l6ZVRhYmxlQ29sdW1ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Jlc2l6ZVRhYmxlQ29sdW1ucyQgPSBuZXcgU3ViamVjdDx7XG4gICAgICAgIHJlc2l6ZVRhYmxlQ29sdW1uczogUmVzaXplVGFibGVDb2x1bW5zTW9kZWw7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+KCk7XG5cbiAgICBnZXQgaW5zZXJ0VGFibGUkKCk6IE9ic2VydmFibGU8eyByb3dzOiBudW1iZXI7IGNvbHVtbnM6IG51bWJlciB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRUYWJsZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydFRhYmxlJCA9IG5ldyBTdWJqZWN0PHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZWRvJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZG8kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZWRvJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgdW5kbyQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91bmRvJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdW5kbyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHByaW50JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByaW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJpbnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBjdXRTZWxlY3RlZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXRTZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1dFNlbGVjdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgY29weVNlbGVjdGVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvcHlTZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NvcHlTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHBhc3RlRnJvbUNsaXBib2FyZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXN0ZUZyb21DbGlwYm9hcmQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9wYXN0ZUZyb21DbGlwYm9hcmQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBzZWxlY3RBbGwkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0QWxsJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2VsZWN0QWxsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgcmVtb3ZlU2VsZWN0ZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlU2VsZWN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGtleURvd24kKCk6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5RG93biQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2tleURvd24kID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIGdldCB1cGRhdGVFZGdlcyQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZUVkZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdXBkYXRlRWRnZXMkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgZ2V0IGluc2VydFRleHQkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRUZXh0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0VGV4dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBnZXQgYmx1ckN1c3RvbUNvbXBvbmVudCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibHVyQ3VzdG9tQ29tcG9uZW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYmx1ckN1c3RvbUNvbXBvbmVudCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHJlbW92ZUN1c3RvbUVsZW1lbnRzRGF0YSQoKTogT2JzZXJ2YWJsZTxFbGVtZW50TW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlQ3VzdG9tRWxlbWVudHNEYXRhJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlQ3VzdG9tRWxlbWVudHNEYXRhJCA9IG5ldyBTdWJqZWN0PEVsZW1lbnRNb2RlbFtdPigpO1xuXG4gICAgc2V0SXNWaWV3T25seSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1ZpZXdPbmx5ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2lzVmlld09ubHkkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldEhhc1NlbGVjdGlvbih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYXNTZWxlY3Rpb24kLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldENsaXBib2FyZERhdGEodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGlwYm9hcmREYXRhJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRUZXh0U3R5bGVzKHZhbHVlOiBUZXh0U3R5bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRUZXh0U3R5bGVzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRQYXJhZ3JhcGhTdHlsZXModmFsdWU6IFBhcmFncmFwaFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0UGFyYWdyYXBoU3R5bGVzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUodmFsdWU6IE51bWJlcmluZ0xldmVsTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHJlbW92ZU51bWJlcmluZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZU51bWJlcmluZ3MkLm5leHQoKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VJbWFnZVN0eWxlKHZhbHVlOiBJbWFnZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUltYWdlU3R5bGUkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGNoYW5nZUVsZW1lbnRTdHlsZSh2YWx1ZTogRWxlbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUVsZW1lbnRTdHlsZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQ3VzdG9tQ29tcG9uZW50KG1vZGVsOiBFbGVtZW50RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUN1c3RvbUNvbXBvbmVudCQubmV4dChtb2RlbCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0QnJlYWsodmFsdWU6IEJyZWFrVHlwZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0QnJlYWskLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGluc2VydEltYWdlKGltYWdlRGF0YTogSW1hZ2VEYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0SW1hZ2UkLm5leHQoaW1hZ2VEYXRhKTtcbiAgICB9XG5cbiAgICBpbnNlcnRMaW5rKHRleHQ6IHN0cmluZywgbGluazogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luc2VydExpbmskLm5leHQoeyB0ZXh0LCBsaW5rIH0pO1xuICAgIH1cblxuICAgIGVuZE1vdXNlUHJlc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VuZE1vdXNlUHJlc3MkLm5leHQoKTtcbiAgICB9XG5cbiAgICBkaXNhYmxlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlU2VsZWN0aW9uJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgb3BlbkVsZW1lbnRTaWRlbmF2KGNvbXBvbmVudDogVHlwZTxFeHRlcm5hbFNpZGVuYXZJbnRlcmZhY2U+LCBtb2RlbDogRWxlbWVudE1vZGVsLCBjb250ZW50V2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl90b2dnbGVTaWRlbmF2JC5uZXh0KHsgb3BlbjogdHJ1ZSwgY29tcG9uZW50LCBkYXRhOiB7IG1vZGVsLCBjb250ZW50V2lkdGggfSB9KTtcbiAgICB9XG5cbiAgICBvcGVuU2lkZW5hdihjb21wb25lbnQ6IFR5cGU8YW55Pik6IHZvaWQge1xuICAgICAgICB0aGlzLl90b2dnbGVTaWRlbmF2JC5uZXh0KHsgb3BlbjogdHJ1ZSwgY29tcG9uZW50IH0pO1xuICAgIH1cblxuICAgIGNsb3NlU2lkZW5hdigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlU2lkZW5hdiQubmV4dCh7IG9wZW46IGZhbHNlLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgfVxuXG4gICAgY2hhbmdlZFRhYmxlU2l6ZShpbnNlcnRJbmRleDogbnVtYmVyLCBzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VkVGFibGVTaXplJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIHNlc3Npb25JZCB9KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VkRWRnZVNpemUoZWRnZVR5cGU6IEVkZ2VUeXBlLCBwYWdlVHlwZTogUGFnZVR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEVkZ2VTaXplJC5uZXh0KHsgZWRnZVR5cGUsIHBhZ2VUeXBlIH0pO1xuICAgIH1cblxuICAgIGltYWdlTG9hZGVkKHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ltYWdlTG9hZGVkJC5uZXh0KHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgY2hhbmdlZEVkZ2Uoc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEVkZ2UkLm5leHQoc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBpbnNlcnRUYWJsZVJvd3MoaW5zZXJ0SW5kZXg6IG51bWJlciwgcm93c0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIsIGluaGVyaXRJbmRleDogbnVtYmVyLCBzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUYWJsZVJvd3MkLm5leHQoeyBpbnNlcnRJbmRleCwgcm93c0NvdW50LCB0YXJnZXRJbmRleCwgaW5oZXJpdEluZGV4LCBzZXNzaW9uSWQgfSk7XG4gICAgfVxuXG4gICAgaW5zZXJ0VGFibGVDb2x1bW5zKGluc2VydEluZGV4OiBudW1iZXIsIGNvbHVtbnNDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyLCBpbmhlcml0SW5kZXg6IG51bWJlciwgc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0VGFibGVDb2x1bW5zJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIGNvbHVtbnNDb3VudCwgdGFyZ2V0SW5kZXgsIGluaGVyaXRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVRhYmxlUm93cyhpbnNlcnRJbmRleDogbnVtYmVyLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRhYmxlUm93cyQubmV4dCh7IGluc2VydEluZGV4LCBzdGFydEluZGV4LCBlbmRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVRhYmxlQ29sdW1ucyhpbnNlcnRJbmRleDogbnVtYmVyLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRhYmxlQ29sdW1ucyQubmV4dCh7IGluc2VydEluZGV4LCBzdGFydEluZGV4LCBlbmRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUltYWdlKGluc2VydEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlSW1hZ2UkLm5leHQoeyBpbnNlcnRJbmRleCB9KTtcbiAgICB9XG5cbiAgICByZXNpemVUYWJsZUNvbHVtbnMocmVzaXplVGFibGVDb2x1bW5zOiBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCwgc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzaXplVGFibGVDb2x1bW5zJC5uZXh0KHtcbiAgICAgICAgICAgIHJlc2l6ZVRhYmxlQ29sdW1ucyxcbiAgICAgICAgICAgIHNlc3Npb25JZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbnNlcnRUYWJsZSh0YWJsZURhdGE6IHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUYWJsZSQubmV4dCh0YWJsZURhdGEpO1xuICAgIH1cblxuICAgIHVuZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VuZG8kLm5leHQoKTtcbiAgICB9XG5cbiAgICByZWRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZWRvJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ByaW50JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgY3V0U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1dFNlbGVjdGVkJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgY29weVNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb3B5U2VsZWN0ZWQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwYXN0ZUZyb21DbGlwYm9hcmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Bhc3RlRnJvbUNsaXBib2FyZCQubmV4dCgpO1xuICAgIH1cblxuICAgIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0QWxsJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVNlbGVjdGVkJC5uZXh0KCk7XG4gICAgfVxuXG4gICAga2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlEb3duJC5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICB1cGRhdGVFZGdlcyhzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVFZGdlcyQubmV4dChzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIGluc2VydFRleHQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luc2VydFRleHQkLm5leHQodGV4dCk7XG4gICAgfVxuXG4gICAgYmx1ckN1c3RvbUNvbXBvbmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYmx1ckN1c3RvbUNvbXBvbmVudCQubmV4dCgpO1xuICAgIH1cblxuICAgIHJlbW92ZUN1c3RvbUVsZW1lbnRzRGF0YShlbGVtZW50czogRWxlbWVudE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlQ3VzdG9tRWxlbWVudHNEYXRhJC5uZXh0KGVsZW1lbnRzKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -17,7 +17,7 @@ export class MouseHandler {
|
|
|
17
17
|
this.endMousePress();
|
|
18
18
|
this.documentMouseMove$ = fromEvent(document, 'mousemove')
|
|
19
19
|
.pipe(throttleTime(20))
|
|
20
|
-
.subscribe((event) => editor.onMousePressedMove(event
|
|
20
|
+
.subscribe((event) => editor.onMousePressedMove(event));
|
|
21
21
|
this.documentMouseUp$ = fromEvent(document, 'mouseup').subscribe(() => this.endMousePress());
|
|
22
22
|
}
|
|
23
23
|
endMousePress() {
|
|
@@ -47,4 +47,4 @@ export class MouseHandler {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW91c2UuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9pbnRlcmFjdGlvbi9tb3VzZS5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsTUFBTSxPQUFPLFlBQVk7SUFXckIsWUFBWSxTQUFlLEVBQUUsTUFBYztRQVZuQyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBV2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQzthQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3RCLFNBQVMsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFjO1FBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7YUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN0QixTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFpQixFQUFFLE1BQWM7UUFDdEQsSUFBSyxLQUFLLENBQUMsTUFBc0IsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsT0FBTztTQUNWO1FBRUQsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pCLEtBQUssQ0FBQztnQkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixNQUFNO1lBQ1YsS0FBSyxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE1BQU07WUFDVixLQUFLLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsTUFBTTtZQUNWLEtBQUssQ0FBQztnQkFDRixNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixNQUFNO1NBQ2I7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJy4uL2V4ZWN1dGlvbi9lZGl0b3InO1xuaW1wb3J0IHsgTW91c2VCdXR0b24gfSBmcm9tICcuL21vdXNlLWJ1dHRvbi5lbnVtJztcblxuZXhwb3J0IGNsYXNzIE1vdXNlSGFuZGxlciB7XG4gICAgcHJpdmF0ZSBjbGlja3MgPSAwO1xuXG4gICAgZG9jdW1lbnRNb3VzZU1vdmUkOiBTdWJzY3JpcHRpb247XG5cbiAgICBkb2N1bWVudE1vdXNlVXAkOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb250YWluZXJXaGVlbCQ6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnRhaW5lck1vdXNlRG93biQ6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcjogTm9kZSwgZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaGVlbCQgPSBmcm9tRXZlbnQoY29udGFpbmVyLCAnd2hlZWwnKVxuICAgICAgICAgICAgLnBpcGUodGhyb3R0bGVUaW1lKDIwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiBlZGl0b3Iub25Nb3VzZVdoZWVsKGV2ZW50KSk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyTW91c2VEb3duJCA9IGZyb21FdmVudChjb250YWluZXIsICdtb3VzZWRvd24nKS5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB0aGlzLm9uTXVsdGlNb3VzZURvd24oZXZlbnQsIGVkaXRvcikpO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2hlZWwkPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lck1vdXNlRG93biQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZW5kTW91c2VQcmVzcygpO1xuICAgIH1cblxuICAgIHN0YXJ0TW91c2VQcmVzcyhlZGl0b3I6IEVkaXRvcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVuZE1vdXNlUHJlc3MoKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudE1vdXNlTW92ZSQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgLnBpcGUodGhyb3R0bGVUaW1lKDIwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiBlZGl0b3Iub25Nb3VzZVByZXNzZWRNb3ZlKGV2ZW50KSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRNb3VzZVVwJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNldXAnKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5lbmRNb3VzZVByZXNzKCkpO1xuICAgIH1cblxuICAgIGVuZE1vdXNlUHJlc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRNb3VzZU1vdmUkPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRvY3VtZW50TW91c2VVcCQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk11bHRpTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBlZGl0b3I6IEVkaXRvcik6IHZvaWQge1xuICAgICAgICBpZiAoKGV2ZW50LmJ1dHRvbiBhcyBNb3VzZUJ1dHRvbikgIT09IE1vdXNlQnV0dG9uLkxlZnQpIHtcbiAgICAgICAgICAgIGVkaXRvci5vbk1vdXNlQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZWRpdG9yLmVuYWJsZVNlbGVjdGlvbigpO1xuICAgICAgICB0aGlzLmNsaWNrcyA9IGV2ZW50LmRldGFpbCA+IDEgJiYgdGhpcy5jbGlja3MgPCA0ID8gdGhpcy5jbGlja3MgKyAxIDogMTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmNsaWNrcykge1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIGVkaXRvci5vbkxlZnRDbGljayhldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgZWRpdG9yLm9uRG91YmxlQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgIGVkaXRvci5vblRyaXBsZUNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICBlZGl0b3Iub25RdWFkQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export class ContentOperationsHelper {
|
|
2
|
-
static removeContent(content, startIndex,
|
|
3
|
-
return `${content.slice(0, startIndex)}${content.slice(
|
|
2
|
+
static removeContent(content, startIndex, count) {
|
|
3
|
+
return `${content.slice(0, startIndex)}${content.slice(startIndex + count, content.length)}`;
|
|
4
4
|
}
|
|
5
5
|
static insertContent(content, text, index) {
|
|
6
6
|
const before = content.slice(0, index);
|
|
@@ -8,8 +8,8 @@ export class ContentOperationsHelper {
|
|
|
8
8
|
return `${before}${text}${after}`;
|
|
9
9
|
}
|
|
10
10
|
static replaceContent(content, startIndex, endIndex, text) {
|
|
11
|
-
const reduced = this.removeContent(content, startIndex, endIndex);
|
|
11
|
+
const reduced = this.removeContent(content, startIndex, endIndex - startIndex + 1);
|
|
12
12
|
return this.insertContent(reduced, text, startIndex);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1vcGVyYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9vcGVyYXRpb25zL2hlbHBlcnMvY29udGVudC1vcGVyYXRpb25zLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBZSxFQUFFLFVBQWtCLEVBQUUsS0FBYTtRQUNuRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ2pHLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWUsRUFBRSxJQUFZLEVBQUUsS0FBYTtRQUM3RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZSxFQUFFLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxJQUFZO1FBQ3JGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb250ZW50T3BlcmF0aW9uc0hlbHBlciB7XG4gICAgc3RhdGljIHJlbW92ZUNvbnRlbnQoY29udGVudDogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7Y29udGVudC5zbGljZSgwLCBzdGFydEluZGV4KX0ke2NvbnRlbnQuc2xpY2Uoc3RhcnRJbmRleCArIGNvdW50LCBjb250ZW50Lmxlbmd0aCl9YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgaW5zZXJ0Q29udGVudChjb250ZW50OiBzdHJpbmcsIHRleHQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJlZm9yZSA9IGNvbnRlbnQuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICBjb25zdCBhZnRlciA9IGNvbnRlbnQuc2xpY2UoaW5kZXgsIGNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIGAke2JlZm9yZX0ke3RleHR9JHthZnRlcn1gO1xuICAgIH1cblxuICAgIHN0YXRpYyByZXBsYWNlQ29udGVudChjb250ZW50OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgdGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVkdWNlZCA9IHRoaXMucmVtb3ZlQ29udGVudChjb250ZW50LCBzdGFydEluZGV4LCBlbmRJbmRleCAtIHN0YXJ0SW5kZXggKyAxKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0Q29udGVudChyZWR1Y2VkLCB0ZXh0LCBzdGFydEluZGV4KTtcbiAgICB9XG59XG4iXX0=
|