ca-components 0.0.53 → 0.0.55
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/esm2022/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.mjs +5 -5
- package/esm2022/lib/components/ca-filters/ca-filter.component.mjs +4 -4
- package/esm2022/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.mjs +4 -4
- package/esm2022/lib/components/ca-input/ca-input.component.mjs +4 -4
- package/esm2022/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.mjs +4 -4
- package/esm2022/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.mjs +4 -4
- package/esm2022/lib/components/ca-input/components/ca-input-password/ca-input-password.component.mjs +4 -4
- package/esm2022/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.mjs +4 -4
- package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +4 -4
- package/esm2022/lib/components/ca-map/ca-map.component.mjs +3 -3
- package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
- package/esm2022/lib/components/ca-note/ca-note.component.mjs +4 -4
- package/esm2022/lib/components/ca-note-container/ca-note-container.component.mjs +4 -4
- package/esm2022/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.mjs +4 -4
- package/esm2022/lib/components/ca-rating-review/ca-rating-review.component.mjs +4 -4
- package/esm2022/lib/components/ca-rating-review/components/ca-rating-review-user/ca-rating-review-user.component.mjs +6 -6
- package/esm2022/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.mjs +4 -4
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +82 -50
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.d.ts +2 -2
- package/lib/components/ca-map/ca-map.component.d.ts +2 -2
- package/lib/components/ca-map/models/map.model.d.ts +26 -4
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -280,7 +280,7 @@ export class CaMapComponent {
|
|
|
280
280
|
this.directionsRenderers.forEach((renderer) => renderer.setMap(null));
|
|
281
281
|
}
|
|
282
282
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaMapComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
283
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaMapComponent, isStandalone: true, selector: "app-ca-map", inputs: { data: "data" }, outputs: { markerClick: "markerClick" }, viewQueries: [{ propertyName: "maps", first: true, predicate: GoogleMap, descendants: true }, { propertyName: "marker", predicate: ["marker"], descendants: true }, { propertyName: "infoWindowsView", predicate: MapInfoWindow, descendants: true }, { propertyName: "markerRouting", predicate: ["markerRouting"], descendants: true }, { propertyName: "infoWindowsViewRouting", predicate: MapInfoWindow, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<google-map\n height=\"
|
|
283
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaMapComponent, isStandalone: true, selector: "app-ca-map", inputs: { data: "data" }, outputs: { markerClick: "markerClick" }, viewQueries: [{ propertyName: "maps", first: true, predicate: GoogleMap, descendants: true }, { propertyName: "marker", predicate: ["marker"], descendants: true }, { propertyName: "infoWindowsView", predicate: MapInfoWindow, descendants: true }, { propertyName: "markerRouting", predicate: ["markerRouting"], descendants: true }, { propertyName: "infoWindowsViewRouting", predicate: MapInfoWindow, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<google-map\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"data.mapZoom\"\n [center]=\"data.center\"\n [options]=\"data.mapOptions\"\n (idle)=\"onMapReady()\"\n>\n <map-marker\n #marker=\"mapMarker\"\n *ngFor=\"let markeritem of data.markers; let i = index; trackBy: identity\"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIcon !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsView=\"mapInfoWindow\">\n <app-ca-map-dropdown\n [isAccidentMap]=\"data.isAccidentMap ?? false\"\n ></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n <map-marker\n *ngFor=\"let marker of data.clustermarkers; let i = index; trackBy: identity\"\n [position]=\"marker.position\"\n [icon]=\"marker.icon\"\n [label]=\"marker.label!\"\n [title]=\"marker?.title!\"\n >\n </map-marker>\n\n <map-marker\n #markerRouting=\"mapMarker\"\n *ngFor=\"\n let markeritem of data.routingMarkers;\n let i = index;\n trackBy: identity\n \"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIconRouting !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onRoutingMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsViewRouting=\"mapInfoWindow\">\n <app-ca-map-dropdown [isAccidentMap]=\"false\"></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n</google-map>\n", styles: [""], dependencies: [{ kind: "ngmodule", type:
|
|
284
284
|
//Modules
|
|
285
285
|
GoogleMapsModule }, { kind: "component", type: i1.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i1.MapInfoWindow, selector: "map-info-window", inputs: ["options", "position"], outputs: ["closeclick", "contentChanged", "domready", "positionChanged", "zindexChanged"], exportAs: ["mapInfoWindow"] }, { kind: "directive", type: i1.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type:
|
|
286
286
|
//Components
|
|
@@ -295,7 +295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
295
295
|
AngularSvgIconModule,
|
|
296
296
|
//Components
|
|
297
297
|
CaMapDropdownComponent,
|
|
298
|
-
], template: "<google-map\n height=\"
|
|
298
|
+
], template: "<google-map\n height=\"100%\"\n width=\"100%\"\n [zoom]=\"data.mapZoom\"\n [center]=\"data.center\"\n [options]=\"data.mapOptions\"\n (idle)=\"onMapReady()\"\n>\n <map-marker\n #marker=\"mapMarker\"\n *ngFor=\"let markeritem of data.markers; let i = index; trackBy: identity\"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIcon !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsView=\"mapInfoWindow\">\n <app-ca-map-dropdown\n [isAccidentMap]=\"data.isAccidentMap ?? false\"\n ></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n <map-marker\n *ngFor=\"let marker of data.clustermarkers; let i = index; trackBy: identity\"\n [position]=\"marker.position\"\n [icon]=\"marker.icon\"\n [label]=\"marker.label!\"\n [title]=\"marker?.title!\"\n >\n </map-marker>\n\n <map-marker\n #markerRouting=\"mapMarker\"\n *ngFor=\"\n let markeritem of data.routingMarkers;\n let i = index;\n trackBy: identity\n \"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIconRouting !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onRoutingMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsViewRouting=\"mapInfoWindow\">\n <app-ca-map-dropdown [isAccidentMap]=\"false\"></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n</google-map>\n" }]
|
|
299
299
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
300
300
|
type: Input
|
|
301
301
|
}], markerClick: [{
|
|
@@ -316,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
316
316
|
type: ViewChildren,
|
|
317
317
|
args: [MapInfoWindow]
|
|
318
318
|
}] } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC9jYS1tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL2NhLW1hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLFNBQVM7QUFDVCxPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNO0FBQ04sT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsWUFBWTtBQUNaLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGLE9BQU87QUFDUCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFPaEUsZUFBZTtBQUNmLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxZQUFZO0FBQ1osT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBZ0I3RSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFtQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUU5QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBUS9ELDZCQUF3QixHQUFrQixJQUFJLENBQUM7UUFFL0Msb0NBQStC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RTtnQkFDZixNQUFNO3NCQUE3QixZQUFZO3VCQUFDLFFBQVE7Z0JBQ08sZUFBZTtzQkFBM0MsWUFBWTt1QkFBQyxhQUFhO2dCQUNJLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFFdEIsc0JBQXNCO3NCQUQ1QixZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy9Nb2R1bGVzXG5pbXBvcnQge1xuICBHb29nbGVNYXAsXG4gIEdvb2dsZU1hcHNNb2R1bGUsXG4gIE1hcEluZm9XaW5kb3csXG4gIE1hcE1hcmtlcixcbn0gZnJvbSAnQGFuZ3VsYXIvZ29vZ2xlLW1hcHMnO1xuXG4vL2ljb25cbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vQ29tcG9uZW50c1xuaW1wb3J0IHsgQ2FNYXBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50JztcblxuLy9FbnVtc1xuaW1wb3J0IHsgR29vZ2xlTWFwRW51bSB9IGZyb20gJy4uL2NhLW1hcC9lbnVtcy9nb29nbGUtbWFwLmVudW0nO1xuLy9tb2RlbHNcbmltcG9ydCB7XG4gIElNYXBNYXJrZXJzLFxuICBJTWFwUm91dGVQYXRoLFxuICBJTWFwU3Rvcmllcyxcbn0gZnJvbSAnLi4vY2EtbWFwL21vZGVscy9tYXAubW9kZWwnO1xuLy9IZWxwZXJGdW50aW9uXG5pbXBvcnQgeyBNYXBIZWxwZXIgfSBmcm9tICcuLi9jYS1tYXAvdXRpbHMvaGVscGVycy9tYXAuaGVscGVyJztcbi8vc3ZnLXJvdXRlc1xuaW1wb3J0IHsgTWFwU3ZnUm91dGVzIH0gZnJvbSAnLi4vY2EtbWFwL3V0aWxzL21hcC1zdmctcm91dGVzL21hcC1zdmctcm91dGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLW1hcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1tYXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1tYXAuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vTW9kdWxlc1xuICAgIEdvb2dsZU1hcHNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgIC8vQ29tcG9uZW50c1xuICAgIENhTWFwRHJvcGRvd25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhTWFwQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgQElucHV0KCkgZGF0YSE6IElNYXBTdG9yaWVzIHwgYW55O1xuICBAT3V0cHV0KCkgbWFya2VyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCk7XG4gIEBWaWV3Q2hpbGQoR29vZ2xlTWFwLCB7IHN0YXRpYzogZmFsc2UgfSkgbWFwcyE6IEdvb2dsZU1hcDtcbiAgQFZpZXdDaGlsZHJlbignbWFya2VyJykgbWFya2VyITogUXVlcnlMaXN0PE1hcE1hcmtlcj47XG4gIEBWaWV3Q2hpbGRyZW4oTWFwSW5mb1dpbmRvdykgaW5mb1dpbmRvd3NWaWV3ITogUXVlcnlMaXN0PE1hcEluZm9XaW5kb3c+O1xuICBAVmlld0NoaWxkcmVuKCdtYXJrZXJSb3V0aW5nJykgbWFya2VyUm91dGluZyE6IFF1ZXJ5TGlzdDxNYXBNYXJrZXI+O1xuICBAVmlld0NoaWxkcmVuKE1hcEluZm9XaW5kb3cpXG4gIHB1YmxpYyBpbmZvV2luZG93c1ZpZXdSb3V0aW5nITogUXVlcnlMaXN0PE1hcEluZm9XaW5kb3c+O1xuICBwdWJsaWMgY3VycmVudGx5T3BlbldpbmRvdyE6IE1hcEluZm9XaW5kb3cgfCBudWxsO1xuICBwdWJsaWMgY3VycmVudGx5T3BlbldpbmRvd0luZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nITogTWFwSW5mb1dpbmRvdyB8IG51bGw7XG4gIHB1YmxpYyBjdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBwcmV2aW91c0ljb25VcmwhOiBzdHJpbmc7XG4gIHB1YmxpYyBmb2N1c2VkSWNvbiE6IG51bWJlcjtcbiAgcHVibGljIHByZXZpb3VzSWNvblVybFJvdXRpbmchOiBzdHJpbmc7XG4gIHB1YmxpYyBmb2N1c2VkSWNvblJvdXRpbmchOiBudW1iZXI7XG4gIHByaXZhdGUgZGlyZWN0aW9uU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5EaXJlY3Rpb25zU2VydmljZSgpO1xuICBwdWJsaWMgZGlyZWN0aW9uc1JlbmRlcmVyczogZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1JlbmRlcmVyW10gPSBbXTtcbiAgcHVibGljIGluaXRpYWxJY29uczoge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGxhYmVsT3JpZ2luPzogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbDtcbiAgfVtdID0gW107XG4gIHB1YmxpYyBpbml0aWFsTWFya2VySWNvbnM6IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBsYWJlbE9yaWdpbj86IGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWw7XG4gIH1bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RvcmVJbml0aWFsSWNvbkZvck1hcmtlcigpO1xuICAgIHRoaXMuc3RvcmVJbml0aWFsSWNvbkZvclJvdXRpbmdNYXJrZXIoKTtcbiAgICAvLyBSZXNldCBhbGwgaWNvbnMgdG8gdGhlaXIgaW5pdGlhbCBzdGF0ZSBvbiBwYWdlIGxvYWRcbiAgICB0aGlzLnJlc2V0TWFya2Vyc0ljb25zKCk7XG4gICAgdGhpcy5yZXNldFJvdXRpbmdNYXJrZXJzKCk7XG4gICAgLy9EaXNwbGF5IHJvdXRlcyBmb3Igcm91dGluZ01hcmtlcnNcbiAgICB0aGlzLmNhbGN1bGF0ZUFuZERpc3BsYXlSb3V0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydyb3V0aW5nTWFya2VycyddKSB7XG4gICAgICB0aGlzLmRhdGEucm91dGluZ01hcmtlcnMgPSBjaGFuZ2VzWydyb3V0aW5nTWFya2VycyddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RvcmVJbml0aWFsSWNvbkZvck1hcmtlcigpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEhLm1hcmtlcnM/LmZvckVhY2goKG1hcmtlcjogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSA9IHtcbiAgICAgICAgdXJsOiBtYXJrZXIuaWNvbiEudXJsLFxuICAgICAgICBsYWJlbE9yaWdpbjogbWFya2VyLmljb24hLmxhYmVsT3JpZ2luLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9yZUluaXRpYWxJY29uRm9yUm91dGluZ01hcmtlcigpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEucm91dGluZ01hcmtlcnM/LmZvckVhY2goKG1hcmtlcjogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuaW5pdGlhbEljb25zW2luZGV4XSA9IHtcbiAgICAgICAgdXJsOiBtYXJrZXIuaWNvbiEudXJsLFxuICAgICAgICBsYWJlbE9yaWdpbjogbWFya2VyLmljb24hLmxhYmVsT3JpZ2luLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1hcmtlckNsaWNrKFxuICAgIGk6IG51bWJlcixcbiAgICBldmVudDogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCxcbiAgICBtYXJrZXJpdGVtOiBJTWFwTWFya2Vyc1xuICApOiB2b2lkIHtcbiAgICBpZiAobWFya2VyaXRlbT8uaW5mb1dpbmRvd0NvbnRlbnQpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dJbmRleCA9PT0gaSAmJiB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cpIHtcbiAgICAgICAgY29uc3QgaW5mb1dpbmRvdyA9IHRoaXMuaW5mb1dpbmRvd3NWaWV3LnRvQXJyYXkoKVtpXTtcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGN1cnJlbnRseSBvcGVuIGluZm8gd2luZG93IGFuZCByZXNldCB0aGUgaW5kZXhcbiAgICAgICAgdGhpcy5kYXRhLm1hcmtlcnMhLm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBpZiAoaW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxNYXJrZXJJY29uc1tpbmRleF0hLnVybCxcbiAgICAgICAgICAgICAgbGFiZWxPcmlnaW46IHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSEubGFiZWxPcmlnaW4hLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGluZm9XaW5kb3cuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXggPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWFya2VySW5kZXggPSB0aGlzLm1hcmtlci50b0FycmF5KClbaV07XG4gICAgICAgIGNvbnN0IGluZm9XaW5kb3cgPSB0aGlzLmluZm9XaW5kb3dzVmlldy50b0FycmF5KClbaV07XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cpIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5mb1dpbmRvdykge1xuICAgICAgICAgIHRoaXMuZGF0YS5tYXJrZXJzIS5tYXAoKGl0ZW06IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSWNvbiA9IGk7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0xhYmVsID0gZmFsc2U7XG4gICAgICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgICAgICB1cmw6IHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSEudXJsLFxuICAgICAgICAgICAgICAgIHNjYWxlZFNpemU6IG5ldyBnb29nbGUubWFwcy5TaXplKDcwLCA3MCksXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnNob3dMYWJlbCA9IHRydWU7XG4gICAgICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgICAgICB1cmw6IHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSEudXJsLFxuICAgICAgICAgICAgICAgIGxhYmVsT3JpZ2luOiB0aGlzLmluaXRpYWxNYXJrZXJJY29uc1tpbmRleF0hLmxhYmVsT3JpZ2luLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaW5mb1dpbmRvdy5vcGVuKG1hcmtlckluZGV4KTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cgPSBpbmZvV2luZG93O1xuICAgICAgICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvd0luZGV4ID0gaTtcbiAgICAgICAgICB0aGlzLm1hcmtlckNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGlyZWN0aW9uc09uTWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcHM/Lmdvb2dsZU1hcCkge1xuICAgICAgdGhpcy5kaXJlY3Rpb25zUmVuZGVyZXJzLmZvckVhY2goKHJlbmRlcmVyKSA9PlxuICAgICAgICByZW5kZXJlci5zZXRNYXAodGhpcy5tYXBzPy5nb29nbGVNYXAhKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlQW5kRGlzcGxheVJvdXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEucm91dGVQYXRocykge1xuICAgICAgLy8gQ2xlYXIgcHJldmlvdXMgZGlyZWN0aW9ucyByZW5kZXJlcnNcbiAgICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycy5mb3JFYWNoKChyZW5kZXJlcikgPT4gcmVuZGVyZXIuc2V0TWFwKG51bGwpKTtcbiAgICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycyA9IFtdO1xuXG4gICAgICB0aGlzLmRhdGEucm91dGVQYXRocyEuZm9yRWFjaCgocm91dGU6IElNYXBSb3V0ZVBhdGgpID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdDogZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1JlcXVlc3QgPSB7XG4gICAgICAgICAgb3JpZ2luOiByb3V0ZS5wYXRoWzBdLFxuICAgICAgICAgIGRlc3RpbmF0aW9uOiByb3V0ZS5wYXRoW3JvdXRlLnBhdGgubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgd2F5cG9pbnRzOiByb3V0ZS5wYXRoXG4gICAgICAgICAgICAuc2xpY2UoMSwgcm91dGUucGF0aC5sZW5ndGggLSAxKVxuICAgICAgICAgICAgLm1hcCgocG9zaXRpb24pID0+ICh7IGxvY2F0aW9uOiBwb3NpdGlvbiB9KSksXG4gICAgICAgICAgdHJhdmVsTW9kZTogZ29vZ2xlLm1hcHMuVHJhdmVsTW9kZS5CSUNZQ0xJTkcsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kaXJlY3Rpb25TZXJ2aWNlLnJvdXRlKHJlcXVlc3QsIChyZXN1bHQsIHN0YXR1cykgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgPT09IGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNTdGF0dXMuT0sgJiYgcmVzdWx0Py5yb3V0ZXNbMF0pIHtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbnNSZW5kZXJlciA9IG5ldyBnb29nbGUubWFwcy5EaXJlY3Rpb25zUmVuZGVyZXIoe1xuICAgICAgICAgICAgICBzdXBwcmVzc0luZm9XaW5kb3dzOiB0cnVlLFxuICAgICAgICAgICAgICBzdXBwcmVzc01hcmtlcnM6IHRydWUsXG4gICAgICAgICAgICAgIHByZXNlcnZlVmlld3BvcnQ6IHRydWUsXG4gICAgICAgICAgICAgIHBvbHlsaW5lT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOiByb3V0ZS5zdHJva2VDb2xvciB8fCBHb29nbGVNYXBFbnVtLlNUUk9LRV9DT0xPUixcbiAgICAgICAgICAgICAgICBzdHJva2VPcGFjaXR5OlxuICAgICAgICAgICAgICAgICAgcm91dGUuc3Ryb2tlT3BhY2l0eSB8fCBHb29nbGVNYXBFbnVtLlNUUk9LRV9PUEFDSVRZLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaXJlY3Rpb25zUmVuZGVyZXIuc2V0RGlyZWN0aW9ucyhyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25zUmVuZGVyZXJzLnB1c2goZGlyZWN0aW9uc1JlbmRlcmVyKTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlyZWN0aW9uc09uTWFwKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUm91dGluZ01hcmtlckNsaWNrKFxuICAgIGk6IG51bWJlcixcbiAgICBldmVudDogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCxcbiAgICBtYXJrZXJpdGVtOiBJTWFwTWFya2Vyc1xuICApOiB2b2lkIHtcbiAgICBpZiAobWFya2VyaXRlbT8uaW5mb1dpbmRvd0NvbnRlbnQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID09PSBpICYmXG4gICAgICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvd1JvdXRpbmdcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpbmZvV2luZG93ID0gdGhpcy5pbmZvV2luZG93c1ZpZXdSb3V0aW5nLnRvQXJyYXkoKVtpXTtcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGN1cnJlbnRseSBvcGVuIGluZm8gd2luZG93IGFuZCByZXNldCB0aGUgaW5kZXhcbiAgICAgICAgdGhpcy5kYXRhLnJvdXRpbmdNYXJrZXJzIS5tYXAoKGl0ZW06IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgaWYgKGluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICBpdGVtLmljb24gPSB7XG4gICAgICAgICAgICAgIHVybDogdGhpcy5pbml0aWFsSWNvbnNbaW5kZXhdIS51cmwsXG4gICAgICAgICAgICAgIGxhYmVsT3JpZ2luOiB0aGlzLmluaXRpYWxJY29uc1tpbmRleF0hLmxhYmVsT3JpZ2luLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGluZm9XaW5kb3cuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1hcmtlckluZGV4ID0gdGhpcy5tYXJrZXJSb3V0aW5nLnRvQXJyYXkoKVtpXTtcbiAgICAgICAgY29uc3QgaW5mb1dpbmRvdyA9IHRoaXMuaW5mb1dpbmRvd3NWaWV3Um91dGluZy50b0FycmF5KClbaV07XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmZvV2luZG93KSB7XG4gICAgICAgICAgLy8gUmVzdG9yZSB0aGUgcHJldmlvdXMgaWNvbiBmb3IgdGhlIHByZXZpb3VzbHkgZm9jdXNlZCByb3V0aW5nIG1hcmtlclxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nICE9PSBpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0ZvY3VzZWRJdGVtID1cbiAgICAgICAgICAgICAgdGhpcy5kYXRhLnJvdXRpbmdNYXJrZXJzIVt0aGlzLmZvY3VzZWRJY29uUm91dGluZ107XG4gICAgICAgICAgICBpZiAocHJldmlvdXNGb2N1c2VkSXRlbSkge1xuICAgICAgICAgICAgICBwcmV2aW91c0ZvY3VzZWRJdGVtLmljb24gPSB7XG4gICAgICAgICAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxJY29uc1t0aGlzLmZvY3VzZWRJY29uUm91dGluZ10udXJsLFxuICAgICAgICAgICAgICAgIGxhYmVsT3JpZ2luOlxuICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsSWNvbnNbdGhpcy5mb2N1c2VkSWNvblJvdXRpbmddLmxhYmVsT3JpZ2luLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY3VycmVudCBtYXJrZXJcbiAgICAgICAgICB0aGlzLmRhdGEucm91dGluZ01hcmtlcnMhLm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gaSkge1xuICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzSWNvblVybFJvdXRpbmcgPSBpdGVtLmljb24gPyBpdGVtLmljb24udXJsIDogJyc7XG4gICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nID0gaTtcbiAgICAgICAgICAgICAgdGhpcy5zaG93TGFiZWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgaXRlbS5pY29uID0ge1xuICAgICAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5pc1VuaXRWaWV3U3RvcHMgfHwgdGhpcy5kYXRhLmlzRHJpdmVyTWlsZXNcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmljb24hLnVybFxuICAgICAgICAgICAgICAgICAgICA6IE1hcFN2Z1JvdXRlcy5tYXJrZXJTdmdSb3V0ZSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0xhYmVsID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGluZm9XaW5kb3cub3BlbihtYXJrZXJJbmRleCk7XG4gICAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZyA9IGluZm9XaW5kb3c7XG4gICAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID0gaTtcbiAgICAgICAgICB0aGlzLm1hcmtlckNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5tYXBzLmdvb2dsZU1hcD8uYWRkTGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgdGhpcy5pbmZvV2luZG93c1ZpZXcuZm9yRWFjaCgod2luZG93OiBNYXBJbmZvV2luZG93KSA9PiB7XG4gICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cgPSBudWxsO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmluZm9XaW5kb3dzVmlld1JvdXRpbmcuZm9yRWFjaCgod2luZG93OiBNYXBJbmZvV2luZG93KSA9PiB7XG4gICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nID0gbnVsbDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kYXRhLm1hcmtlcnM/Lm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGk6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaSA9PT0gdGhpcy5mb2N1c2VkSWNvbikge1xuICAgICAgICAgIGl0ZW0uaWNvbiA9IHsgdXJsOiBpdGVtLmljb24gPyBpdGVtLmljb24udXJsIDogJycgfTtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZGF0YS5yb3V0aW5nTWFya2Vycz8ubWFwKChpdGVtOiBJTWFwTWFya2VycywgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpID09PSB0aGlzLmZvY3VzZWRJY29uUm91dGluZykge1xuICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgIHVybDogdGhpcy5pbml0aWFsSWNvbnNbaV0udXJsLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0TWFya2Vyc0ljb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5tYXJrZXJzPy5mb3JFYWNoKChtYXJrZXI6IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBtYXJrZXIuaWNvbiA9IHtcbiAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxNYXJrZXJJY29uc1tpbmRleF0udXJsLFxuICAgICAgICBsYWJlbE9yaWdpbjogdGhpcy5pbml0aWFsTWFya2VySWNvbnNbaW5kZXhdLmxhYmVsT3JpZ2luLFxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFJvdXRpbmdNYXJrZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5yb3V0aW5nTWFya2Vycz8uZm9yRWFjaCgobWFya2VyOiBJTWFwTWFya2VycywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgbWFya2VyLmljb24gPSB7XG4gICAgICAgIHVybDogbWFya2VyLmljb24hLnVybCxcbiAgICAgICAgbGFiZWxPcmlnaW46IG1hcmtlci5pY29uIS5sYWJlbE9yaWdpbixcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25NYXBSZWFkeSgpOiB7XG4gICAgZmlsbENvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbiAgICBmaWxsT3BhY2l0eT86IG51bWJlcjtcbiAgfSB8IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEuc3RhdGVCb3VuZGFyaWVzVXJsKSB7XG4gICAgICBjb25zdCBzdGF0ZUJvdW5kYXJpZXNVcmwgPSB0aGlzLmRhdGEuc3RhdGVCb3VuZGFyaWVzVXJsLnVybDtcbiAgICAgIHRoaXMubWFwcy5nb29nbGVNYXA/LmRhdGEubG9hZEdlb0pzb24oc3RhdGVCb3VuZGFyaWVzVXJsKTtcblxuICAgICAgdGhpcy5tYXBzLmdvb2dsZU1hcD8uZGF0YS5zZXRTdHlsZSgoZmVhdHVyZSkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZURlbnNpdHkgPSBmZWF0dXJlLmdldFByb3BlcnR5KCdkZW5zaXR5Jyk7XG4gICAgICAgIGNvbnN0IHsgZmlsbENvbG9yLCBmaWxsT3BhY2l0eSB9ID0gTWFwSGVscGVyLmdldEZpbGxDb2xvckZvclN0YXRlKFxuICAgICAgICAgIHN0YXRlRGVuc2l0eSBhcyBudW1iZXIsXG4gICAgICAgICAgdGhpcy5kYXRhLnZpZXcgfHwgJydcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmaWxsQ29sb3I6IGZpbGxDb2xvcixcbiAgICAgICAgICBzdHJva2VDb2xvcjogJyNFRUVFRUUnLFxuICAgICAgICAgIHN0cm9rZVdlaWdodDogMC42LFxuICAgICAgICAgIGZpbGxPcGFjaXR5OiBmaWxsT3BhY2l0eSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycy5mb3JFYWNoKChyZW5kZXJlcikgPT4gcmVuZGVyZXIuc2V0TWFwKG51bGwpKTtcbiAgfVxufVxuIiwiPGdvb2dsZS1tYXBcbiAgaGVpZ2h0PVwiNTAwcHhcIlxuICB3aWR0aD1cIjEwMCVcIlxuICBbem9vbV09XCJkYXRhLm1hcFpvb21cIlxuICBbY2VudGVyXT1cImRhdGEuY2VudGVyXCJcbiAgW29wdGlvbnNdPVwiZGF0YS5tYXBPcHRpb25zXCJcbiAgKGlkbGUpPVwib25NYXBSZWFkeSgpXCJcbj5cbiAgPG1hcC1tYXJrZXJcbiAgICAjbWFya2VyPVwibWFwTWFya2VyXCJcbiAgICAqbmdGb3I9XCJsZXQgbWFya2VyaXRlbSBvZiBkYXRhLm1hcmtlcnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IGlkZW50aXR5XCJcbiAgICBbcG9zaXRpb25dPVwibWFya2VyaXRlbS5wb3NpdGlvblwiXG4gICAgW2ljb25dPVwibWFya2VyaXRlbS5pY29uIVwiXG4gICAgW2xhYmVsXT1cImZvY3VzZWRJY29uICE9PSBpID8gbWFya2VyaXRlbS5sYWJlbCEgOiAnJ1wiXG4gICAgW3RpdGxlXT1cIm1hcmtlcml0ZW0udGl0bGUhXCJcbiAgICBbb3B0aW9uc109XCJtYXJrZXJpdGVtLm9wdGlvbnMhXCJcbiAgICAobWFwQ2xpY2spPVwib25NYXJrZXJDbGljayhpLCAkZXZlbnQsIG1hcmtlcml0ZW0pXCJcbiAgPlxuICAgIDxtYXAtaW5mby13aW5kb3cgI2luZm9XaW5kb3dzVmlldz1cIm1hcEluZm9XaW5kb3dcIj5cbiAgICAgIDxhcHAtY2EtbWFwLWRyb3Bkb3duXG4gICAgICAgIFtpc0FjY2lkZW50TWFwXT1cImRhdGEuaXNBY2NpZGVudE1hcCA/PyBmYWxzZVwiXG4gICAgICA+PC9hcHAtY2EtbWFwLWRyb3Bkb3duPlxuICAgIDwvbWFwLWluZm8td2luZG93PlxuICA8L21hcC1tYXJrZXI+XG4gIDxtYXAtbWFya2VyXG4gICAgKm5nRm9yPVwibGV0IG1hcmtlciBvZiBkYXRhLmNsdXN0ZXJtYXJrZXJzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiBpZGVudGl0eVwiXG4gICAgW3Bvc2l0aW9uXT1cIm1hcmtlci5wb3NpdGlvblwiXG4gICAgW2ljb25dPVwibWFya2VyLmljb25cIlxuICAgIFtsYWJlbF09XCJtYXJrZXIubGFiZWwhXCJcbiAgICBbdGl0bGVdPVwibWFya2VyPy50aXRsZSFcIlxuICA+XG4gIDwvbWFwLW1hcmtlcj5cblxuICA8bWFwLW1hcmtlclxuICAgICNtYXJrZXJSb3V0aW5nPVwibWFwTWFya2VyXCJcbiAgICAqbmdGb3I9XCJcbiAgICAgIGxldCBtYXJrZXJpdGVtIG9mIGRhdGEucm91dGluZ01hcmtlcnM7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgdHJhY2tCeTogaWRlbnRpdHlcbiAgICBcIlxuICAgIFtwb3NpdGlvbl09XCJtYXJrZXJpdGVtLnBvc2l0aW9uXCJcbiAgICBbaWNvbl09XCJtYXJrZXJpdGVtLmljb24hXCJcbiAgICBbbGFiZWxdPVwiZm9jdXNlZEljb25Sb3V0aW5nICE9PSBpID8gbWFya2VyaXRlbS5sYWJlbCEgOiAnJ1wiXG4gICAgW3RpdGxlXT1cIm1hcmtlcml0ZW0udGl0bGUhXCJcbiAgICBbb3B0aW9uc109XCJtYXJrZXJpdGVtLm9wdGlvbnMhXCJcbiAgICAobWFwQ2xpY2spPVwib25Sb3V0aW5nTWFya2VyQ2xpY2soaSwgJGV2ZW50LCBtYXJrZXJpdGVtKVwiXG4gID5cbiAgICA8bWFwLWluZm8td2luZG93ICNpbmZvV2luZG93c1ZpZXdSb3V0aW5nPVwibWFwSW5mb1dpbmRvd1wiPlxuICAgICAgPGFwcC1jYS1tYXAtZHJvcGRvd24gW2lzQWNjaWRlbnRNYXBdPVwiZmFsc2VcIj48L2FwcC1jYS1tYXAtZHJvcGRvd24+XG4gICAgPC9tYXAtaW5mby13aW5kb3c+XG4gIDwvbWFwLW1hcmtlcj5cbjwvZ29vZ2xlLW1hcD5cbiJdfQ==
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC9jYS1tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL2NhLW1hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLFNBQVM7QUFDVCxPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNO0FBQ04sT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsWUFBWTtBQUNaLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGLE9BQU87QUFDUCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFPaEUsZUFBZTtBQUNmLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxZQUFZO0FBQ1osT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBZ0I3RSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFtQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUU5QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBUS9ELDZCQUF3QixHQUFrQixJQUFJLENBQUM7UUFFL0Msb0NBQStC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RTtnQkFDZixNQUFNO3NCQUE3QixZQUFZO3VCQUFDLFFBQVE7Z0JBQ08sZUFBZTtzQkFBM0MsWUFBWTt1QkFBQyxhQUFhO2dCQUNJLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFFdEIsc0JBQXNCO3NCQUQ1QixZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy9Nb2R1bGVzXG5pbXBvcnQge1xuICBHb29nbGVNYXAsXG4gIEdvb2dsZU1hcHNNb2R1bGUsXG4gIE1hcEluZm9XaW5kb3csXG4gIE1hcE1hcmtlcixcbn0gZnJvbSAnQGFuZ3VsYXIvZ29vZ2xlLW1hcHMnO1xuXG4vL2ljb25cbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vQ29tcG9uZW50c1xuaW1wb3J0IHsgQ2FNYXBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50JztcblxuLy9FbnVtc1xuaW1wb3J0IHsgR29vZ2xlTWFwRW51bSB9IGZyb20gJy4uL2NhLW1hcC9lbnVtcy9nb29nbGUtbWFwLmVudW0nO1xuLy9tb2RlbHNcbmltcG9ydCB7XG4gIElNYXBNYXJrZXJzLFxuICBJTWFwUm91dGVQYXRoLFxuICBJQ2FNYXBQcm9wcyxcbn0gZnJvbSAnLi4vY2EtbWFwL21vZGVscy9tYXAubW9kZWwnO1xuLy9IZWxwZXJGdW50aW9uXG5pbXBvcnQgeyBNYXBIZWxwZXIgfSBmcm9tICcuLi9jYS1tYXAvdXRpbHMvaGVscGVycy9tYXAuaGVscGVyJztcbi8vc3ZnLXJvdXRlc1xuaW1wb3J0IHsgTWFwU3ZnUm91dGVzIH0gZnJvbSAnLi4vY2EtbWFwL3V0aWxzL21hcC1zdmctcm91dGVzL21hcC1zdmctcm91dGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLW1hcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1tYXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1tYXAuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vTW9kdWxlc1xuICAgIEdvb2dsZU1hcHNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgIC8vQ29tcG9uZW50c1xuICAgIENhTWFwRHJvcGRvd25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhTWFwQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgQElucHV0KCkgZGF0YSE6IElDYU1hcFByb3BzIHwgYW55O1xuICBAT3V0cHV0KCkgbWFya2VyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQ+KCk7XG4gIEBWaWV3Q2hpbGQoR29vZ2xlTWFwLCB7IHN0YXRpYzogZmFsc2UgfSkgbWFwcyE6IEdvb2dsZU1hcDtcbiAgQFZpZXdDaGlsZHJlbignbWFya2VyJykgbWFya2VyITogUXVlcnlMaXN0PE1hcE1hcmtlcj47XG4gIEBWaWV3Q2hpbGRyZW4oTWFwSW5mb1dpbmRvdykgaW5mb1dpbmRvd3NWaWV3ITogUXVlcnlMaXN0PE1hcEluZm9XaW5kb3c+O1xuICBAVmlld0NoaWxkcmVuKCdtYXJrZXJSb3V0aW5nJykgbWFya2VyUm91dGluZyE6IFF1ZXJ5TGlzdDxNYXBNYXJrZXI+O1xuICBAVmlld0NoaWxkcmVuKE1hcEluZm9XaW5kb3cpXG4gIHB1YmxpYyBpbmZvV2luZG93c1ZpZXdSb3V0aW5nITogUXVlcnlMaXN0PE1hcEluZm9XaW5kb3c+O1xuICBwdWJsaWMgY3VycmVudGx5T3BlbldpbmRvdyE6IE1hcEluZm9XaW5kb3cgfCBudWxsO1xuICBwdWJsaWMgY3VycmVudGx5T3BlbldpbmRvd0luZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nITogTWFwSW5mb1dpbmRvdyB8IG51bGw7XG4gIHB1YmxpYyBjdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBwcmV2aW91c0ljb25VcmwhOiBzdHJpbmc7XG4gIHB1YmxpYyBmb2N1c2VkSWNvbiE6IG51bWJlcjtcbiAgcHVibGljIHByZXZpb3VzSWNvblVybFJvdXRpbmchOiBzdHJpbmc7XG4gIHB1YmxpYyBmb2N1c2VkSWNvblJvdXRpbmchOiBudW1iZXI7XG4gIHByaXZhdGUgZGlyZWN0aW9uU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5EaXJlY3Rpb25zU2VydmljZSgpO1xuICBwdWJsaWMgZGlyZWN0aW9uc1JlbmRlcmVyczogZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1JlbmRlcmVyW10gPSBbXTtcbiAgcHVibGljIGluaXRpYWxJY29uczoge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGxhYmVsT3JpZ2luPzogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbDtcbiAgfVtdID0gW107XG4gIHB1YmxpYyBpbml0aWFsTWFya2VySWNvbnM6IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBsYWJlbE9yaWdpbj86IGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWw7XG4gIH1bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RvcmVJbml0aWFsSWNvbkZvck1hcmtlcigpO1xuICAgIHRoaXMuc3RvcmVJbml0aWFsSWNvbkZvclJvdXRpbmdNYXJrZXIoKTtcbiAgICAvLyBSZXNldCBhbGwgaWNvbnMgdG8gdGhlaXIgaW5pdGlhbCBzdGF0ZSBvbiBwYWdlIGxvYWRcbiAgICB0aGlzLnJlc2V0TWFya2Vyc0ljb25zKCk7XG4gICAgdGhpcy5yZXNldFJvdXRpbmdNYXJrZXJzKCk7XG4gICAgLy9EaXNwbGF5IHJvdXRlcyBmb3Igcm91dGluZ01hcmtlcnNcbiAgICB0aGlzLmNhbGN1bGF0ZUFuZERpc3BsYXlSb3V0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydyb3V0aW5nTWFya2VycyddKSB7XG4gICAgICB0aGlzLmRhdGEucm91dGluZ01hcmtlcnMgPSBjaGFuZ2VzWydyb3V0aW5nTWFya2VycyddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RvcmVJbml0aWFsSWNvbkZvck1hcmtlcigpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEhLm1hcmtlcnM/LmZvckVhY2goKG1hcmtlcjogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSA9IHtcbiAgICAgICAgdXJsOiBtYXJrZXIuaWNvbiEudXJsLFxuICAgICAgICBsYWJlbE9yaWdpbjogbWFya2VyLmljb24hLmxhYmVsT3JpZ2luLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9yZUluaXRpYWxJY29uRm9yUm91dGluZ01hcmtlcigpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEucm91dGluZ01hcmtlcnM/LmZvckVhY2goKG1hcmtlcjogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuaW5pdGlhbEljb25zW2luZGV4XSA9IHtcbiAgICAgICAgdXJsOiBtYXJrZXIuaWNvbiEudXJsLFxuICAgICAgICBsYWJlbE9yaWdpbjogbWFya2VyLmljb24hLmxhYmVsT3JpZ2luLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1hcmtlckNsaWNrKFxuICAgIGk6IG51bWJlcixcbiAgICBldmVudDogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCxcbiAgICBtYXJrZXJpdGVtOiBJTWFwTWFya2Vyc1xuICApOiB2b2lkIHtcbiAgICBpZiAobWFya2VyaXRlbT8uaW5mb1dpbmRvd0NvbnRlbnQpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dJbmRleCA9PT0gaSAmJiB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cpIHtcbiAgICAgICAgY29uc3QgaW5mb1dpbmRvdyA9IHRoaXMuaW5mb1dpbmRvd3NWaWV3LnRvQXJyYXkoKVtpXTtcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGN1cnJlbnRseSBvcGVuIGluZm8gd2luZG93IGFuZCByZXNldCB0aGUgaW5kZXhcbiAgICAgICAgdGhpcy5kYXRhLm1hcmtlcnMhLm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBpZiAoaW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxNYXJrZXJJY29uc1tpbmRleF0hLnVybCxcbiAgICAgICAgICAgICAgbGFiZWxPcmlnaW46IHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSEubGFiZWxPcmlnaW4hLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGluZm9XaW5kb3cuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXggPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWFya2VySW5kZXggPSB0aGlzLm1hcmtlci50b0FycmF5KClbaV07XG4gICAgICAgIGNvbnN0IGluZm9XaW5kb3cgPSB0aGlzLmluZm9XaW5kb3dzVmlldy50b0FycmF5KClbaV07XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cpIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5mb1dpbmRvdykge1xuICAgICAgICAgIHRoaXMuZGF0YS5tYXJrZXJzIS5tYXAoKGl0ZW06IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSWNvbiA9IGk7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0xhYmVsID0gZmFsc2U7XG4gICAgICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgICAgICB1cmw6IHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSEudXJsLFxuICAgICAgICAgICAgICAgIHNjYWxlZFNpemU6IG5ldyBnb29nbGUubWFwcy5TaXplKDcwLCA3MCksXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnNob3dMYWJlbCA9IHRydWU7XG4gICAgICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgICAgICB1cmw6IHRoaXMuaW5pdGlhbE1hcmtlckljb25zW2luZGV4XSEudXJsLFxuICAgICAgICAgICAgICAgIGxhYmVsT3JpZ2luOiB0aGlzLmluaXRpYWxNYXJrZXJJY29uc1tpbmRleF0hLmxhYmVsT3JpZ2luLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaW5mb1dpbmRvdy5vcGVuKG1hcmtlckluZGV4KTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cgPSBpbmZvV2luZG93O1xuICAgICAgICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvd0luZGV4ID0gaTtcbiAgICAgICAgICB0aGlzLm1hcmtlckNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGlyZWN0aW9uc09uTWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcHM/Lmdvb2dsZU1hcCkge1xuICAgICAgdGhpcy5kaXJlY3Rpb25zUmVuZGVyZXJzLmZvckVhY2goKHJlbmRlcmVyKSA9PlxuICAgICAgICByZW5kZXJlci5zZXRNYXAodGhpcy5tYXBzPy5nb29nbGVNYXAhKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlQW5kRGlzcGxheVJvdXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEucm91dGVQYXRocykge1xuICAgICAgLy8gQ2xlYXIgcHJldmlvdXMgZGlyZWN0aW9ucyByZW5kZXJlcnNcbiAgICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycy5mb3JFYWNoKChyZW5kZXJlcikgPT4gcmVuZGVyZXIuc2V0TWFwKG51bGwpKTtcbiAgICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycyA9IFtdO1xuXG4gICAgICB0aGlzLmRhdGEucm91dGVQYXRocyEuZm9yRWFjaCgocm91dGU6IElNYXBSb3V0ZVBhdGgpID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdDogZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1JlcXVlc3QgPSB7XG4gICAgICAgICAgb3JpZ2luOiByb3V0ZS5wYXRoWzBdLFxuICAgICAgICAgIGRlc3RpbmF0aW9uOiByb3V0ZS5wYXRoW3JvdXRlLnBhdGgubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgd2F5cG9pbnRzOiByb3V0ZS5wYXRoXG4gICAgICAgICAgICAuc2xpY2UoMSwgcm91dGUucGF0aC5sZW5ndGggLSAxKVxuICAgICAgICAgICAgLm1hcCgocG9zaXRpb24pID0+ICh7IGxvY2F0aW9uOiBwb3NpdGlvbiB9KSksXG4gICAgICAgICAgdHJhdmVsTW9kZTogZ29vZ2xlLm1hcHMuVHJhdmVsTW9kZS5CSUNZQ0xJTkcsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kaXJlY3Rpb25TZXJ2aWNlLnJvdXRlKHJlcXVlc3QsIChyZXN1bHQsIHN0YXR1cykgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgPT09IGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNTdGF0dXMuT0sgJiYgcmVzdWx0Py5yb3V0ZXNbMF0pIHtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbnNSZW5kZXJlciA9IG5ldyBnb29nbGUubWFwcy5EaXJlY3Rpb25zUmVuZGVyZXIoe1xuICAgICAgICAgICAgICBzdXBwcmVzc0luZm9XaW5kb3dzOiB0cnVlLFxuICAgICAgICAgICAgICBzdXBwcmVzc01hcmtlcnM6IHRydWUsXG4gICAgICAgICAgICAgIHByZXNlcnZlVmlld3BvcnQ6IHRydWUsXG4gICAgICAgICAgICAgIHBvbHlsaW5lT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOiByb3V0ZS5zdHJva2VDb2xvciB8fCBHb29nbGVNYXBFbnVtLlNUUk9LRV9DT0xPUixcbiAgICAgICAgICAgICAgICBzdHJva2VPcGFjaXR5OlxuICAgICAgICAgICAgICAgICAgcm91dGUuc3Ryb2tlT3BhY2l0eSB8fCBHb29nbGVNYXBFbnVtLlNUUk9LRV9PUEFDSVRZLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaXJlY3Rpb25zUmVuZGVyZXIuc2V0RGlyZWN0aW9ucyhyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25zUmVuZGVyZXJzLnB1c2goZGlyZWN0aW9uc1JlbmRlcmVyKTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlyZWN0aW9uc09uTWFwKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUm91dGluZ01hcmtlckNsaWNrKFxuICAgIGk6IG51bWJlcixcbiAgICBldmVudDogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCxcbiAgICBtYXJrZXJpdGVtOiBJTWFwTWFya2Vyc1xuICApOiB2b2lkIHtcbiAgICBpZiAobWFya2VyaXRlbT8uaW5mb1dpbmRvd0NvbnRlbnQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID09PSBpICYmXG4gICAgICAgIHRoaXMuY3VycmVudGx5T3BlbldpbmRvd1JvdXRpbmdcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpbmZvV2luZG93ID0gdGhpcy5pbmZvV2luZG93c1ZpZXdSb3V0aW5nLnRvQXJyYXkoKVtpXTtcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGN1cnJlbnRseSBvcGVuIGluZm8gd2luZG93IGFuZCByZXNldCB0aGUgaW5kZXhcbiAgICAgICAgdGhpcy5kYXRhLnJvdXRpbmdNYXJrZXJzIS5tYXAoKGl0ZW06IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgaWYgKGluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICBpdGVtLmljb24gPSB7XG4gICAgICAgICAgICAgIHVybDogdGhpcy5pbml0aWFsSWNvbnNbaW5kZXhdIS51cmwsXG4gICAgICAgICAgICAgIGxhYmVsT3JpZ2luOiB0aGlzLmluaXRpYWxJY29uc1tpbmRleF0hLmxhYmVsT3JpZ2luLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGluZm9XaW5kb3cuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1hcmtlckluZGV4ID0gdGhpcy5tYXJrZXJSb3V0aW5nLnRvQXJyYXkoKVtpXTtcbiAgICAgICAgY29uc3QgaW5mb1dpbmRvdyA9IHRoaXMuaW5mb1dpbmRvd3NWaWV3Um91dGluZy50b0FycmF5KClbaV07XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmZvV2luZG93KSB7XG4gICAgICAgICAgLy8gUmVzdG9yZSB0aGUgcHJldmlvdXMgaWNvbiBmb3IgdGhlIHByZXZpb3VzbHkgZm9jdXNlZCByb3V0aW5nIG1hcmtlclxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nICE9PSBpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0ZvY3VzZWRJdGVtID1cbiAgICAgICAgICAgICAgdGhpcy5kYXRhLnJvdXRpbmdNYXJrZXJzIVt0aGlzLmZvY3VzZWRJY29uUm91dGluZ107XG4gICAgICAgICAgICBpZiAocHJldmlvdXNGb2N1c2VkSXRlbSkge1xuICAgICAgICAgICAgICBwcmV2aW91c0ZvY3VzZWRJdGVtLmljb24gPSB7XG4gICAgICAgICAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxJY29uc1t0aGlzLmZvY3VzZWRJY29uUm91dGluZ10udXJsLFxuICAgICAgICAgICAgICAgIGxhYmVsT3JpZ2luOlxuICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsSWNvbnNbdGhpcy5mb2N1c2VkSWNvblJvdXRpbmddLmxhYmVsT3JpZ2luLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY3VycmVudCBtYXJrZXJcbiAgICAgICAgICB0aGlzLmRhdGEucm91dGluZ01hcmtlcnMhLm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gaSkge1xuICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzSWNvblVybFJvdXRpbmcgPSBpdGVtLmljb24gPyBpdGVtLmljb24udXJsIDogJyc7XG4gICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEljb25Sb3V0aW5nID0gaTtcbiAgICAgICAgICAgICAgdGhpcy5zaG93TGFiZWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgaXRlbS5pY29uID0ge1xuICAgICAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5pc1VuaXRWaWV3U3RvcHMgfHwgdGhpcy5kYXRhLmlzRHJpdmVyTWlsZXNcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmljb24hLnVybFxuICAgICAgICAgICAgICAgICAgICA6IE1hcFN2Z1JvdXRlcy5tYXJrZXJTdmdSb3V0ZSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0xhYmVsID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGluZm9XaW5kb3cub3BlbihtYXJrZXJJbmRleCk7XG4gICAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93Um91dGluZyA9IGluZm9XaW5kb3c7XG4gICAgICAgICAgdGhpcy5jdXJyZW50bHlPcGVuV2luZG93SW5kZXhSb3V0aW5nID0gaTtcbiAgICAgICAgICB0aGlzLm1hcmtlckNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5tYXBzLmdvb2dsZU1hcD8uYWRkTGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgdGhpcy5pbmZvV2luZG93c1ZpZXcuZm9yRWFjaCgod2luZG93OiBNYXBJbmZvV2luZG93KSA9PiB7XG4gICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3cgPSBudWxsO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmluZm9XaW5kb3dzVmlld1JvdXRpbmcuZm9yRWFjaCgod2luZG93OiBNYXBJbmZvV2luZG93KSA9PiB7XG4gICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRseU9wZW5XaW5kb3dSb3V0aW5nID0gbnVsbDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kYXRhLm1hcmtlcnM/Lm1hcCgoaXRlbTogSU1hcE1hcmtlcnMsIGk6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaSA9PT0gdGhpcy5mb2N1c2VkSWNvbikge1xuICAgICAgICAgIGl0ZW0uaWNvbiA9IHsgdXJsOiBpdGVtLmljb24gPyBpdGVtLmljb24udXJsIDogJycgfTtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZGF0YS5yb3V0aW5nTWFya2Vycz8ubWFwKChpdGVtOiBJTWFwTWFya2VycywgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpID09PSB0aGlzLmZvY3VzZWRJY29uUm91dGluZykge1xuICAgICAgICAgIGl0ZW0uaWNvbiA9IHtcbiAgICAgICAgICAgIHVybDogdGhpcy5pbml0aWFsSWNvbnNbaV0udXJsLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0TWFya2Vyc0ljb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5tYXJrZXJzPy5mb3JFYWNoKChtYXJrZXI6IElNYXBNYXJrZXJzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBtYXJrZXIuaWNvbiA9IHtcbiAgICAgICAgdXJsOiB0aGlzLmluaXRpYWxNYXJrZXJJY29uc1tpbmRleF0udXJsLFxuICAgICAgICBsYWJlbE9yaWdpbjogdGhpcy5pbml0aWFsTWFya2VySWNvbnNbaW5kZXhdLmxhYmVsT3JpZ2luLFxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFJvdXRpbmdNYXJrZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5yb3V0aW5nTWFya2Vycz8uZm9yRWFjaCgobWFya2VyOiBJTWFwTWFya2VycywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgbWFya2VyLmljb24gPSB7XG4gICAgICAgIHVybDogbWFya2VyLmljb24hLnVybCxcbiAgICAgICAgbGFiZWxPcmlnaW46IG1hcmtlci5pY29uIS5sYWJlbE9yaWdpbixcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25NYXBSZWFkeSgpOiB7XG4gICAgZmlsbENvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbiAgICBmaWxsT3BhY2l0eT86IG51bWJlcjtcbiAgfSB8IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEuc3RhdGVCb3VuZGFyaWVzVXJsKSB7XG4gICAgICBjb25zdCBzdGF0ZUJvdW5kYXJpZXNVcmwgPSB0aGlzLmRhdGEuc3RhdGVCb3VuZGFyaWVzVXJsLnVybDtcbiAgICAgIHRoaXMubWFwcy5nb29nbGVNYXA/LmRhdGEubG9hZEdlb0pzb24oc3RhdGVCb3VuZGFyaWVzVXJsKTtcblxuICAgICAgdGhpcy5tYXBzLmdvb2dsZU1hcD8uZGF0YS5zZXRTdHlsZSgoZmVhdHVyZSkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZURlbnNpdHkgPSBmZWF0dXJlLmdldFByb3BlcnR5KCdkZW5zaXR5Jyk7XG4gICAgICAgIGNvbnN0IHsgZmlsbENvbG9yLCBmaWxsT3BhY2l0eSB9ID0gTWFwSGVscGVyLmdldEZpbGxDb2xvckZvclN0YXRlKFxuICAgICAgICAgIHN0YXRlRGVuc2l0eSBhcyBudW1iZXIsXG4gICAgICAgICAgdGhpcy5kYXRhLnZpZXcgfHwgJydcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmaWxsQ29sb3I6IGZpbGxDb2xvcixcbiAgICAgICAgICBzdHJva2VDb2xvcjogJyNFRUVFRUUnLFxuICAgICAgICAgIHN0cm9rZVdlaWdodDogMC42LFxuICAgICAgICAgIGZpbGxPcGFjaXR5OiBmaWxsT3BhY2l0eSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGlyZWN0aW9uc1JlbmRlcmVycy5mb3JFYWNoKChyZW5kZXJlcikgPT4gcmVuZGVyZXIuc2V0TWFwKG51bGwpKTtcbiAgfVxufVxuIiwiPGdvb2dsZS1tYXBcbiAgaGVpZ2h0PVwiMTAwJVwiXG4gIHdpZHRoPVwiMTAwJVwiXG4gIFt6b29tXT1cImRhdGEubWFwWm9vbVwiXG4gIFtjZW50ZXJdPVwiZGF0YS5jZW50ZXJcIlxuICBbb3B0aW9uc109XCJkYXRhLm1hcE9wdGlvbnNcIlxuICAoaWRsZSk9XCJvbk1hcFJlYWR5KClcIlxuPlxuICA8bWFwLW1hcmtlclxuICAgICNtYXJrZXI9XCJtYXBNYXJrZXJcIlxuICAgICpuZ0Zvcj1cImxldCBtYXJrZXJpdGVtIG9mIGRhdGEubWFya2VyczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogaWRlbnRpdHlcIlxuICAgIFtwb3NpdGlvbl09XCJtYXJrZXJpdGVtLnBvc2l0aW9uXCJcbiAgICBbaWNvbl09XCJtYXJrZXJpdGVtLmljb24hXCJcbiAgICBbbGFiZWxdPVwiZm9jdXNlZEljb24gIT09IGkgPyBtYXJrZXJpdGVtLmxhYmVsISA6ICcnXCJcbiAgICBbdGl0bGVdPVwibWFya2VyaXRlbS50aXRsZSFcIlxuICAgIFtvcHRpb25zXT1cIm1hcmtlcml0ZW0ub3B0aW9ucyFcIlxuICAgIChtYXBDbGljayk9XCJvbk1hcmtlckNsaWNrKGksICRldmVudCwgbWFya2VyaXRlbSlcIlxuICA+XG4gICAgPG1hcC1pbmZvLXdpbmRvdyAjaW5mb1dpbmRvd3NWaWV3PVwibWFwSW5mb1dpbmRvd1wiPlxuICAgICAgPGFwcC1jYS1tYXAtZHJvcGRvd25cbiAgICAgICAgW2lzQWNjaWRlbnRNYXBdPVwiZGF0YS5pc0FjY2lkZW50TWFwID8/IGZhbHNlXCJcbiAgICAgID48L2FwcC1jYS1tYXAtZHJvcGRvd24+XG4gICAgPC9tYXAtaW5mby13aW5kb3c+XG4gIDwvbWFwLW1hcmtlcj5cbiAgPG1hcC1tYXJrZXJcbiAgICAqbmdGb3I9XCJsZXQgbWFya2VyIG9mIGRhdGEuY2x1c3Rlcm1hcmtlcnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IGlkZW50aXR5XCJcbiAgICBbcG9zaXRpb25dPVwibWFya2VyLnBvc2l0aW9uXCJcbiAgICBbaWNvbl09XCJtYXJrZXIuaWNvblwiXG4gICAgW2xhYmVsXT1cIm1hcmtlci5sYWJlbCFcIlxuICAgIFt0aXRsZV09XCJtYXJrZXI/LnRpdGxlIVwiXG4gID5cbiAgPC9tYXAtbWFya2VyPlxuXG4gIDxtYXAtbWFya2VyXG4gICAgI21hcmtlclJvdXRpbmc9XCJtYXBNYXJrZXJcIlxuICAgICpuZ0Zvcj1cIlxuICAgICAgbGV0IG1hcmtlcml0ZW0gb2YgZGF0YS5yb3V0aW5nTWFya2VycztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICB0cmFja0J5OiBpZGVudGl0eVxuICAgIFwiXG4gICAgW3Bvc2l0aW9uXT1cIm1hcmtlcml0ZW0ucG9zaXRpb25cIlxuICAgIFtpY29uXT1cIm1hcmtlcml0ZW0uaWNvbiFcIlxuICAgIFtsYWJlbF09XCJmb2N1c2VkSWNvblJvdXRpbmcgIT09IGkgPyBtYXJrZXJpdGVtLmxhYmVsISA6ICcnXCJcbiAgICBbdGl0bGVdPVwibWFya2VyaXRlbS50aXRsZSFcIlxuICAgIFtvcHRpb25zXT1cIm1hcmtlcml0ZW0ub3B0aW9ucyFcIlxuICAgIChtYXBDbGljayk9XCJvblJvdXRpbmdNYXJrZXJDbGljayhpLCAkZXZlbnQsIG1hcmtlcml0ZW0pXCJcbiAgPlxuICAgIDxtYXAtaW5mby13aW5kb3cgI2luZm9XaW5kb3dzVmlld1JvdXRpbmc9XCJtYXBJbmZvV2luZG93XCI+XG4gICAgICA8YXBwLWNhLW1hcC1kcm9wZG93biBbaXNBY2NpZGVudE1hcF09XCJmYWxzZVwiPjwvYXBwLWNhLW1hcC1kcm9wZG93bj5cbiAgICA8L21hcC1pbmZvLXdpbmRvdz5cbiAgPC9tYXAtbWFya2VyPlxuPC9nb29nbGUtbWFwPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwL21vZGVscy9tYXAubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlUGF0aCB7XG4gIGxhdDogbnVtYmVyO1xuICBsbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FNYXBQcm9wcyB7XG4gIGNlbnRlcjogSVJvdXRlUGF0aDtcbiAgbWFwWm9vbTogbnVtYmVyO1xuICBtYXBPcHRpb25zOiBJTWFwT3B0aW9ucztcbiAgY2x1c3Rlcm1hcmtlcnM/OiBJTWFwTWFya2Vyc1tdO1xuICByb3V0aW5nTWFya2Vycz86IElNYXBNYXJrZXJzW107XG4gIHJvdXRlUGF0aHM/OiBJTWFwUm91dGVQYXRoW107XG4gIGlzQWNjaWRlbnRNYXA/OiBib29sZWFuO1xuICBzdGF0ZUJvdW5kYXJpZXNVcmw/OiB7IHVybDogc3RyaW5nIH07XG4gIG1hcmtlcnM/OiBJTWFwTWFya2Vyc1tdO1xuICB2aWV3Pzogc3RyaW5nO1xuICBpc1VuaXRWaWV3U3RvcHM/OiBib29sZWFuO1xuICBpc0RyaXZlck1pbGVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwT3B0aW9ucyB7XG4gIGZ1bGxzY3JlZW5Db250cm9sOiBib29sZWFuO1xuICBkaXNhYmxlRGVmYXVsdFVJOiBib29sZWFuLFxuICByZXN0cmljdGlvbjoge1xuICAgIGxhdExuZ0JvdW5kczoge1xuICAgICAgbm9ydGg6IG51bWJlcjtcbiAgICAgIHNvdXRoOiBudW1iZXI7XG4gICAgICBlYXN0OiBudW1iZXI7XG4gICAgICB3ZXN0OiBudW1iZXI7XG4gICAgfTtcbiAgICBzdHJpY3RCb3VuZHM6IGJvb2xlYW47XG4gIH07XG4gIHN0cmVldFZpZXdDb250cm9sOiBib29sZWFuO1xuICBzdHlsZXM6IElNYXBTdHlsZXNbXTtcbiAga2V5Ym9hcmRTaG9ydGN1dHM6IGJvb2xlYW47XG4gIHBhbkNvbnRyb2w6IGJvb2xlYW47XG4gIGdlc3R1cmVIYW5kbGluZzogc3RyaW5nO1xuICBtYXBPcHRpb25zPzoge1xuICAgIGZ1bGxzY3JlZW5Db250cm9sOiBib29sZWFuO1xuICAgIHJlc3RyaWN0aW9uOiB7XG4gICAgICBsYXRMbmdCb3VuZHM6IHtcbiAgICAgICAgbm9ydGg6IG51bWJlcjtcbiAgICAgICAgc291dGg6IG51bWJlcjtcbiAgICAgICAgZWFzdDogbnVtYmVyO1xuICAgICAgICB3ZXN0OiBudW1iZXI7XG4gICAgICB9O1xuICAgICAgc3RyaWN0Qm91bmRzOiBib29sZWFuO1xuICAgIH07XG4gICAgc3RyZWV0Vmlld0NvbnRyb2w6IGJvb2xlYW47XG4gICAgc3R5bGVzOiBJTWFwU3R5bGVzW107XG4gICAga2V5Ym9hcmRTaG9ydGN1dHM6IGJvb2xlYW47XG4gICAgcGFuQ29udHJvbDogYm9vbGVhbjtcbiAgICBnZXN0dXJlSGFuZGxpbmc6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwU3R5bGVzIHtcbiAgZWxlbWVudFR5cGU/OiBzdHJpbmc7XG4gIGZlYXR1cmVUeXBlPzogc3RyaW5nO1xuICBzdHlsZXJzOiBJTWFwQ29sb3JbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFwQ29sb3Ige1xuICBjb2xvcj86IHN0cmluZztcbiAgdmlzaWJpbGl0eT86IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyXG4gIHNhdHVyYXRpb24/OiBudW1iZXIsXG4gIGxpZ2h0bmVzcz86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXBNYXJrZXJzIHtcbiAgcG9zaXRpb246IElSb3V0ZVBhdGg7XG4gIGljb24/OiBJTWFwTWFya2Vyc0ljb247XG4gIGluZm9XaW5kb3dDb250ZW50Pzogc3RyaW5nO1xuICBsYWJlbD86IElNYXJrZXJMYWJlbDtcbiAgbGFiZWxPcmlnaW4/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcE1hcmtlcnNJY29uIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGxhYmVsT3JpZ2luPzogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbDtcbiAgc2NhbGVkU2l6ZT86IGdvb2dsZS5tYXBzLlNpemU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcmtlckxhYmVsIHtcbiAgdGV4dDogc3RyaW5nO1xuICBmb250U2l6ZT86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGZvbnRXZWlnaHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcFJvdXRlUGF0aCB7XG4gIHBhdGg6IElSb3V0ZVBhdGhbXTtcbiAgc3Ryb2tlQ29sb3I6IHN0cmluZztcbiAgc3Ryb2tlT3BhY2l0eT86IG51bWJlcjtcbn1cbiJdfQ==
|