@net7/boilerplate-arianna 3.9.1 → 3.9.2
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/data-sources/scheda-image.ds.mjs +11 -6
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +4 -4
- package/esm2020/lib/layouts/scheda-layout/scheda-layout.mjs +3 -3
- package/fesm2015/net7-boilerplate-arianna.mjs +16 -11
- package/fesm2015/net7-boilerplate-arianna.mjs.map +1 -1
- package/fesm2020/net7-boilerplate-arianna.mjs +15 -10
- package/fesm2020/net7-boilerplate-arianna.mjs.map +1 -1
- package/lib/data-sources/scheda-image.ds.d.ts +1 -0
- package/package.json +1 -1
- package/src/lib/styles/arianna/layouts/_scheda-layout.scss +1 -1
|
@@ -20,11 +20,7 @@ export class AwSchedaImageDS extends DataSource {
|
|
|
20
20
|
},
|
|
21
21
|
_setViewer: (viewer) => {
|
|
22
22
|
this.instance = viewer;
|
|
23
|
-
this.
|
|
24
|
-
if (data.hasNavigation$) {
|
|
25
|
-
const { nextButton } = this.instance;
|
|
26
|
-
data.hasNavigation$.next(!!(nextButton && !nextButton.element?.disabled));
|
|
27
|
-
}
|
|
23
|
+
this.onRender();
|
|
28
24
|
}
|
|
29
25
|
};
|
|
30
26
|
}
|
|
@@ -41,6 +37,7 @@ export class AwSchedaImageDS extends DataSource {
|
|
|
41
37
|
setTimeout(() => {
|
|
42
38
|
const images = this.getTileSources(data.items);
|
|
43
39
|
this.instance.open(images);
|
|
40
|
+
this.onRender();
|
|
44
41
|
});
|
|
45
42
|
});
|
|
46
43
|
}
|
|
@@ -70,5 +67,13 @@ export class AwSchedaImageDS extends DataSource {
|
|
|
70
67
|
});
|
|
71
68
|
return tileSources;
|
|
72
69
|
}
|
|
70
|
+
onRender() {
|
|
71
|
+
// emit signal
|
|
72
|
+
this.instanceLoaded$.next(this.instance);
|
|
73
|
+
// update navigation classes
|
|
74
|
+
const { nextButton } = this.instance;
|
|
75
|
+
const hasNavigation = !!(nextButton && !nextButton.element?.disabled);
|
|
76
|
+
this.output.classes = hasNavigation ? 'has-navigation' : 'navigation-hidden';
|
|
77
|
+
}
|
|
73
78
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWltYWdlLmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL2RhdGEtc291cmNlcy9zY2hlZGEtaW1hZ2UuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFBL0M7O1FBR1Msb0JBQWUsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQWdGdkQsQ0FBQztJQTlFVyxTQUFTLENBQUMsSUFBSTtRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDakIsVUFBVSxFQUFFO2dCQUNWLFdBQVc7Z0JBQ1gsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGFBQWEsRUFBRSxLQUFLO2FBQ3JCO1lBQ0QsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO2dCQUV2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBSTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTNCLHlCQUF5QjtRQUN6QixRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNmLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQzdELEtBQUssRUFBRSxDQUNSLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLFFBQVE7WUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFNO1FBQzNCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxJQUFJLEtBQUssZUFBZSxFQUFFO2dCQUM1QixXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNmLEdBQUc7b0JBQ0gsSUFBSSxFQUFFLE9BQU87aUJBQ2QsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxJQUFJLEtBQUssWUFBWSxFQUFFO2dCQUNoQywwQkFBMEI7Z0JBQzFCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQzlFO2lCQUFNLElBQUksSUFBSSxLQUFLLGFBQWEsRUFBRTtnQkFDakMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUM3QixXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sUUFBUTtRQUNkLGNBQWM7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekMsNEJBQTRCO1FBQzVCLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7SUFDL0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VWaWV3ZXJEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIEF3U2NoZWRhSW1hZ2VEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwcml2YXRlIGluc3RhbmNlO1xuXG4gIHB1YmxpYyBpbnN0YW5jZUxvYWRlZCQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhKTogSW1hZ2VWaWV3ZXJEYXRhIHtcbiAgICBjb25zdCB0aWxlU291cmNlcyA9IHRoaXMuZ2V0VGlsZVNvdXJjZXMoZGF0YS5pdGVtcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW1hZ2VzOiBbXSxcbiAgICAgIHZpZXdlcklkOiBkYXRhLmlkLFxuICAgICAgbGliT3B0aW9uczoge1xuICAgICAgICB0aWxlU291cmNlcyxcbiAgICAgICAgc2VxdWVuY2VNb2RlOiB0cnVlLFxuICAgICAgICBzaG93UmVmZXJlbmNlU3RyaXA6IHRydWUsXG4gICAgICAgIGF1dG9IaWRlQ29udHJvbHM6IGZhbHNlLFxuICAgICAgICBzaG93TmF2aWdhdG9yOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBfc2V0Vmlld2VyOiAodmlld2VyKSA9PiB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSB2aWV3ZXI7XG5cbiAgICAgICAgdGhpcy5vblJlbmRlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaGFzSW5zdGFuY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pbnN0YW5jZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJbWFnZXMoZGF0YSkge1xuICAgIGlmICghdGhpcy5pbnN0YW5jZSkgcmV0dXJuO1xuXG4gICAgLy8gY29udGFpbmVyIGV4aXN0cyBjaGVja1xuICAgIGludGVydmFsKDEwKS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+ICEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5vdXRwdXQudmlld2VySWQpKSxcbiAgICAgIGZpcnN0KClcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyByZXNldFxuICAgICAgdGhpcy5pbnN0YW5jZS53b3JsZC5yZW1vdmVBbGwoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBpbWFnZXMgPSB0aGlzLmdldFRpbGVTb3VyY2VzKGRhdGEuaXRlbXMpO1xuICAgICAgICB0aGlzLmluc3RhbmNlLm9wZW4oaW1hZ2VzKTtcblxuICAgICAgICB0aGlzLm9uUmVuZGVyKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHJldHVybjtcbiAgICB0aGlzLmluc3RhbmNlLndvcmxkLnJlbW92ZUFsbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUaWxlU291cmNlcyhpbWFnZXMpIHtcbiAgICBjb25zdCB0aWxlU291cmNlcyA9IFtdO1xuICAgIGltYWdlcy5mb3JFYWNoKCh7IHR5cGUsIHVybCwgaWlpZkltYWdlcyB9KSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gJ2ltYWdlcy1zaW1wbGUnKSB7XG4gICAgICAgIHRpbGVTb3VyY2VzLnB1c2goe1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICB0eXBlOiAnaW1hZ2UnXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnaW1hZ2VzLWlpcCcpIHtcbiAgICAgICAgLy8gRklYTUU6IHRvZ2xpZXJlIHJlcGxhY2VcbiAgICAgICAgdGlsZVNvdXJjZXMucHVzaCh1cmwucmVwbGFjZSgnRklGJywgJ0RlZXB6b29tJykucmVwbGFjZSgnLnRpZicsICcudGlmLmR6aScpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ltYWdlcy1paWlmJykge1xuICAgICAgICBpaWlmSW1hZ2VzLmZvckVhY2goKGlpaWZVcmwpID0+IHtcbiAgICAgICAgICB0aWxlU291cmNlcy5wdXNoKGlpaWZVcmwpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdGlsZVNvdXJjZXM7XG4gIH1cblxuICBwcml2YXRlIG9uUmVuZGVyKCkge1xuICAgIC8vIGVtaXQgc2lnbmFsXG4gICAgdGhpcy5pbnN0YW5jZUxvYWRlZCQubmV4dCh0aGlzLmluc3RhbmNlKTtcblxuICAgIC8vIHVwZGF0ZSBuYXZpZ2F0aW9uIGNsYXNzZXNcbiAgICBjb25zdCB7IG5leHRCdXR0b24gfSA9IHRoaXMuaW5zdGFuY2U7XG4gICAgY29uc3QgaGFzTmF2aWdhdGlvbiA9ICEhKG5leHRCdXR0b24gJiYgIW5leHRCdXR0b24uZWxlbWVudD8uZGlzYWJsZWQpO1xuICAgIHRoaXMub3V0cHV0LmNsYXNzZXMgPSBoYXNOYXZpZ2F0aW9uID8gJ2hhcy1uYXZpZ2F0aW9uJyA6ICduYXZpZ2F0aW9uLWhpZGRlbic7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LayoutDataSource } from '@net7/core';
|
|
2
2
|
import { fromEvent, Subject, of, merge, } from 'rxjs';
|
|
3
|
-
import { first, takeUntil } from 'rxjs/operators';
|
|
3
|
+
import { delay, first, takeUntil } from 'rxjs/operators';
|
|
4
4
|
import { clone, get as _get } from 'lodash';
|
|
5
5
|
import { helpers } from '@net7/boilerplate-common';
|
|
6
6
|
import metadataHelper from '../../helpers/metadata.helper';
|
|
@@ -370,7 +370,8 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
|
|
|
370
370
|
// image viewer navigator
|
|
371
371
|
const navigatorConfig = this.layoutConfig['image-viewer-nav'];
|
|
372
372
|
if (navigatorConfig?.enabled) {
|
|
373
|
-
schedaImageDS.instanceLoaded$.pipe(first()
|
|
373
|
+
schedaImageDS.instanceLoaded$.pipe(first(), delay(100) // waiting for viewer instance to update
|
|
374
|
+
).subscribe((viewer) => {
|
|
374
375
|
this.one('aw-scheda-image-navigator').updateOptions(navigatorConfig);
|
|
375
376
|
this.one('aw-scheda-image-navigator').update(viewer);
|
|
376
377
|
});
|
|
@@ -389,7 +390,6 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
|
|
|
389
390
|
id: 'scheda-layout-viewer',
|
|
390
391
|
type: $do.type,
|
|
391
392
|
label: $do.label,
|
|
392
|
-
hasNavigation$: new Subject(),
|
|
393
393
|
items: $do.items.map(({ url, iiifImages }) => ({
|
|
394
394
|
url,
|
|
395
395
|
iiifImages,
|
|
@@ -402,4 +402,4 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
|
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
AwSchedaLayoutDS.tree = null;
|
|
405
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FDOUIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxjQUFjLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFFbkQsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLENBQUM7QUFFekMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUF0RDs7UUFHVSxlQUFVLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFekMsMEJBQXFCLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFvQnJELGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBOEJ2QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUV2QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFJdkMsb0RBQW9EO1FBQzdDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFTbEIsdUJBQWtCLEdBRXJCLEVBQUUsQ0FBQztRQUlQLDJEQUEyRDtRQUNuRCxpQkFBWSxHQUE4QixTQUFTLENBQUM7UUFFckQsb0JBQWUsR0FHbEIsSUFBSSxDQUFDO1FBRUYseUJBQW9CLEdBQUc7WUFDNUIsUUFBUSxFQUFFLEtBQUs7WUFDZixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsS0FBSztZQUN0QixrQkFBa0IsRUFBRSxLQUFLO1NBQzFCLENBQUM7UUFFSyxpQkFBWSxHQUdmLElBQUksQ0FBQztRQWtGVCxZQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBZ1d4QyxDQUFDO0lBaGJDLE1BQU0sQ0FBQyxFQUNMLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxHQUN2RTtRQUNDLElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUM7U0FDNUU7UUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RSxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDdkMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWM7U0FDekQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVyRiw0Q0FBNEM7UUFDNUMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7U0FDbkM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFeEQsa0NBQWtDO1FBQ2xDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhFLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVyRywrQkFBK0I7UUFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNyRCxNQUFNLFVBQVUsR0FBRyxHQUFHLG9CQUFvQixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3BELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdELE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ25ELE9BQU8sY0FBYyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUN6QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3hDLE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO2FBQzdDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJO1FBQ1YsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBSUQsZ0JBQWdCLENBQUMsSUFBSTtRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVEsQ0FBQyxFQUFFO1FBQ1QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0RyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUM1QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3hDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFRO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO1FBQzdCLElBQUksUUFBUSxFQUFFO1lBQ1osUUFBUTtZQUNSLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztZQUV0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUNyQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO21CQUNoQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7bUJBQ3BDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUNoQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUN4RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO21CQUNuQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQztZQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7bUJBQ3BDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNuQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FDbEIsSUFBSSxDQUFDLFdBQVc7bUJBQ2IsSUFBSSxDQUFDLGVBQWU7bUJBQ3BCLElBQUksQ0FBQyxrQkFBa0I7bUJBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FDMUIsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBRWxDLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDakIsT0FBTyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ2pDO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFaEMsa0JBQWtCO1lBQ2xCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxQixRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hGLHlFQUF5RTtnQkFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0I7WUFFRCxNQUFNLFFBQVEsR0FBRztnQkFDZixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ25CLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUs7d0JBQ3RDLE9BQU8sRUFBRSxNQUFNO3FCQUNoQjtpQkFDRjtnQkFDRCxLQUFLLEVBQUUsUUFBUSxDQUFDLFFBQVE7Z0JBQ3hCLE9BQU8sRUFBRSxFQUFFO2FBQ1osQ0FBQztZQUVGLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV0RCxxQkFBcUI7WUFDckIsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQztZQUVGLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRTtnQkFDeEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDdkMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzt3QkFDcEIsTUFBTSxFQUFFOzRCQUNOLElBQUksRUFBRTtnQ0FDSixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjO2dDQUM5QyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUc7Z0NBQ2xCLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQzs2QkFDL0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3lCQUNYO3FCQUNGLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3ZEO1lBRUQsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRTNCLG9DQUFvQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUV4QixvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLCtCQUErQixRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZHO1FBRUQsSUFBSSxRQUFRLENBQUMsWUFBWSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUMvRixJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsSUFBSSxRQUFRLENBQUMsZUFBZSxFQUFFO1lBQzVCLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3RDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDL0MsRUFBRSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUU7b0JBQ2pDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNO29CQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7YUFDOUYsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbEU7UUFFRCxpQkFBaUI7UUFDakIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sTUFBTSxHQUFRO2dCQUNsQixFQUFFLEVBQUUsY0FBYyxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksRUFBRSxDQUFDO2dCQUNQLEtBQUssRUFBRSxFQUFFO2dCQUNULEtBQUssRUFBRSxJQUFJO2dCQUNYLEdBQUcsSUFBSSxDQUFDLGtCQUFrQjthQUMzQixDQUFDO1lBQ0YsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5DLG1CQUFtQjtZQUNuQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztZQUVuQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzlELE1BQU07Z0JBQ04sT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQzthQUN6QyxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FDckIsTUFBTSxDQUFDLEtBQUs7dUJBQ1QsWUFBWSxDQUFDLElBQUksR0FBRyxDQUFDO3VCQUNyQixDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQ2xDLENBQUM7Z0JBQ0YsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsYUFBYSxDQUFDO3dCQUN6QyxRQUFRO3dCQUNSLFVBQVU7d0JBQ1YsTUFBTSxFQUFFLFlBQVk7d0JBQ3BCLEdBQUcsYUFBYTtxQkFDakIsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUM7d0JBQ2xDLE1BQU0sRUFBRSxjQUFjO3dCQUN0QixLQUFLLEVBQUUsYUFBYTtxQkFDckIsQ0FBQyxDQUFDO29CQUVILHlCQUF5QjtvQkFDekIsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO3dCQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLE1BQU0sVUFBVSxHQUFxQixRQUFRO2lDQUMxQyxhQUFhLENBQUMsdURBQXVELENBQUMsQ0FBQzs0QkFDMUUsVUFBVSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQzt3QkFDeEMsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsUUFBUTtRQUNSLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTVCLE1BQU0sV0FBVyxHQUFHLENBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU87ZUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEtBQUssbUJBQW1CLENBQzNELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFFekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNoRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSTtnQkFDOUIsQ0FBQyxDQUFDO29CQUNBLElBQUksRUFBRSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUM3RCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ2xCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRztnQkFDbEIsSUFBSTtnQkFDSixLQUFLLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDO2FBQzFDLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsNkVBQTZFO1FBQzdFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDdkYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFVO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUvRCxpQkFBaUI7UUFDakIsTUFBTSxVQUFVLEdBQUcsR0FBRyxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuRCxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLGtDQUFrQztRQUNsQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN6QixPQUFPO1NBQ1I7UUFDRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN6RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQ25GLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDckMsTUFBTSxhQUFhLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFFeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLElBQUksU0FBUyxDQUFDO1lBRS9DLHNCQUFzQjtZQUN0QixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksWUFBWSxHQUFHLGFBQWEsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLFlBQVksR0FBRyxTQUFTLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDM0Q7aUJBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLFlBQVksSUFBSSxhQUFhLEVBQUU7Z0JBQ2hFLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxhQUFhLEdBQUcsU0FBUyxHQUFHLEVBQUUsSUFBSSxDQUFDO2FBQzVEO2lCQUFNLElBQUksWUFBWSxHQUFHLGFBQWEsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLFlBQVksR0FBRyxVQUFVLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDNUQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLGFBQWEsR0FBRyxVQUFVLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDN0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsUUFBUTtRQUN2QixNQUFNLEVBQ0osTUFBTSxFQUNOLGFBQWEsRUFBRSxFQUFFLEVBQ2pCLHVCQUF1QixFQUFFLEVBQUUsRUFDNUIsR0FBRyxRQUFRLENBQUM7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0YsY0FBYyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxjQUFjLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTNFLE9BQU8sY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUM5QixNQUFNO1lBQ04sS0FBSztZQUNMLE1BQU07WUFDTixjQUFjO1lBQ2QsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsT0FBTztRQUNoQyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsS0FBSyxPQUFPLEVBQUU7WUFDOUMsYUFBYTtZQUNiLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDakYsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN6RDtpQkFBTTtnQkFDTCw0QkFBNEI7Z0JBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNsRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBRXRCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxPQUFPLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNyRCxJQUFJLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTt3QkFDL0IsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztxQkFDdkQ7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztxQkFDL0Q7b0JBRUQseUJBQXlCO29CQUN6QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQzlELElBQUksZUFBZSxFQUFFLE9BQU8sRUFBRTt3QkFDNUIsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ2hDLEtBQUssRUFBRSxDQUNSLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7NEJBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7NEJBQ3JFLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ3ZELENBQUMsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO3FCQUFNLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2lCQUM3RDthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsY0FBYztRQUM1QyxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMvQixPQUFPO29CQUNMLEVBQUUsRUFBRSxzQkFBc0I7b0JBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtvQkFDZCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7b0JBQ2hCLGNBQWMsRUFBRSxJQUFJLE9BQU8sRUFBRTtvQkFDN0IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQzdDLEdBQUc7d0JBQ0gsVUFBVTt3QkFDVixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNKLENBQUM7YUFDSDtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5oQk0scUJBQUksR0FBUSxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXREYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQge1xuICBmcm9tRXZlbnQsIFN1YmplY3QsIG9mLCBtZXJnZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmUsIGdldCBhcyBfZ2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IG1ldGFkYXRhSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbWV0YWRhdGEuaGVscGVyJztcbmltcG9ydCBub2RlSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbm9kZS5oZWxwZXInO1xuXG5jb25zdCBMT0NBTF9TVE9SQUdFX1BSRUZJWCA9ICdhdy5zY2hlZGEnO1xuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFMYXlvdXREUyBleHRlbmRzIExheW91dERhdGFTb3VyY2Uge1xuICBzdGF0aWMgdHJlZTogYW55ID0gbnVsbDtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBzdGlja3lDb250cm9sVHJpZ2dlciQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBhbnk7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyYXRpb246IGFueTtcblxuICBwcm90ZWN0ZWQgbWFpblN0YXRlOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHJvdXRlcjogYW55O1xuXG4gIHByb3RlY3RlZCB0aXRsZVNlcnZpY2U6IGFueTtcblxuICBwdWJsaWMgb3B0aW9uczogYW55O1xuXG4gIHByaXZhdGUgbGF5b3V0Q29uZmlnO1xuXG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgaGFzQnJlYWRjcnVtYjogYm9vbGVhbjtcblxuICBwdWJsaWMgY29udGVudFBhcnRzOiBhbnkgPSB7fTtcblxuICBwdWJsaWMgdHJlZTogYW55O1xuXG4gIHB1YmxpYyBzaWRlYmFyQ29sbGFwc2VkOiBib29sZWFuO1xuXG4gIHB1YmxpYyByZWxhdGVkRW50aXRpZXNIZWFkZXI6IHN0cmluZztcblxuICBwdWJsaWMgc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIG1ldGFkYXRhU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc01ldGFkYXRhOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNSZWxhdGVkRW50aXRpZXM6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc1NpbWlsYXJJdGVtczogYm9vbGVhbjtcblxuICBwdWJsaWMgaGFzRXh0ZW5kZWRUcmVlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNEaWdpdGFsT2JqZWN0czogYm9vbGVhbjtcblxuICBwdWJsaWMgZGlnaXRhbE9iamVjdHM6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3Q6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3RJbmRleDogbnVtYmVyO1xuXG4gIHB1YmxpYyBpbWFnZVZpZXdlcklzdGFuY2U6IGFueTtcblxuICBwdWJsaWMgc2lkZWJhcklzU3RpY2t5ID0gZmFsc2U7XG5cbiAgcHVibGljIHRyZWVNYXhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgcHVibGljIGNvbnRlbnRJc0xvYWRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgY3VycmVudElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZW1wdHlMYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBTd2l0Y2ggbG9hZGVkLWNvbnRlbnQgYW5kIGxvYWRlZC1lbXB0eSBzdGF0ZXMgKi9cbiAgcHVibGljIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gIC8qKiBTdHJpbmcgdG8gcmVuZGVyIGluIHRoZSBsb2FkZWQtZW1wdHkgc3RhdGUgKi9cbiAgcHVibGljIGVtcHR5U3RhdGVTdHJpbmc6IHN0cmluZztcblxuICBwdWJsaWMgZXh0ZXJuYWxVcmxUZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc0NvbnRleHRNZW51OiAoKSA9PiBib29sZWFuO1xuXG4gIHB1YmxpYyBleHRlbmRlZFRyZWVQYXJhbXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICBwdWJsaWMgbGFzdFJlc3BvbnNlO1xuXG4gIC8qKiBOYW1lIG9mIHF1ZXJ5IHRoYXQgc2hvdWxkIGJlIHVzZWQgKGNob3NlbiBpbiBjb25maWcpICovXG4gIHByaXZhdGUgZ2V0VHJlZVF1ZXJ5OiAnZ2V0VHJlZScgfCAnZ2V0VHJlZUxpdGUnID0gJ2dldFRyZWUnO1xuXG4gIHB1YmxpYyB0aXRsZU5hdmlnYXRpb246IHtcbiAgICBwcmV2OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgICBuZXh0OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgfSA9IG51bGw7XG5cbiAgcHVibGljIHNlY3Rpb25Db2xsYXBzZVN0YXRlID0ge1xuICAgIG1ldGFkYXRhOiBmYWxzZSxcbiAgICAnZXh0ZW5kZWQtdHJlZSc6IGZhbHNlLFxuICAgICdzaW1pbGFyLWl0ZW1zJzogZmFsc2UsXG4gICAgJ3JlbGF0ZWQtZW50aXRpZXMnOiBmYWxzZVxuICB9O1xuXG4gIHB1YmxpYyBkb2N1bWVudFR5cGU6IHtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfSA9IG51bGw7XG5cbiAgb25Jbml0KHtcbiAgICBjb25maWd1cmF0aW9uLCBtYWluU3RhdGUsIHJvdXRlciwgb3B0aW9ucywgdGl0bGVTZXJ2aWNlLCBjb21tdW5pY2F0aW9uLFxuICB9KSB7XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICB0aGlzLmxheW91dENvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKTtcbiAgICB9XG4gICAgdGhpcy5tYWluU3RhdGUgPSBtYWluU3RhdGU7XG4gICAgdGhpcy5yb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy50aXRsZVNlcnZpY2UgPSB0aXRsZVNlcnZpY2U7XG4gICAgdGhpcy5jb21tdW5pY2F0aW9uID0gY29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIGlmICghdGhpcy5zaWRlYmFyQ29sbGFwc2VkKSB7XG4gICAgICB0aGlzLnNpZGViYXJDb2xsYXBzZWQgPSB0aGlzLmxheW91dENvbmZpZy50cmVlLmNvbGxhcHNlZEJ5RGVmYXVsdCA/PyBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yZWxhdGVkRW50aXRpZXNIZWFkZXIgPSB0aGlzLmxheW91dENvbmZpZ1sncmVsYXRlZC1lbnRpdGllcyddLnRpdGxlO1xuICAgIHRoaXMuc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlID0gdGhpcy5sYXlvdXRDb25maWdbJ3JlbGF0ZWQtaXRlbXMnXS50aXRsZTtcbiAgICB0aGlzLmV4dGVybmFsVXJsVGV4dCA9IHRoaXMubGF5b3V0Q29uZmlnWydleHRlcm5hbC11cmwtdGV4dCddO1xuICAgIHRoaXMubWV0YWRhdGFTZWN0aW9uVGl0bGUgPSB0aGlzLmdldE1ldGFkYXRhU2VjdGlvblRpdGxlKCk7XG4gICAgdGhpcy5oYXNTaW1pbGFySXRlbXMgPSBmYWxzZTtcbiAgICB0aGlzLm9uZSgnYXctY2hhcnQtdGlwcHknKS51cGRhdGVPcHRpb25zKHtcbiAgICAgIGJhc2VQYXRoOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLmVudGl0YUJhc2VQYXRoLFxuICAgIH0pO1xuICAgIHRoaXMuZW1wdHlMYWJlbCA9IHRoaXMubGF5b3V0Q29uZmlnWydlbXB0eS1sYWJlbCddO1xuICAgIHRoaXMuZW1wdHlTdGF0ZVN0cmluZyA9IHRoaXMubGF5b3V0Q29uZmlnWydlbXB0eS1odG1sJ107XG4gICAgdGhpcy5vbmUoJ2F3LXRyZWUnKS51cGRhdGVPcHRpb25zKHsgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpIH0pO1xuXG4gICAgLy8gc3dpdGNoIHRoZSB0cmVlIHF1ZXJ5IHRvIHRoZSBzbGltIHZlcnNpb25cbiAgICBpZiAodGhpcy5sYXlvdXRDb25maWc/LnRyZWU/LmxpdGUpIHtcbiAgICAgIHRoaXMuZ2V0VHJlZVF1ZXJ5ID0gJ2dldFRyZWVMaXRlJztcbiAgICB9XG5cbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ2hlYWRUaXRsZScsICdBcmlhbm5hNFZpZXcgLSBQYXRyaW1vbmlvJyk7XG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlKCdwYWdlVGl0bGUnLCAnQXJpYW5uYTRWaWV3IC0gUGF0cmltb25pbycpO1xuICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZUN1c3RvbSgnY3VycmVudE5hdicsICdwYXRyaW1vbmlvJyk7XG5cbiAgICAvLyBpbWFnZSB2aWV3ZXIgY29udGV4dC1tZW51IGNoZWNrXG4gICAgY29uc3QgaW1hZ2VWaWV3ZXJDb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ2ltYWdlLXZpZXdlciddIHx8IHt9O1xuICAgIHRoaXMuaGFzQ29udGV4dE1lbnUgPSAoKSA9PiAhIWltYWdlVmlld2VyQ29uZmlnWydjb250ZXh0LW1lbnUnXTtcblxuICAgIC8vIHBkZiB2aWV3ZXIgb3B0aW9uc1xuICAgIHRoaXMub25lKCdhdy1zY2hlZGEtcGRmJykudXBkYXRlT3B0aW9ucyh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ3BkZi12aWV3ZXInXSB8fCB7fSk7XG5cbiAgICAvLyBjaGVjayBzZWN0aW9uIGNvbGxhcHNlIHN0YXRlXG4gICAgT2JqZWN0LmtleXModGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7TE9DQUxfU1RPUkFHRV9QUkVGSVh9LiR7a2V5fWA7XG4gICAgICBjb25zdCBzdG9yYWdlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KTtcbiAgICAgIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVba2V5XSA9IHN0b3JhZ2VWYWx1ZSA/IEpTT04ucGFyc2Uoc3RvcmFnZVZhbHVlKSA6IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgLy8gc2lkZWJhciBzdGlja3kgY29udHJvbFxuICAgIHRoaXMuX3NpZGViYXJTdGlja3lDb250cm9sKCk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIGdldE1ldGFkYXRhU2VjdGlvblRpdGxlKCkge1xuICAgIGNvbnN0IGxheW91dENvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKTtcbiAgICBjb25zdCBtZXRhZGF0YUNvbmZpZyA9IGxheW91dENvbmZpZy5tZXRhZGF0YSB8fCB7fTtcbiAgICByZXR1cm4gbWV0YWRhdGFDb25maWcudGl0bGUgfHwgbnVsbDtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb24oKSB7XG4gICAgaWYgKEF3U2NoZWRhTGF5b3V0RFMudHJlZSkge1xuICAgICAgcmV0dXJuIG9mKEF3U2NoZWRhTGF5b3V0RFMudHJlZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQodGhpcy5nZXRUcmVlUXVlcnksIHtcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgb25seUFsOiAhIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBzZXRUcmVlKHRyZWUpIHtcbiAgICBBd1NjaGVkYUxheW91dERTLnRyZWUgPSB0cmVlO1xuICB9XG5cbiAgZ2V0VHJlZSA9ICgpID0+IEF3U2NoZWRhTGF5b3V0RFMudHJlZTtcblxuICB1cGRhdGVOYXZpZ2F0aW9uKHRleHQpIHtcbiAgICB0aGlzLm9uZSgnYXctc2lkZWJhci1oZWFkZXInKS51cGRhdGUoeyB0ZXh0LCBpc0V4cGFuZGVkOiAhdGhpcy5zaWRlYmFyQ29sbGFwc2VkIH0pO1xuICB9XG5cbiAgbG9hZEl0ZW0oaWQpIHtcbiAgICBjb25zdCBtYXhTaW1pbGFySXRlbXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ3JlbGF0ZWQtaXRlbXMnXVsnbWF4LXJlbGF0ZWQtaXRlbXMnXTtcbiAgICByZXR1cm4gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlJywge1xuICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIHBhcmFtczogeyBpZCwgbWF4U2ltaWxhckl0ZW1zIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGNvbnRlbnQgb2YgdGhlIHNlbGVjdGVkIHRyZWUgaXRlbSBpbiB0aGUgcmlnaHQgcG9ydGlvbiBvZiB0aGUgdmlldy5cbiAgICogQHBhcmFtIHJlc3BvbnNlIGh0dHAgcmVzcG9uc2UgZm9yIHRoZSB0cmVlIGl0ZW1cbiAgICovXG4gIGxvYWRDb250ZW50KHJlc3BvbnNlKSB7XG4gICAgdGhpcy5sYXN0UmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgIC8vIHJlc2V0XG4gICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0ID0gbnVsbDtcbiAgICAgIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhRmllbGRzID0gdGhpcy5nZXRGaWVsZHMocmVzcG9uc2UpO1xuICAgICAgdGhpcy5oYXNNZXRhZGF0YSA9ICEhKEFycmF5LmlzQXJyYXkobWV0YWRhdGFGaWVsZHMpICYmIG1ldGFkYXRhRmllbGRzLmxlbmd0aCk7XG4gICAgICB0aGlzLmhhc1NpbWlsYXJJdGVtcyA9IChcbiAgICAgICAgIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgICAgJiYgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkSXRlbXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRJdGVtcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0JyZWFkY3J1bWIgPSBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmJyZWFkY3J1bWJzKSAmJiByZXNwb25zZS5icmVhZGNydW1icy5sZW5ndGg7XG4gICAgICB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzID0gKFxuICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzKVxuICAgICAgICAmJiByZXNwb25zZS5kaWdpdGFsT2JqZWN0cy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllcyA9IChcbiAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0NvbnRlbnQgPSAhIShcbiAgICAgICAgdGhpcy5oYXNNZXRhZGF0YVxuICAgICAgICB8fCB0aGlzLmhhc1NpbWlsYXJJdGVtc1xuICAgICAgICB8fCB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllc1xuICAgICAgICB8fCB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzXG4gICAgICApO1xuXG4gICAgICB0aGlzLmNvbnRlbnRQYXJ0cyA9IFtdO1xuICAgICAgY29uc3QgY29udGVudCA9IHsgY29udGVudDogbnVsbCB9O1xuXG4gICAgICBpZiAocmVzcG9uc2UudGV4dCkge1xuICAgICAgICBjb250ZW50LmNvbnRlbnQgPSByZXNwb25zZS50ZXh0O1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZW50UGFydHMucHVzaChjb250ZW50KTtcblxuICAgICAgLy8gZGlnaXRhbCBvYmplY3RzXG4gICAgICBpZiAodGhpcy5oYXNEaWdpdGFsT2JqZWN0cykge1xuICAgICAgICByZXNwb25zZS5kaWdpdGFsT2JqZWN0cyA9IHRoaXMubm9ybWFsaXplRGlnaXRhbE9iamVjdHMocmVzcG9uc2UuZGlnaXRhbE9iamVjdHMpO1xuICAgICAgICAvLyB0aGlzLm9uZSgnYXctc2NoZWRhLWRpZ2l0YWwtb2JqZWN0cycpLnVwZGF0ZShyZXNwb25zZS5kaWdpdGFsT2JqZWN0cyk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtZHJvcGRvd24nKS51cGRhdGUocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmRpZ2l0YWxPYmplY3RzID0gcmVzcG9uc2UuZGlnaXRhbE9iamVjdHM7XG4gICAgICAgIHRoaXMuY2hhbmdlRGlnaXRhbE9iamVjdCgwKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGl0bGVPYmogPSB7XG4gICAgICAgIGljb246IHJlc3BvbnNlLmljb24sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgbWFpbjoge1xuICAgICAgICAgICAgdGV4dDogcmVzcG9uc2UudGl0bGUgfHwgcmVzcG9uc2UubGFiZWwsXG4gICAgICAgICAgICBjbGFzc2VzOiAnYm9sZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHM6IHJlc3BvbnNlLnN1YlRpdGxlLFxuICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW5uZXItdGl0bGUnKS51cGRhdGUodGl0bGVPYmopO1xuICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1tZXRhZGF0YScpLnVwZGF0ZShtZXRhZGF0YUZpZWxkcyk7XG5cbiAgICAgIC8vIEJyZWFkY3J1bWIgc2VjdGlvblxuICAgICAgY29uc3QgYnJlYWRjcnVtYnMgPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXNwb25zZS5icmVhZGNydW1icykge1xuICAgICAgICByZXNwb25zZS5icmVhZGNydW1icy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgYnJlYWRjcnVtYnMuaXRlbXMucHVzaCh7XG4gICAgICAgICAgICBsYWJlbDogZWxlbWVudC5sYWJlbCxcbiAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICBocmVmOiBbXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aCxcbiAgICAgICAgICAgICAgICBgJHtlbGVtZW50Lmxpbmt9L2AsXG4gICAgICAgICAgICAgICAgaGVscGVycy5zbHVnaWZ5KGVsZW1lbnQubGFiZWwpLFxuICAgICAgICAgICAgICBdLmpvaW4oJycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtYnJlYWRjcnVtYnMnKS51cGRhdGUoYnJlYWRjcnVtYnMpO1xuICAgICAgfVxuXG4gICAgICAvLyB0aXRsZSBwcmV2IC8gbmV4dCBuYXZpZ2F0aW9uXG4gICAgICB0aGlzLmxvYWRUaXRsZU5hdmlnYXRpb24oKTtcblxuICAgICAgLy8gZG9jdW1lbnQgdGl0bGUgdHlwZSAoaWNvbiwgbGFiZWwpXG4gICAgICB0aGlzLmxvYWREb2N1bWVudFR5cGUoKTtcblxuICAgICAgLy8gdXBkYXRlIGhlYWQgdGl0bGVcbiAgICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZSgnaGVhZFRpdGxlJywgYEFyaWFubmE0VmlldyAtIFBhdHJpbW9uaW8gLSAke3Jlc3BvbnNlLnRpdGxlIHx8IHJlc3BvbnNlLmxhYmVsfWApO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5yZWxhdGVkSXRlbXMpIHtcbiAgICAgIHRoaXMub25lKCdhdy1saW5rZWQtb2JqZWN0cycpLnVwZGF0ZU9wdGlvbnMoeyBjb250ZXh0OiAnc2NoZWRhJywgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24gfSk7XG4gICAgICB0aGlzLm9uZSgnYXctbGlua2VkLW9iamVjdHMnKS51cGRhdGUocmVzcG9uc2UpO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2UucmVsYXRlZEVudGl0aWVzKSB7XG4gICAgICByZXNwb25zZS5yZWxhdGVkRW50aXRpZXMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSByZXNwb25zZS50aXRsZSB8fCByZXNwb25zZS5sYWJlbDtcbiAgICAgICAgZWwucmVsYXRpb25OYW1lID0gbGFiZWwubGVuZ3RoID4gMzBcbiAgICAgICAgICA/IGAke2xhYmVsLnN1YnN0cigwLCAzMCl9Li4uIGBcbiAgICAgICAgICA6IGxhYmVsO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm9uZSgnYXctcmVsYXRlZC1lbnRpdGllcycpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICBjb250ZXh0OiAnc2NoZWRhJywgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24sIGxpc3Q6ICdyZWxhdGVkRW50aXRpZXMnLCB0aXRsZTogcmVzcG9uc2UudGl0bGVcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vbmUoJ2F3LXJlbGF0ZWQtZW50aXRpZXMnKS51cGRhdGUocmVzcG9uc2UucmVsYXRlZEVudGl0aWVzKTtcbiAgICB9XG5cbiAgICAvLyBjb250cm9sIHN0aWNreVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdGlja3lDb250cm9sVHJpZ2dlciQubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZEV4dGVuZGVkVHJlZSgpIHtcbiAgICBjb25zdCBwYXJlbnRSZXNwb25zZSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ10pIHtcbiAgICAgIGNvbnN0IGNvbmZpZ0tleXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpO1xuICAgICAgY29uc3Qgd2lkZ2V0T3B0aW9ucyA9IHRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ107XG4gICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcbiAgICAgICAgaWQ6IHBhcmVudFJlc3BvbnNlLmlkLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBsaW1pdDogMTAsXG4gICAgICAgIHF1ZXJ5OiBudWxsLFxuICAgICAgICAuLi50aGlzLmV4dGVuZGVkVHJlZVBhcmFtcyxcbiAgICAgIH07XG4gICAgICBjb25zdCB3aWRnZXRQYXJhbXMgPSBjbG9uZShwYXJhbXMpO1xuXG4gICAgICAvLyBub3JtYWxpemUgcGFyYW1zXG4gICAgICBwYXJhbXMub2Zmc2V0ID0gKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMubGltaXQ7XG4gICAgICBkZWxldGUgcGFyYW1zLnBhZ2U7XG5cbiAgICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aDtcbiAgICAgIGNvbnN0IHJlcXVlc3QkID0gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlQ2hpbGRyZW4nLCB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdCQuc3Vic2NyaWJlKChub2Rlc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFzRXh0ZW5kZWRUcmVlID0gKFxuICAgICAgICAgIHBhcmFtcy5xdWVyeVxuICAgICAgICAgIHx8IHdpZGdldFBhcmFtcy5wYWdlID4gMVxuICAgICAgICAgIHx8ICEhbm9kZXNSZXNwb25zZT8uaXRlbXM/Lmxlbmd0aFxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5oYXNFeHRlbmRlZFRyZWUpIHtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctZXh0ZW5kZWQtdHJlZScpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICAgICAgYmFzZVBhdGgsXG4gICAgICAgICAgICBjb25maWdLZXlzLFxuICAgICAgICAgICAgcGFyYW1zOiB3aWRnZXRQYXJhbXMsXG4gICAgICAgICAgICAuLi53aWRnZXRPcHRpb25zLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25lKCdhdy1leHRlbmRlZC10cmVlJykudXBkYXRlKHtcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50UmVzcG9uc2UsXG4gICAgICAgICAgICBub2Rlczogbm9kZXNSZXNwb25zZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gZml4IHF1ZXJ5IGlucHV0IHVwZGF0ZVxuICAgICAgICAgIGlmIChwYXJhbXMucXVlcnkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBxdWVyeUlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLmF3LWV4dGVuZGVkLXRyZWVfX2hlYWRlciAubjctaW5uZXItdGl0bGVfX3NlYXJjaC1iYXInKTtcbiAgICAgICAgICAgICAgcXVlcnlJbnB1dC52YWx1ZSA9IHBhcmFtcy5xdWVyeSB8fCAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzRXh0ZW5kZWRUcmVlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbG9hZFRpdGxlTmF2aWdhdGlvbigpIHtcbiAgICAvLyByZXNldFxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGhhc1RpdGxlTmF2ID0gKFxuICAgICAgISF0aGlzLmxheW91dENvbmZpZ1sndGl0bGUtbmF2J10/LmVuYWJsZWRcbiAgICAgICYmIHRoaXMubGFzdFJlc3BvbnNlLmRvY3VtZW50X3R5cGUgPT09ICdvZ2dldHRvLWN1bHR1cmFsZSdcbiAgICApO1xuICAgIGlmICghaGFzVGl0bGVOYXYpIHJldHVybjtcblxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0geyBwcmV2OiBudWxsLCBuZXh0OiBudWxsIH07XG4gICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgIFsncHJldicsICduZXh0J10uZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5sYXN0UmVzcG9uc2Vba2V5XTtcbiAgICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uW2tleV0gPSBpdGVtXG4gICAgICAgID8ge1xuICAgICAgICAgIGhyZWY6IGAke2Jhc2VQYXRofS8ke2l0ZW0uaWR9LyR7aGVscGVycy5zbHVnaWZ5KGl0ZW0ubGFiZWwpfWAsXG4gICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgIH0gOiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZERvY3VtZW50VHlwZSgpIHtcbiAgICBjb25zdCBjb25maWdLZXlzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKTtcbiAgICBjb25zdCB7IGRvY3VtZW50X3R5cGU6IHR5cGUgfSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuICAgIGNvbnN0IGljb24gPSBub2RlSGVscGVyLmdldE5vZGVJY29uKGNvbmZpZ0tleXMsIHRoaXMubGFzdFJlc3BvbnNlKTtcbiAgICBpZiAoY29uZmlnS2V5c1t0eXBlXSkge1xuICAgICAgdGhpcy5kb2N1bWVudFR5cGUgPSB7XG4gICAgICAgIGljb24sXG4gICAgICAgIGxhYmVsOiBjb25maWdLZXlzW3R5cGVdWydzaW5ndWxhci1sYWJlbCddXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvY3VtZW50VHlwZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBiZXR3ZWVuIHRoZSB0cmVlJ3MgY29sbGFwc2VkIG9yIGV4cGFuZGVkIHN0YXRlLlxuICAgKi9cbiAgY29sbGFwc2VTaWRlYmFyKCkge1xuICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29uZmlndXJhdGlvbiB0byBwcmV2ZW50IHVud2FudGVkIGNoYW5nZXMgdG8gdGhlIHRyZWUgc3RhdGUuXG4gICAgdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQgPSAhdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQ7XG4gICAgdGhpcy5zaWRlYmFyQ29sbGFwc2VkID0gIXRoaXMuc2lkZWJhckNvbGxhcHNlZDtcbiAgICB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ2F3LXNpZGViYXItaGVhZGVyJykudG9nZ2xlU2lkZWJhcigpO1xuICB9XG5cbiAgb25TZWN0aW9uQ29sbGFwc2UoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdID0gIXRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdO1xuXG4gICAgLy8gdXBkYXRlIHN0b3JhZ2VcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7TE9DQUxfU1RPUkFHRV9QUkVGSVh9LiR7aWR9YDtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2lkXSk7XG4gIH1cblxuICBwcml2YXRlIF9zaWRlYmFyU3RpY2t5Q29udHJvbCgpIHtcbiAgICAvLyBubyBzdGlja3kgZm9yIEludGVybmV0IEV4cGxvcmVyXG4gICAgaWYgKGhlbHBlcnMuYnJvd3NlcklzSUUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2UkID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpO1xuXG4gICAgbWVyZ2Uoc291cmNlJCwgdGhpcy5zdGlja3lDb250cm9sVHJpZ2dlciQpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCB3aW5kb3dUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgICBjb25zdCB3aW5kb3dCb3R0b20gPSB3aW5kb3cuc2Nyb2xsWSArIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzdGlja3ktcGFyZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCB3cmFwcGVyVG9wID0gd3JhcHBlci5vZmZzZXRUb3A7XG4gICAgICBjb25zdCB3cmFwcGVyQm90dG9tID0gd3JhcHBlclRvcCArIHdyYXBwZXIuY2xpZW50SGVpZ2h0O1xuXG4gICAgICB0aGlzLnNpZGViYXJJc1N0aWNreSA9IHdyYXBwZXJUb3AgPD0gd2luZG93VG9wO1xuXG4gICAgICAvLyB0cmVlIGhlaWdodCBjb250cm9sXG4gICAgICBpZiAodGhpcy5zaWRlYmFySXNTdGlja3kgJiYgd2luZG93Qm90dG9tIDwgd3JhcHBlckJvdHRvbSkge1xuICAgICAgICB0aGlzLnRyZWVNYXhIZWlnaHQgPSBgJHt3aW5kb3dCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2lkZWJhcklzU3RpY2t5ICYmIHdpbmRvd0JvdHRvbSA+PSB3cmFwcGVyQm90dG9tKSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvd0JvdHRvbSA8IHdyYXBwZXJCb3R0b20pIHtcbiAgICAgICAgdGhpcy50cmVlTWF4SGVpZ2h0ID0gYCR7d2luZG93Qm90dG9tIC0gd3JhcHBlclRvcCAtIDUwfXB4YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3cmFwcGVyVG9wIC0gNTB9cHhgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcyhyZXNwb25zZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIGRvY3VtZW50X3R5cGU6IGR0LFxuICAgICAgZG9jdW1lbnRfY2xhc3NpZmljYXRpb246IGRjXG4gICAgfSA9IHJlc3BvbnNlO1xuICAgIGNvbnN0IHBhdGhzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdsYWJlbHMnKTtcbiAgICBjb25zdCBkY1NlZ21lbnRzID0gdHlwZW9mIGRjID09PSAnc3RyaW5nJyA/IGRjLnNwbGl0KCcuJykgOiBbXTtcbiAgICBjb25zdCBkY0xhc3RTZWdtZW50ID0gZGNTZWdtZW50c1tkY1NlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGxldCBtZXRhZGF0YVRvU2hvdyA9IF9nZXQodGhpcy5jb25maWd1cmF0aW9uLmdldCgnc2NoZWRhLWxheW91dCcpLCAnbWV0YWRhdGEtdG8tc2hvdycsIHt9KTtcbiAgICBtZXRhZGF0YVRvU2hvdyA9IG1ldGFkYXRhVG9TaG93W2RjTGFzdFNlZ21lbnRdIHx8IG1ldGFkYXRhVG9TaG93W2R0XSB8fCBbXTtcblxuICAgIHJldHVybiBtZXRhZGF0YUhlbHBlci5ub3JtYWxpemUoe1xuICAgICAgZmllbGRzLFxuICAgICAgcGF0aHMsXG4gICAgICBsYWJlbHMsXG4gICAgICBtZXRhZGF0YVRvU2hvdyxcbiAgICAgIHR5cGU6IGR0XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRGlnaXRhbE9iamVjdChwYXlsb2FkKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCAhPT0gcGF5bG9hZCkge1xuICAgICAgLy8gbGluayBjaGVja1xuICAgICAgaWYgKHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF0udHlwZSA9PT0gJ2V4dGVybmFsJyAmJiB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF0udXJsLCAnX2JsYW5rJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBhbHdheXMgcmVzZXQgaW1hZ2Ugdmlld2VyXG4gICAgICAgIGNvbnN0IHNjaGVkYUltYWdlRFMgPSB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ2F3LXNjaGVkYS1pbWFnZScpO1xuICAgICAgICBzY2hlZGFJbWFnZURTLnJlc2V0KCk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdEluZGV4ID0gcGF5bG9hZDtcbiAgICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCA9IHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF07XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0LnR5cGUuaW5jbHVkZXMoJ2ltYWdlcycpKSB7XG4gICAgICAgICAgaWYgKHNjaGVkYUltYWdlRFMuaGFzSW5zdGFuY2UoKSkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy51cGRhdGVJbWFnZXModGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW1hZ2UnKS51cGRhdGUodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaW1hZ2Ugdmlld2VyIG5hdmlnYXRvclxuICAgICAgICAgIGNvbnN0IG5hdmlnYXRvckNvbmZpZyA9IHRoaXMubGF5b3V0Q29uZmlnWydpbWFnZS12aWV3ZXItbmF2J107XG4gICAgICAgICAgaWYgKG5hdmlnYXRvckNvbmZpZz8uZW5hYmxlZCkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy5pbnN0YW5jZUxvYWRlZCQucGlwZShcbiAgICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHZpZXdlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcicpLnVwZGF0ZU9wdGlvbnMobmF2aWdhdG9yQ29uZmlnKTtcbiAgICAgICAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InKS51cGRhdGUodmlld2VyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0LnR5cGUgPT09ICdwZGYnKSB7XG4gICAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1wZGYnKS51cGRhdGUodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZURpZ2l0YWxPYmplY3RzKGRpZ2l0YWxPYmplY3RzKSB7XG4gICAgcmV0dXJuIGRpZ2l0YWxPYmplY3RzLm1hcCgoJGRvKSA9PiB7XG4gICAgICBpZiAoJGRvLnR5cGUuaW5jbHVkZXMoJ2ltYWdlcycpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6ICdzY2hlZGEtbGF5b3V0LXZpZXdlcicsXG4gICAgICAgICAgdHlwZTogJGRvLnR5cGUsXG4gICAgICAgICAgbGFiZWw6ICRkby5sYWJlbCxcbiAgICAgICAgICBoYXNOYXZpZ2F0aW9uJDogbmV3IFN1YmplY3QoKSxcbiAgICAgICAgICBpdGVtczogJGRvLml0ZW1zLm1hcCgoeyB1cmwsIGlpaWZJbWFnZXMgfSkgPT4gKHtcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGlpaWZJbWFnZXMsXG4gICAgICAgICAgICB0eXBlOiAkZG8udHlwZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAkZG87XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
405
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FDOUIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sY0FBYyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBRW5ELE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFBdEQ7O1FBR1UsZUFBVSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpDLDBCQUFxQixHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBb0JyRCxpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQThCdkIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsa0JBQWEsR0FBRyxNQUFNLENBQUM7UUFFdkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBSXZDLG9EQUFvRDtRQUM3QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBU2xCLHVCQUFrQixHQUVyQixFQUFFLENBQUM7UUFJ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c0JBQXNCO29CQUMxQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO29CQUNoQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDN0MsR0FBRzt3QkFDSCxVQUFVO3dCQUNWLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtxQkFDZixDQUFDLENBQUM7aUJBQ0osQ0FBQzthQUNIO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbmhCTSxxQkFBSSxHQUFRLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExheW91dERhdGFTb3VyY2UgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7XG4gIGZyb21FdmVudCwgU3ViamVjdCwgb2YsIG1lcmdlLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmUsIGdldCBhcyBfZ2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IG1ldGFkYXRhSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbWV0YWRhdGEuaGVscGVyJztcbmltcG9ydCBub2RlSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbm9kZS5oZWxwZXInO1xuXG5jb25zdCBMT0NBTF9TVE9SQUdFX1BSRUZJWCA9ICdhdy5zY2hlZGEnO1xuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFMYXlvdXREUyBleHRlbmRzIExheW91dERhdGFTb3VyY2Uge1xuICBzdGF0aWMgdHJlZTogYW55ID0gbnVsbDtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBzdGlja3lDb250cm9sVHJpZ2dlciQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBhbnk7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyYXRpb246IGFueTtcblxuICBwcm90ZWN0ZWQgbWFpblN0YXRlOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHJvdXRlcjogYW55O1xuXG4gIHByb3RlY3RlZCB0aXRsZVNlcnZpY2U6IGFueTtcblxuICBwdWJsaWMgb3B0aW9uczogYW55O1xuXG4gIHByaXZhdGUgbGF5b3V0Q29uZmlnO1xuXG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgaGFzQnJlYWRjcnVtYjogYm9vbGVhbjtcblxuICBwdWJsaWMgY29udGVudFBhcnRzOiBhbnkgPSB7fTtcblxuICBwdWJsaWMgdHJlZTogYW55O1xuXG4gIHB1YmxpYyBzaWRlYmFyQ29sbGFwc2VkOiBib29sZWFuO1xuXG4gIHB1YmxpYyByZWxhdGVkRW50aXRpZXNIZWFkZXI6IHN0cmluZztcblxuICBwdWJsaWMgc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIG1ldGFkYXRhU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc01ldGFkYXRhOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNSZWxhdGVkRW50aXRpZXM6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc1NpbWlsYXJJdGVtczogYm9vbGVhbjtcblxuICBwdWJsaWMgaGFzRXh0ZW5kZWRUcmVlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNEaWdpdGFsT2JqZWN0czogYm9vbGVhbjtcblxuICBwdWJsaWMgZGlnaXRhbE9iamVjdHM6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3Q6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3RJbmRleDogbnVtYmVyO1xuXG4gIHB1YmxpYyBpbWFnZVZpZXdlcklzdGFuY2U6IGFueTtcblxuICBwdWJsaWMgc2lkZWJhcklzU3RpY2t5ID0gZmFsc2U7XG5cbiAgcHVibGljIHRyZWVNYXhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgcHVibGljIGNvbnRlbnRJc0xvYWRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgY3VycmVudElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZW1wdHlMYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBTd2l0Y2ggbG9hZGVkLWNvbnRlbnQgYW5kIGxvYWRlZC1lbXB0eSBzdGF0ZXMgKi9cbiAgcHVibGljIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gIC8qKiBTdHJpbmcgdG8gcmVuZGVyIGluIHRoZSBsb2FkZWQtZW1wdHkgc3RhdGUgKi9cbiAgcHVibGljIGVtcHR5U3RhdGVTdHJpbmc6IHN0cmluZztcblxuICBwdWJsaWMgZXh0ZXJuYWxVcmxUZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc0NvbnRleHRNZW51OiAoKSA9PiBib29sZWFuO1xuXG4gIHB1YmxpYyBleHRlbmRlZFRyZWVQYXJhbXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICBwdWJsaWMgbGFzdFJlc3BvbnNlO1xuXG4gIC8qKiBOYW1lIG9mIHF1ZXJ5IHRoYXQgc2hvdWxkIGJlIHVzZWQgKGNob3NlbiBpbiBjb25maWcpICovXG4gIHByaXZhdGUgZ2V0VHJlZVF1ZXJ5OiAnZ2V0VHJlZScgfCAnZ2V0VHJlZUxpdGUnID0gJ2dldFRyZWUnO1xuXG4gIHB1YmxpYyB0aXRsZU5hdmlnYXRpb246IHtcbiAgICBwcmV2OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgICBuZXh0OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgfSA9IG51bGw7XG5cbiAgcHVibGljIHNlY3Rpb25Db2xsYXBzZVN0YXRlID0ge1xuICAgIG1ldGFkYXRhOiBmYWxzZSxcbiAgICAnZXh0ZW5kZWQtdHJlZSc6IGZhbHNlLFxuICAgICdzaW1pbGFyLWl0ZW1zJzogZmFsc2UsXG4gICAgJ3JlbGF0ZWQtZW50aXRpZXMnOiBmYWxzZVxuICB9O1xuXG4gIHB1YmxpYyBkb2N1bWVudFR5cGU6IHtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfSA9IG51bGw7XG5cbiAgb25Jbml0KHtcbiAgICBjb25maWd1cmF0aW9uLCBtYWluU3RhdGUsIHJvdXRlciwgb3B0aW9ucywgdGl0bGVTZXJ2aWNlLCBjb21tdW5pY2F0aW9uLFxuICB9KSB7XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICB0aGlzLmxheW91dENvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKTtcbiAgICB9XG4gICAgdGhpcy5tYWluU3RhdGUgPSBtYWluU3RhdGU7XG4gICAgdGhpcy5yb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy50aXRsZVNlcnZpY2UgPSB0aXRsZVNlcnZpY2U7XG4gICAgdGhpcy5jb21tdW5pY2F0aW9uID0gY29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIGlmICghdGhpcy5zaWRlYmFyQ29sbGFwc2VkKSB7XG4gICAgICB0aGlzLnNpZGViYXJDb2xsYXBzZWQgPSB0aGlzLmxheW91dENvbmZpZy50cmVlLmNvbGxhcHNlZEJ5RGVmYXVsdCA/PyBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yZWxhdGVkRW50aXRpZXNIZWFkZXIgPSB0aGlzLmxheW91dENvbmZpZ1sncmVsYXRlZC1lbnRpdGllcyddLnRpdGxlO1xuICAgIHRoaXMuc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlID0gdGhpcy5sYXlvdXRDb25maWdbJ3JlbGF0ZWQtaXRlbXMnXS50aXRsZTtcbiAgICB0aGlzLmV4dGVybmFsVXJsVGV4dCA9IHRoaXMubGF5b3V0Q29uZmlnWydleHRlcm5hbC11cmwtdGV4dCddO1xuICAgIHRoaXMubWV0YWRhdGFTZWN0aW9uVGl0bGUgPSB0aGlzLmdldE1ldGFkYXRhU2VjdGlvblRpdGxlKCk7XG4gICAgdGhpcy5oYXNTaW1pbGFySXRlbXMgPSBmYWxzZTtcbiAgICB0aGlzLm9uZSgnYXctY2hhcnQtdGlwcHknKS51cGRhdGVPcHRpb25zKHtcbiAgICAgIGJhc2VQYXRoOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLmVudGl0YUJhc2VQYXRoLFxuICAgIH0pO1xuICAgIHRoaXMuZW1wdHlMYWJlbCA9IHRoaXMubGF5b3V0Q29uZmlnWydlbXB0eS1sYWJlbCddO1xuICAgIHRoaXMuZW1wdHlTdGF0ZVN0cmluZyA9IHRoaXMubGF5b3V0Q29uZmlnWydlbXB0eS1odG1sJ107XG4gICAgdGhpcy5vbmUoJ2F3LXRyZWUnKS51cGRhdGVPcHRpb25zKHsgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpIH0pO1xuXG4gICAgLy8gc3dpdGNoIHRoZSB0cmVlIHF1ZXJ5IHRvIHRoZSBzbGltIHZlcnNpb25cbiAgICBpZiAodGhpcy5sYXlvdXRDb25maWc/LnRyZWU/LmxpdGUpIHtcbiAgICAgIHRoaXMuZ2V0VHJlZVF1ZXJ5ID0gJ2dldFRyZWVMaXRlJztcbiAgICB9XG5cbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ2hlYWRUaXRsZScsICdBcmlhbm5hNFZpZXcgLSBQYXRyaW1vbmlvJyk7XG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlKCdwYWdlVGl0bGUnLCAnQXJpYW5uYTRWaWV3IC0gUGF0cmltb25pbycpO1xuICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZUN1c3RvbSgnY3VycmVudE5hdicsICdwYXRyaW1vbmlvJyk7XG5cbiAgICAvLyBpbWFnZSB2aWV3ZXIgY29udGV4dC1tZW51IGNoZWNrXG4gICAgY29uc3QgaW1hZ2VWaWV3ZXJDb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ2ltYWdlLXZpZXdlciddIHx8IHt9O1xuICAgIHRoaXMuaGFzQ29udGV4dE1lbnUgPSAoKSA9PiAhIWltYWdlVmlld2VyQ29uZmlnWydjb250ZXh0LW1lbnUnXTtcblxuICAgIC8vIHBkZiB2aWV3ZXIgb3B0aW9uc1xuICAgIHRoaXMub25lKCdhdy1zY2hlZGEtcGRmJykudXBkYXRlT3B0aW9ucyh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ3BkZi12aWV3ZXInXSB8fCB7fSk7XG5cbiAgICAvLyBjaGVjayBzZWN0aW9uIGNvbGxhcHNlIHN0YXRlXG4gICAgT2JqZWN0LmtleXModGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7TE9DQUxfU1RPUkFHRV9QUkVGSVh9LiR7a2V5fWA7XG4gICAgICBjb25zdCBzdG9yYWdlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KTtcbiAgICAgIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVba2V5XSA9IHN0b3JhZ2VWYWx1ZSA/IEpTT04ucGFyc2Uoc3RvcmFnZVZhbHVlKSA6IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgLy8gc2lkZWJhciBzdGlja3kgY29udHJvbFxuICAgIHRoaXMuX3NpZGViYXJTdGlja3lDb250cm9sKCk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIGdldE1ldGFkYXRhU2VjdGlvblRpdGxlKCkge1xuICAgIGNvbnN0IGxheW91dENvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3NjaGVkYS1sYXlvdXQnKTtcbiAgICBjb25zdCBtZXRhZGF0YUNvbmZpZyA9IGxheW91dENvbmZpZy5tZXRhZGF0YSB8fCB7fTtcbiAgICByZXR1cm4gbWV0YWRhdGFDb25maWcudGl0bGUgfHwgbnVsbDtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb24oKSB7XG4gICAgaWYgKEF3U2NoZWRhTGF5b3V0RFMudHJlZSkge1xuICAgICAgcmV0dXJuIG9mKEF3U2NoZWRhTGF5b3V0RFMudHJlZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQodGhpcy5nZXRUcmVlUXVlcnksIHtcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgb25seUFsOiAhIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBzZXRUcmVlKHRyZWUpIHtcbiAgICBBd1NjaGVkYUxheW91dERTLnRyZWUgPSB0cmVlO1xuICB9XG5cbiAgZ2V0VHJlZSA9ICgpID0+IEF3U2NoZWRhTGF5b3V0RFMudHJlZTtcblxuICB1cGRhdGVOYXZpZ2F0aW9uKHRleHQpIHtcbiAgICB0aGlzLm9uZSgnYXctc2lkZWJhci1oZWFkZXInKS51cGRhdGUoeyB0ZXh0LCBpc0V4cGFuZGVkOiAhdGhpcy5zaWRlYmFyQ29sbGFwc2VkIH0pO1xuICB9XG5cbiAgbG9hZEl0ZW0oaWQpIHtcbiAgICBjb25zdCBtYXhTaW1pbGFySXRlbXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdzY2hlZGEtbGF5b3V0JylbJ3JlbGF0ZWQtaXRlbXMnXVsnbWF4LXJlbGF0ZWQtaXRlbXMnXTtcbiAgICByZXR1cm4gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlJywge1xuICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIHBhcmFtczogeyBpZCwgbWF4U2ltaWxhckl0ZW1zIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGNvbnRlbnQgb2YgdGhlIHNlbGVjdGVkIHRyZWUgaXRlbSBpbiB0aGUgcmlnaHQgcG9ydGlvbiBvZiB0aGUgdmlldy5cbiAgICogQHBhcmFtIHJlc3BvbnNlIGh0dHAgcmVzcG9uc2UgZm9yIHRoZSB0cmVlIGl0ZW1cbiAgICovXG4gIGxvYWRDb250ZW50KHJlc3BvbnNlKSB7XG4gICAgdGhpcy5sYXN0UmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgIC8vIHJlc2V0XG4gICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0ID0gbnVsbDtcbiAgICAgIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhRmllbGRzID0gdGhpcy5nZXRGaWVsZHMocmVzcG9uc2UpO1xuICAgICAgdGhpcy5oYXNNZXRhZGF0YSA9ICEhKEFycmF5LmlzQXJyYXkobWV0YWRhdGFGaWVsZHMpICYmIG1ldGFkYXRhRmllbGRzLmxlbmd0aCk7XG4gICAgICB0aGlzLmhhc1NpbWlsYXJJdGVtcyA9IChcbiAgICAgICAgIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgICAgJiYgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkSXRlbXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRJdGVtcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0JyZWFkY3J1bWIgPSBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmJyZWFkY3J1bWJzKSAmJiByZXNwb25zZS5icmVhZGNydW1icy5sZW5ndGg7XG4gICAgICB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzID0gKFxuICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzKVxuICAgICAgICAmJiByZXNwb25zZS5kaWdpdGFsT2JqZWN0cy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllcyA9IChcbiAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0NvbnRlbnQgPSAhIShcbiAgICAgICAgdGhpcy5oYXNNZXRhZGF0YVxuICAgICAgICB8fCB0aGlzLmhhc1NpbWlsYXJJdGVtc1xuICAgICAgICB8fCB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllc1xuICAgICAgICB8fCB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzXG4gICAgICApO1xuXG4gICAgICB0aGlzLmNvbnRlbnRQYXJ0cyA9IFtdO1xuICAgICAgY29uc3QgY29udGVudCA9IHsgY29udGVudDogbnVsbCB9O1xuXG4gICAgICBpZiAocmVzcG9uc2UudGV4dCkge1xuICAgICAgICBjb250ZW50LmNvbnRlbnQgPSByZXNwb25zZS50ZXh0O1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZW50UGFydHMucHVzaChjb250ZW50KTtcblxuICAgICAgLy8gZGlnaXRhbCBvYmplY3RzXG4gICAgICBpZiAodGhpcy5oYXNEaWdpdGFsT2JqZWN0cykge1xuICAgICAgICByZXNwb25zZS5kaWdpdGFsT2JqZWN0cyA9IHRoaXMubm9ybWFsaXplRGlnaXRhbE9iamVjdHMocmVzcG9uc2UuZGlnaXRhbE9iamVjdHMpO1xuICAgICAgICAvLyB0aGlzLm9uZSgnYXctc2NoZWRhLWRpZ2l0YWwtb2JqZWN0cycpLnVwZGF0ZShyZXNwb25zZS5kaWdpdGFsT2JqZWN0cyk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtZHJvcGRvd24nKS51cGRhdGUocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmRpZ2l0YWxPYmplY3RzID0gcmVzcG9uc2UuZGlnaXRhbE9iamVjdHM7XG4gICAgICAgIHRoaXMuY2hhbmdlRGlnaXRhbE9iamVjdCgwKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGl0bGVPYmogPSB7XG4gICAgICAgIGljb246IHJlc3BvbnNlLmljb24sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgbWFpbjoge1xuICAgICAgICAgICAgdGV4dDogcmVzcG9uc2UudGl0bGUgfHwgcmVzcG9uc2UubGFiZWwsXG4gICAgICAgICAgICBjbGFzc2VzOiAnYm9sZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHM6IHJlc3BvbnNlLnN1YlRpdGxlLFxuICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW5uZXItdGl0bGUnKS51cGRhdGUodGl0bGVPYmopO1xuICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1tZXRhZGF0YScpLnVwZGF0ZShtZXRhZGF0YUZpZWxkcyk7XG5cbiAgICAgIC8vIEJyZWFkY3J1bWIgc2VjdGlvblxuICAgICAgY29uc3QgYnJlYWRjcnVtYnMgPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXNwb25zZS5icmVhZGNydW1icykge1xuICAgICAgICByZXNwb25zZS5icmVhZGNydW1icy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgYnJlYWRjcnVtYnMuaXRlbXMucHVzaCh7XG4gICAgICAgICAgICBsYWJlbDogZWxlbWVudC5sYWJlbCxcbiAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICBocmVmOiBbXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aCxcbiAgICAgICAgICAgICAgICBgJHtlbGVtZW50Lmxpbmt9L2AsXG4gICAgICAgICAgICAgICAgaGVscGVycy5zbHVnaWZ5KGVsZW1lbnQubGFiZWwpLFxuICAgICAgICAgICAgICBdLmpvaW4oJycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtYnJlYWRjcnVtYnMnKS51cGRhdGUoYnJlYWRjcnVtYnMpO1xuICAgICAgfVxuXG4gICAgICAvLyB0aXRsZSBwcmV2IC8gbmV4dCBuYXZpZ2F0aW9uXG4gICAgICB0aGlzLmxvYWRUaXRsZU5hdmlnYXRpb24oKTtcblxuICAgICAgLy8gZG9jdW1lbnQgdGl0bGUgdHlwZSAoaWNvbiwgbGFiZWwpXG4gICAgICB0aGlzLmxvYWREb2N1bWVudFR5cGUoKTtcblxuICAgICAgLy8gdXBkYXRlIGhlYWQgdGl0bGVcbiAgICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZSgnaGVhZFRpdGxlJywgYEFyaWFubmE0VmlldyAtIFBhdHJpbW9uaW8gLSAke3Jlc3BvbnNlLnRpdGxlIHx8IHJlc3BvbnNlLmxhYmVsfWApO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5yZWxhdGVkSXRlbXMpIHtcbiAgICAgIHRoaXMub25lKCdhdy1saW5rZWQtb2JqZWN0cycpLnVwZGF0ZU9wdGlvbnMoeyBjb250ZXh0OiAnc2NoZWRhJywgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24gfSk7XG4gICAgICB0aGlzLm9uZSgnYXctbGlua2VkLW9iamVjdHMnKS51cGRhdGUocmVzcG9uc2UpO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2UucmVsYXRlZEVudGl0aWVzKSB7XG4gICAgICByZXNwb25zZS5yZWxhdGVkRW50aXRpZXMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSByZXNwb25zZS50aXRsZSB8fCByZXNwb25zZS5sYWJlbDtcbiAgICAgICAgZWwucmVsYXRpb25OYW1lID0gbGFiZWwubGVuZ3RoID4gMzBcbiAgICAgICAgICA/IGAke2xhYmVsLnN1YnN0cigwLCAzMCl9Li4uIGBcbiAgICAgICAgICA6IGxhYmVsO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm9uZSgnYXctcmVsYXRlZC1lbnRpdGllcycpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICBjb250ZXh0OiAnc2NoZWRhJywgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24sIGxpc3Q6ICdyZWxhdGVkRW50aXRpZXMnLCB0aXRsZTogcmVzcG9uc2UudGl0bGVcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vbmUoJ2F3LXJlbGF0ZWQtZW50aXRpZXMnKS51cGRhdGUocmVzcG9uc2UucmVsYXRlZEVudGl0aWVzKTtcbiAgICB9XG5cbiAgICAvLyBjb250cm9sIHN0aWNreVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdGlja3lDb250cm9sVHJpZ2dlciQubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZEV4dGVuZGVkVHJlZSgpIHtcbiAgICBjb25zdCBwYXJlbnRSZXNwb25zZSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ10pIHtcbiAgICAgIGNvbnN0IGNvbmZpZ0tleXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpO1xuICAgICAgY29uc3Qgd2lkZ2V0T3B0aW9ucyA9IHRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ107XG4gICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcbiAgICAgICAgaWQ6IHBhcmVudFJlc3BvbnNlLmlkLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBsaW1pdDogMTAsXG4gICAgICAgIHF1ZXJ5OiBudWxsLFxuICAgICAgICAuLi50aGlzLmV4dGVuZGVkVHJlZVBhcmFtcyxcbiAgICAgIH07XG4gICAgICBjb25zdCB3aWRnZXRQYXJhbXMgPSBjbG9uZShwYXJhbXMpO1xuXG4gICAgICAvLyBub3JtYWxpemUgcGFyYW1zXG4gICAgICBwYXJhbXMub2Zmc2V0ID0gKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMubGltaXQ7XG4gICAgICBkZWxldGUgcGFyYW1zLnBhZ2U7XG5cbiAgICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aDtcbiAgICAgIGNvbnN0IHJlcXVlc3QkID0gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlQ2hpbGRyZW4nLCB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdCQuc3Vic2NyaWJlKChub2Rlc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFzRXh0ZW5kZWRUcmVlID0gKFxuICAgICAgICAgIHBhcmFtcy5xdWVyeVxuICAgICAgICAgIHx8IHdpZGdldFBhcmFtcy5wYWdlID4gMVxuICAgICAgICAgIHx8ICEhbm9kZXNSZXNwb25zZT8uaXRlbXM/Lmxlbmd0aFxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5oYXNFeHRlbmRlZFRyZWUpIHtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctZXh0ZW5kZWQtdHJlZScpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICAgICAgYmFzZVBhdGgsXG4gICAgICAgICAgICBjb25maWdLZXlzLFxuICAgICAgICAgICAgcGFyYW1zOiB3aWRnZXRQYXJhbXMsXG4gICAgICAgICAgICAuLi53aWRnZXRPcHRpb25zLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25lKCdhdy1leHRlbmRlZC10cmVlJykudXBkYXRlKHtcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50UmVzcG9uc2UsXG4gICAgICAgICAgICBub2Rlczogbm9kZXNSZXNwb25zZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gZml4IHF1ZXJ5IGlucHV0IHVwZGF0ZVxuICAgICAgICAgIGlmIChwYXJhbXMucXVlcnkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBxdWVyeUlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLmF3LWV4dGVuZGVkLXRyZWVfX2hlYWRlciAubjctaW5uZXItdGl0bGVfX3NlYXJjaC1iYXInKTtcbiAgICAgICAgICAgICAgcXVlcnlJbnB1dC52YWx1ZSA9IHBhcmFtcy5xdWVyeSB8fCAnJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzRXh0ZW5kZWRUcmVlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbG9hZFRpdGxlTmF2aWdhdGlvbigpIHtcbiAgICAvLyByZXNldFxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGhhc1RpdGxlTmF2ID0gKFxuICAgICAgISF0aGlzLmxheW91dENvbmZpZ1sndGl0bGUtbmF2J10/LmVuYWJsZWRcbiAgICAgICYmIHRoaXMubGFzdFJlc3BvbnNlLmRvY3VtZW50X3R5cGUgPT09ICdvZ2dldHRvLWN1bHR1cmFsZSdcbiAgICApO1xuICAgIGlmICghaGFzVGl0bGVOYXYpIHJldHVybjtcblxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0geyBwcmV2OiBudWxsLCBuZXh0OiBudWxsIH07XG4gICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgIFsncHJldicsICduZXh0J10uZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5sYXN0UmVzcG9uc2Vba2V5XTtcbiAgICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uW2tleV0gPSBpdGVtXG4gICAgICAgID8ge1xuICAgICAgICAgIGhyZWY6IGAke2Jhc2VQYXRofS8ke2l0ZW0uaWR9LyR7aGVscGVycy5zbHVnaWZ5KGl0ZW0ubGFiZWwpfWAsXG4gICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgIH0gOiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZERvY3VtZW50VHlwZSgpIHtcbiAgICBjb25zdCBjb25maWdLZXlzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKTtcbiAgICBjb25zdCB7IGRvY3VtZW50X3R5cGU6IHR5cGUgfSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuICAgIGNvbnN0IGljb24gPSBub2RlSGVscGVyLmdldE5vZGVJY29uKGNvbmZpZ0tleXMsIHRoaXMubGFzdFJlc3BvbnNlKTtcbiAgICBpZiAoY29uZmlnS2V5c1t0eXBlXSkge1xuICAgICAgdGhpcy5kb2N1bWVudFR5cGUgPSB7XG4gICAgICAgIGljb24sXG4gICAgICAgIGxhYmVsOiBjb25maWdLZXlzW3R5cGVdWydzaW5ndWxhci1sYWJlbCddXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvY3VtZW50VHlwZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBiZXR3ZWVuIHRoZSB0cmVlJ3MgY29sbGFwc2VkIG9yIGV4cGFuZGVkIHN0YXRlLlxuICAgKi9cbiAgY29sbGFwc2VTaWRlYmFyKCkge1xuICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29uZmlndXJhdGlvbiB0byBwcmV2ZW50IHVud2FudGVkIGNoYW5nZXMgdG8gdGhlIHRyZWUgc3RhdGUuXG4gICAgdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQgPSAhdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQ7XG4gICAgdGhpcy5zaWRlYmFyQ29sbGFwc2VkID0gIXRoaXMuc2lkZWJhckNvbGxhcHNlZDtcbiAgICB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ2F3LXNpZGViYXItaGVhZGVyJykudG9nZ2xlU2lkZWJhcigpO1xuICB9XG5cbiAgb25TZWN0aW9uQ29sbGFwc2UoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdID0gIXRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdO1xuXG4gICAgLy8gdXBkYXRlIHN0b3JhZ2VcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7TE9DQUxfU1RPUkFHRV9QUkVGSVh9LiR7aWR9YDtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2lkXSk7XG4gIH1cblxuICBwcml2YXRlIF9zaWRlYmFyU3RpY2t5Q29udHJvbCgpIHtcbiAgICAvLyBubyBzdGlja3kgZm9yIEludGVybmV0IEV4cGxvcmVyXG4gICAgaWYgKGhlbHBlcnMuYnJvd3NlcklzSUUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2UkID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpO1xuXG4gICAgbWVyZ2Uoc291cmNlJCwgdGhpcy5zdGlja3lDb250cm9sVHJpZ2dlciQpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCB3aW5kb3dUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgICBjb25zdCB3aW5kb3dCb3R0b20gPSB3aW5kb3cuc2Nyb2xsWSArIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzdGlja3ktcGFyZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCB3cmFwcGVyVG9wID0gd3JhcHBlci5vZmZzZXRUb3A7XG4gICAgICBjb25zdCB3cmFwcGVyQm90dG9tID0gd3JhcHBlclRvcCArIHdyYXBwZXIuY2xpZW50SGVpZ2h0O1xuXG4gICAgICB0aGlzLnNpZGViYXJJc1N0aWNreSA9IHdyYXBwZXJUb3AgPD0gd2luZG93VG9wO1xuXG4gICAgICAvLyB0cmVlIGhlaWdodCBjb250cm9sXG4gICAgICBpZiAodGhpcy5zaWRlYmFySXNTdGlja3kgJiYgd2luZG93Qm90dG9tIDwgd3JhcHBlckJvdHRvbSkge1xuICAgICAgICB0aGlzLnRyZWVNYXhIZWlnaHQgPSBgJHt3aW5kb3dCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2lkZWJhcklzU3RpY2t5ICYmIHdpbmRvd0JvdHRvbSA+PSB3cmFwcGVyQm90dG9tKSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvd0JvdHRvbSA8IHdyYXBwZXJCb3R0b20pIHtcbiAgICAgICAgdGhpcy50cmVlTWF4SGVpZ2h0ID0gYCR7d2luZG93Qm90dG9tIC0gd3JhcHBlclRvcCAtIDUwfXB4YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3cmFwcGVyVG9wIC0gNTB9cHhgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcyhyZXNwb25zZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIGRvY3VtZW50X3R5cGU6IGR0LFxuICAgICAgZG9jdW1lbnRfY2xhc3NpZmljYXRpb246IGRjXG4gICAgfSA9IHJlc3BvbnNlO1xuICAgIGNvbnN0IHBhdGhzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdsYWJlbHMnKTtcbiAgICBjb25zdCBkY1NlZ21lbnRzID0gdHlwZW9mIGRjID09PSAnc3RyaW5nJyA/IGRjLnNwbGl0KCcuJykgOiBbXTtcbiAgICBjb25zdCBkY0xhc3RTZWdtZW50ID0gZGNTZWdtZW50c1tkY1NlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGxldCBtZXRhZGF0YVRvU2hvdyA9IF9nZXQodGhpcy5jb25maWd1cmF0aW9uLmdldCgnc2NoZWRhLWxheW91dCcpLCAnbWV0YWRhdGEtdG8tc2hvdycsIHt9KTtcbiAgICBtZXRhZGF0YVRvU2hvdyA9IG1ldGFkYXRhVG9TaG93W2RjTGFzdFNlZ21lbnRdIHx8IG1ldGFkYXRhVG9TaG93W2R0XSB8fCBbXTtcblxuICAgIHJldHVybiBtZXRhZGF0YUhlbHBlci5ub3JtYWxpemUoe1xuICAgICAgZmllbGRzLFxuICAgICAgcGF0aHMsXG4gICAgICBsYWJlbHMsXG4gICAgICBtZXRhZGF0YVRvU2hvdyxcbiAgICAgIHR5cGU6IGR0XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRGlnaXRhbE9iamVjdChwYXlsb2FkKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCAhPT0gcGF5bG9hZCkge1xuICAgICAgLy8gbGluayBjaGVja1xuICAgICAgaWYgKHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF0udHlwZSA9PT0gJ2V4dGVybmFsJyAmJiB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF0udXJsLCAnX2JsYW5rJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBhbHdheXMgcmVzZXQgaW1hZ2Ugdmlld2VyXG4gICAgICAgIGNvbnN0IHNjaGVkYUltYWdlRFMgPSB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ2F3LXNjaGVkYS1pbWFnZScpO1xuICAgICAgICBzY2hlZGFJbWFnZURTLnJlc2V0KCk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdEluZGV4ID0gcGF5bG9hZDtcbiAgICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCA9IHRoaXMuZGlnaXRhbE9iamVjdHNbcGF5bG9hZF07XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0LnR5cGUuaW5jbHVkZXMoJ2ltYWdlcycpKSB7XG4gICAgICAgICAgaWYgKHNjaGVkYUltYWdlRFMuaGFzSW5zdGFuY2UoKSkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy51cGRhdGVJbWFnZXModGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW1hZ2UnKS51cGRhdGUodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaW1hZ2Ugdmlld2VyIG5hdmlnYXRvclxuICAgICAgICAgIGNvbnN0IG5hdmlnYXRvckNvbmZpZyA9IHRoaXMubGF5b3V0Q29uZmlnWydpbWFnZS12aWV3ZXItbmF2J107XG4gICAgICAgICAgaWYgKG5hdmlnYXRvckNvbmZpZz8uZW5hYmxlZCkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy5pbnN0YW5jZUxvYWRlZCQucGlwZShcbiAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgZGVsYXkoMTAwKSAvLyB3YWl0aW5nIGZvciB2aWV3ZXIgaW5zdGFuY2UgdG8gdXBkYXRlXG4gICAgICAgICAgICApLnN1YnNjcmliZSgodmlld2VyKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJykudXBkYXRlT3B0aW9ucyhuYXZpZ2F0b3JDb25maWcpO1xuICAgICAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcicpLnVwZGF0ZSh2aWV3ZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QudHlwZSA9PT0gJ3BkZicpIHtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLXBkZicpLnVwZGF0ZSh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplRGlnaXRhbE9iamVjdHMoZGlnaXRhbE9iamVjdHMpIHtcbiAgICByZXR1cm4gZGlnaXRhbE9iamVjdHMubWFwKCgkZG8pID0+IHtcbiAgICAgIGlmICgkZG8udHlwZS5pbmNsdWRlcygnaW1hZ2VzJykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogJ3NjaGVkYS1sYXlvdXQtdmlld2VyJyxcbiAgICAgICAgICB0eXBlOiAkZG8udHlwZSxcbiAgICAgICAgICBsYWJlbDogJGRvLmxhYmVsLFxuICAgICAgICAgIGl0ZW1zOiAkZG8uaXRlbXMubWFwKCh7IHVybCwgaWlpZkltYWdlcyB9KSA9PiAoe1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgaWlpZkltYWdlcyxcbiAgICAgICAgICAgIHR5cGU6ICRkby50eXBlLFxuICAgICAgICAgIH0pKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuICRkbztcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -47,9 +47,9 @@ export class AwSchedaLayoutComponent extends AbstractLayout {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
AwSchedaLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AwSchedaLayoutComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ConfigurationService }, { token: i2.LayoutsConfigurationService }, { token: i2.MainStateService }, { token: i3.Title }, { token: i2.CommunicationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
-
AwSchedaLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AwSchedaLayoutComponent, selector: "aw-scheda-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <div class=\"aw-scheda__title-wrapper\">\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__prev\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.prev?.href ? [titleNav.prev.href] : null\"\n [title]=\"titleNav.prev?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.prev?.href }\">\n <span class=\"n7-icon-angle-left\"></span>\n </a>\n </div>\n <div class=\"aw-scheda__title\">\n <div *ngIf=\"lb.dataSource.documentType as documentType\" class=\"aw-scheda__document-type\">\n <span *ngIf=\"documentType.icon\" class=\"aw-scheda__document-type-icon {{ documentType.icon }}\"></span>\n <span class=\"aw-scheda__document-type-label\">{{ documentType.label }}</span>\n </div>\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n </div>\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__next\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.next?.href ? [titleNav.next.href] : null\"\n [title]=\"titleNav.next?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.next?.href }\">\n <span class=\"n7-icon-angle-right\"></span>\n </a>\n </div>\n </div>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n <!-- Extended tree -->\n <ng-container *ngTemplateOutlet=\"extendedtree\"></ng-container>\n\n </div>\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\"\n [ngClass]=\"{ \n 'navigation-hidden': !($do.hasNavigation$ | async)\n }\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section *ngIf=\"lb.dataSource.contentParts.content\" class=\"aw-scheda__section aw-scheda__description\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section *ngIf=\"lb.dataSource.hasMetadata\" class=\"aw-scheda__section aw-scheda__metadata\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('metadata')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'metadata' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['metadata']\" \n class=\"aw-scheda__section-content-wrapper\">\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('related-entities')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'related-entities' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['related-entities']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('similar-items')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'similar-items' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['similar-items']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n</ng-template>\n\n<ng-template #collapse let-id>\n <div class=\"aw-scheda__collapse\">\n <button class=\"n7-btn n7-btn-light\">\n <span class=\"n7-icon-angle-right\"\n [ngClass]=\"{\n 'n7-icon-angle-right': !!lb.dataSource.sectionCollapseState[id],\n 'n7-icon-angle-down': !lb.dataSource.sectionCollapseState[id]\n }\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #extendedtree>\n <!-- Extended Tree -->\n <section *ngIf=\"lb.dataSource.hasExtendedTree\" id=\"extended-tree-container\" class=\"aw-scheda__section\">\n <div class=\"aw-scheda__section-extended-tree-loader\" *ngIf=\"!(lb.widgets['aw-extended-tree'].ds.out$ | async)\">\n <n7-loader></n7-loader>\n </div>\n <aw-extended-tree\n [data]=\"lb.widgets['aw-extended-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-extended-tree'].emit\"\n [lb]=\"lb\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'extended-tree' }\"></ng-container>\n </aw-extended-tree>\n </section>\n <!-- END // Extended Tree -->\n</ng-template>", components: [{ type: i4.SmartBreadcrumbsComponent, selector: "n7-smart-breadcrumbs", inputs: ["data", "emit"] }, { type: i5.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { type: i5.SidebarHeaderComponent, selector: "n7-sidebar-header", inputs: ["data", "emit"] }, { type: i5.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { type: i5.TreeComponent, selector: "n7-tree", inputs: ["data", "emit"] }, { type: i6.SchedaDropdownComponent, selector: "aw-scheda-dropdown", inputs: ["data", "emit"] }, { type: i7.SchedaImageNavigatorComponent, selector: "aw-scheda-image-navigator", inputs: ["data", "emit"] }, { type: i5.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { type: i8.PdfViewerComponent, selector: "aw-pdf-viewer", inputs: ["data", "emit"] }, { type: i5.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { type: i5.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { type: i5.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { type: i9.ExtendedTreeComponent, selector: "aw-extended-tree", inputs: ["data", "emit", "lb"] }], directives: [{ type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i10.AsyncPipe } });
|
|
50
|
+
AwSchedaLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AwSchedaLayoutComponent, selector: "aw-scheda-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <div class=\"aw-scheda__title-wrapper\">\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__prev\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.prev?.href ? [titleNav.prev.href] : null\"\n [title]=\"titleNav.prev?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.prev?.href }\">\n <span class=\"n7-icon-angle-left\"></span>\n </a>\n </div>\n <div class=\"aw-scheda__title\">\n <div *ngIf=\"lb.dataSource.documentType as documentType\" class=\"aw-scheda__document-type\">\n <span *ngIf=\"documentType.icon\" class=\"aw-scheda__document-type-icon {{ documentType.icon }}\"></span>\n <span class=\"aw-scheda__document-type-label\">{{ documentType.label }}</span>\n </div>\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n </div>\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__next\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.next?.href ? [titleNav.next.href] : null\"\n [title]=\"titleNav.next?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.next?.href }\">\n <span class=\"n7-icon-angle-right\"></span>\n </a>\n </div>\n </div>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n <!-- Extended tree -->\n <ng-container *ngTemplateOutlet=\"extendedtree\"></ng-container>\n\n </div>\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section *ngIf=\"lb.dataSource.contentParts.content\" class=\"aw-scheda__section aw-scheda__description\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section *ngIf=\"lb.dataSource.hasMetadata\" class=\"aw-scheda__section aw-scheda__metadata\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('metadata')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'metadata' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['metadata']\" \n class=\"aw-scheda__section-content-wrapper\">\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('related-entities')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'related-entities' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['related-entities']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('similar-items')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'similar-items' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['similar-items']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n</ng-template>\n\n<ng-template #collapse let-id>\n <div class=\"aw-scheda__collapse\">\n <button class=\"n7-btn n7-btn-light\">\n <span class=\"n7-icon-angle-right\"\n [ngClass]=\"{\n 'n7-icon-angle-right': !!lb.dataSource.sectionCollapseState[id],\n 'n7-icon-angle-down': !lb.dataSource.sectionCollapseState[id]\n }\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #extendedtree>\n <!-- Extended Tree -->\n <section *ngIf=\"lb.dataSource.hasExtendedTree\" id=\"extended-tree-container\" class=\"aw-scheda__section\">\n <div class=\"aw-scheda__section-extended-tree-loader\" *ngIf=\"!(lb.widgets['aw-extended-tree'].ds.out$ | async)\">\n <n7-loader></n7-loader>\n </div>\n <aw-extended-tree\n [data]=\"lb.widgets['aw-extended-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-extended-tree'].emit\"\n [lb]=\"lb\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'extended-tree' }\"></ng-container>\n </aw-extended-tree>\n </section>\n <!-- END // Extended Tree -->\n</ng-template>", components: [{ type: i4.SmartBreadcrumbsComponent, selector: "n7-smart-breadcrumbs", inputs: ["data", "emit"] }, { type: i5.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { type: i5.SidebarHeaderComponent, selector: "n7-sidebar-header", inputs: ["data", "emit"] }, { type: i5.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { type: i5.TreeComponent, selector: "n7-tree", inputs: ["data", "emit"] }, { type: i6.SchedaDropdownComponent, selector: "aw-scheda-dropdown", inputs: ["data", "emit"] }, { type: i7.SchedaImageNavigatorComponent, selector: "aw-scheda-image-navigator", inputs: ["data", "emit"] }, { type: i5.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { type: i8.PdfViewerComponent, selector: "aw-pdf-viewer", inputs: ["data", "emit"] }, { type: i5.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { type: i5.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { type: i5.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { type: i9.ExtendedTreeComponent, selector: "aw-extended-tree", inputs: ["data", "emit", "lb"] }], directives: [{ type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i10.AsyncPipe } });
|
|
51
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AwSchedaLayoutComponent, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
|
-
args: [{ selector: 'aw-scheda-layout', template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <div class=\"aw-scheda__title-wrapper\">\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__prev\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.prev?.href ? [titleNav.prev.href] : null\"\n [title]=\"titleNav.prev?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.prev?.href }\">\n <span class=\"n7-icon-angle-left\"></span>\n </a>\n </div>\n <div class=\"aw-scheda__title\">\n <div *ngIf=\"lb.dataSource.documentType as documentType\" class=\"aw-scheda__document-type\">\n <span *ngIf=\"documentType.icon\" class=\"aw-scheda__document-type-icon {{ documentType.icon }}\"></span>\n <span class=\"aw-scheda__document-type-label\">{{ documentType.label }}</span>\n </div>\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n </div>\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__next\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.next?.href ? [titleNav.next.href] : null\"\n [title]=\"titleNav.next?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.next?.href }\">\n <span class=\"n7-icon-angle-right\"></span>\n </a>\n </div>\n </div>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n <!-- Extended tree -->\n <ng-container *ngTemplateOutlet=\"extendedtree\"></ng-container>\n\n </div>\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\"\n [ngClass]=\"{ \n 'navigation-hidden': !($do.hasNavigation$ | async)\n }\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section *ngIf=\"lb.dataSource.contentParts.content\" class=\"aw-scheda__section aw-scheda__description\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section *ngIf=\"lb.dataSource.hasMetadata\" class=\"aw-scheda__section aw-scheda__metadata\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('metadata')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'metadata' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['metadata']\" \n class=\"aw-scheda__section-content-wrapper\">\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('related-entities')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'related-entities' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['related-entities']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('similar-items')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'similar-items' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['similar-items']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n</ng-template>\n\n<ng-template #collapse let-id>\n <div class=\"aw-scheda__collapse\">\n <button class=\"n7-btn n7-btn-light\">\n <span class=\"n7-icon-angle-right\"\n [ngClass]=\"{\n 'n7-icon-angle-right': !!lb.dataSource.sectionCollapseState[id],\n 'n7-icon-angle-down': !lb.dataSource.sectionCollapseState[id]\n }\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #extendedtree>\n <!-- Extended Tree -->\n <section *ngIf=\"lb.dataSource.hasExtendedTree\" id=\"extended-tree-container\" class=\"aw-scheda__section\">\n <div class=\"aw-scheda__section-extended-tree-loader\" *ngIf=\"!(lb.widgets['aw-extended-tree'].ds.out$ | async)\">\n <n7-loader></n7-loader>\n </div>\n <aw-extended-tree\n [data]=\"lb.widgets['aw-extended-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-extended-tree'].emit\"\n [lb]=\"lb\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'extended-tree' }\"></ng-container>\n </aw-extended-tree>\n </section>\n <!-- END // Extended Tree -->\n</ng-template>" }]
|
|
53
|
+
args: [{ selector: 'aw-scheda-layout', template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <div class=\"aw-scheda__title-wrapper\">\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__prev\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.prev?.href ? [titleNav.prev.href] : null\"\n [title]=\"titleNav.prev?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.prev?.href }\">\n <span class=\"n7-icon-angle-left\"></span>\n </a>\n </div>\n <div class=\"aw-scheda__title\">\n <div *ngIf=\"lb.dataSource.documentType as documentType\" class=\"aw-scheda__document-type\">\n <span *ngIf=\"documentType.icon\" class=\"aw-scheda__document-type-icon {{ documentType.icon }}\"></span>\n <span class=\"aw-scheda__document-type-label\">{{ documentType.label }}</span>\n </div>\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n </div>\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__next\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.next?.href ? [titleNav.next.href] : null\"\n [title]=\"titleNav.next?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.next?.href }\">\n <span class=\"n7-icon-angle-right\"></span>\n </a>\n </div>\n </div>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n <!-- Extended tree -->\n <ng-container *ngTemplateOutlet=\"extendedtree\"></ng-container>\n\n </div>\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <aw-scheda-image-navigator \n [data]=\"lb.widgets['aw-scheda-image-navigator'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-image-navigator'].emit\"></aw-scheda-image-navigator>\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section *ngIf=\"lb.dataSource.contentParts.content\" class=\"aw-scheda__section aw-scheda__description\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section *ngIf=\"lb.dataSource.hasMetadata\" class=\"aw-scheda__section aw-scheda__metadata\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('metadata')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'metadata' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['metadata']\" \n class=\"aw-scheda__section-content-wrapper\">\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('related-entities')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'related-entities' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['related-entities']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('similar-items')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'similar-items' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['similar-items']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n</ng-template>\n\n<ng-template #collapse let-id>\n <div class=\"aw-scheda__collapse\">\n <button class=\"n7-btn n7-btn-light\">\n <span class=\"n7-icon-angle-right\"\n [ngClass]=\"{\n 'n7-icon-angle-right': !!lb.dataSource.sectionCollapseState[id],\n 'n7-icon-angle-down': !lb.dataSource.sectionCollapseState[id]\n }\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #extendedtree>\n <!-- Extended Tree -->\n <section *ngIf=\"lb.dataSource.hasExtendedTree\" id=\"extended-tree-container\" class=\"aw-scheda__section\">\n <div class=\"aw-scheda__section-extended-tree-loader\" *ngIf=\"!(lb.widgets['aw-extended-tree'].ds.out$ | async)\">\n <n7-loader></n7-loader>\n </div>\n <aw-extended-tree\n [data]=\"lb.widgets['aw-extended-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-extended-tree'].emit\"\n [lb]=\"lb\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'extended-tree' }\"></ng-container>\n </aw-extended-tree>\n </section>\n <!-- END // Extended Tree -->\n</ng-template>" }]
|
|
54
54
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ConfigurationService }, { type: i2.LayoutsConfigurationService }, { type: i2.MainStateService }, { type: i3.Title }, { type: i2.CommunicationService }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFDTCxjQUFjLEVBS2YsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsd0JBQXdCLElBQUksTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQU81RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUN6RCxZQUNVLE1BQWMsRUFDZCxLQUFxQixFQUNyQixhQUFtQyxFQUNuQyxvQkFBaUQsRUFDakQsU0FBMkIsRUFDM0IsWUFBbUIsRUFDbkIsYUFBbUM7UUFHM0MsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBVDlELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE2QjtRQUNqRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBTztRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7SUFJN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxXQUFXO1FBQ25CLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7b0hBckNVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLCtFQ2pCcEMsdWxiQStSYzsyRkQ5UUQsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIEFic3RyYWN0TGF5b3V0LFxuICBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgTGF5b3V0c0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBNYWluU3RhdGVTZXJ2aWNlLFxuICBDb21tdW5pY2F0aW9uU2VydmljZVxufSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHsgQXdQYXRyaW1vbmlvTGF5b3V0Q29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4vc2NoZWRhLWxheW91dC5jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdy1zY2hlZGEtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkYS1sYXlvdXQuaHRtbCcsXG59KVxuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdExheW91dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbGF5b3V0c0NvbmZpZ3VyYXRpb246IExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1haW5TdGF0ZTogTWFpblN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsXG4gICAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBDb21tdW5pY2F0aW9uU2VydmljZSxcblxuICApIHtcbiAgICBzdXBlcihsYXlvdXRzQ29uZmlndXJhdGlvbi5nZXQoJ0F3UGF0cmltb25pb0xheW91dENvbmZpZycpIHx8IGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwgdmFyaWFibGVzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdGhlIGxheW91dCdzIGxvZ2ljLlxuICAgKiBJZiByZW1vdmVkLCB0aGV5IG11c3QgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGxheW91dCdzIERhdGFTb3VyY2UgZmlsZSxcbiAgICogYW5kIGZyb20gdGhpcyBmaWxlIGltcG9ydHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFBheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIG1haW5TdGF0ZTogdGhpcy5tYWluU3RhdGUsXG4gICAgICByb3V0ZXI6IHRoaXMucm91dGVyLFxuICAgICAgcm91dGU6IHRoaXMucm91dGUsXG4gICAgICB0aXRsZVNlcnZpY2U6IHRoaXMudGl0bGVTZXJ2aWNlLFxuICAgICAgY29tbXVuaWNhdGlvbjogdGhpcy5jb21tdW5pY2F0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5jb25maWcub3B0aW9ucyB8fCB7fSxcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhdy1zY2hlZGFcIlxuICAgICBpZD1cInNjaGVkYS1sYXlvdXRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19jb250ZW50IG43LXNpZGUtYXV0by1wYWRkaW5nIHN0aWNreS1wYXJlbnRcIlxuICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtY29sbGFwc2VkJyA6IGxiLmRhdGFTb3VyY2Uuc2lkZWJhckNvbGxhcHNlZCB9XCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRyZWVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19zY2hlZGEtd3JhcHBlclwiXG4gICAgICAgICAgICAgW2hpZGRlbl09XCJsYi5kYXRhU291cmNlLmNvbnRlbnRJc0xvYWRpbmdcIj5cblxuICAgICAgICAgICAgPG43LXNtYXJ0LWJyZWFkY3J1bWJzICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5oYXNCcmVhZGNydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtYnJlYWRjcnVtYnMnXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1icmVhZGNydW1icyddLmVtaXRcIj5cbiAgICAgICAgICAgIDwvbjctc21hcnQtYnJlYWRjcnVtYnM+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbGIuZGF0YVNvdXJjZS5oYXNCcmVhZGNydW1iXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdy1zY2hlZGFfX2Zha2UtYnJlYWRjcnVtYnNcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGIuZXZlbnRIYW5kbGVyLmVtaXRJbm5lcigndG9nZ2xlc2lkZWJhcicsIHt9KVwiPlxuICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImF3LXNjaGVkYV9fZmFrZS1icmVhZGNydW1icy1vcGVuXCIgXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5zaWRlYmFyQ29sbGFwc2VkXCI+XG4gICAgICAgICAgICAgICAgICAgIENvbnN1bHRhIGlsIHBhdHJpbW9uaW9cbiAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbGIuZGF0YVNvdXJjZS5jdXJyZW50SWRcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImF3LXNjaGVkYV9faW50cm8tdGV4dFwiXG4gICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibGIuZGF0YVNvdXJjZS5lbXB0eUxhYmVsXCI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdGl0bGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsYi5kYXRhU291cmNlLnRpdGxlTmF2aWdhdGlvbiBhcyB0aXRsZU5hdlwiIGNsYXNzPVwiYXctc2NoZWRhX19wcmV2XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibjctYnRuIG43LWJ0bi1saWdodFwiIFtyb3V0ZXJMaW5rXT1cInRpdGxlTmF2LnByZXY/LmhyZWYgPyBbdGl0bGVOYXYucHJldi5ocmVmXSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGl0bGVOYXYucHJldj8ubGFiZWwgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kaXNhYmxlZCc6ICF0aXRsZU5hdi5wcmV2Py5ocmVmIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibjctaWNvbi1hbmdsZS1sZWZ0XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuZG9jdW1lbnRUeXBlIGFzIGRvY3VtZW50VHlwZVwiIGNsYXNzPVwiYXctc2NoZWRhX19kb2N1bWVudC10eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRvY3VtZW50VHlwZS5pY29uXCIgY2xhc3M9XCJhdy1zY2hlZGFfX2RvY3VtZW50LXR5cGUtaWNvbiB7eyBkb2N1bWVudFR5cGUuaWNvbiB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXctc2NoZWRhX19kb2N1bWVudC10eXBlLWxhYmVsXCI+e3sgZG9jdW1lbnRUeXBlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG43LWlubmVyLXRpdGxlIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1pbm5lci10aXRsZSddLmRzLm91dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICA8L243LWlubmVyLXRpdGxlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsYi5kYXRhU291cmNlLnRpdGxlTmF2aWdhdGlvbiBhcyB0aXRsZU5hdlwiIGNsYXNzPVwiYXctc2NoZWRhX19uZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibjctYnRuIG43LWJ0bi1saWdodFwiIFtyb3V0ZXJMaW5rXT1cInRpdGxlTmF2Lm5leHQ/LmhyZWYgPyBbdGl0bGVOYXYubmV4dC5ocmVmXSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGl0bGVOYXYubmV4dD8ubGFiZWwgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kaXNhYmxlZCc6ICF0aXRsZU5hdi5uZXh0Py5ocmVmIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibjctaWNvbi1hbmdsZS1yaWdodFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gRW1wdHkgc3RhdGUgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxiLmRhdGFTb3VyY2UuaGFzQ29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gQ29udGVudCBzZWN0aW9ucyAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYi5kYXRhU291cmNlLmhhc0NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gRXh0ZW5kZWQgdHJlZSAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHRlbmRlZHRyZWVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RyZWU+XG4gICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdHJlZSBzdGlja3ktdGFyZ2V0XCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLXN0aWNreSc6IGxiLmRhdGFTb3VyY2Uuc2lkZWJhcklzU3RpY2t5IH1cIj5cbiAgICAgICAgPG43LXNpZGViYXItaGVhZGVyIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNpZGViYXItaGVhZGVyJ10uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNpZGViYXItaGVhZGVyJ10uZW1pdFwiPjwvbjctc2lkZWJhci1oZWFkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX3RyZWUtY29udGVudC1sb2FkaW5nXCJcbiAgICAgICAgICAgICAqbmdJZj1cIiEobGIud2lkZ2V0c1snYXctdHJlZSddLmRzLm91dCQgfCBhc3luYylcIj5cbiAgICAgICAgICAgIDxuNy1jb250ZW50LXBsYWNlaG9sZGVyICpuZ0Zvcj1cImxldCBuIG9mIFswLDEsMiwzXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tzOiBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzOiAndHJlZS1wbGFjZWhvbGRlci1pdGVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uNy1jb250ZW50LXBsYWNlaG9sZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdHJlZS1jb250ZW50XCJcbiAgICAgICAgICAgICAoY2xpY2spPVwibGIuZXZlbnRIYW5kbGVyLmVtaXRPdXRlcigndHJlZXBvc2l0aW9uJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JzogbGIuZGF0YVNvdXJjZS50cmVlTWF4SGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdmVyZmxvdyc6ICdhdXRvJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgPG43LXRyZWUgW2RhdGFdPVwibGIud2lkZ2V0c1snYXctdHJlZSddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzWydhdy10cmVlJ10uZW1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFsYi5kYXRhU291cmNlLnNpZGViYXJDb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIDwvbjctdHJlZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uIGF3LXNjaGVkYV9fZW1wdHlcIlxuICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibGIuZGF0YVNvdXJjZS5lbXB0eVN0YXRlU3RyaW5nXCI+XG4gICAgPC9zZWN0aW9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDwhLS0gRGlnaXRhbCBPYmplY3Qgc2VsZWN0aW9uIGRyb3Bkb3duIC0tPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYXctc2NoZWRhX19kaWdpdGFsLW9iamVjdC1kcm9wZG93blwiXG4gICAgICAgICAgICAqbmdJZj1cIihcbiAgICAgICAgICAgICAgICBsYi5kYXRhU291cmNlLmhhc0RpZ2l0YWxPYmplY3RzIFxuICAgICAgICAgICAgICAgICYmIGxiLmRhdGFTb3VyY2UuZGlnaXRhbE9iamVjdHMubGVuZ3RoID4gMVxuICAgICAgICAgICAgKVwiPlxuICAgICAgICA8cCBjbGFzcz1cImF3LXNjaGVkYV9fZGlnaXRhbC1vYmplY3QtZHJvcGRvd24tbGFiZWxcIj5cbiAgICAgICAgICAgIFNlbGV6aW9uYSBsJ29nZ2V0dG8gZGlnaXRhbGUgZGEgdmlzdWFsaXp6YXJlOlxuICAgICAgICA8L3A+XG4gICAgICAgIDxhdy1zY2hlZGEtZHJvcGRvd24gXG4gICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1kcm9wZG93biddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1kcm9wZG93biddLmVtaXRcIj5cbiAgICAgICAgPC9hdy1zY2hlZGEtZHJvcGRvd24+XG4gICAgPC9zZWN0aW9uPlxuICAgIDwhLS0gRU5EIC8vIERpZ2l0YWwgT2JqZWN0IHNlbGVjdGlvbiBkcm9wZG93biAtLT5cblxuICAgIDwhLS0gRGlnaXRhbCBPYmplY3RzOiBpbWFnZXMsIElJUCwgUERGcywgZXh0ZXJuYWwgbGlua3MgLS0+XG4gICAgPHNlY3Rpb24gKm5nSWY9XCJsYi5kYXRhU291cmNlLmN1cnJlbnREaWdpdGFsT2JqZWN0IGFzICRkb1wiIFxuICAgICAgICBjbGFzcz1cImF3LXNjaGVkYV9fbWVkaWEgYXctc2NoZWRhX197eyAkZG8udHlwZSB9fVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgXG4gICAgICAgICAgICAnbmF2aWdhdGlvbi1oaWRkZW4nOiAhKCRkby5oYXNOYXZpZ2F0aW9uJCB8IGFzeW5jKVxuICAgICAgICB9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIiRkby50eXBlXCI+XG4gICAgICAgICAgICA8IS0tIElNQUdFIFZJRVdFUiAoSUlQKSAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZXMtaWlwJ1wiPlxuICAgICAgICAgICAgICAgIDxhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yIFxuICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InXS5lbWl0XCI+PC9hdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yPlxuICAgICAgICAgICAgICAgIDxuNy1pbWFnZS12aWV3ZXIgXG4gICAgICAgICAgICAgICAgKGNvbnRleHRtZW51KT1cImxiLmRhdGFTb3VyY2UuaGFzQ29udGV4dE1lbnUoKVwiIFxuICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1pbWFnZSddLmRzLm91dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDwvbjctaW1hZ2Utdmlld2VyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gSU1BR0UgVklFV0VSIChJSUlGKSAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZXMtaWlpZidcIj5cbiAgICAgICAgICAgICAgICA8YXctc2NoZWRhLWltYWdlLW5hdmlnYXRvciBcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJ10uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJ10uZW1pdFwiPjwvYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcj5cbiAgICAgICAgICAgICAgICA8bjctaW1hZ2Utdmlld2VyIFxuICAgICAgICAgICAgICAgIChjb250ZXh0bWVudSk9XCJsYi5kYXRhU291cmNlLmhhc0NvbnRleHRNZW51KClcIiBcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UnXS5kcy5vdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8L243LWltYWdlLXZpZXdlcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIElNQUdFIFZJRVdFUiAoU2ltcGxlOiBqcGcsIHBuZykgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2VzLXNpbXBsZSdcIj5cbiAgICAgICAgICAgICAgICA8YXctc2NoZWRhLWltYWdlLW5hdmlnYXRvciBcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJ10uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJ10uZW1pdFwiPjwvYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcj5cbiAgICAgICAgICAgICAgICA8bjctaW1hZ2Utdmlld2VyIFxuICAgICAgICAgICAgICAgIChjb250ZXh0bWVudSk9XCJsYi5kYXRhU291cmNlLmhhc0NvbnRleHRNZW51KClcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1pbWFnZSddLmRzLm91dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDwvbjctaW1hZ2Utdmlld2VyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgXG4gICAgICAgICAgICA8IS0tIFBERiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwZGYnXCI+XG4gICAgICAgICAgICAgICAgPGF3LXBkZi12aWV3ZXIgXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLXBkZiddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLXBkZiddLmVtaXRcIj5cbiAgICAgICAgICAgICAgICA8L2F3LXBkZi12aWV3ZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICAgICAgICAgIDwhLS0gRVhURVJOQUwgVVJMIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2V4dGVybmFsJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX2V4dGVybmFsLXVybFwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImF3LXNjaGVkYV9fZXh0ZXJuYWwtdXJsLWxpbmtcIiBocmVmPVwie3sgJGRvLnVybCB9fVwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJGRvLmxhYmVsIHx8IGxiLmRhdGFTb3VyY2UuZXh0ZXJuYWxVcmxUZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm43LWljb24tZXh0ZXJuYWwtbGlua1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VjdGlvbj5cbiAgICA8IS0tIEVORCAvLyBEaWdpdGFsIE9iamVjdHMgLS0+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuY29udGVudFBhcnRzLmNvbnRlbnRcIiBjbGFzcz1cImF3LXNjaGVkYV9fc2VjdGlvbiBhdy1zY2hlZGFfX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBhcnQgb2YgbGIuZGF0YVNvdXJjZS5jb250ZW50UGFydHNcIj5cbiAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJwYXJ0LmNvbnRlbnRcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPCEtLSBNZXRhZGF0YSAtLT5cbiAgICA8c2VjdGlvbiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuaGFzTWV0YWRhdGFcIiBjbGFzcz1cImF3LXNjaGVkYV9fc2VjdGlvbiBhdy1zY2hlZGFfX21ldGFkYXRhXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb24tdGl0bGUtd3JhcHBlclwiIChjbGljayk9XCJsYi5kYXRhU291cmNlLm9uU2VjdGlvbkNvbGxhcHNlKCdtZXRhZGF0YScpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sbGFwc2U7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAnbWV0YWRhdGEnIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX2lubmVyLXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCJsYi5kYXRhU291cmNlLm1ldGFkYXRhU2VjdGlvblRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3tsYi5kYXRhU291cmNlLm1ldGFkYXRhU2VjdGlvblRpdGxlfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbaGlkZGVuXT1cIiEhbGIuZGF0YVNvdXJjZS5zZWN0aW9uQ29sbGFwc2VTdGF0ZVsnbWV0YWRhdGEnXVwiIFxuICAgICAgICBjbGFzcz1cImF3LXNjaGVkYV9fc2VjdGlvbi1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxuNy1tZXRhZGF0YS12aWV3ZXIgW2RhdGFdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLW1ldGFkYXRhJ10uZHMub3V0JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8L243LW1ldGFkYXRhLXZpZXdlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICAgIDwhLS0gRU5EIC8vIE1ldGFkYXRhIC0tPlxuXG4gICAgPCEtLSBSZWxhdGVkIGVudGl0aWVzIC0tPlxuICAgIDxzZWN0aW9uICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5oYXNSZWxhdGVkRW50aXRpZXNcIlxuICAgICAgICAgICAgIGlkPVwicmVsYXRlZC1pdGVtLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb24gYXctc2NoZWRhX19yZWxhdGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb24tdGl0bGUtd3JhcHBlclwiIChjbGljayk9XCJsYi5kYXRhU291cmNlLm9uU2VjdGlvbkNvbGxhcHNlKCdyZWxhdGVkLWVudGl0aWVzJylcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2xsYXBzZTsgY29udGV4dDogeyAkaW1wbGljaXQ6ICdyZWxhdGVkLWVudGl0aWVzJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19pbm5lci10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHt7bGIuZGF0YVNvdXJjZS5yZWxhdGVkRW50aXRpZXNIZWFkZXJ9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtoaWRkZW5dPVwiISFsYi5kYXRhU291cmNlLnNlY3Rpb25Db2xsYXBzZVN0YXRlWydyZWxhdGVkLWVudGl0aWVzJ11cIiBcbiAgICAgICAgY2xhc3M9XCJhdy1zY2hlZGFfX3JlbGF0ZWQtaXRlbXMgYXctaXRlbS1wcmV2aWV3LWxpc3QgbjctZ3JpZC0yXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcmV2aWV3IG9mIChsYi53aWRnZXRzWydhdy1yZWxhdGVkLWVudGl0aWVzJ10uZHMub3V0JCB8IGFzeW5jKT8ucHJldmlld3NcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXctaXRlbS1wcmV2aWV3LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG43LWl0ZW0tcHJldmlldyBbZGF0YV09XCJwcmV2aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzWydhdy1yZWxhdGVkLWVudGl0aWVzJ10uZW1pdFwiPlxuICAgICAgICAgICAgICAgICAgICA8L243LWl0ZW0tcHJldmlldz5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBSZWxhdGlvbiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LWl0ZW0tcHJldmlldy1yZWxhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcmV2aWV3LnJlbGF0aW9uPy52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhdy1pdGVtLXByZXZpZXctcmVsYXRpb25fX2Rlc2NyaXB0aW9uXCI+VGlwbyBkaSByZWxhemlvbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiYXctaXRlbS1wcmV2aWV3LXJlbGF0aW9uX19rZXlcIj57e3ByZXZpZXcucmVsYXRpb24ua2V5fX08L3NwYW4+OiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF3LWl0ZW0tcHJldmlldy1yZWxhdGlvbl9fdmFsdWVcIj57e3ByZXZpZXcucmVsYXRpb24udmFsdWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICAgIDwhLS0gRU5EIC8vIFJlbGF0ZWQgZW50aXRpZXMgLS0+XG5cbiAgICA8IS0tIFNpbWlsYXIgT2JqZWN0cyAtLT5cbiAgICA8c2VjdGlvbiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuaGFzU2ltaWxhckl0ZW1zXCJcbiAgICBpZD1cInJlbGF0ZWQtaXRlbS1jb250YWluZXJcIlxuICAgIGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uIGF3LXNjaGVkYV9fcmVsYXRlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uLXRpdGxlLXdyYXBwZXJcIiAoY2xpY2spPVwibGIuZGF0YVNvdXJjZS5vblNlY3Rpb25Db2xsYXBzZSgnc2ltaWxhci1pdGVtcycpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sbGFwc2U7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAnc2ltaWxhci1pdGVtcycgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9faW5uZXItdGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7e2xiLmRhdGFTb3VyY2Uuc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbaGlkZGVuXT1cIiEhbGIuZGF0YVNvdXJjZS5zZWN0aW9uQ29sbGFwc2VTdGF0ZVsnc2ltaWxhci1pdGVtcyddXCIgXG4gICAgICAgIGNsYXNzPVwiYXctc2NoZWRhX19yZWxhdGVkLWl0ZW1zIGF3LWl0ZW0tcHJldmlldy1saXN0IG43LWdyaWQtMlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJldmlldyBvZiAobGIud2lkZ2V0c1snYXctbGlua2VkLW9iamVjdHMnXS5kcy5vdXQkIHwgYXN5bmMpPy5wcmV2aWV3c1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdy1pdGVtLXByZXZpZXctd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bjctaXRlbS1wcmV2aWV3IFtkYXRhXT1cInByZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snYXctbGlua2VkLW9iamVjdHMnXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbjctaXRlbS1wcmV2aWV3PlxuICAgICAgICAgICAgICAgIDwvZGl2PiBcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPCEtLSBFTkQgLy8gU2ltaWxhciBPYmplY3RzIC0tPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2xsYXBzZSBsZXQtaWQ+XG4gICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fY29sbGFwc2VcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm43LWJ0biBuNy1idG4tbGlnaHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibjctaWNvbi1hbmdsZS1yaWdodFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ243LWljb24tYW5nbGUtcmlnaHQnOiAhIWxiLmRhdGFTb3VyY2Uuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdLFxuICAgICAgICAgICAgICAgICduNy1pY29uLWFuZ2xlLWRvd24nOiAhbGIuZGF0YVNvdXJjZS5zZWN0aW9uQ29sbGFwc2VTdGF0ZVtpZF1cbiAgICAgICAgICAgIH1cIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNleHRlbmRlZHRyZWU+XG4gICAgPCEtLSBFeHRlbmRlZCBUcmVlIC0tPlxuICAgIDxzZWN0aW9uICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5oYXNFeHRlbmRlZFRyZWVcIiBpZD1cImV4dGVuZGVkLXRyZWUtY29udGFpbmVyXCIgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fc2VjdGlvbi1leHRlbmRlZC10cmVlLWxvYWRlclwiICpuZ0lmPVwiIShsYi53aWRnZXRzWydhdy1leHRlbmRlZC10cmVlJ10uZHMub3V0JCB8IGFzeW5jKVwiPlxuICAgICAgICAgICAgPG43LWxvYWRlcj48L243LWxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhdy1leHRlbmRlZC10cmVlXG4gICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LWV4dGVuZGVkLXRyZWUnXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzWydhdy1leHRlbmRlZC10cmVlJ10uZW1pdFwiXG4gICAgICAgIFtsYl09XCJsYlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbGxhcHNlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogJ2V4dGVuZGVkLXRyZWUnIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9hdy1leHRlbmRlZC10cmVlPlxuICAgIDwvc2VjdGlvbj5cbiAgICA8IS0tIEVORCAvLyBFeHRlbmRlZCBUcmVlIC0tPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFDTCxjQUFjLEVBS2YsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsd0JBQXdCLElBQUksTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQU81RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUN6RCxZQUNVLE1BQWMsRUFDZCxLQUFxQixFQUNyQixhQUFtQyxFQUNuQyxvQkFBaUQsRUFDakQsU0FBMkIsRUFDM0IsWUFBbUIsRUFDbkIsYUFBbUM7UUFHM0MsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBVDlELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE2QjtRQUNqRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBTztRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7SUFJN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxXQUFXO1FBQ25CLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7b0hBckNVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLCtFQ2pCcEMsay9hQTRSYzsyRkQzUUQsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIEFic3RyYWN0TGF5b3V0LFxuICBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgTGF5b3V0c0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBNYWluU3RhdGVTZXJ2aWNlLFxuICBDb21tdW5pY2F0aW9uU2VydmljZVxufSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHsgQXdQYXRyaW1vbmlvTGF5b3V0Q29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4vc2NoZWRhLWxheW91dC5jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdy1zY2hlZGEtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkYS1sYXlvdXQuaHRtbCcsXG59KVxuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdExheW91dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbGF5b3V0c0NvbmZpZ3VyYXRpb246IExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1haW5TdGF0ZTogTWFpblN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsXG4gICAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBDb21tdW5pY2F0aW9uU2VydmljZSxcblxuICApIHtcbiAgICBzdXBlcihsYXlvdXRzQ29uZmlndXJhdGlvbi5nZXQoJ0F3UGF0cmltb25pb0xheW91dENvbmZpZycpIHx8IGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwgdmFyaWFibGVzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdGhlIGxheW91dCdzIGxvZ2ljLlxuICAgKiBJZiByZW1vdmVkLCB0aGV5IG11c3QgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGxheW91dCdzIERhdGFTb3VyY2UgZmlsZSxcbiAgICogYW5kIGZyb20gdGhpcyBmaWxlIGltcG9ydHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFBheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIG1haW5TdGF0ZTogdGhpcy5tYWluU3RhdGUsXG4gICAgICByb3V0ZXI6IHRoaXMucm91dGVyLFxuICAgICAgcm91dGU6IHRoaXMucm91dGUsXG4gICAgICB0aXRsZVNlcnZpY2U6IHRoaXMudGl0bGVTZXJ2aWNlLFxuICAgICAgY29tbXVuaWNhdGlvbjogdGhpcy5jb21tdW5pY2F0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5jb25maWcub3B0aW9ucyB8fCB7fSxcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhdy1zY2hlZGFcIlxuICAgICBpZD1cInNjaGVkYS1sYXlvdXRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19jb250ZW50IG43LXNpZGUtYXV0by1wYWRkaW5nIHN0aWNreS1wYXJlbnRcIlxuICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtY29sbGFwc2VkJyA6IGxiLmRhdGFTb3VyY2Uuc2lkZWJhckNvbGxhcHNlZCB9XCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRyZWVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19zY2hlZGEtd3JhcHBlclwiXG4gICAgICAgICAgICAgW2hpZGRlbl09XCJsYi5kYXRhU291cmNlLmNvbnRlbnRJc0xvYWRpbmdcIj5cblxuICAgICAgICAgICAgPG43LXNtYXJ0LWJyZWFkY3J1bWJzICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5oYXNCcmVhZGNydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtYnJlYWRjcnVtYnMnXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1icmVhZGNydW1icyddLmVtaXRcIj5cbiAgICAgICAgICAgIDwvbjctc21hcnQtYnJlYWRjcnVtYnM+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbGIuZGF0YVNvdXJjZS5oYXNCcmVhZGNydW1iXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdy1zY2hlZGFfX2Zha2UtYnJlYWRjcnVtYnNcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGIuZXZlbnRIYW5kbGVyLmVtaXRJbm5lcigndG9nZ2xlc2lkZWJhcicsIHt9KVwiPlxuICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImF3LXNjaGVkYV9fZmFrZS1icmVhZGNydW1icy1vcGVuXCIgXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5zaWRlYmFyQ29sbGFwc2VkXCI+XG4gICAgICAgICAgICAgICAgICAgIENvbnN1bHRhIGlsIHBhdHJpbW9uaW9cbiAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbGIuZGF0YVNvdXJjZS5jdXJyZW50SWRcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImF3LXNjaGVkYV9faW50cm8tdGV4dFwiXG4gICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibGIuZGF0YVNvdXJjZS5lbXB0eUxhYmVsXCI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdGl0bGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsYi5kYXRhU291cmNlLnRpdGxlTmF2aWdhdGlvbiBhcyB0aXRsZU5hdlwiIGNsYXNzPVwiYXctc2NoZWRhX19wcmV2XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibjctYnRuIG43LWJ0bi1saWdodFwiIFtyb3V0ZXJMaW5rXT1cInRpdGxlTmF2LnByZXY/LmhyZWYgPyBbdGl0bGVOYXYucHJldi5ocmVmXSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGl0bGVOYXYucHJldj8ubGFiZWwgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kaXNhYmxlZCc6ICF0aXRsZU5hdi5wcmV2Py5ocmVmIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibjctaWNvbi1hbmdsZS1sZWZ0XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuZG9jdW1lbnRUeXBlIGFzIGRvY3VtZW50VHlwZVwiIGNsYXNzPVwiYXctc2NoZWRhX19kb2N1bWVudC10eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRvY3VtZW50VHlwZS5pY29uXCIgY2xhc3M9XCJhdy1zY2hlZGFfX2RvY3VtZW50LXR5cGUtaWNvbiB7eyBkb2N1bWVudFR5cGUuaWNvbiB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXctc2NoZWRhX19kb2N1bWVudC10eXBlLWxhYmVsXCI+e3sgZG9jdW1lbnRUeXBlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG43LWlubmVyLXRpdGxlIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1pbm5lci10aXRsZSddLmRzLm91dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICA8L243LWlubmVyLXRpdGxlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsYi5kYXRhU291cmNlLnRpdGxlTmF2aWdhdGlvbiBhcyB0aXRsZU5hdlwiIGNsYXNzPVwiYXctc2NoZWRhX19uZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibjctYnRuIG43LWJ0bi1saWdodFwiIFtyb3V0ZXJMaW5rXT1cInRpdGxlTmF2Lm5leHQ/LmhyZWYgPyBbdGl0bGVOYXYubmV4dC5ocmVmXSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGl0bGVOYXYubmV4dD8ubGFiZWwgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kaXNhYmxlZCc6ICF0aXRsZU5hdi5uZXh0Py5ocmVmIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibjctaWNvbi1hbmdsZS1yaWdodFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gRW1wdHkgc3RhdGUgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxiLmRhdGFTb3VyY2UuaGFzQ29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gQ29udGVudCBzZWN0aW9ucyAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYi5kYXRhU291cmNlLmhhc0NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gRXh0ZW5kZWQgdHJlZSAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHRlbmRlZHRyZWVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RyZWU+XG4gICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdHJlZSBzdGlja3ktdGFyZ2V0XCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLXN0aWNreSc6IGxiLmRhdGFTb3VyY2Uuc2lkZWJhcklzU3RpY2t5IH1cIj5cbiAgICAgICAgPG43LXNpZGViYXItaGVhZGVyIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNpZGViYXItaGVhZGVyJ10uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNpZGViYXItaGVhZGVyJ10uZW1pdFwiPjwvbjctc2lkZWJhci1oZWFkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX3RyZWUtY29udGVudC1sb2FkaW5nXCJcbiAgICAgICAgICAgICAqbmdJZj1cIiEobGIud2lkZ2V0c1snYXctdHJlZSddLmRzLm91dCQgfCBhc3luYylcIj5cbiAgICAgICAgICAgIDxuNy1jb250ZW50LXBsYWNlaG9sZGVyICpuZ0Zvcj1cImxldCBuIG9mIFswLDEsMiwzXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tzOiBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzOiAndHJlZS1wbGFjZWhvbGRlci1pdGVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uNy1jb250ZW50LXBsYWNlaG9sZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fdHJlZS1jb250ZW50XCJcbiAgICAgICAgICAgICAoY2xpY2spPVwibGIuZXZlbnRIYW5kbGVyLmVtaXRPdXRlcigndHJlZXBvc2l0aW9uJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JzogbGIuZGF0YVNvdXJjZS50cmVlTWF4SGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdmVyZmxvdyc6ICdhdXRvJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgPG43LXRyZWUgW2RhdGFdPVwibGIud2lkZ2V0c1snYXctdHJlZSddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzWydhdy10cmVlJ10uZW1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFsYi5kYXRhU291cmNlLnNpZGViYXJDb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIDwvbjctdHJlZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uIGF3LXNjaGVkYV9fZW1wdHlcIlxuICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibGIuZGF0YVNvdXJjZS5lbXB0eVN0YXRlU3RyaW5nXCI+XG4gICAgPC9zZWN0aW9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDwhLS0gRGlnaXRhbCBPYmplY3Qgc2VsZWN0aW9uIGRyb3Bkb3duIC0tPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYXctc2NoZWRhX19kaWdpdGFsLW9iamVjdC1kcm9wZG93blwiXG4gICAgICAgICAgICAqbmdJZj1cIihcbiAgICAgICAgICAgICAgICBsYi5kYXRhU291cmNlLmhhc0RpZ2l0YWxPYmplY3RzIFxuICAgICAgICAgICAgICAgICYmIGxiLmRhdGFTb3VyY2UuZGlnaXRhbE9iamVjdHMubGVuZ3RoID4gMVxuICAgICAgICAgICAgKVwiPlxuICAgICAgICA8cCBjbGFzcz1cImF3LXNjaGVkYV9fZGlnaXRhbC1vYmplY3QtZHJvcGRvd24tbGFiZWxcIj5cbiAgICAgICAgICAgIFNlbGV6aW9uYSBsJ29nZ2V0dG8gZGlnaXRhbGUgZGEgdmlzdWFsaXp6YXJlOlxuICAgICAgICA8L3A+XG4gICAgICAgIDxhdy1zY2hlZGEtZHJvcGRvd24gXG4gICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1kcm9wZG93biddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1kcm9wZG93biddLmVtaXRcIj5cbiAgICAgICAgPC9hdy1zY2hlZGEtZHJvcGRvd24+XG4gICAgPC9zZWN0aW9uPlxuICAgIDwhLS0gRU5EIC8vIERpZ2l0YWwgT2JqZWN0IHNlbGVjdGlvbiBkcm9wZG93biAtLT5cblxuICAgIDwhLS0gRGlnaXRhbCBPYmplY3RzOiBpbWFnZXMsIElJUCwgUERGcywgZXh0ZXJuYWwgbGlua3MgLS0+XG4gICAgPHNlY3Rpb24gKm5nSWY9XCJsYi5kYXRhU291cmNlLmN1cnJlbnREaWdpdGFsT2JqZWN0IGFzICRkb1wiIFxuICAgICAgICBjbGFzcz1cImF3LXNjaGVkYV9fbWVkaWEgYXctc2NoZWRhX197eyAkZG8udHlwZSB9fVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCIkZG8udHlwZVwiPlxuICAgICAgICAgICAgPCEtLSBJTUFHRSBWSUVXRVIgKElJUCkgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2VzLWlpcCdcIj5cbiAgICAgICAgICAgICAgICA8YXctc2NoZWRhLWltYWdlLW5hdmlnYXRvciBcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJ10uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJ10uZW1pdFwiPjwvYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcj5cbiAgICAgICAgICAgICAgICA8bjctaW1hZ2Utdmlld2VyIFxuICAgICAgICAgICAgICAgIChjb250ZXh0bWVudSk9XCJsYi5kYXRhU291cmNlLmhhc0NvbnRleHRNZW51KClcIiBcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UnXS5kcy5vdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8L243LWltYWdlLXZpZXdlcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIElNQUdFIFZJRVdFUiAoSUlJRikgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2VzLWlpaWYnXCI+XG4gICAgICAgICAgICAgICAgPGF3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3IgXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvciddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvciddLmVtaXRcIj48L2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3I+XG4gICAgICAgICAgICAgICAgPG43LWltYWdlLXZpZXdlciBcbiAgICAgICAgICAgICAgICAoY29udGV4dG1lbnUpPVwibGIuZGF0YVNvdXJjZS5oYXNDb250ZXh0TWVudSgpXCIgXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLWltYWdlJ10uZHMub3V0JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgPC9uNy1pbWFnZS12aWV3ZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBJTUFHRSBWSUVXRVIgKFNpbXBsZToganBnLCBwbmcpIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlcy1zaW1wbGUnXCI+XG4gICAgICAgICAgICAgICAgPGF3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3IgXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvciddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvciddLmVtaXRcIj48L2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3I+XG4gICAgICAgICAgICAgICAgPG43LWltYWdlLXZpZXdlciBcbiAgICAgICAgICAgICAgICAoY29udGV4dG1lbnUpPVwibGIuZGF0YVNvdXJjZS5oYXNDb250ZXh0TWVudSgpXCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1zY2hlZGEtaW1hZ2UnXS5kcy5vdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8L243LWltYWdlLXZpZXdlcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgPCEtLSBQREYgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGRmJ1wiPlxuICAgICAgICAgICAgICAgIDxhdy1wZGYtdmlld2VyIFxuICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1wZGYnXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1wZGYnXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgPC9hdy1wZGYtdmlld2VyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgXG4gICAgICAgICAgICA8IS0tIEVYVEVSTkFMIFVSTCAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidleHRlcm5hbCdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19leHRlcm5hbC11cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJhdy1zY2hlZGFfX2V4dGVybmFsLXVybC1saW5rXCIgaHJlZj1cInt7ICRkby51cmwgfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICRkby5sYWJlbCB8fCBsYi5kYXRhU291cmNlLmV4dGVybmFsVXJsVGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuNy1pY29uLWV4dGVybmFsLWxpbmtcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPCEtLSBFTkQgLy8gRGlnaXRhbCBPYmplY3RzIC0tPlxuXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJsYi5kYXRhU291cmNlLmNvbnRlbnRQYXJ0cy5jb250ZW50XCIgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb24gYXctc2NoZWRhX19kZXNjcmlwdGlvblwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwYXJ0IG9mIGxiLmRhdGFTb3VyY2UuY29udGVudFBhcnRzXCI+XG4gICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwicGFydC5jb250ZW50XCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDwhLS0gTWV0YWRhdGEgLS0+XG4gICAgPHNlY3Rpb24gKm5nSWY9XCJsYi5kYXRhU291cmNlLmhhc01ldGFkYXRhXCIgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb24gYXctc2NoZWRhX19tZXRhZGF0YVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uLXRpdGxlLXdyYXBwZXJcIiAoY2xpY2spPVwibGIuZGF0YVNvdXJjZS5vblNlY3Rpb25Db2xsYXBzZSgnbWV0YWRhdGEnKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbGxhcHNlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogJ21ldGFkYXRhJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19pbm5lci10aXRsZVwiXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5tZXRhZGF0YVNlY3Rpb25UaXRsZVwiPlxuICAgICAgICAgICAgICAgIHt7bGIuZGF0YVNvdXJjZS5tZXRhZGF0YVNlY3Rpb25UaXRsZX19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW2hpZGRlbl09XCIhIWxiLmRhdGFTb3VyY2Uuc2VjdGlvbkNvbGxhcHNlU3RhdGVbJ21ldGFkYXRhJ11cIiBcbiAgICAgICAgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb24tY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bjctbWV0YWRhdGEtdmlld2VyIFtkYXRhXT1cImxiLndpZGdldHNbJ2F3LXNjaGVkYS1tZXRhZGF0YSddLmRzLm91dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPC9uNy1tZXRhZGF0YS12aWV3ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgICA8IS0tIEVORCAvLyBNZXRhZGF0YSAtLT5cblxuICAgIDwhLS0gUmVsYXRlZCBlbnRpdGllcyAtLT5cbiAgICA8c2VjdGlvbiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuaGFzUmVsYXRlZEVudGl0aWVzXCJcbiAgICAgICAgICAgICBpZD1cInJlbGF0ZWQtaXRlbS1jb250YWluZXJcIlxuICAgICAgICAgICAgIGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uIGF3LXNjaGVkYV9fcmVsYXRlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uLXRpdGxlLXdyYXBwZXJcIiAoY2xpY2spPVwibGIuZGF0YVNvdXJjZS5vblNlY3Rpb25Db2xsYXBzZSgncmVsYXRlZC1lbnRpdGllcycpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sbGFwc2U7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAncmVsYXRlZC1lbnRpdGllcycgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9faW5uZXItdGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7e2xiLmRhdGFTb3VyY2UucmVsYXRlZEVudGl0aWVzSGVhZGVyfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbaGlkZGVuXT1cIiEhbGIuZGF0YVNvdXJjZS5zZWN0aW9uQ29sbGFwc2VTdGF0ZVsncmVsYXRlZC1lbnRpdGllcyddXCIgXG4gICAgICAgIGNsYXNzPVwiYXctc2NoZWRhX19yZWxhdGVkLWl0ZW1zIGF3LWl0ZW0tcHJldmlldy1saXN0IG43LWdyaWQtMlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJldmlldyBvZiAobGIud2lkZ2V0c1snYXctcmVsYXRlZC1lbnRpdGllcyddLmRzLm91dCQgfCBhc3luYyk/LnByZXZpZXdzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF3LWl0ZW0tcHJldmlldy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuNy1pdGVtLXByZXZpZXcgW2RhdGFdPVwicHJldmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snYXctcmVsYXRlZC1lbnRpdGllcyddLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uNy1pdGVtLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gUmVsYXRpb24gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdy1pdGVtLXByZXZpZXctcmVsYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJldmlldy5yZWxhdGlvbj8udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXctaXRlbS1wcmV2aWV3LXJlbGF0aW9uX19kZXNjcmlwdGlvblwiPlRpcG8gZGkgcmVsYXppb25lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImF3LWl0ZW0tcHJldmlldy1yZWxhdGlvbl9fa2V5XCI+e3twcmV2aWV3LnJlbGF0aW9uLmtleX19PC9zcGFuPjogLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdy1pdGVtLXByZXZpZXctcmVsYXRpb25fX3ZhbHVlXCI+e3twcmV2aWV3LnJlbGF0aW9uLnZhbHVlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgICA8IS0tIEVORCAvLyBSZWxhdGVkIGVudGl0aWVzIC0tPlxuXG4gICAgPCEtLSBTaW1pbGFyIE9iamVjdHMgLS0+XG4gICAgPHNlY3Rpb24gKm5nSWY9XCJsYi5kYXRhU291cmNlLmhhc1NpbWlsYXJJdGVtc1wiXG4gICAgaWQ9XCJyZWxhdGVkLWl0ZW0tY29udGFpbmVyXCJcbiAgICBjbGFzcz1cImF3LXNjaGVkYV9fc2VjdGlvbiBhdy1zY2hlZGFfX3JlbGF0ZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF3LXNjaGVkYV9fc2VjdGlvbi10aXRsZS13cmFwcGVyXCIgKGNsaWNrKT1cImxiLmRhdGFTb3VyY2Uub25TZWN0aW9uQ29sbGFwc2UoJ3NpbWlsYXItaXRlbXMnKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbGxhcHNlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogJ3NpbWlsYXItaXRlbXMnIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX2lubmVyLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3tsYi5kYXRhU291cmNlLnNpbWlsYXJJdGVtc1NlY3Rpb25UaXRsZX19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW2hpZGRlbl09XCIhIWxiLmRhdGFTb3VyY2Uuc2VjdGlvbkNvbGxhcHNlU3RhdGVbJ3NpbWlsYXItaXRlbXMnXVwiIFxuICAgICAgICBjbGFzcz1cImF3LXNjaGVkYV9fcmVsYXRlZC1pdGVtcyBhdy1pdGVtLXByZXZpZXctbGlzdCBuNy1ncmlkLTJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByZXZpZXcgb2YgKGxiLndpZGdldHNbJ2F3LWxpbmtlZC1vYmplY3RzJ10uZHMub3V0JCB8IGFzeW5jKT8ucHJldmlld3NcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXctaXRlbS1wcmV2aWV3LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG43LWl0ZW0tcHJldmlldyBbZGF0YV09XCJwcmV2aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ2F3LWxpbmtlZC1vYmplY3RzJ10uZW1pdFwiPlxuICAgICAgICAgICAgICAgICAgICA8L243LWl0ZW0tcHJldmlldz5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICAgIDwhLS0gRU5EIC8vIFNpbWlsYXIgT2JqZWN0cyAtLT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29sbGFwc2UgbGV0LWlkPlxuICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX2NvbGxhcHNlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJuNy1idG4gbjctYnRuLWxpZ2h0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm43LWljb24tYW5nbGUtcmlnaHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICduNy1pY29uLWFuZ2xlLXJpZ2h0JzogISFsYi5kYXRhU291cmNlLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2lkXSxcbiAgICAgICAgICAgICAgICAnbjctaWNvbi1hbmdsZS1kb3duJzogIWxiLmRhdGFTb3VyY2Uuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdXG4gICAgICAgICAgICB9XCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZXh0ZW5kZWR0cmVlPlxuICAgIDwhLS0gRXh0ZW5kZWQgVHJlZSAtLT5cbiAgICA8c2VjdGlvbiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuaGFzRXh0ZW5kZWRUcmVlXCIgaWQ9XCJleHRlbmRlZC10cmVlLWNvbnRhaW5lclwiIGNsYXNzPVwiYXctc2NoZWRhX19zZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdy1zY2hlZGFfX3NlY3Rpb24tZXh0ZW5kZWQtdHJlZS1sb2FkZXJcIiAqbmdJZj1cIiEobGIud2lkZ2V0c1snYXctZXh0ZW5kZWQtdHJlZSddLmRzLm91dCQgfCBhc3luYylcIj5cbiAgICAgICAgICAgIDxuNy1sb2FkZXI+PC9uNy1sb2FkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXctZXh0ZW5kZWQtdHJlZVxuICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydhdy1leHRlbmRlZC10cmVlJ10uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snYXctZXh0ZW5kZWQtdHJlZSddLmVtaXRcIlxuICAgICAgICBbbGJdPVwibGJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2xsYXBzZTsgY29udGV4dDogeyAkaW1wbGljaXQ6ICdleHRlbmRlZC10cmVlJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYXctZXh0ZW5kZWQtdHJlZT5cbiAgICA8L3NlY3Rpb24+XG4gICAgPCEtLSBFTkQgLy8gRXh0ZW5kZWQgVHJlZSAtLT5cbjwvbmctdGVtcGxhdGU+Il19
|