@bizdoc/core 1.14.14 → 1.14.15
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/esm2020/lib/admin/admin-dismiss.service.mjs +15 -9
- package/esm2020/lib/admin/form/workflow/node.component.mjs +26 -26
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +152 -109
- package/esm2020/lib/compose/dismiss.service.mjs +2 -2
- package/esm2020/lib/core/save-changes.dialog.mjs +18 -0
- package/esm2020/lib/core/slots/router.service.mjs +1 -1
- package/esm2020/lib/shared.module.mjs +2 -2
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/bizdoc-core.mjs +203 -153
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +201 -153
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/admin-dismiss.service.d.ts +3 -3
- package/lib/admin/form/workflow/workflow.component.d.ts +5 -4
- package/lib/{compose → core}/save-changes.dialog.d.ts +0 -0
- package/lib/core/slots/router.service.d.ts +1 -1
- package/lib/shared.module.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2020/lib/compose/save-changes.dialog.mjs +0 -18
@@ -1,22 +1,28 @@
|
|
1
1
|
import { Injectable } from "@angular/core";
|
2
|
+
import { SaveChangesDialog } from "../core/save-changes.dialog";
|
2
3
|
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
4
5
|
export class AdminDismiss {
|
5
|
-
constructor(
|
6
|
-
this.
|
6
|
+
constructor(_dialog) {
|
7
|
+
this._dialog = _dialog;
|
7
8
|
}
|
8
9
|
onDismiss(component) {
|
9
10
|
if (component.dirty)
|
10
|
-
return
|
11
|
-
|
12
|
-
|
11
|
+
return new Promise((resolve, reject) => this._dialog.open(SaveChangesDialog).
|
12
|
+
afterClosed().
|
13
|
+
subscribe(ok => {
|
14
|
+
if (ok)
|
15
|
+
component.save().then(() => resolve(true), reject);
|
16
|
+
else
|
17
|
+
resolve(ok !== false);
|
18
|
+
}));
|
13
19
|
else
|
14
20
|
return true;
|
15
21
|
}
|
16
22
|
}
|
17
|
-
AdminDismiss.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss, deps: [{ token: i1.
|
23
|
+
AdminDismiss.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
18
24
|
AdminDismiss.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss });
|
19
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss, decorators: [{
|
20
26
|
type: Injectable
|
21
|
-
}], ctorParameters: function () { return [{ type: i1.
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tZGlzbWlzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hZG1pbi1kaXNtaXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBSWhFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1UsT0FBa0I7UUFBbEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztJQUM1QixDQUFDO0lBQ0QsU0FBUyxDQUFDLFNBQXlCO1FBQ2pDLElBQUksU0FBUyxDQUFDLEtBQUs7WUFDakIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDbEMsV0FBVyxFQUFFO2dCQUNiLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDYixJQUFJLEVBQUU7b0JBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7O29CQUN0RCxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUM7O1lBRVIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7eUdBZlUsWUFBWTs2R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBDYW5EaXNtaXNzIH0gZnJvbSBcIi4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBTYXZlQ2hhbmdlc0RpYWxvZyB9IGZyb20gXCIuLi9jb3JlL3NhdmUtY2hhbmdlcy5kaWFsb2dcIjtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBZG1pbkRpc21pc3MgaW1wbGVtZW50cyBDYW5EaXNtaXNzPEFkbWluQ29tcG9uZW50PiB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZykge1xyXG4gIH1cclxuICBvbkRpc21pc3MoY29tcG9uZW50OiBBZG1pbkNvbXBvbmVudCk6IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuIHtcclxuICAgIGlmIChjb21wb25lbnQuZGlydHkpXHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PlxyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5vcGVuKFNhdmVDaGFuZ2VzRGlhbG9nKS5cclxuICAgICAgICAgIGFmdGVyQ2xvc2VkKCkuXHJcbiAgICAgICAgICBzdWJzY3JpYmUob2sgPT4ge1xyXG4gICAgICAgICAgICBpZiAob2spIGNvbXBvbmVudC5zYXZlKCkudGhlbigoKSA9PiByZXNvbHZlKHRydWUpLCByZWplY3QpO1xyXG4gICAgICAgICAgICBlbHNlIHJlc29sdmUob2sgIT09IGZhbHNlKTtcclxuICAgICAgICAgIH0pKTsgXHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBBZG1pbkNvbXBvbmVudCB7XHJcbiAgc2F2ZSgpOiBQcm9taXNlPGFueT47XHJcbiAgZGlydHk6IGJvb2xlYW47XHJcbn1cclxuIl19
|
@@ -28,8 +28,8 @@ export class WorkflowNodeComponent {
|
|
28
28
|
this._pane = _pane;
|
29
29
|
this.change = new EventEmitter();
|
30
30
|
this.connector = this._fb.group({
|
31
|
-
action:
|
32
|
-
case:
|
31
|
+
action: null,
|
32
|
+
case: null
|
33
33
|
});
|
34
34
|
this._elementDestroy = new Subject();
|
35
35
|
this.actions = _session.profile.actions;
|
@@ -55,25 +55,24 @@ export class WorkflowNodeComponent {
|
|
55
55
|
this._pane.icon = 'link';
|
56
56
|
this.connector.valueChanges.pipe(takeUntil(this._elementDestroy)).subscribe(v => {
|
57
57
|
const content = v['case'] || v['action'];
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
58
|
+
if (!connector.addInfo)
|
59
|
+
connector.addInfo = this.connector.getRawValue();
|
60
|
+
else
|
61
|
+
Object.assign(connector.addInfo, this.connector.getRawValue());
|
62
|
+
cleanup(connector.addInfo);
|
63
|
+
if (connector.annotations.length) {
|
64
|
+
connector.annotations[0].content = content;
|
65
|
+
this.diagram.dataBind();
|
66
|
+
}
|
67
|
+
else
|
68
|
+
this.diagram.addConnectorLabels(connector, [{
|
66
69
|
style: {
|
67
70
|
color: this._session.theme.dark ? 'white' : 'black',
|
68
71
|
fill: 'transparent',
|
69
72
|
opacity: .8,
|
70
73
|
},
|
71
74
|
content
|
72
|
-
});
|
73
|
-
else
|
74
|
-
c.annotations[0].content = content;
|
75
|
-
});
|
76
|
-
this.diagram.dataBind();
|
75
|
+
}]);
|
77
76
|
this.change.emit();
|
78
77
|
});
|
79
78
|
this.argumentstemplate.createEmbeddedView(this.connectorargs);
|
@@ -87,21 +86,22 @@ export class WorkflowNodeComponent {
|
|
87
86
|
const annotationArg = tool.arguments.find(a => a.diagram);
|
88
87
|
function change(m) {
|
89
88
|
if (annotationArg && m[annotationArg.name] !== null) {
|
90
|
-
if (node.annotations.length)
|
89
|
+
if (node.annotations.length) {
|
91
90
|
node.annotations[0].content = m[annotationArg.name] || null;
|
91
|
+
this.diagram.dataBind();
|
92
|
+
}
|
92
93
|
else
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
94
|
+
this.diagram.addNodeLabels(node, [{
|
95
|
+
style: {
|
96
|
+
color: this._session.theme.dark ? 'white' : 'black',
|
97
|
+
fill: 'transparent',
|
98
|
+
opacity: .8,
|
99
|
+
},
|
100
|
+
content: m[annotationArg.name] || null
|
101
|
+
}]);
|
101
102
|
}
|
102
103
|
Object.assign(addInfo, m);
|
103
104
|
cleanup(addInfo);
|
104
|
-
this.diagram.dataBind();
|
105
105
|
this.change.emit();
|
106
106
|
}
|
107
107
|
if (tool.template) {
|
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
157
157
|
type: ViewChild,
|
158
158
|
args: ['connectorargs', { static: true }]
|
159
159
|
}] } });
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vd29ya2Zsb3cvbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vd29ya2Zsb3cvbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLFlBQVksRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBZSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBTWxELE1BQU0sT0FDRSxxQkFBcUI7SUFlM0IsWUFDVSxRQUF3QixFQUN4QixnQkFBZ0QsRUFDaEQsR0FBNkIsRUFDN0IsU0FBbUIsRUFDbkIsVUFBNEIsRUFDNUIsR0FBZ0IsRUFDaEIsS0FBcUM7UUFOckMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQztRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFyQjVCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTXRDLGNBQVMs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QVEscUJBQXFCO2tCQUw1QixTQUFTOzsrUkFNVyxNQUFNO3NCQUF4QixNQUFNO2dCQUMyRCxpQkFBaUI7c0JBQWxGLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2xCLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmLCBDb21wb25lbnQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbm5lY3Rvck1vZGVsLCBEaWFncmFtLCBOb2RlTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1kaWFncmFtcyc7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXInO1xyXG5pbXBvcnQgeyBBY3Rpb24sIEZsb3dOb2RlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWYnO1xyXG5pbXBvcnQgeyBOb2RlUmVmIH0gZnJvbSAnLi9ub2RlLXJlZic7XHJcbmltcG9ydCB7IEFyZ3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IExheW91dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IGNsZWFudXAgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vbm9kZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm9kZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBXb3JrZmxvd05vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkKCdhcmd1bWVudHMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBhcmd1bWVudHN0ZW1wbGF0ZTogVmlld0NvbnRhaW5lclJlZjtcclxuICBAVmlld0NoaWxkKCdjb25uZWN0b3JhcmdzJywgeyBzdGF0aWM6IHRydWUgfSkgY29ubmVjdG9yYXJnczogVGVtcGxhdGVSZWY8YW55PjtcclxuICBub2RlczogTm9kZU1vZGVsW107XHJcbiAgY29ubmVjdG9yczogQ29ubmVjdG9yTW9kZWxbXTtcclxuICBkaWFncmFtOiBEaWFncmFtO1xyXG4gIHJlYWRvbmx5IGNvbm5lY3RvciA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIGFjdGlvbjogJycsXHJcbiAgICBjYXNlOiAnJ1xyXG4gIH0pO1xyXG4gIGFjdGlvbnM6IEFjdGlvbltdO1xyXG4gIHRvb2w/OiBGbG93Tm9kZTtcclxuICBub2RlOiBOb2RlTW9kZWw7XHJcbiAgcHJpdmF0ZSBfZWxlbWVudERlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYWN0b3J5UmVzb2x2ZXI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2NmOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPFdvcmtmbG93Tm9kZUNvbXBvbmVudD4pIHtcclxuICAgIHRoaXMuYWN0aW9ucyA9IF9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucztcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICB0aGlzLm5vZGVzID0gZFsnbm9kZXMnXTtcclxuICAgICAgdGhpcy5kaWFncmFtID0gZFsnZGlhZ3JhbSddO1xyXG4gICAgICB0aGlzLmNvbm5lY3RvcnMgPSBkWydjb25uZWN0b3JzJ107XHJcbiAgICAgIHRoaXMudG9vbCA9IG51bGw7XHJcblxyXG4gICAgICB0aGlzLl9lbGVtZW50RGVzdHJveS5uZXh0KCk7XHJcbiAgICAgIHRoaXMuYXJndW1lbnRzdGVtcGxhdGUuY2xlYXIoKTtcclxuICAgICAgaWYgKHRoaXMuY29ubmVjdG9ycy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBjb25uZWN0b3IgPSB0aGlzLmNvbm5lY3RvcnNbMF07XHJcbiAgICAgICAgaWYgKGNvbm5lY3Rvci5hZGRJbmZvKSB7XHJcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSBjb25uZWN0b3IuYWRkSW5mb1snYWN0aW9uJ10sIGFjYXNlID0gY29ubmVjdG9yLmFkZEluZm9bJ2Nhc2UnXTtcclxuICAgICAgICAgIHRoaXMuY29ubmVjdG9yLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuY29ubmVjdG9ycy5sZW5ndGggPT09IDEgfHwgdGhpcy5jb25uZWN0b3JzLmV2ZXJ5KGMgPT4gYy5hZGRJbmZvICYmIGMuYWRkSW5mb1snYWN0aW9uJ10gPT09IGFjdGlvbikgPyBhY3Rpb24gOiBudWxsLFxyXG4gICAgICAgICAgICBjYXNlOiB0aGlzLmNvbm5lY3RvcnMubGVuZ3RoID09PSAxIHx8IHRoaXMuY29ubmVjdG9ycy5ldmVyeShjID0+IGMuYWRkSW5mbyAmJiBjLmFkZEluZm9bJ2Nhc2UnXSA9PT0gYWNhc2UpID8gYWNhc2UgOiBudWxsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQodGhpcy5jb25uZWN0b3JzLmxlbmd0aCA9PT0gMSA/ICdDb25uZWN0b3InIDogJ0Nvbm5lY3RvcnMnLCB0aGlzLmNvbm5lY3RvcnMubGVuZ3RoKTtcclxuICAgICAgICB0aGlzLl9wYW5lLmljb24gPSAnbGluayc7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0b3IudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2VsZW1lbnREZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29udGVudCA9IHZbJ2Nhc2UnXSB8fCB2WydhY3Rpb24nXTtcclxuICAgICAgICAgIHRoaXMuY29ubmVjdG9ycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWMuYWRkSW5mbylcclxuICAgICAgICAgICAgICBjLmFkZEluZm8gPSB0aGlzLmNvbm5lY3Rvci5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjLmFkZEluZm8sIHRoaXMuY29ubmVjdG9yLmdldFJhd1ZhbHVlKCkpO1xyXG4gICAgICAgICAgICBjbGVhbnVwKGMuYWRkSW5mbyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWMuYW5ub3RhdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgICAgICAgIGMuYW5ub3RhdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IC44LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnRcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgZWxzZSBjLmFubm90YXRpb25zWzBdLmNvbnRlbnQgPSBjb250ZW50O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFyZ3VtZW50c3RlbXBsYXRlLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmNvbm5lY3RvcmFyZ3MpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUgPSB0aGlzLm5vZGVzWzBdLFxyXG4gICAgICAgICAgYWRkSW5mbyA9IG5vZGUuYWRkSW5mbyBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGFkZEluZm8gJiYgYWRkSW5mby5ub2RlVHlwZSkge1xyXG4gICAgICAgICAgY29uc3Qgbm9kZVR5cGUgPSBhZGRJbmZvLm5vZGVUeXBlO1xyXG4gICAgICAgICAgY29uc3QgdG9vbCA9IHRoaXMudG9vbCA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ub2Rlcy5maW5kKG4gPT4gbi5uYW1lID09PSBub2RlVHlwZSk7XHJcbiAgICAgICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdG9vbC50aXRsZTtcclxuICAgICAgICAgIGNvbnN0IGFubm90YXRpb25BcmcgPSB0b29sLmFyZ3VtZW50cy5maW5kKGEgPT4gYS5kaWFncmFtKTtcclxuXHJcbiAgICAgICAgICBmdW5jdGlvbiBjaGFuZ2UobSkge1xyXG4gICAgICAgICAgICBpZiAoYW5ub3RhdGlvbkFyZyAmJiBtW2Fubm90YXRpb25BcmcubmFtZV0gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBpZiAobm9kZS5hbm5vdGF0aW9ucy5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICBub2RlLmFubm90YXRpb25zWzBdLmNvbnRlbnQgPSBtW2Fubm90YXRpb25BcmcubmFtZV0gfHwgbnVsbDtcclxuICAgICAgICAgICAgICBlbHNlIFxyXG4gICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuOCxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgY29udGVudDogbVthbm5vdGF0aW9uQXJnLm5hbWVdIHx8IG51bGxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYWRkSW5mbywgbSk7XHJcbiAgICAgICAgICAgIGNsZWFudXAoYWRkSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhZ3JhbS5kYXRhQmluZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRvb2wudGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gdGhpcy5fY3JlYXRlVG9vbFRlbXBsYXRlKHRvb2wsIG5vZGUpO1xyXG5cclxuICAgICAgICAgICAgaW5zdGFuY2UuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZS5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRvb2wuYXJndW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBsZXQgaW5zdGFuY2UgPSB0aGlzLl9jcmVhdGVMYXlvdXRBcmd1bWVudHModG9vbCwgbm9kZSk7XHJcblxyXG4gICAgICAgICAgICBpbnN0YW5jZS5tb2RlbENoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9lbGVtZW50RGVzdHJveSkpLnN1YnNjcmliZShjaGFuZ2UuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlTGF5b3V0QXJndW1lbnRzKHRvb2w6IEZsb3dOb2RlLCBub2RlOiBOb2RlTW9kZWwpIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9jZi5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShMYXlvdXRDb21wb25lbnQpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5hcmd1bWVudHN0ZW1wbGF0ZS5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSwgMCwgdGhpcy5faW5qZWN0b3IpO1xyXG4gICAgY29uc3QgaW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTGF5b3V0Q29tcG9uZW50O1xyXG4gICAgaW5zdGFuY2UuZmllbGRzID0gdG9vbC5hcmd1bWVudHM7XHJcbiAgICBpbnN0YW5jZS5tb2RlbCA9IG5vZGUuYWRkSW5mbztcclxuICAgIGluc3RhbmNlLmNyZWF0ZSgpO1xyXG4gICAgcmV0dXJuIGluc3RhbmNlO1xyXG4gIH1cclxuICBwcml2YXRlIF9jcmVhdGVUb29sVGVtcGxhdGUodG9vbDogRmxvd05vZGUsIG5vZGU6IE5vZGVNb2RlbCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2ZhY3RvcnlSZXNvbHZlci5yZXNvbHZlKHRoaXMudG9vbC50ZW1wbGF0ZSk7XHJcbiAgICBjb25zdCBub2RlUmVmID0gbmV3IE5vZGVSZWYodG9vbCk7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbeyBwcm92aWRlOiBOb2RlUmVmLCB1c2VWYWx1ZTogbm9kZVJlZiB9XSwgdGhpcy5faW5qZWN0b3IpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5hcmd1bWVudHN0ZW1wbGF0ZS5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSwgMCwgaW5qZWN0b3IpO1xyXG4gICAgY29uc3QgaW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgQXJndW1lbnRzQ29tcG9uZW50PGFueT47XHJcbiAgICBpbnN0YW5jZS5mb3JtLnBhdGNoVmFsdWUobm9kZS5hZGRJbmZvLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICByZXR1cm4gaW5zdGFuY2U7XHJcbiAgfVxyXG4gIGNvbm5lY3RvckNhc2VDaGFuZ2UoZXZ0PzogTWF0QnV0dG9uVG9nZ2xlQ2hhbmdlKSB7XHJcbiAgICB0aGlzLmNvbm5lY3Rvci5jb250cm9sc1snY2FzZSddLnNldFZhbHVlKGV2dC52YWx1ZSk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZWxlbWVudERlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZWxlbWVudERlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAjYXJndW1lbnRzPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLXRlbXBsYXRlICNjb25uZWN0b3JhcmdzPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiY29ubmVjdG9yXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cIidBY3Rpb24nIHwgdHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aW9uXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCIgW3ZhbHVlXT1cImFjdGlvbi5uYW1lXCI+e3thY3Rpb24udGl0bGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbj57eydOb25lJyB8IHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFt2YWx1ZV09XCJjb25uZWN0b3IuY29udHJvbHNbJ2Nhc2UnXS52YWx1ZVwiICNhY2FzZT1cIm1hdEJ1dHRvblRvZ2dsZUdyb3VwXCIgKGNoYW5nZSk9XCJjb25uZWN0b3JDYXNlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwidHJ1ZVwiPnt7J1RydWUnIHwgdHJhbnNsYXRlfX08L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJmYWxzZVwiPnt7J0ZhbHNlJyB8IHRyYW5zbGF0ZX19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlPnt7J0Nhc2UnIHwgdHJhbnNsYXRlfX08L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBbc3R5bGUuZGlzcGxheV09XCJjb25uZWN0b3IuY29udHJvbHNbJ2Nhc2UnXS52YWx1ZT09PSd0cnVlJ3x8Y29ubmVjdG9yLmNvbnRyb2xzWydjYXNlJ10udmFsdWU9PT0nZmFsc2UnPydub25lJzonJ1wiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cIidDYXNlJyB8IHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImNhc2VcIiAvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vd29ya2Zsb3cvbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vd29ya2Zsb3cvbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLFlBQVksRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBZSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBTWxELE1BQU0sT0FDRSxxQkFBcUI7SUFlM0IsWUFDVSxRQUF3QixFQUN4QixnQkFBZ0QsRUFDaEQsR0FBNkIsRUFDN0IsU0FBbUIsRUFDbkIsVUFBNEIsRUFDNUIsR0FBZ0IsRUFDaEIsS0FBcUM7UUFOckMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQztRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFyQjVCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTXRDLGNBQVMs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TDVCLFNBQVM7OytSQU1XLE1BQU07c0JBQXhCLE1BQU07Z0JBQzJELGlCQUFpQjtzQkFBbEYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDbEIsYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYsIENvbXBvbmVudCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29ubmVjdG9yTW9kZWwsIERpYWdyYW0sIE5vZGVNb2RlbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IEFjdGlvbiwgRmxvd05vZGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IE5vZGVSZWYgfSBmcm9tICcuL25vZGUtcmVmJztcclxuaW1wb3J0IHsgQXJndW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY2xlYW51cCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9ub2RlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ub2RlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFdvcmtmbG93Tm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2FyZ3VtZW50cycsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGFyZ3VtZW50c3RlbXBsYXRlOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2Nvbm5lY3RvcmFyZ3MnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb25uZWN0b3JhcmdzOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIG5vZGVzOiBOb2RlTW9kZWxbXTtcclxuICBjb25uZWN0b3JzOiBDb25uZWN0b3JNb2RlbFtdO1xyXG4gIGRpYWdyYW06IERpYWdyYW07XHJcbiAgcmVhZG9ubHkgY29ubmVjdG9yID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgYWN0aW9uOiBudWxsLFxyXG4gICAgY2FzZTogbnVsbFxyXG4gIH0pO1xyXG4gIGFjdGlvbnM6IEFjdGlvbltdO1xyXG4gIHRvb2w/OiBGbG93Tm9kZTtcclxuICBub2RlOiBOb2RlTW9kZWw7XHJcbiAgcHJpdmF0ZSBfZWxlbWVudERlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYWN0b3J5UmVzb2x2ZXI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2NmOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPFdvcmtmbG93Tm9kZUNvbXBvbmVudD4pIHtcclxuICAgIHRoaXMuYWN0aW9ucyA9IF9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucztcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICB0aGlzLm5vZGVzID0gZFsnbm9kZXMnXTtcclxuICAgICAgdGhpcy5kaWFncmFtID0gZFsnZGlhZ3JhbSddO1xyXG4gICAgICB0aGlzLmNvbm5lY3RvcnMgPSBkWydjb25uZWN0b3JzJ107XHJcbiAgICAgIHRoaXMudG9vbCA9IG51bGw7XHJcblxyXG4gICAgICB0aGlzLl9lbGVtZW50RGVzdHJveS5uZXh0KCk7XHJcbiAgICAgIHRoaXMuYXJndW1lbnRzdGVtcGxhdGUuY2xlYXIoKTtcclxuICAgICAgaWYgKHRoaXMuY29ubmVjdG9ycy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBjb25uZWN0b3IgPSB0aGlzLmNvbm5lY3RvcnNbMF07XHJcbiAgICAgICAgaWYgKGNvbm5lY3Rvci5hZGRJbmZvKSB7XHJcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSBjb25uZWN0b3IuYWRkSW5mb1snYWN0aW9uJ10sIGFjYXNlID0gY29ubmVjdG9yLmFkZEluZm9bJ2Nhc2UnXTtcclxuICAgICAgICAgIHRoaXMuY29ubmVjdG9yLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuY29ubmVjdG9ycy5sZW5ndGggPT09IDEgfHwgdGhpcy5jb25uZWN0b3JzLmV2ZXJ5KGMgPT4gYy5hZGRJbmZvICYmIGMuYWRkSW5mb1snYWN0aW9uJ10gPT09IGFjdGlvbikgPyBhY3Rpb24gOiBudWxsLFxyXG4gICAgICAgICAgICBjYXNlOiB0aGlzLmNvbm5lY3RvcnMubGVuZ3RoID09PSAxIHx8IHRoaXMuY29ubmVjdG9ycy5ldmVyeShjID0+IGMuYWRkSW5mbyAmJiBjLmFkZEluZm9bJ2Nhc2UnXSA9PT0gYWNhc2UpID8gYWNhc2UgOiBudWxsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQodGhpcy5jb25uZWN0b3JzLmxlbmd0aCA9PT0gMSA/ICdDb25uZWN0b3InIDogJ0Nvbm5lY3RvcnMnLCB0aGlzLmNvbm5lY3RvcnMubGVuZ3RoKTtcclxuICAgICAgICB0aGlzLl9wYW5lLmljb24gPSAnbGluayc7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0b3IudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2VsZW1lbnREZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29udGVudCA9IHZbJ2Nhc2UnXSB8fCB2WydhY3Rpb24nXTtcclxuICAgICAgICAgIGlmICghY29ubmVjdG9yLmFkZEluZm8pXHJcbiAgICAgICAgICAgIGNvbm5lY3Rvci5hZGRJbmZvID0gdGhpcy5jb25uZWN0b3IuZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb25uZWN0b3IuYWRkSW5mbywgdGhpcy5jb25uZWN0b3IuZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICAgICAgICBjbGVhbnVwKGNvbm5lY3Rvci5hZGRJbmZvKTtcclxuICAgICAgICAgIGlmIChjb25uZWN0b3IuYW5ub3RhdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGNvbm5lY3Rvci5hbm5vdGF0aW9uc1swXS5jb250ZW50ID0gY29udGVudDtcclxuICAgICAgICAgICAgdGhpcy5kaWFncmFtLmRhdGFCaW5kKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZGlhZ3JhbS5hZGRDb25uZWN0b3JMYWJlbHMoY29ubmVjdG9yLCBbe1xyXG4gICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgICAgICAgICBmaWxsOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjgsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBjb250ZW50XHJcbiAgICAgICAgICAgIH1dKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFyZ3VtZW50c3RlbXBsYXRlLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmNvbm5lY3RvcmFyZ3MpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUgPSB0aGlzLm5vZGVzWzBdLFxyXG4gICAgICAgICAgYWRkSW5mbyA9IG5vZGUuYWRkSW5mbyBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGFkZEluZm8gJiYgYWRkSW5mby5ub2RlVHlwZSkge1xyXG4gICAgICAgICAgY29uc3Qgbm9kZVR5cGUgPSBhZGRJbmZvLm5vZGVUeXBlO1xyXG4gICAgICAgICAgY29uc3QgdG9vbCA9IHRoaXMudG9vbCA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ub2Rlcy5maW5kKG4gPT4gbi5uYW1lID09PSBub2RlVHlwZSk7XHJcbiAgICAgICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdG9vbC50aXRsZTtcclxuICAgICAgICAgIGNvbnN0IGFubm90YXRpb25BcmcgPSB0b29sLmFyZ3VtZW50cy5maW5kKGEgPT4gYS5kaWFncmFtKTtcclxuXHJcbiAgICAgICAgICBmdW5jdGlvbiBjaGFuZ2UobSkge1xyXG4gICAgICAgICAgICBpZiAoYW5ub3RhdGlvbkFyZyAmJiBtW2Fubm90YXRpb25BcmcubmFtZV0gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBpZiAobm9kZS5hbm5vdGF0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbnNbMF0uY29udGVudCA9IG1bYW5ub3RhdGlvbkFyZy5uYW1lXSB8fCBudWxsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFncmFtLmRhdGFCaW5kKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhZ3JhbS5hZGROb2RlTGFiZWxzKG5vZGUsIFt7XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICd3aGl0ZScgOiAnYmxhY2snLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogLjgsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG1bYW5ub3RhdGlvbkFyZy5uYW1lXSB8fCBudWxsXHJcbiAgICAgICAgICAgICAgICB9XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhZGRJbmZvLCBtKTtcclxuICAgICAgICAgICAgY2xlYW51cChhZGRJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0b29sLnRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IHRoaXMuX2NyZWF0ZVRvb2xUZW1wbGF0ZSh0b29sLCBub2RlKTtcclxuXHJcbiAgICAgICAgICAgIGluc3RhbmNlLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0b29sLmFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbGV0IGluc3RhbmNlID0gdGhpcy5fY3JlYXRlTGF5b3V0QXJndW1lbnRzKHRvb2wsIG5vZGUpO1xyXG5cclxuICAgICAgICAgICAgaW5zdGFuY2UubW9kZWxDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZWxlbWVudERlc3Ryb3kpKS5zdWJzY3JpYmUoY2hhbmdlLmJpbmQodGhpcykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NyZWF0ZUxheW91dEFyZ3VtZW50cyh0b29sOiBGbG93Tm9kZSwgbm9kZTogTm9kZU1vZGVsKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5fY2YucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTGF5b3V0Q29tcG9uZW50KTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuYXJndW1lbnRzdGVtcGxhdGUuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIDAsIHRoaXMuX2luamVjdG9yKTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIExheW91dENvbXBvbmVudDtcclxuICAgIGluc3RhbmNlLmZpZWxkcyA9IHRvb2wuYXJndW1lbnRzO1xyXG4gICAgaW5zdGFuY2UubW9kZWwgPSBub2RlLmFkZEluZm87XHJcbiAgICBpbnN0YW5jZS5jcmVhdGUoKTtcclxuICAgIHJldHVybiBpbnN0YW5jZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlVG9vbFRlbXBsYXRlKHRvb2w6IEZsb3dOb2RlLCBub2RlOiBOb2RlTW9kZWwpIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9mYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZSh0aGlzLnRvb2wudGVtcGxhdGUpO1xyXG4gICAgY29uc3Qgbm9kZVJlZiA9IG5ldyBOb2RlUmVmKHRvb2wpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3sgcHJvdmlkZTogTm9kZVJlZiwgdXNlVmFsdWU6IG5vZGVSZWYgfV0sIHRoaXMuX2luamVjdG9yKTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuYXJndW1lbnRzdGVtcGxhdGUuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIDAsIGluamVjdG9yKTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIEFyZ3VtZW50c0NvbXBvbmVudDxhbnk+O1xyXG4gICAgaW5zdGFuY2UuZm9ybS5wYXRjaFZhbHVlKG5vZGUuYWRkSW5mbywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgcmV0dXJuIGluc3RhbmNlO1xyXG4gIH1cclxuICBjb25uZWN0b3JDYXNlQ2hhbmdlKGV2dD86IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSkge1xyXG4gICAgdGhpcy5jb25uZWN0b3IuY29udHJvbHNbJ2Nhc2UnXS5zZXRWYWx1ZShldnQudmFsdWUpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCgpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VsZW1lbnREZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2VsZW1lbnREZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgI2FyZ3VtZW50cz5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjY29ubmVjdG9yYXJncz5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvbm5lY3RvclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCInQWN0aW9uJyB8IHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImFjdGlvblwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiIFt2YWx1ZV09XCJhY3Rpb24ubmFtZVwiPnt7YWN0aW9uLnRpdGxlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24+e3snTm9uZScgfCB0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbdmFsdWVdPVwiY29ubmVjdG9yLmNvbnRyb2xzWydjYXNlJ10udmFsdWVcIiAjYWNhc2U9XCJtYXRCdXR0b25Ub2dnbGVHcm91cFwiIChjaGFuZ2UpPVwiY29ubmVjdG9yQ2FzZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInRydWVcIj57eydUcnVlJyB8IHRyYW5zbGF0ZX19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiZmFsc2VcIj57eydGYWxzZScgfCB0cmFuc2xhdGV9fTwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZT57eydDYXNlJyB8IHRyYW5zbGF0ZX19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgW3N0eWxlLmRpc3BsYXldPVwiY29ubmVjdG9yLmNvbnRyb2xzWydjYXNlJ10udmFsdWU9PT0ndHJ1ZSd8fGNvbm5lY3Rvci5jb250cm9sc1snY2FzZSddLnZhbHVlPT09J2ZhbHNlJz8nbm9uZSc6JydcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCInQ2FzZScgfCB0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJjYXNlXCIgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9mb3JtPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|