@smarterplan/ngx-smarterplan-core 1.2.18 → 1.2.20
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/components/menu-bar/menu-bar.component.mjs +3 -3
- package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +1 -1
- package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +1 -1
- package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
- package/esm2020/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
- package/esm2020/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
- package/esm2020/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
- package/esm2020/lib/services/baseVisibility.service.mjs +1 -1
- package/esm2020/lib/services/filter.service.mjs +1 -1
- package/esm2020/lib/services/matterport-import.service.mjs +1 -1
- package/esm2020/lib/services/matterport.service.mjs +8 -4
- package/esm2020/lib/services/models/equipment.service.mjs +1 -1
- package/esm2020/lib/services/models/feature.service.mjs +1 -1
- package/esm2020/lib/services/models/measurement.service.mjs +1 -1
- package/esm2020/lib/services/models/object3D.service.mjs +1 -1
- package/esm2020/lib/services/models/poi.service.mjs +1 -1
- package/esm2020/lib/services/models/ticket.service.mjs +1 -1
- package/esm2020/lib/services/models/zone.service.mjs +1 -1
- package/esm2020/lib/services/navigator.service.mjs +22 -21
- package/esm2020/lib/services/tag.service.mjs +18 -18
- package/esm2020/lib/services/zoneChange.service.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +50 -45
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +47 -42
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/components/csv-export/csv-export.component.d.ts.map +1 -0
- package/lib/components/loader/loader.component.d.ts.map +1 -0
- package/lib/components/menu-bar/avatar/avatar.component.d.ts.map +1 -0
- package/lib/components/menu-bar/menu-bar.component.d.ts.map +1 -0
- package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts.map +1 -0
- package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts.map +1 -0
- package/lib/components/modal-switch-visit/modal-switch-visit.component.d.ts.map +1 -0
- package/lib/components/search-bar/search-bar.component.d.ts.map +1 -0
- package/lib/components/support-modal/support-modal.component.d.ts.map +1 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/helpers.service.d.ts.map +1 -0
- package/lib/matterport-extensions/hsl-loader/HlsLoader.d.ts.map +1 -0
- package/lib/matterport-extensions/nest-thermostat/CanvasImage.d.ts.map +1 -0
- package/lib/matterport-extensions/nest-thermostat/CanvasRenderer.d.ts.map +1 -0
- package/lib/matterport-extensions/nest-thermostat/NestThermostat.d.ts.map +1 -0
- package/lib/matterport-extensions/nest-thermostat/PlaneRenderer.d.ts.map +1 -0
- package/lib/matterport-extensions/scene-component/SceneComponent.d.ts.map +1 -0
- package/lib/matterport-extensions/security-camera/SecurityCamera.d.ts.map +1 -0
- package/lib/matterport-extensions/tv-player/TvPlayer.d.ts.map +1 -0
- package/lib/matterport-extensions/video-renderer/VideoRenderer.d.ts.map +1 -0
- package/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.d.ts.map +1 -0
- package/lib/mattertagData.d.ts.map +1 -0
- package/lib/ngx-smarterplan-core.module.d.ts.map +1 -0
- package/lib/ngx-smarterplan-core.service.d.ts.map +1 -0
- package/lib/pipes/duration-to-string.pipe.d.ts.map +1 -0
- package/lib/pipes/format-date-number-to-digits.pipe.d.ts.map +1 -0
- package/lib/pipes/hashtag-from-id.pipe.d.ts.map +1 -0
- package/lib/pipes/safe-url.pipe.d.ts.map +1 -0
- package/lib/pipes/time-date-to-local-string.pipe.d.ts.map +1 -0
- package/lib/pipes/username-from-id.pipe.d.ts.map +1 -0
- package/lib/services/amplify-cache.service.d.ts.map +1 -0
- package/lib/services/base-tab.service.d.ts.map +1 -0
- package/lib/services/baseVisibility.service.d.ts.map +1 -0
- package/lib/services/content.service.d.ts.map +1 -0
- package/lib/services/filter.service.d.ts.map +1 -0
- package/lib/services/intervention.service.d.ts.map +1 -0
- package/lib/services/locale.service.d.ts.map +1 -0
- package/lib/services/matterport-import.service.d.ts.map +1 -0
- package/lib/services/matterport.service.d.ts.map +1 -0
- package/lib/services/models/affectation.service.d.ts.map +1 -0
- package/lib/services/models/base-object.service.d.ts.map +1 -0
- package/lib/services/models/capture.service.d.ts.map +1 -0
- package/lib/services/models/comment.service.d.ts.map +1 -0
- package/lib/services/models/domain.service.d.ts.map +1 -0
- package/lib/services/models/equipment.service.d.ts.map +1 -0
- package/lib/services/models/event.service.d.ts.map +1 -0
- package/lib/services/models/feature.service.d.ts.map +1 -0
- package/lib/services/models/hashtag.service.d.ts.map +1 -0
- package/lib/services/models/layer.service.d.ts.map +1 -0
- package/lib/services/models/measurement.service.d.ts.map +1 -0
- package/lib/services/models/mission.service.d.ts.map +1 -0
- package/lib/services/models/navigation.service.d.ts.map +1 -0
- package/lib/services/models/node.service.d.ts.map +1 -0
- package/lib/services/models/object3D.service.d.ts.map +1 -0
- package/lib/services/models/operation.service.d.ts.map +1 -0
- package/lib/services/models/organisation.service.d.ts.map +1 -0
- package/lib/services/models/plan.service.d.ts.map +1 -0
- package/lib/services/models/poi.service.d.ts.map +1 -0
- package/lib/services/models/profile.service.d.ts.map +1 -0
- package/lib/services/models/property.service.d.ts.map +1 -0
- package/lib/services/models/space.service.d.ts.map +1 -0
- package/lib/services/models/template.service.d.ts.map +1 -0
- package/lib/services/models/ticket.service.d.ts.map +1 -0
- package/lib/services/models/visit.service.d.ts.map +1 -0
- package/lib/services/models/zone.service.d.ts.map +1 -0
- package/lib/services/navigator.service.d.ts.map +1 -0
- package/lib/services/s3.service.d.ts.map +1 -0
- package/lib/services/search.service.d.ts.map +1 -0
- package/lib/services/support.service.d.ts.map +1 -0
- package/lib/services/tag.service.d.ts.map +1 -0
- package/lib/services/user.service.d.ts.map +1 -0
- package/lib/services/validators.service.d.ts.map +1 -0
- package/lib/services/viewer.service.d.ts.map +1 -0
- package/lib/services/zone-drawer.service.d.ts.map +1 -0
- package/lib/services/zoneChange.service.d.ts.map +1 -0
- package/lib/types.service.d.ts.map +1 -0
- package/lib/validators/email.directive.d.ts.map +1 -0
- package/lib/validators/no-empty.directive.d.ts.map +1 -0
- package/lib/validators/number.directive.d.ts.map +1 -0
- package/lib/validators/text.directive.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts.map +1 -0
- package/smarterplan-ngx-smarterplan-core.d.ts.map +1 -0
|
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
196
196
|
type: Inject,
|
|
197
197
|
args: ['currentAwsKinesisAnalyticsService']
|
|
198
198
|
}] }, { type: i1.NavigatorService }, { type: i2.FilterService }, { type: i3.CommentService }, { type: i4.PoiService }, { type: i5.BaseUserService }, { type: i6.ZoneChangeService }, { type: i7.NavigationService }]; } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL21lYXN1cmVtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQWUsT0FBTyxFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBRy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFVN0QsTUFBTSxPQUFPLGtCQUFrQjtJQW1DN0IsWUFFRSwyQkFBZ0MsRUFDeEIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFVBQXNCLEVBQ3RCLFdBQTRCLEVBQzVCLGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFOcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBM0M5QyxTQUFJLEdBQUcsZUFBZSxDQUFDO1FBRXZCLHdCQUFtQixHQUdmLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFNUIscUJBQWdCLEdBQXVCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFckQsd0JBQW1CLEdBR2QsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVFuQixz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QUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsOEJBQThCLENBQ2xDLE9BQWU7UUFFZixJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkUsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyx1Q0FBdUMsQ0FDekUsT0FBTyxFQUNQLFFBQVEsQ0FDVCxDQUFDO1FBQ0YsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUM3QixNQUFNLFdBQVcsR0FDZixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzsrR0EvT1Usa0JBQWtCLGtCQW9DbkIsbUNBQW1DO21IQXBDbEMsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBcUNJLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHdhaXRVbnRpbCB9IGZyb20gJy4uLy4uL2hlbHBlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBNZWFzdXJlbWVudCwgUG9pVHlwZSwgQ29tbWVudCwgUE9JLCBab25lIH0gZnJvbSAnLi4vLi4vdHlwZXMuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uL25hdmlnYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IGRlbGV0ZUZyb21TMywgdXBsb2FkRmlsZVRvUzMgfSBmcm9tICcuLi9zMy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4vY29tbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9pU2VydmljZSB9IGZyb20gJy4vcG9pLnNlcnZpY2UnO1xuaW1wb3J0IHtab25lQ2hhbmdlU2VydmljZX0gZnJvbSBcIi4uL3pvbmVDaGFuZ2Uuc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVhc3VyZW1lbnRTZXJ2aWNlIHtcbiAgcGF0aCA9ICdtZWFzdXJlbWVudHMvJztcblxuICBjdXJyZW50TWVhc3VyZW1lbnRzOiB7XG4gICAgc3BhY2U6IE1lYXN1cmVtZW50W107XG4gICAgem9uZTogTWVhc3VyZW1lbnRbXTtcbiAgfSA9IHsgc3BhY2U6IFtdLCB6b25lOiBbXSB9O1xuXG4gIG1lYXN1cmVtZW50c1RhZ3M6IFN1YmplY3Q8Q29tbWVudFtdPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgbWVhc3VyZW1lbnRzVXBkYXRlZDogU3ViamVjdDx7XG4gICAgc3BhY2U6IE1lYXN1cmVtZW50W107XG4gICAgem9uZTogTWVhc3VyZW1lbnRbXTtcbiAgfT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGN1cnJlbnRTcGFjZUlEOiBzdHJpbmc7XG5cbiAgem9uZUlERmlsdGVyOiBzdHJpbmc7XG5cbiAgZGF0ZUZpbHRlcjogRGF0ZVtdO1xuXG4gIG1lYXN1cmVtZW50RmlsdGVyOiBib29sZWFuID0gZmFsc2U7IC8vIGlmIGZhbHNlIG1lYW5zIG5vIGZpbHRlcmluZywgZXZlcnl0aGluZyBpcyBhbGxvd2VkXG5cbiAgdXBkYXRlRG9uZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgdXBkYXRpbmc6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGF3c0tpbmVzaXNBbmFseXRpY3M6IGFueTsgLy9BV1NcblxuICBmbG9vcnNQZXJTcGFjZTogWm9uZVtdID0gbnVsbDtcblxuICBzZWxlY3RlZEZsb29yOiBab25lID0gbnVsbDtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdjdXJyZW50QXdzS2luZXNpc0FuYWx5dGljc1NlcnZpY2UnKVxuICAgIGF3c0tpbmVzaXNBbmFseXRpY3NJbmplY3RlZDogYW55LFxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tZW50U2VydmljZTogQ29tbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb2lTZXJ2aWNlOiBQb2lTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IEJhc2VVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHpvbmVDaGFuZ2VTZXJ2aWNlOiBab25lQ2hhbmdlU2VydmljZSxcbiAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgPSBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ7XG5cbiAgICBjb25zdCBpc011c2V1bVVzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmhhc09ubHlNdXNldW1Sb2xlKCk7XG4gICAgaWYgKCFpc011c2V1bVVzZXIpIHtcbiAgICAgIHRoaXMuem9uZUNoYW5nZVNlcnZpY2Uuem9uZUNoYW5nZS5zdWJzY3JpYmUoKHpvbmUpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3BhY2VJRCA9IHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50U3BhY2VJRDtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XG4gICAgICAgICAgdGhpcy5tZWFzdXJlbWVudHNUYWdzLm5leHQobnVsbCk7XG4gICAgICAgICAgdGhpcy5tZWFzdXJlbWVudHNVcGRhdGVkLm5leHQoeyBzcGFjZTogW10sIHpvbmU6IG51bGwgfSk7XG4gICAgICAgICAgdGhpcy5tZWFzdXJlbWVudEZpbHRlciA9IG51bGw7XG4gICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKHpvbmUuaWQgIT09IHRoaXMuem9uZUlERmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSB6b25lLmlkO1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiZ29pbmcgdG8gaW5pdCBtZWFzdXJlbWVudHMgZnJvbSB6b25lXCIpO1xuICAgICAgICAgIHRoaXMuaW5pdE1lYXN1cmVtZW50cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5zdWJzY3JpYmVUb0RhdGFGaWx0ZXJVcGRhdGUoKGRhdGVSYW5nZSkgPT4ge1xuICAgICAgICB0aGlzLmRhdGVGaWx0ZXIgPSBkYXRlUmFuZ2U7XG4gICAgICAgIHRoaXMuaW5pdE1lYXN1cmVtZW50cygpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmRhdGVGaWx0ZXIgPSB0aGlzLmZpbHRlclNlcnZpY2UuY3VycmVudERhdGVGaWx0ZXI7XG4gICAgICB0aGlzLnVwZGF0ZURvbmUuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5pdE1lYXN1cmVtZW50cygpKTtcbiAgICB9XG5cbiAgICB0aGlzLnpvbmVDaGFuZ2VTZXJ2aWNlLmZsb29ySGFzQ2hhbmdlZC5zdWJzY3JpYmUoKGZsb29yKT0+e1xuICAgICAgaWYgKGZsb29yKXtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZsb29yID0gZmxvb3I7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgYXN5bmMgaW5pdE1lYXN1cmVtZW50cygpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xuICAgICAgdGhpcy51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgICAgbGV0IG1lYXN1cmVtZW50cyA9IGF3YWl0IHRoaXMuZ2V0TWVhc3VyZW1lbnRzRm9yU3BhY2VGb3JVc2VyKFxuICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEXG4gICAgICApO1xuICAgICAgaWYgKG1lYXN1cmVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVGaWx0ZXIpIHtcbiAgICAgICAgICBtZWFzdXJlbWVudHMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyTWVhc3VyZW1lbnRzRm9yRGF0ZVJhbmdlKFxuICAgICAgICAgICAgbWVhc3VyZW1lbnRzLFxuICAgICAgICAgICAgdGhpcy5kYXRlRmlsdGVyXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tZWFzdXJlbWVudEZpbHRlcikge1xuICAgICAgICAgIG1lYXN1cmVtZW50cyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudE1lYXN1cmVtZW50cy5zcGFjZSA9IG1lYXN1cmVtZW50cztcbiAgICAgICAgLy8gZW1pdCBvbiB0YWdzIHNob3VsZCBiZSBhZnRlciBzZXR0aW5nIGN1cnJlbnQuc3BhY2UgISFcbiAgICAgICAgdGhpcy5tZWFzdXJlbWVudHNUYWdzLm5leHQobWVhc3VyZW1lbnRzLm1hcCgobSkgPT4gbS5jb21tZW50KSk7XG5cbiAgICAgICAgaWYgKHRoaXMuem9uZUlERmlsdGVyKSB7XG4gICAgICAgICAgY29uc3QgY29tbWVudHNab25lID0gYXdhaXQgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck9iamVjdHNGb3Jab25lKFxuICAgICAgICAgICAgbWVhc3VyZW1lbnRzLm1hcCgobWVhc3VyZSkgPT4gbWVhc3VyZS5jb21tZW50KSxcbiAgICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBtZWFzdXJlbWVudHMgPSBtZWFzdXJlbWVudHMuZmlsdGVyKChtZWFzdXJlKSA9PlxuICAgICAgICAgICAgY29tbWVudHNab25lLmluY2x1ZGVzKG1lYXN1cmUuY29tbWVudClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIG1lYXN1cmVtZW50cy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIG5ldyBEYXRlKGIuY29tbWVudC5jcmVhdGVkQXQpIC1cbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIG5ldyBEYXRlKGEuY29tbWVudC5jcmVhdGVkQXQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY3VycmVudE1lYXN1cmVtZW50cy56b25lID0gbWVhc3VyZW1lbnRzO1xuICAgICAgICB0aGlzLm1lYXN1cmVtZW50c1VwZGF0ZWQubmV4dCh0aGlzLmN1cnJlbnRNZWFzdXJlbWVudHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWVhc3VyZW1lbnRzLnNwYWNlID0gW107XG4gICAgICAgIHRoaXMuY3VycmVudE1lYXN1cmVtZW50cy56b25lID0gW107XG4gICAgICAgIHRoaXMubWVhc3VyZW1lbnRzVXBkYXRlZC5uZXh0KHsgc3BhY2U6IFtdLCB6b25lOiBbXSB9KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lYXN1cmVtZW50c1RhZ3MubmV4dChudWxsKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGluZy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU1lYXN1cmVtZW50KG1lYXN1cmVtZW50OiBNZWFzdXJlbWVudCk6IFByb21pc2U8Q29tbWVudD4ge1xuICAgIGNvbnN0IGRlbGV0ZWRDb21tZW50ID0gYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5kZWxldGVDb21tZW50KFxuICAgICAgbWVhc3VyZW1lbnQuY29tbWVudC5pZFxuICAgICk7XG4gICAgaWYgKGRlbGV0ZWRDb21tZW50KSB7XG4gICAgICBhd2FpdCB0aGlzLnBvaVNlcnZpY2UuZGVsZXRlUG9pKG1lYXN1cmVtZW50LnBvaS5pZCk7XG4gICAgICBjb25zdCBwcmVmaXggPSBgJHttZWFzdXJlbWVudC5jb21tZW50LmlkLnNsaWNlKDAsIDgpfV9gO1xuICAgICAgY29uc3QgcGF0aCA9IGAke3RoaXMucGF0aCArIHByZWZpeH1tZXN1cmUuanBlZ2A7XG4gICAgICBhd2FpdCBkZWxldGVGcm9tUzMocGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBkZWxldGVkQ29tbWVudDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZU1lYXN1cmVtZW50Rm9yU3BhY2UoXG4gICAgY29tbWVudElucHV0OiBDb21tZW50LFxuICAgIGRhdGFNZWFzdXJlbWVudHM6IHsgbWVhc3VyZTogYW55W107IHN3ZWVwOiBzdHJpbmcgfSxcbiAgICBzY3JlZW5zaG90OiBhbnksXG4gICAgc3BhY2VJRDogc3RyaW5nXG4gICk6IFByb21pc2U8TWVhc3VyZW1lbnQ+IHtcbiAgICBjb25zdCBsYXN0TWVhc3VyZSA9IGRhdGFNZWFzdXJlbWVudHMubWVhc3VyZTtcbiAgICBjb25zdCBzd2VlcElEID0gZGF0YU1lYXN1cmVtZW50cy5zd2VlcDtcbiAgICBjb25zdCBsYXN0UG9pbnQgPSBsYXN0TWVhc3VyZVtsYXN0TWVhc3VyZS5sZW5ndGggLSAxXTtcbiAgICBsZXQgY29tbWVudCA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuY3JlYXRlQ29tbWVudChjb21tZW50SW5wdXQpO1xuICAgIGNvbnN0IHBvaUlucHV0ID0ge1xuICAgICAgY29vcmRpbmF0ZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB4OiBsYXN0UG9pbnQueCxcbiAgICAgICAgeTogbGFzdFBvaW50LnksXG4gICAgICAgIHo6IGxhc3RQb2ludC56LFxuICAgICAgfSksXG4gICAgICB0eXBlOiBQb2lUeXBlLk1FQVNVUkUsXG4gICAgICBlbGVtZW50SUQ6IGNvbW1lbnQuaWQsXG4gICAgICBtYXR0ZXJwb3J0U3dlZXBJRDogc3dlZXBJRCxcbiAgICB9IGFzIFBPSTtcbiAgICBjb25zdCBwb2kgPSBhd2FpdCB0aGlzLnBvaVNlcnZpY2UuY3JlYXRlUE9JRm9yU3BhY2VJRChwb2lJbnB1dCk7XG4gICAgY29uc3Qgc2NyZWVuID0gYXdhaXQgZmV0Y2goc2NyZWVuc2hvdCk7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHNjcmVlbi5ibG9iKCk7XG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgJ21lc3VyZS5qcGVnJywgeyB0eXBlOiAnaW1hZ2UvanBlZycgfSk7XG4gICAgY29uc3QgdXJsID0gYXdhaXQgdXBsb2FkRmlsZVRvUzModGhpcy5wYXRoLCBmaWxlLCBjb21tZW50LmlkKTtcbiAgICBpZiAodXJsKSB7XG4gICAgICBjb21tZW50ID0gYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS51cGRhdGVDb21tZW50KHtcbiAgICAgICAgaWQ6IGNvbW1lbnQuaWQsXG4gICAgICAgIGFubmV4ZTogdXJsLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1lYXN1cmVtZW50ID0ge1xuICAgICAgY29tbWVudCxcbiAgICAgIHBvaSxcbiAgICB9IGFzIE1lYXN1cmVtZW50O1xuXG4gICAgaWYgKCEhdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzICYmICEhdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzLnJlY29yZCAmJiB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkKCkpIHtcbiAgICAgIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5nZXRJbnN0YW5jZSgpLnJlY29yZChcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZXZlbnRUeXBlOiAnT2JqZWN0IENyZWF0aW9uJyxcbiAgICAgICAgICAgIG9iamVjdFR5cGU6ICdtZWFzdXJlbWVudCcsXG4gICAgICAgICAgICBtZWFzdXJlbWVudDogbWVhc3VyZW1lbnQsXG4gICAgICAgICAgICAvL3pvbmVJZDogc3BhY2VJRCxcbiAgICAgICAgICAgIHVzZXI6IHRoaXMudXNlclNlcnZpY2UuY3UsXG4gICAgICAgICAgICBsb2NhdGlvbklkOiB0aGlzLmN1cnJlbnRTcGFjZUlELFxuICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgem9uZUlkOiB0aGlzLnpvbmVJREZpbHRlcixcbiAgICAgICAgICAgIGZsb29ySWQ6IHRoaXMuc2VsZWN0ZWRGbG9vcj8uaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHJlYW1OYW1lOiAnc21hcnRlcnBsYW5LaW5lc2lzLWFuYWx5dGljcycsXG4gICAgICAgICAgLy8gcGFydGl0aW9uS2V5OiBcIlwiLFxuICAgICAgICB9LFxuICAgICAgICAnQVdTS2luZXNpcydcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lYXN1cmVtZW50O1xuICB9XG5cbiAgYXN5bmMgZ2V0TW9kZWwzREZvck1lYXN1cmVtZW50KG1lYXN1cmVtZW50OiBNZWFzdXJlbWVudCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmdldFBvaUJ5RWxlbWVudElkKG1lYXN1cmVtZW50LmNvbW1lbnQuaWQpO1xuICAgIGlmIChwb2kgJiYgcG9pLm1hdHRlcnBvcnRTd2VlcElEKSB7XG4gICAgICBjb25zdCBuYXZpZ2F0aW9ucyA9XG4gICAgICAgIGF3YWl0IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0TmF2aWdhdGlvbnNGb3JNYXR0ZXJwb3J0SURGb3JTcGFjZShcbiAgICAgICAgICBwb2kubWF0dGVycG9ydFN3ZWVwSUQsXG4gICAgICAgICAgbWVhc3VyZW1lbnQuY29tbWVudC5zcGFjZUlEXG4gICAgICAgICk7XG4gICAgICBjb25zdCBbcG9pTmF2aWdhdGlvbl0gPSBuYXZpZ2F0aW9ucztcbiAgICAgIHJldHVybiBwb2lOYXZpZ2F0aW9uLm5vZGUubW9kZWwzRDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyBnZXRNZWFzdXJlbWVudHNGb3JTcGFjZUZvclVzZXIoXG4gICAgc3BhY2VJRDogc3RyaW5nXG4gICk6IFByb21pc2U8TWVhc3VyZW1lbnRbXT4ge1xuICAgIGxldCBjb21tZW50cyA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuZ2V0Q29tbWVudHNCeVNwYWNlSUQoc3BhY2VJRCk7XG4gICAgY29tbWVudHMgPSBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyTWVhc3VyZW1lbnRzRm9yQ3VycmVudFVzZXJJblNwYWNlKFxuICAgICAgc3BhY2VJRCxcbiAgICAgIGNvbW1lbnRzXG4gICAgKTtcbiAgICBsZXQgbWVhc3VyZW1lbnRzID0gW107XG4gICAgaWYgKGNvbW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBjb21tZW50cy5tYXAoYXN5bmMgKGNvbW1lbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudCA9XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbW1lbnRTZXJ2aWNlLnJlYWRDb21tZW50QXNNZWFzdXJlbWVudChjb21tZW50LmlkKTtcbiAgICAgICAgICBtZWFzdXJlbWVudHMucHVzaChtZWFzdXJlbWVudCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbWVhc3VyZW1lbnRzO1xuICB9XG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL21lYXN1cmVtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQWUsT0FBTyxFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBRy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFVN0QsTUFBTSxPQUFPLGtCQUFrQjtJQW1DN0IsWUFFRSwyQkFBZ0MsRUFDeEIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFVBQXNCLEVBQ3RCLFdBQTRCLEVBQzVCLGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFOcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBM0M5QyxTQUFJLEdBQUcsZUFBZSxDQUFDO1FBRXZCLHdCQUFtQixHQUdmLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFNUIscUJBQWdCLEdBQXVCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFckQsd0JBQW1CLEdBR2QsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVFuQixz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QUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsOEJBQThCLENBQ2xDLE9BQWU7UUFFZixJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkUsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyx1Q0FBdUMsQ0FDekUsT0FBTyxFQUNQLFFBQVEsQ0FDVCxDQUFDO1FBQ0YsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUM3QixNQUFNLFdBQVcsR0FDZixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzsrR0EvT1Usa0JBQWtCLGtCQW9DbkIsbUNBQW1DO21IQXBDbEMsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBcUNJLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB3YWl0VW50aWwgfSBmcm9tICcuLi8uLi9oZWxwZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZWFzdXJlbWVudCwgUG9pVHlwZSwgQ29tbWVudCwgUE9JLCBab25lIH0gZnJvbSAnLi4vLi4vdHlwZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9maWx0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRvclNlcnZpY2UgfSBmcm9tICcuLi9uYXZpZ2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IGRlbGV0ZUZyb21TMywgdXBsb2FkRmlsZVRvUzMgfSBmcm9tICcuLi9zMy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZVVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbWVudFNlcnZpY2UgfSBmcm9tICcuL2NvbW1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb2lTZXJ2aWNlIH0gZnJvbSAnLi9wb2kuc2VydmljZSc7XHJcbmltcG9ydCB7Wm9uZUNoYW5nZVNlcnZpY2V9IGZyb20gXCIuLi96b25lQ2hhbmdlLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWFzdXJlbWVudFNlcnZpY2Uge1xyXG4gIHBhdGggPSAnbWVhc3VyZW1lbnRzLyc7XHJcblxyXG4gIGN1cnJlbnRNZWFzdXJlbWVudHM6IHtcclxuICAgIHNwYWNlOiBNZWFzdXJlbWVudFtdO1xyXG4gICAgem9uZTogTWVhc3VyZW1lbnRbXTtcclxuICB9ID0geyBzcGFjZTogW10sIHpvbmU6IFtdIH07XHJcblxyXG4gIG1lYXN1cmVtZW50c1RhZ3M6IFN1YmplY3Q8Q29tbWVudFtdPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIG1lYXN1cmVtZW50c1VwZGF0ZWQ6IFN1YmplY3Q8e1xyXG4gICAgc3BhY2U6IE1lYXN1cmVtZW50W107XHJcbiAgICB6b25lOiBNZWFzdXJlbWVudFtdO1xyXG4gIH0+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY3VycmVudFNwYWNlSUQ6IHN0cmluZztcclxuXHJcbiAgem9uZUlERmlsdGVyOiBzdHJpbmc7XHJcblxyXG4gIGRhdGVGaWx0ZXI6IERhdGVbXTtcclxuXHJcbiAgbWVhc3VyZW1lbnRGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTsgLy8gaWYgZmFsc2UgbWVhbnMgbm8gZmlsdGVyaW5nLCBldmVyeXRoaW5nIGlzIGFsbG93ZWRcclxuXHJcbiAgdXBkYXRlRG9uZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHVwZGF0aW5nOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgYXdzS2luZXNpc0FuYWx5dGljczogYW55OyAvL0FXU1xyXG5cclxuICBmbG9vcnNQZXJTcGFjZTogWm9uZVtdID0gbnVsbDtcclxuXHJcbiAgc2VsZWN0ZWRGbG9vcjogWm9uZSA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ2N1cnJlbnRBd3NLaW5lc2lzQW5hbHl0aWNzU2VydmljZScpXHJcbiAgICBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ6IGFueSxcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwb2lTZXJ2aWNlOiBQb2lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lQ2hhbmdlU2VydmljZTogWm9uZUNoYW5nZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzID0gYXdzS2luZXNpc0FuYWx5dGljc0luamVjdGVkO1xyXG5cclxuICAgIGNvbnN0IGlzTXVzZXVtVXNlciA9IHRoaXMudXNlclNlcnZpY2UuaGFzT25seU11c2V1bVJvbGUoKTtcclxuICAgIGlmICghaXNNdXNldW1Vc2VyKSB7XHJcbiAgICAgIHRoaXMuem9uZUNoYW5nZVNlcnZpY2Uuem9uZUNoYW5nZS5zdWJzY3JpYmUoKHpvbmUpID0+IHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEO1xyXG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50U3BhY2VJRCkge1xyXG4gICAgICAgICAgdGhpcy5tZWFzdXJlbWVudHNUYWdzLm5leHQobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLm1lYXN1cmVtZW50c1VwZGF0ZWQubmV4dCh7IHNwYWNlOiBbXSwgem9uZTogbnVsbCB9KTtcclxuICAgICAgICAgIHRoaXMubWVhc3VyZW1lbnRGaWx0ZXIgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoem9uZS5pZCAhPT0gdGhpcy56b25lSURGaWx0ZXIpIHtcclxuICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gem9uZS5pZDtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiZ29pbmcgdG8gaW5pdCBtZWFzdXJlbWVudHMgZnJvbSB6b25lXCIpO1xyXG4gICAgICAgICAgdGhpcy5pbml0TWVhc3VyZW1lbnRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLnN1YnNjcmliZVRvRGF0YUZpbHRlclVwZGF0ZSgoZGF0ZVJhbmdlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRlRmlsdGVyID0gZGF0ZVJhbmdlO1xyXG4gICAgICAgIHRoaXMuaW5pdE1lYXN1cmVtZW50cygpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5kYXRlRmlsdGVyID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmN1cnJlbnREYXRlRmlsdGVyO1xyXG4gICAgICB0aGlzLnVwZGF0ZURvbmUuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5pdE1lYXN1cmVtZW50cygpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnpvbmVDaGFuZ2VTZXJ2aWNlLmZsb29ySGFzQ2hhbmdlZC5zdWJzY3JpYmUoKGZsb29yKT0+e1xyXG4gICAgICBpZiAoZmxvb3Ipe1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vciA9IGZsb29yO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgYXN5bmMgaW5pdE1lYXN1cmVtZW50cygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XHJcbiAgICAgIHRoaXMudXBkYXRpbmcubmV4dCh0cnVlKTtcclxuICAgICAgbGV0IG1lYXN1cmVtZW50cyA9IGF3YWl0IHRoaXMuZ2V0TWVhc3VyZW1lbnRzRm9yU3BhY2VGb3JVc2VyKFxyXG4gICAgICAgIHRoaXMuY3VycmVudFNwYWNlSURcclxuICAgICAgKTtcclxuICAgICAgaWYgKG1lYXN1cmVtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0ZUZpbHRlcikge1xyXG4gICAgICAgICAgbWVhc3VyZW1lbnRzID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck1lYXN1cmVtZW50c0ZvckRhdGVSYW5nZShcclxuICAgICAgICAgICAgbWVhc3VyZW1lbnRzLFxyXG4gICAgICAgICAgICB0aGlzLmRhdGVGaWx0ZXJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1lYXN1cmVtZW50RmlsdGVyKSB7XHJcbiAgICAgICAgICBtZWFzdXJlbWVudHMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TWVhc3VyZW1lbnRzLnNwYWNlID0gbWVhc3VyZW1lbnRzO1xyXG4gICAgICAgIC8vIGVtaXQgb24gdGFncyBzaG91bGQgYmUgYWZ0ZXIgc2V0dGluZyBjdXJyZW50LnNwYWNlICEhXHJcbiAgICAgICAgdGhpcy5tZWFzdXJlbWVudHNUYWdzLm5leHQobWVhc3VyZW1lbnRzLm1hcCgobSkgPT4gbS5jb21tZW50KSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnpvbmVJREZpbHRlcikge1xyXG4gICAgICAgICAgY29uc3QgY29tbWVudHNab25lID0gYXdhaXQgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck9iamVjdHNGb3Jab25lKFxyXG4gICAgICAgICAgICBtZWFzdXJlbWVudHMubWFwKChtZWFzdXJlKSA9PiBtZWFzdXJlLmNvbW1lbnQpLFxyXG4gICAgICAgICAgICB0aGlzLnpvbmVJREZpbHRlclxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIG1lYXN1cmVtZW50cyA9IG1lYXN1cmVtZW50cy5maWx0ZXIoKG1lYXN1cmUpID0+XHJcbiAgICAgICAgICAgIGNvbW1lbnRzWm9uZS5pbmNsdWRlcyhtZWFzdXJlLmNvbW1lbnQpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtZWFzdXJlbWVudHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBuZXcgRGF0ZShiLmNvbW1lbnQuY3JlYXRlZEF0KSAtXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgbmV3IERhdGUoYS5jb21tZW50LmNyZWF0ZWRBdClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TWVhc3VyZW1lbnRzLnpvbmUgPSBtZWFzdXJlbWVudHM7XHJcbiAgICAgICAgdGhpcy5tZWFzdXJlbWVudHNVcGRhdGVkLm5leHQodGhpcy5jdXJyZW50TWVhc3VyZW1lbnRzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRNZWFzdXJlbWVudHMuc3BhY2UgPSBbXTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRNZWFzdXJlbWVudHMuem9uZSA9IFtdO1xyXG4gICAgICAgIHRoaXMubWVhc3VyZW1lbnRzVXBkYXRlZC5uZXh0KHsgc3BhY2U6IFtdLCB6b25lOiBbXSB9KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1lYXN1cmVtZW50c1RhZ3MubmV4dChudWxsKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRpbmcubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGVNZWFzdXJlbWVudChtZWFzdXJlbWVudDogTWVhc3VyZW1lbnQpOiBQcm9taXNlPENvbW1lbnQ+IHtcclxuICAgIGNvbnN0IGRlbGV0ZWRDb21tZW50ID0gYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5kZWxldGVDb21tZW50KFxyXG4gICAgICBtZWFzdXJlbWVudC5jb21tZW50LmlkXHJcbiAgICApO1xyXG4gICAgaWYgKGRlbGV0ZWRDb21tZW50KSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucG9pU2VydmljZS5kZWxldGVQb2kobWVhc3VyZW1lbnQucG9pLmlkKTtcclxuICAgICAgY29uc3QgcHJlZml4ID0gYCR7bWVhc3VyZW1lbnQuY29tbWVudC5pZC5zbGljZSgwLCA4KX1fYDtcclxuICAgICAgY29uc3QgcGF0aCA9IGAke3RoaXMucGF0aCArIHByZWZpeH1tZXN1cmUuanBlZ2A7XHJcbiAgICAgIGF3YWl0IGRlbGV0ZUZyb21TMyhwYXRoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkZWxldGVkQ29tbWVudDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNyZWF0ZU1lYXN1cmVtZW50Rm9yU3BhY2UoXHJcbiAgICBjb21tZW50SW5wdXQ6IENvbW1lbnQsXHJcbiAgICBkYXRhTWVhc3VyZW1lbnRzOiB7IG1lYXN1cmU6IGFueVtdOyBzd2VlcDogc3RyaW5nIH0sXHJcbiAgICBzY3JlZW5zaG90OiBhbnksXHJcbiAgICBzcGFjZUlEOiBzdHJpbmdcclxuICApOiBQcm9taXNlPE1lYXN1cmVtZW50PiB7XHJcbiAgICBjb25zdCBsYXN0TWVhc3VyZSA9IGRhdGFNZWFzdXJlbWVudHMubWVhc3VyZTtcclxuICAgIGNvbnN0IHN3ZWVwSUQgPSBkYXRhTWVhc3VyZW1lbnRzLnN3ZWVwO1xyXG4gICAgY29uc3QgbGFzdFBvaW50ID0gbGFzdE1lYXN1cmVbbGFzdE1lYXN1cmUubGVuZ3RoIC0gMV07XHJcbiAgICBsZXQgY29tbWVudCA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuY3JlYXRlQ29tbWVudChjb21tZW50SW5wdXQpO1xyXG4gICAgY29uc3QgcG9pSW5wdXQgPSB7XHJcbiAgICAgIGNvb3JkaW5hdGU6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICB4OiBsYXN0UG9pbnQueCxcclxuICAgICAgICB5OiBsYXN0UG9pbnQueSxcclxuICAgICAgICB6OiBsYXN0UG9pbnQueixcclxuICAgICAgfSksXHJcbiAgICAgIHR5cGU6IFBvaVR5cGUuTUVBU1VSRSxcclxuICAgICAgZWxlbWVudElEOiBjb21tZW50LmlkLFxyXG4gICAgICBtYXR0ZXJwb3J0U3dlZXBJRDogc3dlZXBJRCxcclxuICAgIH0gYXMgUE9JO1xyXG4gICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmNyZWF0ZVBPSUZvclNwYWNlSUQocG9pSW5wdXQpO1xyXG4gICAgY29uc3Qgc2NyZWVuID0gYXdhaXQgZmV0Y2goc2NyZWVuc2hvdCk7XHJcbiAgICBjb25zdCBibG9iID0gYXdhaXQgc2NyZWVuLmJsb2IoKTtcclxuICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbYmxvYl0sICdtZXN1cmUuanBlZycsIHsgdHlwZTogJ2ltYWdlL2pwZWcnIH0pO1xyXG4gICAgY29uc3QgdXJsID0gYXdhaXQgdXBsb2FkRmlsZVRvUzModGhpcy5wYXRoLCBmaWxlLCBjb21tZW50LmlkKTtcclxuICAgIGlmICh1cmwpIHtcclxuICAgICAgY29tbWVudCA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UudXBkYXRlQ29tbWVudCh7XHJcbiAgICAgICAgaWQ6IGNvbW1lbnQuaWQsXHJcbiAgICAgICAgYW5uZXhlOiB1cmwsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVhc3VyZW1lbnQgPSB7XHJcbiAgICAgIGNvbW1lbnQsXHJcbiAgICAgIHBvaSxcclxuICAgIH0gYXMgTWVhc3VyZW1lbnQ7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzICYmICEhdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzLnJlY29yZCAmJiB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkKCkpIHtcclxuICAgICAgdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzLmdldEluc3RhbmNlKCkucmVjb3JkKFxyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICB7XHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogJ09iamVjdCBDcmVhdGlvbicsXHJcbiAgICAgICAgICAgIG9iamVjdFR5cGU6ICdtZWFzdXJlbWVudCcsXHJcbiAgICAgICAgICAgIG1lYXN1cmVtZW50OiBtZWFzdXJlbWVudCxcclxuICAgICAgICAgICAgLy96b25lSWQ6IHNwYWNlSUQsXHJcbiAgICAgICAgICAgIHVzZXI6IHRoaXMudXNlclNlcnZpY2UuY3UsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcclxuICAgICAgICAgICAgem9uZUlkOiB0aGlzLnpvbmVJREZpbHRlcixcclxuICAgICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzdHJlYW1OYW1lOiAnc21hcnRlcnBsYW5LaW5lc2lzLWFuYWx5dGljcycsXHJcbiAgICAgICAgICAvLyBwYXJ0aXRpb25LZXk6IFwiXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAnQVdTS2luZXNpcydcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWVhc3VyZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRNb2RlbDNERm9yTWVhc3VyZW1lbnQobWVhc3VyZW1lbnQ6IE1lYXN1cmVtZW50KTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHBvaSA9IGF3YWl0IHRoaXMucG9pU2VydmljZS5nZXRQb2lCeUVsZW1lbnRJZChtZWFzdXJlbWVudC5jb21tZW50LmlkKTtcclxuICAgIGlmIChwb2kgJiYgcG9pLm1hdHRlcnBvcnRTd2VlcElEKSB7XHJcbiAgICAgIGNvbnN0IG5hdmlnYXRpb25zID1cclxuICAgICAgICBhd2FpdCB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldE5hdmlnYXRpb25zRm9yTWF0dGVycG9ydElERm9yU3BhY2UoXHJcbiAgICAgICAgICBwb2kubWF0dGVycG9ydFN3ZWVwSUQsXHJcbiAgICAgICAgICBtZWFzdXJlbWVudC5jb21tZW50LnNwYWNlSURcclxuICAgICAgICApO1xyXG4gICAgICBjb25zdCBbcG9pTmF2aWdhdGlvbl0gPSBuYXZpZ2F0aW9ucztcclxuICAgICAgcmV0dXJuIHBvaU5hdmlnYXRpb24ubm9kZS5tb2RlbDNEO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRNZWFzdXJlbWVudHNGb3JTcGFjZUZvclVzZXIoXHJcbiAgICBzcGFjZUlEOiBzdHJpbmdcclxuICApOiBQcm9taXNlPE1lYXN1cmVtZW50W10+IHtcclxuICAgIGxldCBjb21tZW50cyA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuZ2V0Q29tbWVudHNCeVNwYWNlSUQoc3BhY2VJRCk7XHJcbiAgICBjb21tZW50cyA9IGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJNZWFzdXJlbWVudHNGb3JDdXJyZW50VXNlckluU3BhY2UoXHJcbiAgICAgIHNwYWNlSUQsXHJcbiAgICAgIGNvbW1lbnRzXHJcbiAgICApO1xyXG4gICAgbGV0IG1lYXN1cmVtZW50cyA9IFtdO1xyXG4gICAgaWYgKGNvbW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgY29tbWVudHMubWFwKGFzeW5jIChjb21tZW50KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudCA9XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UucmVhZENvbW1lbnRBc01lYXN1cmVtZW50KGNvbW1lbnQuaWQpO1xyXG4gICAgICAgICAgbWVhc3VyZW1lbnRzLnB1c2gobWVhc3VyZW1lbnQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWVhc3VyZW1lbnRzO1xyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -361,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
361
361
|
type: Inject,
|
|
362
362
|
args: ['currentAPIService']
|
|
363
363
|
}] }, { type: i1.BaseUserService }, { type: i2.NavigatorService }, { type: i3.ZoneChangeService }, { type: i4.FilterService }]; } });
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0M0Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL29iamVjdDNELnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVM3QixNQUFNLE9BQU8sZUFBZTtJQXVEMUIsWUFBeUMsV0FBZ0IsRUFDckMsV0FBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGlCQUFvQyxFQUNwQyxhQUE0QjtRQUg1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBeERoRCxxQkFBZ0IsR0FHWCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRW5CLHFCQUFnQixHQUlaO1lBQ0YsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFFRixZQUFZO1FBQ1osc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2Qix1Q0FBdUM7UUFDdkMsUUFBUTtRQUNSLGVBQWU7UUFDZix5QkFBeUI7UUFDekIsS0FBSztRQUVMLGVBQVUsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVE3QyxnR0FBZ0c7UUFDaEcseUJBQW9CLEdBQWEsSUFBSSxDQUFDO1FBRXRDLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIscUJBQWdCLEdBQXNCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFcEQscUJBQWdCLEdBQXNCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFcEQscUJBQWdCLEdBQXNCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFcEQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVYLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBUy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO1FBQ3ZCLDZFQUE2RTtRQUU3RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO1lBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDMUI7aUJBQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQy9GLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25EO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQWU7UUFDdkMsTUFBTSxJQUFJLEdBQWUsRUFBRSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDekQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRSxJQUFJLE9BQU8sRUFBRTtnQkFDWCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7b0JBQ2xDLE1BQU0sVUFBVSxHQUFHLEVBQUMsR0FBRyxNQUFNLEVBQWEsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDdkI7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRDtJQUVILENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFekUsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLGlCQUFpQixHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLENBQUMsY0FBYztZQUU5RCxpQkFBaUI7Z0JBQ2YsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGtDQUFrQyxDQUN6RCxpQkFBaUIsRUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FDcEIsQ0FBQztZQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQixpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQy9ELGlCQUFpQixFQUNqQixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO2FBQ0g7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkQ7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBYTtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFHRCx5Q0FBeUM7SUFDekMsd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5Qix1Q0FBdUM7SUFDdkMsd0NBQXdDO0lBQ3hDLCtCQUErQjtJQUMvQixnRUFBZ0U7SUFDaEUsd0VBQXdFO0lBQ3hFLGlFQUFpRTtJQUNqRSxzQ0FBc0M7SUFDdEMsc0NBQXNDO0lBQ3RDLHlCQUF5QjtJQUN6QixtQ0FBbUM7SUFDbkMsZUFBZTtJQUNmLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osK0NBQStDO0lBQy9DLHlDQUF5QztJQUN6QyxxQ0FBcUM7SUFDckMsZ0ZBQWdGO0lBQ2hGLCtDQUErQztJQUMvQyw4QkFBOEI7SUFDOUIscUVBQXFFO0lBQ3JFLDJCQUEyQjtJQUMzQixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLDZDQUE2QztJQUM3QyxxQkFBcUI7SUFDckIsMEVBQTBFO0lBQzFFLDhCQUE4QjtJQUM5QixvRUFBb0U7SUFDcEUsMENBQTBDO0lBQzFDLG9CQUFvQjtJQUNwQiwrREFBK0Q7SUFDL0QsY0FBYztJQUNkLFlBQVk7SUFDWixZQUFZO0lBQ1osRUFBRTtJQUNGLDRCQUE0QjtJQUM1Qix3Q0FBd0M7SUFDeEMsbUNBQW1DO0lBQ25DLHFDQUFxQztJQUNyQyw4Q0FBOEM7SUFDOUMsWUFBWTtJQUNaLFlBQVk7SUFDWixFQUFFO0lBQ0YsNEJBQTRCO0lBQzVCLHdDQUF3QztJQUN4QyxtQ0FBbUM7SUFDbkMscUNBQXFDO0lBQ3JDLDhDQUE4QztJQUM5QyxZQUFZO0lBQ1osWUFBWTtJQUNaLEVBQUU7SUFDRiw0QkFBNEI7SUFDNUIsd0NBQXdDO0lBQ3hDLG1DQUFtQztJQUNuQyxxQ0FBcUM7SUFDckMsdURBQXVEO0lBQ3ZELFlBQVk7SUFDWixZQUFZO0lBQ1osTUFBTTtJQUNOLElBQUk7SUFFSixpQkFBaUIsQ0FBQyxlQUF5QjtRQUN6Qyx3REFBd0Q7UUFDeEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLGVBQWUsQ0FBQyxFQUFFLENBQzdDLENBQUM7UUFDRixJQUFJLEdBQUcsRUFBRTtZQUNQLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUNELHlDQUF5QztRQUN6Qyw4REFBOEQ7UUFDOUQseURBQXlEO1FBQ3pELGlCQUFpQjtRQUNqQiwyREFBMkQ7UUFDM0QseUJBQXlCO1FBQ3pCLG1EQUFtRDtRQUNuRCxtQkFBbUI7UUFDbkIsaUNBQWlDO1FBQ2pDLGlFQUFpRTtRQUNqRSxNQUFNO1FBQ04sSUFBSTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO1lBQ2xDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSTtZQUNoQyx5Q0FBeUM7WUFDekMsK0RBQStEO1NBQ2hFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtJQUN6QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsWUFBc0I7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFakQsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1Qiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUs7WUFDbEMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO1lBQ2hDLHlDQUF5QztZQUN6QywrREFBK0Q7U0FDaEUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO0lBQ3pCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsc0NBQXNDO0lBQ3RDLDBEQUEwRDtJQUMxRCxrREFBa0Q7SUFDbEQsbURBQW1EO0lBQ25ELE9BQU87SUFDUCxlQUFlO0lBQ2YsOERBQThEO0lBQzlELHVCQUF1QjtJQUN2QixxQ0FBcUM7SUFDckMsMkNBQTJDO0lBQzNDLHlEQUF5RDtJQUN6RCxrQkFBa0I7SUFDbEIscUVBQXFFO0lBQ3JFLFdBQVc7SUFDWCxNQUFNO0lBQ04sZ0VBQWdFO0lBQ2hFLHdEQUF3RDtJQUN4RCxtQkFBbUI7SUFDbkIsNkRBQTZEO0lBQzdELHdCQUF3QjtJQUN4QixxREFBcUQ7SUFDckQscUJBQXFCO0lBQ3JCLGdDQUFnQztJQUNoQyx5QkFBeUI7SUFDekIsdUNBQXVDO0lBQ3ZDLHdFQUF3RTtJQUN4RSxvQkFBb0I7SUFDcEIsdUNBQXVDO0lBQ3ZDLHFCQUFxQjtJQUNyQiw4Q0FBOEM7SUFDOUMsYUFBYTtJQUNiLFFBQVE7SUFDUixNQUFNO0lBQ04saUNBQWlDO0lBQ2pDLDBDQUEwQztJQUMxQyxtRUFBbUU7SUFDbkUsNEJBQTRCO0lBQzVCLElBQUk7SUFFSix5Q0FBeUM7SUFDekMsc0NBQXNDO0lBQ3RDLG1DQUFtQztJQUNuQyw4QkFBOEI7SUFDOUIsNENBQTRDO0lBQzVDLGtEQUFrRDtJQUNsRCxXQUFXO0lBQ1gsNkJBQTZCO0lBQzdCLDhEQUE4RDtJQUM5RCxVQUFVO0lBQ1YsbUZBQW1GO0lBQ25GLGVBQWU7SUFDZiw0RUFBNEU7SUFDNUUsdUNBQXVDO0lBQ3ZDLDZCQUE2QjtJQUM3QiwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLEVBQUU7SUFDRixnRUFBZ0U7SUFDaEUsZ0NBQWdDO0lBQ2hDLFlBQVk7SUFDWixRQUFRO0lBQ1IsOEJBQThCO0lBQzlCLDBDQUEwQztJQUMxQywrRUFBK0U7SUFDL0UsZ0NBQWdDO0lBQ2hDLHVDQUF1QztJQUN2QyxjQUFjO0lBQ2QsV0FBVztJQUNYLG1DQUFtQztJQUNuQyw4RkFBOEY7SUFDOUYsbUNBQW1DO0lBQ25DLDRDQUE0QztJQUM1QyxpQ0FBaUM7SUFDakMsOEJBQThCO0lBQzlCLGFBQWE7SUFDYiw2RUFBNkU7SUFDN0UsTUFBTTtJQUNOLCtCQUErQjtJQUMvQixJQUFJO0lBR0o7OztPQUdHO0lBQ0gsMkVBQTJFO0lBQzNFLHlFQUF5RTtJQUN6RSxxQkFBcUI7SUFDckIsNkRBQTZEO0lBQzdELG1GQUFtRjtJQUNuRixxRUFBcUU7SUFDckUscUNBQXFDO0lBQ3JDLDRDQUE0QztJQUM1QyxrREFBa0Q7SUFDbEQsUUFBUTtJQUNSLGtDQUFrQztJQUNsQyx1REFBdUQ7SUFDdkQsaUdBQWlHO0lBQ2pHLGlDQUFpQztJQUNqQyx3Q0FBd0M7SUFDeEMsMERBQTBEO0lBQzFELDZEQUE2RDtJQUM3RCxvQ0FBb0M7SUFDcEMsVUFBVTtJQUNWLFFBQVE7SUFDUixvREFBb0Q7SUFDcEQsMkZBQTJGO0lBQzNGLDJDQUEyQztJQUMzQyxRQUFRO0lBQ1IsYUFBYTtJQUNiLGdEQUFnRDtJQUNoRCxNQUFNO0lBQ04saUJBQWlCO0lBQ2pCLElBQUk7SUFFSixLQUFLLENBQUMsY0FBYyxDQUFDLFFBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUMsRUFBRSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBZTtRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFVO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQWtCO1FBQ3BDLHFCQUFxQjtRQUNyQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixRQUFxQyxFQUNyQyxLQUFhO1FBRWIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlCLHVDQUF1QztZQUN2QyxlQUFlO1lBQ2YsNERBQTREO1lBQzVELElBQUk7WUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs7NEdBclpVLGVBQWUsa0JBdUROLG1CQUFtQjtnSEF2RDVCLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF3RGMsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7RXZlbnQsIElVcGRhdGUsIE9iamVjdDNELCBab25lfSBmcm9tIFwiLi4vLi4vdHlwZXMuc2VydmljZVwiO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtCYXNlVXNlclNlcnZpY2V9IGZyb20gXCIuLi91c2VyLnNlcnZpY2VcIjtcbmltcG9ydCB7TmF2aWdhdG9yU2VydmljZX0gZnJvbSBcIi4uL25hdmlnYXRvci5zZXJ2aWNlXCI7XG5pbXBvcnQge0ZpbHRlclNlcnZpY2V9IGZyb20gXCIuLi9maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtab25lQ2hhbmdlU2VydmljZX0gZnJvbSBcIi4uL3pvbmVDaGFuZ2Uuc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3QzRFNlcnZpY2Uge1xuICBBUEk6IGFueTsgLy9BV1MgQVBJU2VydmljZVxuXG4gIG9iamVjdHMzRFVwZGF0ZWQ6IFN1YmplY3Q8e1xuICAgIHNwYWNlOiBPYmplY3QzRFtdO1xuICAgIHpvbmU6IE9iamVjdDNEW107XG4gIH0+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjdXJyZW50T2JqZWN0czNEOiB7XG4gICAgc3BhY2U6IE9iamVjdDNEW107XG4gICAgem9uZTogT2JqZWN0M0RbXVxuICB9XG4gICAgPSB7XG4gICAgc3BhY2U6IFtdLFxuICAgIHpvbmU6IFtdXG4gIH07XG5cbiAgLy8gYmFkIG5hbWUhXG4gIC8vIGN1cnJlbnRPYmplY3RzM0Q6IHtcbiAgLy8gICBzcGFjZTogT2JqZWN0M0RbXTtcbiAgLy8gICB6b25lc01hcDogTWFwPHN0cmluZywgT2JqZWN0M0RbXT47XG4gIC8vIH0gPSB7XG4gIC8vICAgc3BhY2U6IFtdLFxuICAvLyAgIHpvbmVzTWFwOiBuZXcgTWFwKCksXG4gIC8vIH07XG5cbiAgdXBkYXRlRG9uZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgem9uZUlERmlsdGVyOiBzdHJpbmc7XG5cbiAgY3VycmVudFpvbmU6IFpvbmU7XG5cbiAgY3VycmVudFNwYWNlSUQ6IHN0cmluZ1xuXG4gIC8qKiBOdWxsIG1lYW5zIHdlIGRvIG5vdCBhcHBseSBhIGZpbHRlciwgZW1wdHkgYXJyYXkgKFtdKSwgbWVhbnMgd2UgdGhhdCB3ZSBoaWRlIGFsbCBvYmplY3QzRCAqL1xuICBvYmplY3QzRERvbWFpbkZpbHRlcjogc3RyaW5nW10gPSBudWxsO1xuXG4gIHVwZGF0aW5nOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjdXJyZW50bHlVcGRhdGluZyA9IGZhbHNlO1xuXG4gIGRlbGV0ZU9ic2VydmFibGU6IFN1YmplY3Q8T2JqZWN0M0Q+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjcmVhdGVPYnNlcnZhYmxlOiBTdWJqZWN0PE9iamVjdDNEPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgdXBkYXRlT2JzZXJ2YWJsZTogU3ViamVjdDxPYmplY3QzRD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGlzTXVzZXVtVXNlciA9IGZhbHNlO1xuXG4gIGlzVXBkYXRpbmcgPSBmYWxzZTtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHNlbGVjdGVkT2JqZWN0M0Q6IGFueTsgLy8gc2VsZWN0ZWQgZnJvbSBzcHJpdGUgY2Fycm91c2VsIHZpZXdlciAobGliIG9mIG9iamVjdHMzRClcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdjdXJyZW50QVBJU2VydmljZScpIGFwaUluamVjdGVkOiBhbnksXG4gICAgICAgICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IEJhc2VVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHpvbmVDaGFuZ2VTZXJ2aWNlOiBab25lQ2hhbmdlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcbiAgICAvLyB0aGlzLmlzTXVzZXVtVXNlciA9IHRoaXMudXNlclNlcnZpY2UuaGFzT25seU11c2V1bVJvbGUoKTsgLy8gTm90IHVzZWQgeWV0IVxuXG4gICAgdGhpcy5vYmplY3RzM0RVcGRhdGVkLnN1YnNjcmliZSgobGlzdCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNEID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuem9uZUNoYW5nZVNlcnZpY2Uuem9uZUNoYW5nZS5zdWJzY3JpYmUoKHpvbmUpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudFNwYWNlSUQ7XG4gICAgICBpZiAoIXRoaXMuY3VycmVudFNwYWNlSUQpIHtcbiAgICAgICAgdGhpcy5vYmplY3RzM0RVcGRhdGVkLm5leHQoe3NwYWNlOiBbXSwgem9uZTogbnVsbH0pO1xuICAgICAgICB0aGlzLnpvbmVJREZpbHRlciA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKHpvbmUuaWQgIT09IHRoaXMuem9uZUlERmlsdGVyICYmICF0aGlzLnVzZXJTZXJ2aWNlLmlzTXVzZXVtVXNlcih0aGlzLmN1cnJlbnRTcGFjZUlEKSkge1xuICAgICAgICB0aGlzLnpvbmVJREZpbHRlciA9IHpvbmUuaWQ7XG4gICAgICAgIHRoaXMuaW5pdE9iamVjdHMzRCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVEb25lLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xuICAgICAgICAgIHRoaXMuaW5pdE9iamVjdHMzRCgpLmNhdGNoKGUgPT4gY29uc29sZS5sb2coZSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0T2JqZWN0czNEQnlTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PE9iamVjdDNEPj4ge1xuICAgIGNvbnN0IGxpc3Q6IE9iamVjdDNEW10gPSBbXTtcbiAgICBpZiAodGhpcy5BUEkuX19wcm90b19fLmhhc093blByb3BlcnR5KCdPYmplY3RzM0RCeVNwYWNlJykpIHtcbiAgICAgIGNvbnN0IG9iamVjdHMgPSBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uT2JqZWN0czNEQnlTcGFjZShzcGFjZUlEKTtcbiAgICAgIGlmIChvYmplY3RzKSB7XG4gICAgICAgIGZvciAoY29uc3Qgb2JqZWN0IG9mIG9iamVjdHMuaXRlbXMpIHtcbiAgICAgICAgICBjb25zdCB6b25lT2JqZWN0ID0gey4uLm9iamVjdH0gYXMgT2JqZWN0M0Q7XG4gICAgICAgICAgbGlzdC5wdXNoKHpvbmVPYmplY3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvYmplY3RzM0RCeVNwYWNlIG5vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICB9XG5cbiAgYXN5bmMgaW5pdE9iamVjdHMzRCgpIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudFNwYWNlSUQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgIHRoaXMuaXNVcGRhdGluZyA9IHRydWU7XG4gICAgY29uc3Qgb2JqZWN0M0RMaXN0ID0gYXdhaXQgdGhpcy5nZXRPYmplY3RzM0RCeVNwYWNlKHRoaXMuY3VycmVudFNwYWNlSUQpO1xuXG4gICAgaWYgKG9iamVjdDNETGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZmlsdGVyZWRPYmplY3RzM0QgPSBbLi4ub2JqZWN0M0RMaXN0XTtcbiAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lID0gZmlsdGVyZWRPYmplY3RzM0Q7IC8vIG5vdCBzb3J0ZWQhXG5cbiAgICAgIGZpbHRlcmVkT2JqZWN0czNEID1cbiAgICAgICAgYXdhaXQgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck9iamVjdHNGb3JDdXJyZW50VXNlckluU3BhY2UoXG4gICAgICAgICAgZmlsdGVyZWRPYmplY3RzM0QsXG4gICAgICAgICAgdGhpcy5jdXJyZW50U3BhY2VJRFxuICAgICAgICApO1xuICAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlID0gZmlsdGVyZWRPYmplY3RzM0Q7XG4gICAgICBpZiAodGhpcy56b25lSURGaWx0ZXIpIHtcbiAgICAgICAgZmlsdGVyZWRPYmplY3RzM0QgPSBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyT2JqZWN0c0ZvclpvbmUoXG4gICAgICAgICAgZmlsdGVyZWRPYmplY3RzM0QsXG4gICAgICAgICAgdGhpcy56b25lSURGaWx0ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lID0gZmlsdGVyZWRPYmplY3RzM0Q7XG4gICAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh0aGlzLmN1cnJlbnRPYmplY3RzM0QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBbXX0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XG4gICAgfVxuICAgIHRoaXMudXBkYXRpbmcubmV4dChmYWxzZSk7XG4gICAgdGhpcy5pc1VwZGF0aW5nID0gZmFsc2U7XG4gIH1cblxuICBnZXRTZWxlY3RlZE9iamVjdDNEKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPYmplY3QzRDtcbiAgfVxuXG4gIHNldFNlbGVjdGVkT2JqZWN0M0Qoc2VsZWN0ZWQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPYmplY3QzRCA9IHNlbGVjdGVkO1xuICB9XG5cblxuICAvLyBUSEUgRk9MTE9XSU5HIExPR0lDIElTIEVRVUlQLiBTUEVDSUZJQ1xuICAvLyBpbml0U3Vic2NyaXB0aW9ucygpIHtcbiAgLy8gICBpZiAoIXRoaXMuaXNNdXNldW1Vc2VyKSB7XG4gIC8vICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2Uuem9uZUNoYW5nZVxuICAvLyAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gIC8vICAgICAgIC5zdWJzY3JpYmUoKHpvbmUpID0+IHtcbiAgLy8gICAgICAgICBpZiAoIXpvbmUgfHwgIXRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50U3BhY2VJRCkge1xuICAvLyAgICAgICAgICAgdGhpcy5jdXJyZW50U3BhY2VJRCA9IHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50U3BhY2VJRDtcbiAgLy8gICAgICAgICAgIHRoaXMub2JqZWN0czNEVXBkYXRlZC5uZXh0KHtzcGFjZTogW10sIHpvbmU6IG51bGx9KTtcbiAgLy8gICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gbnVsbDtcbiAgLy8gICAgICAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRCA9IHtcbiAgLy8gICAgICAgICAgICAgc3BhY2U6IFtdLFxuICAvLyAgICAgICAgICAgICB6b25lc01hcDogbmV3IE1hcCgpLFxuICAvLyAgICAgICAgICAgfTtcbiAgLy8gICAgICAgICAgIHJldHVybjtcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgICAgaWYgKHpvbmUuaWQgIT09IHRoaXMuem9uZUlERmlsdGVyKSB7XG4gIC8vICAgICAgICAgICB0aGlzLnpvbmVJREZpbHRlciA9IHpvbmUuaWQ7XG4gIC8vICAgICAgICAgICB0aGlzLmN1cnJlbnRab25lID0gem9uZTtcbiAgLy8gICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRTcGFjZUlEID09PSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudFNwYWNlSUQpIHtcbiAgLy8gICAgICAgICAgICAgLy8gc2FtZSBzcGFjZSwgIG9ubHkgem9uZSB1cGRhdGVcbiAgLy8gICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXG4gIC8vICAgICAgICAgICAgIC8vICAgICBcImdvaW5nIHRvIHVwZGF0ZSBlcXVpcHMgZm9yIHpvbmUgKHNhbWUgc3BhY2UpXCIsXG4gIC8vICAgICAgICAgICAgIC8vICAgICB6b25lLFxuICAvLyAgICAgICAgICAgICAvLyApO1xuICAvL1xuICAvLyAgICAgICAgICAgICB0aGlzLnVwZGF0ZU9iamVjdHMzREZvclpvbmUoKTtcbiAgLy8gICAgICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudFNwYWNlSUQ7XG4gIC8vICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFxuICAvLyAgICAgICAgICAgICAvLyAgICAgXCJnb2luZyB0byBpbml0IGVxdWlwcyBmb3Igem9uZSBmb3IgbmV3IHNwYWNlXCIsXG4gIC8vICAgICAgICAgICAgIC8vICAgICB0aGlzLmN1cnJlbnRTcGFjZUlELFxuICAvLyAgICAgICAgICAgICAvLyApO1xuICAvLyAgICAgICAgICAgICB0aGlzLmluaXRPYmplY3RzM0QoKS5jYXRjaChlID0+IGNvbnNvbGUubG9nKGUpKTtcbiAgLy8gICAgICAgICAgIH1cbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgIH0pO1xuICAvL1xuICAvLyAgICAgdGhpcy5kZWxldGVPYnNlcnZhYmxlXG4gIC8vICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgLy8gICAgICAgLnN1YnNjcmliZSgob2JqZWN0M0QpID0+IHtcbiAgLy8gICAgICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xuICAvLyAgICAgICAgICAgdGhpcy51cGRhdGVEdWVUb0RlbGV0ZShvYmplY3QzRCk7XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9KTtcbiAgLy9cbiAgLy8gICAgIHRoaXMuY3JlYXRlT2JzZXJ2YWJsZVxuICAvLyAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gIC8vICAgICAgIC5zdWJzY3JpYmUoKG9iamVjdDNEKSA9PiB7XG4gIC8vICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQpIHtcbiAgLy8gICAgICAgICAgIHRoaXMudXBkYXRlRHVlVG9DcmVhdGUob2JqZWN0M0QpO1xuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfSk7XG4gIC8vXG4gIC8vICAgICB0aGlzLnVwZGF0ZU9ic2VydmFibGVcbiAgLy8gICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAvLyAgICAgICAuc3Vic2NyaWJlKChvYmplY3QzRCkgPT4ge1xuICAvLyAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XG4gIC8vICAgICAgICAgICB0aGlzLnVwZGF0ZUR1ZVRvT2JqZWN0M0RVcGRhdGVkKG9iamVjdDNEKTtcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgIH0pO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIHVwZGF0ZUR1ZVRvRGVsZXRlKGRlbGV0ZWRPYmplY3QzRDogT2JqZWN0M0QpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcInVwZGF0ZSBkdWUgdG8gZGVsZXRlXCIsIGRlbGV0ZWRPYmplY3QzRCk7XG4gICAgY29uc3Qgb2JqID0gdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLmZpbmQoXG4gICAgICAoX2VxdWlwKSA9PiBfZXF1aXAuaWQgPT09IGRlbGV0ZWRPYmplY3QzRC5pZFxuICAgICk7XG4gICAgaWYgKG9iaikge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRPYmplY3RzM0Quc3BhY2UuaW5kZXhPZihvYmopO1xuICAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIC8vIFRIRSBGT0xMT1dJTkcgTE9HSUMgSVMgRVFVSVAuIFNQRUNJRklDXG4gICAgLy8gZm9yIChjb25zdCB6b25lIG9mIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcC5rZXlzKCkpIHtcbiAgICAvLyAgIGNvbnN0IGVxdWlwVG9EZWxldGUgPSB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXBcbiAgICAvLyAgICAgLmdldCh6b25lKVxuICAgIC8vICAgICAuZmluZCgoX2VxdWlwKSA9PiBfZXF1aXAuaWQgPT09IGRlbGV0ZWRPYmplY3QzRC5pZCk7XG4gICAgLy8gICBpZiAoZXF1aXBUb0RlbGV0ZSkge1xuICAgIC8vICAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcFxuICAgIC8vICAgICAgIC5nZXQoem9uZSlcbiAgICAvLyAgICAgICAuaW5kZXhPZihlcXVpcFRvRGVsZXRlKTtcbiAgICAvLyAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwLmdldCh6b25lKS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7XG4gICAgICBzcGFjZTogdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLFxuICAgICAgem9uZTogdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmUsXG4gICAgICAvLyBUSEUgRk9MTE9XSU5HIExPR0lDIElTIEVRVUlQLiBTUEVDSUZJQ1xuICAgICAgLy8gem9uZTogdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwLmdldCh0aGlzLnpvbmVJREZpbHRlciksXG4gICAgfSk7IC8vIGZvciBsYXRlcmFsIG1lbnVcbiAgfVxuXG4gIHVwZGF0ZUR1ZVRvQ3JlYXRlKGNyZWF0ZWRPYmozRDogT2JqZWN0M0QpIHtcbiAgICB0aGlzLmN1cnJlbnRPYmplY3RzM0Quc3BhY2UudW5zaGlmdChjcmVhdGVkT2JqM0QpO1xuICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lLnVuc2hpZnQoY3JlYXRlZE9iajNEKTtcblxuICAgIC8vIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcFxuICAgIC8vICAgLmdldCh0aGlzLnpvbmVJREZpbHRlcilcbiAgICAvLyAgIC51bnNoaWZ0KGNyZWF0ZWRFcXVpcCk7XG4gICAgdGhpcy5vYmplY3RzM0RVcGRhdGVkLm5leHQoe1xuICAgICAgc3BhY2U6IHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZSxcbiAgICAgIHpvbmU6IHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lLFxuICAgICAgLy8gVEhFIEZPTExPV0lORyBMT0dJQyBJUyBFUVVJUC4gU1BFQ0lGSUNcbiAgICAgIC8vIHpvbmU6IHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcC5nZXQodGhpcy56b25lSURGaWx0ZXIpLFxuICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XG4gIH1cblxuICAvLyBUSEUgRk9MTE9XSU5HIExPR0lDIElTIEVRVUlQLiBTUEVDSUZJQ1xuICAvLyBOb3QgaW1wbGVtZW50ZWQgc2luY2Ugbm90IHVzZWQgeWV0IVxuICAvLyB1cGRhdGVEdWVUb09iamVjdDNEVXBkYXRlZCh1cGRhdGVkT2JqZWN0M0Q6IE9iamVjdDNEKSB7XG4gIC8vICAgY29uc3Qgb2JqID0gdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLmZpbmQoXG4gIC8vICAgICAoX2VxdWlwKSA9PiBfZXF1aXAuaWQgPT09IHVwZGF0ZWRPYmplY3QzRC5pZFxuICAvLyAgICk7XG4gIC8vICAgaWYgKG9iaikge1xuICAvLyAgICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRPYmplY3RzM0Quc3BhY2UuaW5kZXhPZihvYmopO1xuICAvLyAgICAgLy8gTm90IHVzZWQgeWV0IVxuICAvLyAgICAgLy8gaWYgKHRoaXMuaXNBcmNoaXZlZChvYmopKSB7XG4gIC8vICAgICAvLyAgIC8vIHdlIHJlbW92ZSBhcmNoaXZlZCBlcXVpcG1lbnRcbiAgLy8gICAgIC8vICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLnNwbGljZShpbmRleCwgMSk7XG4gIC8vICAgICAvLyB9IGVsc2Uge1xuICAvLyAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLnNwbGljZShpbmRleCwgMSwgdXBkYXRlZE9iamVjdDNEKTtcbiAgLy8gICAgIC8vIH1cbiAgLy8gICB9XG4gIC8vICAgZm9yIChjb25zdCB6b25lIG9mIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcC5rZXlzKCkpIHtcbiAgLy8gICAgIGNvbnN0IGVxdWlwVG9VcGQgPSB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXBcbiAgLy8gICAgICAgLmdldCh6b25lKVxuICAvLyAgICAgICAuZmluZCgoX2VxdWlwKSA9PiBfZXF1aXAuaWQgPT09IHVwZGF0ZWRPYmplY3QzRC5pZCk7XG4gIC8vICAgICBpZiAoZXF1aXBUb1VwZCkge1xuICAvLyAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcFxuICAvLyAgICAgICAgIC5nZXQoem9uZSlcbiAgLy8gICAgICAgICAuaW5kZXhPZihlcXVpcFRvVXBkKTtcbiAgLy8gICAgICAgLy8gTm90IHVzZWQgeWV0IVxuICAvLyAgICAgICAvLyBpZiAodGhpcy5pc0FyY2hpdmVkKG9iaikpIHtcbiAgLy8gICAgICAgLy8gICB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAuZ2V0KHpvbmUpLnNwbGljZShpbmRleCwgMSk7XG4gIC8vICAgICAgIC8vIH0gZWxzZSB7XG4gIC8vICAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcFxuICAvLyAgICAgICAgIC5nZXQoem9uZSlcbiAgLy8gICAgICAgICAuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVkT2JqZWN0M0QpO1xuICAvLyAgICAgICAvLyB9XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyAgIHRoaXMub2JqZWN0czNEVXBkYXRlZC5uZXh0KHtcbiAgLy8gICAgIHNwYWNlOiB0aGlzLmN1cnJlbnRPYmplY3RzM0Quc3BhY2UsXG4gIC8vICAgICB6b25lOiB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKSxcbiAgLy8gICB9KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxuICAvLyB9XG5cbiAgLy8gVEhFIEZPTExPV0lORyBMT0dJQyBJUyBFUVVJUC4gU1BFQ0lGSUNcbiAgLy8gTm90IGltcGxlbWVudGVkIHNpbmNlIG5vdCB1c2VkIHlldCFcbiAgLy8gYXN5bmMgdXBkYXRlT2JqZWN0czNERm9yWm9uZSgpIHtcbiAgLy8gICB0aGlzLnVwZGF0aW5nLm5leHQodHJ1ZSk7XG4gIC8vICAgbGV0IGZpbHRlcmVkT2JqZWN0czNEOiBPYmplY3QzRFtdID0gW107XG4gIC8vICAgaWYgKHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZS5sZW5ndGggPiAwKSB7XG4gIC8vICAgICBpZiAoXG4gIC8vICAgICAgIHRoaXMuem9uZUlERmlsdGVyICYmXG4gIC8vICAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcC5oYXModGhpcy56b25lSURGaWx0ZXIpXG4gIC8vICAgICApIHtcbiAgLy8gICAgICAgZmlsdGVyZWRPYmplY3RzM0QgPSB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKTtcbiAgLy8gICAgIH0gZWxzZSB7XG4gIC8vICAgICAgIGZpbHRlcmVkT2JqZWN0czNEID0gKGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJPYmplY3RzRm9yWm9uZShcbiAgLy8gICAgICAgICB0aGlzLmN1cnJlbnRPYmplY3RzM0Quc3BhY2UsXG4gIC8vICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIsXG4gIC8vICAgICAgICAgdGhpcy5jdXJyZW50Wm9uZVxuICAvLyAgICAgICApKSBhcyBPYmplY3QzRFtdO1xuICAvL1xuICAvLyAgICAgICB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAuc2V0KHRoaXMuem9uZUlERmlsdGVyLCBbXG4gIC8vICAgICAgICAgLi4uZmlsdGVyZWRPYmplY3RzM0QsXG4gIC8vICAgICAgIF0pO1xuICAvLyAgICAgfVxuICAvLyAgICAgLy8gTm90IGltcGxlbWVudGVkIHlldCFcbiAgLy8gICAgIC8vIGlmICh0aGlzLm9iamVjdDNERG9tYWluRmlsdGVyKSB7XG4gIC8vICAgICAvLyAgIGZpbHRlcmVkT2JqZWN0czNEID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck9iamVjdHMzREJ5RG9tYWluTGlzdChcbiAgLy8gICAgIC8vICAgICBmaWx0ZXJlZE9iamVjdHMzRCxcbiAgLy8gICAgIC8vICAgICB0aGlzLm9iamVjdDNERG9tYWluRmlsdGVyXG4gIC8vICAgICAvLyAgICk7XG4gIC8vICAgICAvLyB9XG4gIC8vICAgICAvLyBOb3QgdXNlZCBmb3Igb2JqZWN0cyBub3chXG4gIC8vICAgICAvLyB0aGlzLm9iamVjdHMzRFRhZ3MubmV4dChmaWx0ZXJlZE9iamVjdHMzRCk7IC8vIGFkZGluZyB0YWdzIG9ubHkgZm9yIHRoZSBjdXJyZW50IHpvbmVcbiAgLy8gICAgIHRoaXMub2JqZWN0czNEVXBkYXRlZC5uZXh0KHtcbiAgLy8gICAgICAgc3BhY2U6IHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZSxcbiAgLy8gICAgICAgem9uZTogZmlsdGVyZWRPYmplY3RzM0QsXG4gIC8vICAgICB9KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBbXX0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XG4gIC8vICAgfVxuICAvLyAgIHRoaXMudXBkYXRpbmcubmV4dChmYWxzZSk7XG4gIC8vIH1cblxuXG4gIC8qKlxuICAgKiBOb3QgaW1wbGVtZW50ZWQgeWV0ISBNYXkgYmUgdXNlZnVsbCBmb3IgdGhlIGZ1dHVyZSAoZmlsdGVyIDNEIG9iamVjdHMgZm9yIGEgZ2l2ZW4gYXV0aG9yaXplZCB1c2VyOiBleGFtcGxlIGxpYnMgb2Ygb2JqZWN0cylcbiAgICogQHBhcmFtIG9iamVjdElkXG4gICAqL1xuICAvLyBhc3luYyBnZXRPYmplY3RzM0RCeVNwYWNlRm9yVXNlcihzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPE9iamVjdDNEW10+IHtcbiAgLy8gICBjb25zdCBtaXNzaW9uRm9yTG9jYXRpb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKHNwYWNlSUQpO1xuICAvLyAgIGNvbnN0IGxpc3QgPSBbXTtcbiAgLy8gICBpZiAobWlzc2lvbkZvckxvY2F0aW9uICYmIG1pc3Npb25Gb3JMb2NhdGlvbi5vYmplY3RJZCkge1xuICAvLyAgICAgY29uc3QgYWxsb3dlZE9iamVjdDNEID0gYXdhaXQgdGhpcy5nZXRPYmplY3QzRChtaXNzaW9uRm9yTG9jYXRpb24ub2JqZWN0SWQpO1xuICAvLyAgICAgYWxsb3dlZE9iamVjdDNELnZpcnR1YWwgPSB0aGlzLnpvbmVJc1ZpcnR1YWwoYWxsb3dlZE9iamVjdDNEKTtcbiAgLy8gICAgIGlmICghYWxsb3dlZE9iamVjdDNELnBhcmVudCkge1xuICAvLyAgICAgICAvLyB0aGUgd2hvbGUgYnVpbGRpbmcgaXMgYXV0aG9yaXplZFxuICAvLyAgICAgICByZXR1cm4gdGhpcy5nZXRPYmplY3RzM0RCeVNwYWNlKHNwYWNlSUQpO1xuICAvLyAgICAgfVxuICAvLyAgICAgbGlzdC5wdXNoKGFsbG93ZWRPYmplY3QzRCk7XG4gIC8vICAgICAvLyBhbGxvdyBhbGwgY2hpbGRyZW4gem9uZXMgb2YgYW4gYWxsb3dlZCBwYXJlbnRcbiAgLy8gICAgIGNvbnN0IGNoaWxkcmVuID0gKGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5vYmplY3RzM0RCeU9iamVjdDNEKGFsbG93ZWRPYmplY3QzRC5pZCkpLml0ZW1zO1xuICAvLyAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgLy8gICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAvLyAgICAgICAgIGNvbnN0IGNoaWxkT2JqZWN0M0QgPSB7IC4uLmNoaWxkIH0gYXMgT2JqZWN0M0Q7XG4gIC8vICAgICAgICAgY2hpbGRPYmplY3QzRC52aXJ0dWFsID0gdGhpcy56b25lSXNWaXJ0dWFsKGNoaWxkKTtcbiAgLy8gICAgICAgICBsaXN0LnB1c2goY2hpbGRPYmplY3QzRCk7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICAgIC8vIGFsbG93IHRoZSBwYXJlbnQgRmxvb3Igb2YgdGhlIGFsbG93ZWQgem9uZVxuICAvLyAgICAgaWYgKGFsbG93ZWRPYmplY3QzRC5wYXJlbnQubGF5ZXIgJiYgYWxsb3dlZE9iamVjdDNELnBhcmVudC5sYXllci5uYW1lID09PSBcIkZMT09SXCIpIHtcbiAgLy8gICAgICAgbGlzdC5wdXNoKGFsbG93ZWRPYmplY3QzRC5wYXJlbnQpO1xuICAvLyAgICAgfVxuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICByZXR1cm4gdGhpcy5nZXRPYmplY3RzM0RCeVNwYWNlKHNwYWNlSUQpO1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4gbGlzdDtcbiAgLy8gfVxuXG4gIGFzeW5jIGRlbGV0ZU9iamVjdDNEKG9iamVjdElkOiBzdHJpbmcpOiBQcm9taXNlPE9iamVjdDNEPiB7XG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVPYmplY3QzRCh7aWQ6IG9iamVjdElkfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoaW5wdXQ6IE9iamVjdDNEKTogUHJvbWlzZTxPYmplY3QzRD4ge1xuICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlT2JqZWN0M0QoaW5wdXQpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlT2JqZWN0M0QoaW5wdXQ6IGFueSk6IFByb21pc2U8T2JqZWN0M0Q+IHtcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZU9iamVjdDNEKGlucHV0KTtcbiAgfVxuXG4gIC8qKiBCYXNpYyBDUlVEIG9wZXJhdGlvbnMgKi9cbiAgYXN5bmMgcmVhZE9iamVjdDNEKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldE9iamVjdDNEKGlkKTtcbiAgfVxuXG4gIGFzeW5jIGFkYXB0T2JqZWN0M0Qob2JqZWN0M0Q6IE9iamVjdDNEKTogUHJvbWlzZTxPYmplY3QzRD4ge1xuICAgIC8vIE5vdCByZXF1aXJlZCBoZXJlIVxuICAgIHJldHVybiBvYmplY3QzRDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU9iamVjdDNEV2l0aEV2ZW50KFxuICAgIG9iamVjdDNEOiBJVXBkYXRlICYgUGFydGlhbDxPYmplY3QzRD4sXG4gICAgZXZlbnQ/OiBFdmVudCxcbiAgKTogUHJvbWlzZTxPYmplY3QzRD4ge1xuICAgIGNvbnN0IHJlY2VpdmVkT2JqZWN0M0QgPSBhd2FpdCB0aGlzLnVwZGF0ZU9iamVjdDNEKG9iamVjdDNEKTtcbiAgICBpZiAocmVjZWl2ZWRPYmplY3QzRCkge1xuICAgICAgY29uc29sZS5sb2coXCJVcGRhdGVkIG9iamVjdDNEIDpcIik7XG4gICAgICBjb25zb2xlLmxvZyhyZWNlaXZlZE9iamVjdDNEKTtcbiAgICAgIC8vIE5vdCBzZW50IGN1cnJlbnRseTogYXNrIGlmIG5lZWRlZC4uLlxuICAgICAgLy8gaWYgKGV2ZW50KSB7XG4gICAgICAvLyAgIGF3YWl0IHRoaXMuYWRkRXZlbnRUb09iamVjdDNEKHJlY2VpdmVkT2JqZWN0M0QsIGV2ZW50KTtcbiAgICAgIC8vIH1cbiAgICAgIHRoaXMudXBkYXRlRG9uZS5uZXh0KHRydWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVjZWl2ZWRPYmplY3QzRDtcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0M0Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL29iamVjdDNELnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVM3QixNQUFNLE9BQU8sZUFBZTtJQXVEMUIsWUFBeUMsV0FBZ0IsRUFDckMsV0FBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGlCQUFvQyxFQUNwQyxhQUE0QjtRQUg1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBeERoRCxxQkFBZ0IsR0FHWCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRW5CLHFCQUFnQixHQUlaO1lBQ0YsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFFRixZQUFZO1FBQ1osc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2Qix1Q0FBdUM7UUFDdkMsUUFBUTtRQUNSLGVBQWU7UUFDZix5QkFBeUI7UUFDekIsS0FBSztRQUVMLGVBQVUsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVE3QyxnR0FBZ0c7UUFDaEcseUJBQW9CLEdBQWEsSUFBSSxDQUFDO1FBRXRDLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIscUJBQWdCLEdBQXNCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFcEQscUJBQWdCLEdB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QUFxQjtRQUNyQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixRQUFxQyxFQUNyQyxLQUFhO1FBRWIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlCLHVDQUF1QztZQUN2QyxlQUFlO1lBQ2YsNERBQTREO1lBQzVELElBQUk7WUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs7NEdBclpVLGVBQWUsa0JBdUROLG1CQUFtQjtnSEF2RDVCLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF3RGMsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0V2ZW50LCBJVXBkYXRlLCBPYmplY3QzRCwgWm9uZX0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0Jhc2VVc2VyU2VydmljZX0gZnJvbSBcIi4uL3VzZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge05hdmlnYXRvclNlcnZpY2V9IGZyb20gXCIuLi9uYXZpZ2F0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge0ZpbHRlclNlcnZpY2V9IGZyb20gXCIuLi9maWx0ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge1pvbmVDaGFuZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vem9uZUNoYW5nZS5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3QzRFNlcnZpY2Uge1xyXG4gIEFQSTogYW55OyAvL0FXUyBBUElTZXJ2aWNlXHJcblxyXG4gIG9iamVjdHMzRFVwZGF0ZWQ6IFN1YmplY3Q8e1xyXG4gICAgc3BhY2U6IE9iamVjdDNEW107XHJcbiAgICB6b25lOiBPYmplY3QzRFtdO1xyXG4gIH0+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY3VycmVudE9iamVjdHMzRDoge1xyXG4gICAgc3BhY2U6IE9iamVjdDNEW107XHJcbiAgICB6b25lOiBPYmplY3QzRFtdXHJcbiAgfVxyXG4gICAgPSB7XHJcbiAgICBzcGFjZTogW10sXHJcbiAgICB6b25lOiBbXVxyXG4gIH07XHJcblxyXG4gIC8vIGJhZCBuYW1lIVxyXG4gIC8vIGN1cnJlbnRPYmplY3RzM0Q6IHtcclxuICAvLyAgIHNwYWNlOiBPYmplY3QzRFtdO1xyXG4gIC8vICAgem9uZXNNYXA6IE1hcDxzdHJpbmcsIE9iamVjdDNEW10+O1xyXG4gIC8vIH0gPSB7XHJcbiAgLy8gICBzcGFjZTogW10sXHJcbiAgLy8gICB6b25lc01hcDogbmV3IE1hcCgpLFxyXG4gIC8vIH07XHJcblxyXG4gIHVwZGF0ZURvbmU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICB6b25lSURGaWx0ZXI6IHN0cmluZztcclxuXHJcbiAgY3VycmVudFpvbmU6IFpvbmU7XHJcblxyXG4gIGN1cnJlbnRTcGFjZUlEOiBzdHJpbmdcclxuXHJcbiAgLyoqIE51bGwgbWVhbnMgd2UgZG8gbm90IGFwcGx5IGEgZmlsdGVyLCBlbXB0eSBhcnJheSAoW10pLCBtZWFucyB3ZSB0aGF0IHdlIGhpZGUgYWxsIG9iamVjdDNEICovXHJcbiAgb2JqZWN0M0REb21haW5GaWx0ZXI6IHN0cmluZ1tdID0gbnVsbDtcclxuXHJcbiAgdXBkYXRpbmc6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjdXJyZW50bHlVcGRhdGluZyA9IGZhbHNlO1xyXG5cclxuICBkZWxldGVPYnNlcnZhYmxlOiBTdWJqZWN0PE9iamVjdDNEPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNyZWF0ZU9ic2VydmFibGU6IFN1YmplY3Q8T2JqZWN0M0Q+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgdXBkYXRlT2JzZXJ2YWJsZTogU3ViamVjdDxPYmplY3QzRD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBpc011c2V1bVVzZXIgPSBmYWxzZTtcclxuXHJcbiAgaXNVcGRhdGluZyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RlZE9iamVjdDNEOiBhbnk7IC8vIHNlbGVjdGVkIGZyb20gc3ByaXRlIGNhcnJvdXNlbCB2aWV3ZXIgKGxpYiBvZiBvYmplY3RzM0QpXHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBCYXNlVXNlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgem9uZUNoYW5nZVNlcnZpY2U6IFpvbmVDaGFuZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSkge1xyXG4gICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcclxuICAgIC8vIHRoaXMuaXNNdXNldW1Vc2VyID0gdGhpcy51c2VyU2VydmljZS5oYXNPbmx5TXVzZXVtUm9sZSgpOyAvLyBOb3QgdXNlZCB5ZXQhXHJcblxyXG4gICAgdGhpcy5vYmplY3RzM0RVcGRhdGVkLnN1YnNjcmliZSgobGlzdCkgPT4ge1xyXG4gICAgICB0aGlzLmN1cnJlbnRPYmplY3RzM0QgPSBsaXN0O1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS56b25lQ2hhbmdlLnN1YnNjcmliZSgoem9uZSkgPT4ge1xyXG4gICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEO1xyXG4gICAgICBpZiAoIXRoaXMuY3VycmVudFNwYWNlSUQpIHtcclxuICAgICAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBudWxsfSk7XHJcbiAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSBudWxsO1xyXG4gICAgICB9IGVsc2UgaWYgKHpvbmUuaWQgIT09IHRoaXMuem9uZUlERmlsdGVyICYmICF0aGlzLnVzZXJTZXJ2aWNlLmlzTXVzZXVtVXNlcih0aGlzLmN1cnJlbnRTcGFjZUlEKSkge1xyXG4gICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gem9uZS5pZDtcclxuICAgICAgICB0aGlzLmluaXRPYmplY3RzM0QoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVEb25lLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XHJcbiAgICAgICAgICB0aGlzLmluaXRPYmplY3RzM0QoKS5jYXRjaChlID0+IGNvbnNvbGUubG9nKGUpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRPYmplY3RzM0RCeVNwYWNlKHNwYWNlSUQ6IHN0cmluZyk6IFByb21pc2U8QXJyYXk8T2JqZWN0M0Q+PiB7XHJcbiAgICBjb25zdCBsaXN0OiBPYmplY3QzRFtdID0gW107XHJcbiAgICBpZiAodGhpcy5BUEkuX19wcm90b19fLmhhc093blByb3BlcnR5KCdPYmplY3RzM0RCeVNwYWNlJykpIHtcclxuICAgICAgY29uc3Qgb2JqZWN0cyA9IGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5PYmplY3RzM0RCeVNwYWNlKHNwYWNlSUQpO1xyXG4gICAgICBpZiAob2JqZWN0cykge1xyXG4gICAgICAgIGZvciAoY29uc3Qgb2JqZWN0IG9mIG9iamVjdHMuaXRlbXMpIHtcclxuICAgICAgICAgIGNvbnN0IHpvbmVPYmplY3QgPSB7Li4ub2JqZWN0fSBhcyBPYmplY3QzRDtcclxuICAgICAgICAgIGxpc3QucHVzaCh6b25lT2JqZWN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29iamVjdHMzREJ5U3BhY2Ugbm90IGltcGxlbWVudGVkJyk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYXN5bmMgaW5pdE9iamVjdHMzRCgpIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50U3BhY2VJRCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0aW5nLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3Qgb2JqZWN0M0RMaXN0ID0gYXdhaXQgdGhpcy5nZXRPYmplY3RzM0RCeVNwYWNlKHRoaXMuY3VycmVudFNwYWNlSUQpO1xyXG5cclxuICAgIGlmIChvYmplY3QzRExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlsdGVyZWRPYmplY3RzM0QgPSBbLi4ub2JqZWN0M0RMaXN0XTtcclxuICAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmUgPSBmaWx0ZXJlZE9iamVjdHMzRDsgLy8gbm90IHNvcnRlZCFcclxuXHJcbiAgICAgIGZpbHRlcmVkT2JqZWN0czNEID1cclxuICAgICAgICBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyT2JqZWN0c0ZvckN1cnJlbnRVc2VySW5TcGFjZShcclxuICAgICAgICAgIGZpbHRlcmVkT2JqZWN0czNELFxyXG4gICAgICAgICAgdGhpcy5jdXJyZW50U3BhY2VJRFxyXG4gICAgICAgICk7XHJcbiAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZSA9IGZpbHRlcmVkT2JqZWN0czNEO1xyXG4gICAgICBpZiAodGhpcy56b25lSURGaWx0ZXIpIHtcclxuICAgICAgICBmaWx0ZXJlZE9iamVjdHMzRCA9IGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJPYmplY3RzRm9yWm9uZShcclxuICAgICAgICAgIGZpbHRlcmVkT2JqZWN0czNELFxyXG4gICAgICAgICAgdGhpcy56b25lSURGaWx0ZXJcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lID0gZmlsdGVyZWRPYmplY3RzM0Q7XHJcbiAgICAgIHRoaXMub2JqZWN0czNEVXBkYXRlZC5uZXh0KHRoaXMuY3VycmVudE9iamVjdHMzRCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBbXX0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0aW5nLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5pc1VwZGF0aW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZE9iamVjdDNEKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9iamVjdDNEO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0ZWRPYmplY3QzRChzZWxlY3RlZDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2JqZWN0M0QgPSBzZWxlY3RlZDtcclxuICB9XHJcblxyXG5cclxuICAvLyBUSEUgRk9MTE9XSU5HIExPR0lDIElTIEVRVUlQLiBTUEVDSUZJQ1xyXG4gIC8vIGluaXRTdWJzY3JpcHRpb25zKCkge1xyXG4gIC8vICAgaWYgKCF0aGlzLmlzTXVzZXVtVXNlcikge1xyXG4gIC8vICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2Uuem9uZUNoYW5nZVxyXG4gIC8vICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAvLyAgICAgICAuc3Vic2NyaWJlKCh6b25lKSA9PiB7XHJcbiAgLy8gICAgICAgICBpZiAoIXpvbmUgfHwgIXRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50U3BhY2VJRCkge1xyXG4gIC8vICAgICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEO1xyXG4gIC8vICAgICAgICAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBudWxsfSk7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gbnVsbDtcclxuICAvLyAgICAgICAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNEID0ge1xyXG4gIC8vICAgICAgICAgICAgIHNwYWNlOiBbXSxcclxuICAvLyAgICAgICAgICAgICB6b25lc01hcDogbmV3IE1hcCgpLFxyXG4gIC8vICAgICAgICAgICB9O1xyXG4gIC8vICAgICAgICAgICByZXR1cm47XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgICBpZiAoem9uZS5pZCAhPT0gdGhpcy56b25lSURGaWx0ZXIpIHtcclxuICAvLyAgICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSB6b25lLmlkO1xyXG4gIC8vICAgICAgICAgICB0aGlzLmN1cnJlbnRab25lID0gem9uZTtcclxuICAvLyAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQgPT09IHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50U3BhY2VJRCkge1xyXG4gIC8vICAgICAgICAgICAgIC8vIHNhbWUgc3BhY2UsICBvbmx5IHpvbmUgdXBkYXRlXHJcbiAgLy8gICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXHJcbiAgLy8gICAgICAgICAgICAgLy8gICAgIFwiZ29pbmcgdG8gdXBkYXRlIGVxdWlwcyBmb3Igem9uZSAoc2FtZSBzcGFjZSlcIixcclxuICAvLyAgICAgICAgICAgICAvLyAgICAgem9uZSxcclxuICAvLyAgICAgICAgICAgICAvLyApO1xyXG4gIC8vXHJcbiAgLy8gICAgICAgICAgICAgdGhpcy51cGRhdGVPYmplY3RzM0RGb3Jab25lKCk7XHJcbiAgLy8gICAgICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5jdXJyZW50U3BhY2VJRCA9IHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50U3BhY2VJRDtcclxuICAvLyAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcclxuICAvLyAgICAgICAgICAgICAvLyAgICAgXCJnb2luZyB0byBpbml0IGVxdWlwcyBmb3Igem9uZSBmb3IgbmV3IHNwYWNlXCIsXHJcbiAgLy8gICAgICAgICAgICAgLy8gICAgIHRoaXMuY3VycmVudFNwYWNlSUQsXHJcbiAgLy8gICAgICAgICAgICAgLy8gKTtcclxuICAvLyAgICAgICAgICAgICB0aGlzLmluaXRPYmplY3RzM0QoKS5jYXRjaChlID0+IGNvbnNvbGUubG9nKGUpKTtcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0pO1xyXG4gIC8vXHJcbiAgLy8gICAgIHRoaXMuZGVsZXRlT2JzZXJ2YWJsZVxyXG4gIC8vICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAvLyAgICAgICAuc3Vic2NyaWJlKChvYmplY3QzRCkgPT4ge1xyXG4gIC8vICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQpIHtcclxuICAvLyAgICAgICAgICAgdGhpcy51cGRhdGVEdWVUb0RlbGV0ZShvYmplY3QzRCk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfSk7XHJcbiAgLy9cclxuICAvLyAgICAgdGhpcy5jcmVhdGVPYnNlcnZhYmxlXHJcbiAgLy8gICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC8vICAgICAgIC5zdWJzY3JpYmUoKG9iamVjdDNEKSA9PiB7XHJcbiAgLy8gICAgICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xyXG4gIC8vICAgICAgICAgICB0aGlzLnVwZGF0ZUR1ZVRvQ3JlYXRlKG9iamVjdDNEKTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9KTtcclxuICAvL1xyXG4gIC8vICAgICB0aGlzLnVwZGF0ZU9ic2VydmFibGVcclxuICAvLyAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgLy8gICAgICAgLnN1YnNjcmliZSgob2JqZWN0M0QpID0+IHtcclxuICAvLyAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XHJcbiAgLy8gICAgICAgICAgIHRoaXMudXBkYXRlRHVlVG9PYmplY3QzRFVwZGF0ZWQob2JqZWN0M0QpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0pO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgdXBkYXRlRHVlVG9EZWxldGUoZGVsZXRlZE9iamVjdDNEOiBPYmplY3QzRCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJ1cGRhdGUgZHVlIHRvIGRlbGV0ZVwiLCBkZWxldGVkT2JqZWN0M0QpO1xyXG4gICAgY29uc3Qgb2JqID0gdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLmZpbmQoXHJcbiAgICAgIChfZXF1aXApID0+IF9lcXVpcC5pZCA9PT0gZGVsZXRlZE9iamVjdDNELmlkXHJcbiAgICApO1xyXG4gICAgaWYgKG9iaikge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZS5pbmRleE9mKG9iaik7XHJcbiAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy8gVEhFIEZPTExPV0lORyBMT0dJQyBJUyBFUVVJUC4gU1BFQ0lGSUNcclxuICAgIC8vIGZvciAoY29uc3Qgem9uZSBvZiB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAua2V5cygpKSB7XHJcbiAgICAvLyAgIGNvbnN0IGVxdWlwVG9EZWxldGUgPSB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXBcclxuICAgIC8vICAgICAuZ2V0KHpvbmUpXHJcbiAgICAvLyAgICAgLmZpbmQoKF9lcXVpcCkgPT4gX2VxdWlwLmlkID09PSBkZWxldGVkT2JqZWN0M0QuaWQpO1xyXG4gICAgLy8gICBpZiAoZXF1aXBUb0RlbGV0ZSkge1xyXG4gICAgLy8gICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwXHJcbiAgICAvLyAgICAgICAuZ2V0KHpvbmUpXHJcbiAgICAvLyAgICAgICAuaW5kZXhPZihlcXVpcFRvRGVsZXRlKTtcclxuICAgIC8vICAgICB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAuZ2V0KHpvbmUpLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIHRoaXMub2JqZWN0czNEVXBkYXRlZC5uZXh0KHtcclxuICAgICAgc3BhY2U6IHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZSxcclxuICAgICAgem9uZTogdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmUsXHJcbiAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTE9HSUMgSVMgRVFVSVAuIFNQRUNJRklDXHJcbiAgICAgIC8vIHpvbmU6IHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcC5nZXQodGhpcy56b25lSURGaWx0ZXIpLFxyXG4gICAgfSk7IC8vIGZvciBsYXRlcmFsIG1lbnVcclxuICB9XHJcblxyXG4gIHVwZGF0ZUR1ZVRvQ3JlYXRlKGNyZWF0ZWRPYmozRDogT2JqZWN0M0QpIHtcclxuICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZS51bnNoaWZ0KGNyZWF0ZWRPYmozRCk7XHJcbiAgICB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZS51bnNoaWZ0KGNyZWF0ZWRPYmozRCk7XHJcblxyXG4gICAgLy8gdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwXHJcbiAgICAvLyAgIC5nZXQodGhpcy56b25lSURGaWx0ZXIpXHJcbiAgICAvLyAgIC51bnNoaWZ0KGNyZWF0ZWRFcXVpcCk7XHJcbiAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7XHJcbiAgICAgIHNwYWNlOiB0aGlzLmN1cnJlbnRPYmplY3RzM0Quc3BhY2UsXHJcbiAgICAgIHpvbmU6IHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lLFxyXG4gICAgICAvLyBUSEUgRk9MTE9XSU5HIExPR0lDIElTIEVRVUlQLiBTUEVDSUZJQ1xyXG4gICAgICAvLyB6b25lOiB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKSxcclxuICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgfVxyXG5cclxuICAvLyBUSEUgRk9MTE9XSU5HIExPR0lDIElTIEVRVUlQLiBTUEVDSUZJQ1xyXG4gIC8vIE5vdCBpbXBsZW1lbnRlZCBzaW5jZSBub3QgdXNlZCB5ZXQhXHJcbiAgLy8gdXBkYXRlRHVlVG9PYmplY3QzRFVwZGF0ZWQodXBkYXRlZE9iamVjdDNEOiBPYmplY3QzRCkge1xyXG4gIC8vICAgY29uc3Qgb2JqID0gdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLmZpbmQoXHJcbiAgLy8gICAgIChfZXF1aXApID0+IF9lcXVpcC5pZCA9PT0gdXBkYXRlZE9iamVjdDNELmlkXHJcbiAgLy8gICApO1xyXG4gIC8vICAgaWYgKG9iaikge1xyXG4gIC8vICAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZS5pbmRleE9mKG9iaik7XHJcbiAgLy8gICAgIC8vIE5vdCB1c2VkIHlldCFcclxuICAvLyAgICAgLy8gaWYgKHRoaXMuaXNBcmNoaXZlZChvYmopKSB7XHJcbiAgLy8gICAgIC8vICAgLy8gd2UgcmVtb3ZlIGFyY2hpdmVkIGVxdWlwbWVudFxyXG4gIC8vICAgICAvLyAgIHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIC8vICAgICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgICB0aGlzLmN1cnJlbnRPYmplY3RzM0Quc3BhY2Uuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVkT2JqZWN0M0QpO1xyXG4gIC8vICAgICAvLyB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICBmb3IgKGNvbnN0IHpvbmUgb2YgdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwLmtleXMoKSkge1xyXG4gIC8vICAgICBjb25zdCBlcXVpcFRvVXBkID0gdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwXHJcbiAgLy8gICAgICAgLmdldCh6b25lKVxyXG4gIC8vICAgICAgIC5maW5kKChfZXF1aXApID0+IF9lcXVpcC5pZCA9PT0gdXBkYXRlZE9iamVjdDNELmlkKTtcclxuICAvLyAgICAgaWYgKGVxdWlwVG9VcGQpIHtcclxuICAvLyAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcFxyXG4gIC8vICAgICAgICAgLmdldCh6b25lKVxyXG4gIC8vICAgICAgICAgLmluZGV4T2YoZXF1aXBUb1VwZCk7XHJcbiAgLy8gICAgICAgLy8gTm90IHVzZWQgeWV0IVxyXG4gIC8vICAgICAgIC8vIGlmICh0aGlzLmlzQXJjaGl2ZWQob2JqKSkge1xyXG4gIC8vICAgICAgIC8vICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwLmdldCh6b25lKS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIC8vICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwXHJcbiAgLy8gICAgICAgICAuZ2V0KHpvbmUpXHJcbiAgLy8gICAgICAgICAuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVkT2JqZWN0M0QpO1xyXG4gIC8vICAgICAgIC8vIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5vYmplY3RzM0RVcGRhdGVkLm5leHQoe1xyXG4gIC8vICAgICBzcGFjZTogdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLFxyXG4gIC8vICAgICB6b25lOiB0aGlzLmN1cnJlbnRPYmplY3RzM0Quem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKSxcclxuICAvLyAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgLy8gfVxyXG5cclxuICAvLyBUSEUgRk9MTE9XSU5HIExPR0lDIElTIEVRVUlQLiBTUEVDSUZJQ1xyXG4gIC8vIE5vdCBpbXBsZW1lbnRlZCBzaW5jZSBub3QgdXNlZCB5ZXQhXHJcbiAgLy8gYXN5bmMgdXBkYXRlT2JqZWN0czNERm9yWm9uZSgpIHtcclxuICAvLyAgIHRoaXMudXBkYXRpbmcubmV4dCh0cnVlKTtcclxuICAvLyAgIGxldCBmaWx0ZXJlZE9iamVjdHMzRDogT2JqZWN0M0RbXSA9IFtdO1xyXG4gIC8vICAgaWYgKHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZS5sZW5ndGggPiAwKSB7XHJcbiAgLy8gICAgIGlmIChcclxuICAvLyAgICAgICB0aGlzLnpvbmVJREZpbHRlciAmJlxyXG4gIC8vICAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcC5oYXModGhpcy56b25lSURGaWx0ZXIpXHJcbiAgLy8gICAgICkge1xyXG4gIC8vICAgICAgIGZpbHRlcmVkT2JqZWN0czNEID0gdGhpcy5jdXJyZW50T2JqZWN0czNELnpvbmVzTWFwLmdldCh0aGlzLnpvbmVJREZpbHRlcik7XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgZmlsdGVyZWRPYmplY3RzM0QgPSAoYXdhaXQgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck9iamVjdHNGb3Jab25lKFxyXG4gIC8vICAgICAgICAgdGhpcy5jdXJyZW50T2JqZWN0czNELnNwYWNlLFxyXG4gIC8vICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIsXHJcbiAgLy8gICAgICAgICB0aGlzLmN1cnJlbnRab25lXHJcbiAgLy8gICAgICAgKSkgYXMgT2JqZWN0M0RbXTtcclxuICAvL1xyXG4gIC8vICAgICAgIHRoaXMuY3VycmVudE9iamVjdHMzRC56b25lc01hcC5zZXQodGhpcy56b25lSURGaWx0ZXIsIFtcclxuICAvLyAgICAgICAgIC4uLmZpbHRlcmVkT2JqZWN0czNELFxyXG4gIC8vICAgICAgIF0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQhXHJcbiAgLy8gICAgIC8vIGlmICh0aGlzLm9iamVjdDNERG9tYWluRmlsdGVyKSB7XHJcbiAgLy8gICAgIC8vICAgZmlsdGVyZWRPYmplY3RzM0QgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyT2JqZWN0czNEQnlEb21haW5MaXN0KFxyXG4gIC8vICAgICAvLyAgICAgZmlsdGVyZWRPYmplY3RzM0QsXHJcbiAgLy8gICAgIC8vICAgICB0aGlzLm9iamVjdDNERG9tYWluRmlsdGVyXHJcbiAgLy8gICAgIC8vICAgKTtcclxuICAvLyAgICAgLy8gfVxyXG4gIC8vICAgICAvLyBOb3QgdXNlZCBmb3Igb2JqZWN0cyBub3chXHJcbiAgLy8gICAgIC8vIHRoaXMub2JqZWN0czNEVGFncy5uZXh0KGZpbHRlcmVkT2JqZWN0czNEKTsgLy8gYWRkaW5nIHRhZ3Mgb25seSBmb3IgdGhlIGN1cnJlbnQgem9uZVxyXG4gIC8vICAgICB0aGlzLm9iamVjdHMzRFVwZGF0ZWQubmV4dCh7XHJcbiAgLy8gICAgICAgc3BhY2U6IHRoaXMuY3VycmVudE9iamVjdHMzRC5zcGFjZSxcclxuICAvLyAgICAgICB6b25lOiBmaWx0ZXJlZE9iamVjdHMzRCxcclxuICAvLyAgICAgfSk7IC8vIGZvciBsYXRlcmFsIG1lbnVcclxuICAvLyAgIH0gZWxzZSB7XHJcbiAgLy8gICAgIHRoaXMub2JqZWN0czNEVXBkYXRlZC5uZXh0KHtzcGFjZTogW10sIHpvbmU6IFtdfSk7IC8vIGZvciBsYXRlcmFsIG1lbnVcclxuICAvLyAgIH1cclxuICAvLyAgIHRoaXMudXBkYXRpbmcubmV4dChmYWxzZSk7XHJcbiAgLy8gfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogTm90IGltcGxlbWVudGVkIHlldCEgTWF5IGJlIHVzZWZ1bGwgZm9yIHRoZSBmdXR1cmUgKGZpbHRlciAzRCBvYmplY3RzIGZvciBhIGdpdmVuIGF1dGhvcml6ZWQgdXNlcjogZXhhbXBsZSBsaWJzIG9mIG9iamVjdHMpXHJcbiAgICogQHBhcmFtIG9iamVjdElkXHJcbiAgICovXHJcbiAgLy8gYXN5bmMgZ2V0T2JqZWN0czNEQnlTcGFjZUZvclVzZXIoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxPYmplY3QzRFtdPiB7XHJcbiAgLy8gICBjb25zdCBtaXNzaW9uRm9yTG9jYXRpb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKHNwYWNlSUQpO1xyXG4gIC8vICAgY29uc3QgbGlzdCA9IFtdO1xyXG4gIC8vICAgaWYgKG1pc3Npb25Gb3JMb2NhdGlvbiAmJiBtaXNzaW9uRm9yTG9jYXRpb24ub2JqZWN0SWQpIHtcclxuICAvLyAgICAgY29uc3QgYWxsb3dlZE9iamVjdDNEID0gYXdhaXQgdGhpcy5nZXRPYmplY3QzRChtaXNzaW9uRm9yTG9jYXRpb24ub2JqZWN0SWQpO1xyXG4gIC8vICAgICBhbGxvd2VkT2JqZWN0M0QudmlydHVhbCA9IHRoaXMuem9uZUlzVmlydHVhbChhbGxvd2VkT2JqZWN0M0QpO1xyXG4gIC8vICAgICBpZiAoIWFsbG93ZWRPYmplY3QzRC5wYXJlbnQpIHtcclxuICAvLyAgICAgICAvLyB0aGUgd2hvbGUgYnVpbGRpbmcgaXMgYXV0aG9yaXplZFxyXG4gIC8vICAgICAgIHJldHVybiB0aGlzLmdldE9iamVjdHMzREJ5U3BhY2Uoc3BhY2VJRCk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgbGlzdC5wdXNoKGFsbG93ZWRPYmplY3QzRCk7XHJcbiAgLy8gICAgIC8vIGFsbG93IGFsbCBjaGlsZHJlbiB6b25lcyBvZiBhbiBhbGxvd2VkIHBhcmVudFxyXG4gIC8vICAgICBjb25zdCBjaGlsZHJlbiA9IChhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18ub2JqZWN0czNEQnlPYmplY3QzRChhbGxvd2VkT2JqZWN0M0QuaWQpKS5pdGVtcztcclxuICAvLyAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAvLyAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XHJcbiAgLy8gICAgICAgICBjb25zdCBjaGlsZE9iamVjdDNEID0geyAuLi5jaGlsZCB9IGFzIE9iamVjdDNEO1xyXG4gIC8vICAgICAgICAgY2hpbGRPYmplY3QzRC52aXJ0dWFsID0gdGhpcy56b25lSXNWaXJ0dWFsKGNoaWxkKTtcclxuICAvLyAgICAgICAgIGxpc3QucHVzaChjaGlsZE9iamVjdDNEKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgLy8gYWxsb3cgdGhlIHBhcmVudCBGbG9vciBvZiB0aGUgYWxsb3dlZCB6b25lXHJcbiAgLy8gICAgIGlmIChhbGxvd2VkT2JqZWN0M0QucGFyZW50LmxheWVyICYmIGFsbG93ZWRPYmplY3QzRC5wYXJlbnQubGF5ZXIubmFtZSA9PT0gXCJGTE9PUlwiKSB7XHJcbiAgLy8gICAgICAgbGlzdC5wdXNoKGFsbG93ZWRPYmplY3QzRC5wYXJlbnQpO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5nZXRPYmplY3RzM0RCeVNwYWNlKHNwYWNlSUQpO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIGxpc3Q7XHJcbiAgLy8gfVxyXG5cclxuICBhc3luYyBkZWxldGVPYmplY3QzRChvYmplY3RJZDogc3RyaW5nKTogUHJvbWlzZTxPYmplY3QzRD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVPYmplY3QzRCh7aWQ6IG9iamVjdElkfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjcmVhdGUoaW5wdXQ6IE9iamVjdDNEKTogUHJvbWlzZTxPYmplY3QzRD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVPYmplY3QzRChpbnB1dCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGVPYmplY3QzRChpbnB1dDogYW55KTogUHJvbWlzZTxPYmplY3QzRD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5VcGRhdGVPYmplY3QzRChpbnB1dCk7XHJcbiAgfVxyXG5cclxuICAvKiogQmFzaWMgQ1JVRCBvcGVyYXRpb25zICovXHJcbiAgYXN5bmMgcmVhZE9iamVjdDNEKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uR2V0T2JqZWN0M0QoaWQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRhcHRPYmplY3QzRChvYmplY3QzRDogT2JqZWN0M0QpOiBQcm9taXNlPE9iamVjdDNEPiB7XHJcbiAgICAvLyBOb3QgcmVxdWlyZWQgaGVyZSFcclxuICAgIHJldHVybiBvYmplY3QzRDtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZU9iamVjdDNEV2l0aEV2ZW50KFxyXG4gICAgb2JqZWN0M0Q6IElVcGRhdGUgJiBQYXJ0aWFsPE9iamVjdDNEPixcclxuICAgIGV2ZW50PzogRXZlbnQsXHJcbiAgKTogUHJvbWlzZTxPYmplY3QzRD4ge1xyXG4gICAgY29uc3QgcmVjZWl2ZWRPYmplY3QzRCA9IGF3YWl0IHRoaXMudXBkYXRlT2JqZWN0M0Qob2JqZWN0M0QpO1xyXG4gICAgaWYgKHJlY2VpdmVkT2JqZWN0M0QpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJVcGRhdGVkIG9iamVjdDNEIDpcIik7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlY2VpdmVkT2JqZWN0M0QpO1xyXG4gICAgICAvLyBOb3Qgc2VudCBjdXJyZW50bHk6IGFzayBpZiBuZWVkZWQuLi5cclxuICAgICAgLy8gaWYgKGV2ZW50KSB7XHJcbiAgICAgIC8vICAgYXdhaXQgdGhpcy5hZGRFdmVudFRvT2JqZWN0M0QocmVjZWl2ZWRPYmplY3QzRCwgZXZlbnQpO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHRoaXMudXBkYXRlRG9uZS5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlY2VpdmVkT2JqZWN0M0Q7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
100
100
|
type: Inject,
|
|
101
101
|
args: ['currentAwsKinesisAnalyticsService']
|
|
102
102
|
}] }, { type: i1.BaseUserService }, { type: i2.ZoneChangeService }]; } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy9wb2kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsd0JBQXdCLEVBQVksTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVExRSxNQUFNLE9BQU8sVUFBVTtJQVdyQixZQUMrQixXQUFnQixFQUUzQywyQkFBZ0MsRUFDMUIsV0FBNEIsRUFDNUIsaUJBQW9DLENBQUMsa0ZBQWtGOztRQUR2SCxnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWI5QyxrQkFBYSxHQUFTLElBQUksQ0FBQztRQU1uQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVMvQixJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsMkJBQTJCLENBQUM7UUFFdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU87YUFDUjtZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3BDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQzFCO2lCQUFNLElBQUks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QUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBQyxFQUFDLEVBQUUsR0FBRyxDQUFDO2FBQy9DLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7dUdBeEdVLFVBQVUsa0JBWVgsbUJBQW1CLGFBQ25CLG1DQUFtQzsyR0FibEMsVUFBVSxjQUZULE1BQU07MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWFJLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJqZWN0LCB0YWtlVW50aWx9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge3JlbW92ZU51bGxLZXlzRnJvbU9iamVjdCwgd2FpdFVudGlsfSBmcm9tICcuLi8uLi9oZWxwZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BPSSwgUG9pVHlwZSwgWm9uZX0gZnJvbSAnLi4vLi4vdHlwZXMuc2VydmljZSc7XHJcbmltcG9ydCB7Wm9uZUNoYW5nZVNlcnZpY2V9IGZyb20gJy4uL3pvbmVDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7QmFzZVVzZXJTZXJ2aWNlfSBmcm9tICcuLi91c2VyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvaVNlcnZpY2Uge1xyXG4gIEFQSTogYW55OyAvL0FXUyBBUElTZXJ2aWNlXHJcbiAgYXdzS2luZXNpc0FuYWx5dGljczogYW55OyAvL0FXU1xyXG4gIHNlbGVjdGVkRmxvb3I6IFpvbmUgPSBudWxsO1xyXG5cclxuICBjdXJyZW50U3BhY2VJRDogc3RyaW5nO1xyXG5cclxuICB6b25lSURGaWx0ZXI6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnY3VycmVudEFQSVNlcnZpY2UnKSBhcGlJbmplY3RlZDogYW55LFxyXG4gICAgQEluamVjdCgnY3VycmVudEF3c0tpbmVzaXNBbmFseXRpY3NTZXJ2aWNlJylcclxuICAgICAgYXdzS2luZXNpc0FuYWx5dGljc0luamVjdGVkOiBhbnksXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBCYXNlVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHpvbmVDaGFuZ2VTZXJ2aWNlOiBab25lQ2hhbmdlU2VydmljZSAvLyBpbmplY3QgWm9uZUNoYW5nZVNlcnZpY2UgaW5zdGVhZCBvZiBOYXZpZ2F0b3JTZXJ2aWNlIHRvIGZpeCBjaXJjdWxhciBkZXBlbmRhbmN5XHJcbiAgKSB7XHJcbiAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkO1xyXG4gICAgdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzID0gYXdzS2luZXNpc0FuYWx5dGljc0luamVjdGVkO1xyXG5cclxuICAgIHRoaXMuem9uZUNoYW5nZVNlcnZpY2Uuem9uZUNoYW5nZS5zdWJzY3JpYmUoKHpvbmUpID0+IHtcclxuICAgICAgaWYgKCF6b25lKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh6b25lLnNwYWNlSUQpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEID0gem9uZS5zcGFjZUlEO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5jdXJyZW50U3BhY2VJRCkge1xyXG4gICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gbnVsbDtcclxuICAgICAgfSBlbHNlIGlmICh6b25lLmlkICE9PSB0aGlzLnpvbmVJREZpbHRlcikge1xyXG4gICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gem9uZS5pZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS5mbG9vckhhc0NoYW5nZWQuc3Vic2NyaWJlKChmbG9vcikgPT4ge1xyXG4gICAgICBpZiAoZmxvb3IpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3IgPSBmbG9vcjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRQb2lCeUVsZW1lbnRJZChlbGVtZW50SWQ6IHN0cmluZyk6IFByb21pc2U8UE9JIHwgbnVsbD4ge1xyXG4gICAgY29uc3QgcG9pcyA9IGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5Qb2lzQnlFbGVtZW50KGVsZW1lbnRJZCk7XHJcbiAgICBpZiAocG9pcyAmJiBwb2lzLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHBvaXMuaXRlbXNbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFBvaXNCeVR5cGUodHlwZTogUG9pVHlwZSk6IFByb21pc2U8W1BPSV0gfCBhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uUG9pc0J5VHlwZSh0eXBlKS50aGVuKChwb2lzKSA9PiBwb2lzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNyZWF0ZVBPSUZvclNwYWNlSUQocG9pOiBQT0kpOiBQcm9taXNlPFBPST4ge1xyXG4gICAgcmVtb3ZlTnVsbEtleXNGcm9tT2JqZWN0KHBvaSk7XHJcbiAgICBpZiAoISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgJiYgISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkICYmIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQoKSkge1xyXG4gICAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MuZ2V0SW5zdGFuY2UoKS5yZWNvcmQoXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgZXZlbnRUeXBlOiAnT2JqZWN0IENyZWF0aW9uJyxcclxuICAgICAgICAgICAgb2JqZWN0VHlwZTogJ3BvaScsXHJcbiAgICAgICAgICAgIHBvaTogcG9pLFxyXG4gICAgICAgICAgICB1c2VyOiB0aGlzLnVzZXJTZXJ2aWNlLmN1LFxyXG4gICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgICAgIGZsb29ySWQ6IHRoaXMuc2VsZWN0ZWRGbG9vcj8uaWQsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXHJcbiAgICAgICAgICAgIHpvbmVJZDogdGhpcy56b25lSURGaWx0ZXIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc3RyZWFtTmFtZTogJ3NtYXJ0ZXJwbGFuS2luZXNpcy1hbmFseXRpY3MnLFxyXG4gICAgICAgICAgLy8gcGFydGl0aW9uS2V5OiBcIlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ0FXU0tpbmVzaXMnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZVBPSShwb2kpO1xyXG4gIH1cclxuXHJcbiAgcG9pSXNWaXJ0dWFsKHBvaTogUE9JKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB7Y29vcmRpbmF0ZX0gPSBwb2k7XHJcbiAgICByZXR1cm4gIWNvb3JkaW5hdGU7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGVQb2kocG9pOiB7fSk6IFByb21pc2U8UE9JPiB7XHJcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZVBPSShwb2kpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZGVsZXRlUG9pKHBvaUlEOiBzdHJpbmcpOiBQcm9taXNlPFBPST4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVQT0koe2lkOiBwb2lJRH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0UG9pc0J5TWF0dGVycG9ydFN3ZWVwQnlUeXBlKFxyXG4gICAgc3dlZXA6IHN0cmluZyxcclxuICAgIHR5cGU6IFBvaVR5cGVcclxuICApOiBQcm9taXNlPFBPSVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fXHJcbiAgICAgIC5MaXN0UE9Jcyh7bWF0dGVycG9ydFN3ZWVwSUQ6IHtlcTogc3dlZXB9fSwgMzAwKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLml0ZW1zLmZpbHRlcigocG9pKSA9PiBwb2kudHlwZSA9PT0gdHlwZSkpO1xyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -509,4 +509,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
509
509
|
type: Inject,
|
|
510
510
|
args: ['currentAPIService']
|
|
511
511
|
}] }, { type: i1.OperationService }, { type: i2.EventService }, { type: i3.AffectationService }, { type: i4.PoiService }, { type: i5.BaseUserService }, { type: i6.NavigatorService }, { type: i7.FilterService }, { type: i8.InterventionService }, { type: i9.NavigationService }, { type: i10.ViewerService }, { type: i11.ZoneChangeService }, { type: i12.NgbModal }]; } });
|
|
512
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy90aWNrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0Msc0NBQXNDO0FBQ3RDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQTBCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBQyx1QkFBdUIsRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBRXpFLE9BQU8sRUFHTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLFlBQVksRUFDWixXQUFXLEVBQ1gsU0FBUyxFQUdULE9BQU8sR0FHUixNQUFNLHFCQUFxQixDQUFDO0FBSzdCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBSXhELE9BQU8sZUFBZSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sYUFBYSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hFLE9BQU8sYUFBYSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JFLE9BQU8sZUFBZSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjtJQW9EbkQsWUFFSSwyQkFBZ0MsRUFDTCxXQUFnQixFQUNyQyxnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsa0JBQXNDLEVBQzlDLFVBQXNCLEVBQ2QsV0FBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUNoRCxpQkFBb0MsRUFDNUIsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLFlBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUs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QUM7aUJBQ3pEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzsyR0F0bEJVLGNBQWMsa0JBcURmLG1DQUFtQyxhQUVuQyxtQkFBbUI7K0dBdkRsQixjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBc0RJLE1BQU07MkJBQUMsbUNBQW1DOzswQkFFMUMsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb25zaXN0ZW50LXJldHVybiAqL1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ2JNb2RhbH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge29wZW5Nb2RhbEZvclZpc2l0U3dpdGNoLCB3YWl0VW50aWx9IGZyb20gJy4uLy4uL2hlbHBlcnMuc2VydmljZSc7XG5pbXBvcnQge01hdHRlcnRhZ0RhdGF9IGZyb20gJy4uLy4uL21hdHRlcnRhZ0RhdGEnO1xuaW1wb3J0IHtcbiAgRXZlbnQsXG4gIFRpY2tldCxcbiAgVGlja2V0VHlwZSxcbiAgVGlja2V0UHJpb3JpdHksXG4gIFRpY2tldFN0YXR1cyxcbiAgRXZlbnRTdGF0dXMsXG4gIEV2ZW50VHlwZSxcbiAgQWZmZWN0YXRpb24sXG4gIFBPSSxcbiAgUG9pVHlwZSxcbiAgSVVwZGF0ZSxcbiAgWm9uZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMuc2VydmljZSc7XG5pbXBvcnQge0ZpbHRlclNlcnZpY2V9IGZyb20gJy4uL2ZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7TmF2aWdhdG9yU2VydmljZX0gZnJvbSAnLi4vbmF2aWdhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtCYXNlVXNlclNlcnZpY2V9IGZyb20gJy4uL3VzZXIuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdlclNlcnZpY2V9IGZyb20gJy4uL3ZpZXdlci5zZXJ2aWNlJztcbmltcG9ydCB7QmFzZU9iamVjdFNlcnZpY2V9IGZyb20gJy4vYmFzZS1vYmplY3Quc2VydmljZSc7XG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tICcuL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQge09wZXJhdGlvblNlcnZpY2V9IGZyb20gJy4vb3BlcmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQb2lTZXJ2aWNlfSBmcm9tICcuL3BvaS5zZXJ2aWNlJztcbmltcG9ydCBJbmZvcm1hdGlvbkljb24gZnJvbSAnQGljb25pZnktaWNvbnMvbWRpL2luZm9ybWF0aW9uLW91dGxpbmUnO1xuaW1wb3J0IEFjY2lkZW50SWNvbiBmcm9tICdAaWNvbmlmeS1pY29ucy9tZGkvYWxlcnQnO1xuaW1wb3J0IFdvcmRPcmRlckljb24gZnJvbSAnQGljb25pZnktaWNvbnMvbWRpL2FjY291bnQtaGFyZC1oYXQnO1xuaW1wb3J0IFJlcG9ydGluZ0ljb24gZnJvbSAnQGljb25pZnktaWNvbnMvbWRpL2ZpbGUtZG9jdW1lbnQtb3V0bGluZSc7XG5pbXBvcnQgTWFpbnRlbmFuY2VJY29uIGZyb20gJ0BpY29uaWZ5LWljb25zL21kaS90b29scyc7XG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7SW50ZXJ2ZW50aW9uU2VydmljZX0gZnJvbSAnLi4vaW50ZXJ2ZW50aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtBZmZlY3RhdGlvblNlcnZpY2V9IGZyb20gJy4vYWZmZWN0YXRpb24uc2VydmljZSc7XG5pbXBvcnQge1pvbmVDaGFuZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vem9uZUNoYW5nZS5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaWNrZXRzU2VydmljZSBleHRlbmRzIEJhc2VPYmplY3RTZXJ2aWNlIHtcbiAgY3VycmVudFRpY2tldHM6IHsgem9uZTogVGlja2V0W107IHNwYWNlOiBUaWNrZXRbXSB9ID0ge1xuICAgIHpvbmU6IFtdLFxuICAgIHNwYWNlOiBbXSxcbiAgfTtcblxuICB0aWNrZXRUYWdzOiBTdWJqZWN0PFRpY2tldFtdPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgdGlja2V0c0ZpbHRlcmVkOiBUaWNrZXRbXSA9IFtdO1xuXG4gIHRpY2tldHNVcGRhdGVkOiBTdWJqZWN0PHtcbiAgICB6b25lOiBUaWNrZXRbXTtcbiAgICBzcGFjZTogVGlja2V0W107XG4gIH0+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjdXJyZW50U3BhY2VJRDogc3RyaW5nO1xuXG4gIHpvbmVJREZpbHRlcjogc3RyaW5nO1xuXG4gIGRhdGVGaWx0ZXI6IERhdGVbXTtcblxuICB0aWNrZXRUeXBlRmlsdGVyOiBUaWNrZXRUeXBlW107XG5cbiAgcmVwb3J0aW5nSWNvbiA9IFJlcG9ydGluZ0ljb247XG5cbiAgbWFpbnRlbmFuY2VJY29uID0gTWFpbnRlbmFuY2VJY29uO1xuXG4gIHdvcmtvcmRlckljb24gPSBXb3JkT3JkZXJJY29uO1xuXG4gIGluZm9ybWF0aW9uSWNvbiA9IEluZm9ybWF0aW9uSWNvbjtcblxuICBhY2NpZGVudEljb24gPSBBY2NpZGVudEljb247XG5cbiAgdXBkYXRlRG9uZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgdXBkYXRpbmc6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIEFQSTogYW55O1xuICBhd3NLaW5lc2lzQW5hbHl0aWNzOiBhbnk7IC8vQVdTXG5cbiAgaXNNdXNldW1Vc2VyID0gZmFsc2U7XG5cbiAgbmF2U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgZmlsZXRyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgZmxvb3JzUGVyU3BhY2U6IFpvbmVbXSA9IG51bGw7XG5cbiAgc2VsZWN0ZWRGbG9vcjogWm9uZSA9IG51bGw7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnY3VycmVudEF3c0tpbmVzaXNBbmFseXRpY3NTZXJ2aWNlJylcbiAgICAgIGF3c0tpbmVzaXNBbmFseXRpY3NJbmplY3RlZDogYW55LFxuICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSxcbiAgICBwcml2YXRlIG9wZXJhdGlvblNlcnZpY2U6IE9wZXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGFmZmVjdGF0aW9uU2VydmljZTogQWZmZWN0YXRpb25TZXJ2aWNlLFxuICAgIHBvaVNlcnZpY2U6IFBvaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbnRlcnZlbnRpb25TZXJ2aWNlOiBJbnRlcnZlbnRpb25TZXJ2aWNlLFxuICAgIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHZpZXdlclNlcnZpY2U6IFZpZXdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB6b25lQ2hhbmdlU2VydmljZTogWm9uZUNoYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsXG4gICkge1xuICAgIHN1cGVyKHBvaVNlcnZpY2UsIG5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgPSBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ7XG4gICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcbiAgICB0aGlzLmlzTXVzZXVtVXNlciA9IHRoaXMudXNlclNlcnZpY2UuaGFzT25seU11c2V1bVJvbGUoKTtcbiAgICB0aGlzLmluaXRTdWJzY3JpcHRpb25zKCk7XG4gICAgdGhpcy51c2VyU2VydmljZS5pc0NoYW5nZWQuc3Vic2NyaWJlKChpc0Nvbm5lY3RlZCkgPT4ge1xuICAgICAgaWYgKGlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaXNNdXNldW1Vc2VyID0gdGhpcy51c2VyU2VydmljZS5oYXNPbmx5TXVzZXVtUm9sZSgpO1xuICAgICAgICB0aGlzLmluaXRTdWJzY3JpcHRpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5uYXZTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLm5hdlN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIHRoaXMuZmlsZXRyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuem9uZUNoYW5nZVNlcnZpY2UuZmxvb3JIYXNDaGFuZ2VkLnN1YnNjcmliZSgoZmxvb3IpID0+IHtcbiAgICAgIGlmIChmbG9vcikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3IgPSBmbG9vcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGluaXRUaWNrZXRzKCkge1xuICAgIGxldCB0aWNrZXRzRmlsdGVyZWQgPSBbXTtcbiAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xuICAgICAgdGhpcy51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgICAgYXdhaXQgdGhpcy5nZXRUaWNrZXRzQnlTcGFjZSh0aGlzLmN1cnJlbnRTcGFjZUlEKS50aGVuKCh0aWNrZXRzKSA9PiB7XG4gICAgICAgIGlmICh0aWNrZXRzKSB7XG4gICAgICAgICAgdGlja2V0c0ZpbHRlcmVkID0gdGlja2V0cztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aWNrZXRzRmlsdGVyZWQgPVxuICAgICAgICBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyVGlja2V0c0ZvckN1cnJlbnRVc2VySW5TcGFjZShcbiAgICAgICAgICB0aWNrZXRzRmlsdGVyZWQsXG4gICAgICAgICAgdGhpcy5jdXJyZW50U3BhY2VJRFxuICAgICAgICApO1xuICAgICAgaWYgKHRoaXMuZGF0ZUZpbHRlcikge1xuICAgICAgICB0aWNrZXRzRmlsdGVyZWQgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyT2JqZWN0c0ZvckRhdGVSYW5nZShcbiAgICAgICAgICB0aWNrZXRzRmlsdGVyZWQsXG4gICAgICAgICAgdGhpcy5kYXRlRmlsdGVyXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50aWNrZXRUeXBlRmlsdGVyKSB7XG4gICAgICAgIHRpY2tldHNGaWx0ZXJlZCA9IHRpY2tldHNGaWx0ZXJlZC5maWx0ZXIoKHRpY2tldCkgPT5cbiAgICAgICAgICB0aGlzLnRpY2tldFR5cGVGaWx0ZXIuaW5jbHVkZXModGlja2V0LnR5cGUpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLmN1cnJlbnRUaWNrZXRzLnNwYWNlID0gdGlja2V0c0ZpbHRlcmVkO1xuICAgICAgdGhpcy50aWNrZXRUYWdzLm5leHQodGlja2V0c0ZpbHRlcmVkKTsgLy8gdGFncyB3aXRob3V0IHpvbmUgZmlsdGVyXG5cbiAgICAgIGlmICh0aGlzLnpvbmVJREZpbHRlcikge1xuICAgICAgICB0aWNrZXRzRmlsdGVyZWQgPSBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyT2JqZWN0c0ZvclpvbmUoXG4gICAgICAgICAgdGlja2V0c0ZpbHRlcmVkLFxuICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLmN1cnJlbnRUaWNrZXRzLnpvbmUgPSB0aWNrZXRzRmlsdGVyZWQ7XG4gICAgICB0aGlzLnRpY2tldHNVcGRhdGVkLm5leHQodGhpcy5jdXJyZW50VGlja2V0cyk7XG4gICAgICB0aGlzLnVwZGF0aW5nLm5leHQoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRpY2tldFRhZ3MubmV4dChudWxsKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBhZGFwdFRpY2tldCh0aWNrZXQ6IFRpY2tldCk6IFByb21pc2U8VGlja2V0PiB7XG4gICAgaWYgKHRpY2tldC5jb21tZW50cy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aWNrZXQuY29tbWVudHMuaXRlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShiLmNyZWF0ZWRBdCkgLSBuZXcgRGF0ZShhLmNyZWF0ZWRBdCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGlja2V0LmV2ZW50cy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBTb3J0IGV2ZW50cyBieSBkYXRlXG4gICAgICB0aWNrZXQuZXZlbnRzLml0ZW1zLnNvcnQoKGV2ZW50MSwgZXZlbnQyKSA9PiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGV2ZW50Mi5jcmVhdGVkQXQpIC0gbmV3IERhdGUoZXZlbnQxLmNyZWF0ZWRBdCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGlja2V0LnByZXN0YXRhaXJlID0gYXdhaXQgdGhpcy5pbnRlcnZlbnRpb25TZXJ2aWNlLmdldFByZXN0YXRhaXJlRm9yVGlja2V0KFxuICAgICAgdGlja2V0XG4gICAgKTtcbiAgICByZXR1cm4gdGlja2V0O1xuICB9XG5cbiAgZ2V0UHJpb3JpdHlDb2xvcih0aWNrZXQ6IFRpY2tldCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aWNrZXQucHJpb3JpdHkpIHtcbiAgICAgIGNhc2UgVGlja2V0UHJpb3JpdHkuTUFYSU1VTTpcbiAgICAgICAgcmV0dXJuICdjcmltc29uJztcbiAgICAgIGNhc2UgVGlja2V0UHJpb3JpdHkuSElHSDpcbiAgICAgICAgcmV0dXJuICdyZWQnO1xuICAgICAgY2FzZSBUaWNrZXRQcmlvcml0eS5NRURJVU06XG4gICAgICAgIHJldHVybiAnb3JhbmdlJztcbiAgICAgIGNhc2UgVGlja2V0UHJpb3JpdHkuTE9XOlxuICAgICAgICByZXR1cm4gJ2dyZWVuJztcbiAgICAgIGNhc2UgVGlja2V0UHJpb3JpdHkuTUlOSU1VTTpcbiAgICAgICAgcmV0dXJuICdibHVlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnYmx1ZSc7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RhdHVzQ29sb3IodGlja2V0OiBUaWNrZXQpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGlja2V0LnN0YXR1cykge1xuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuVE9fQkVfUFJPQ0VTU0VEOlxuICAgICAgICByZXR1cm4gJyNCMEIwQjEnO1xuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuUExBTk5FRDpcbiAgICAgICAgcmV0dXJuICcjRUJERjI3JztcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLklOX1BST0dSRVNTOlxuICAgICAgICByZXR1cm4gJyNFQkRGMjcnO1xuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuV0FJVElOR19GT1JfVkFMSURBVElPTjpcbiAgICAgICAgcmV0dXJuICcjRUJERjI3JztcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLlZBTElEQVRFRDpcbiAgICAgICAgcmV0dXJuICcjQkNFMkU1JztcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLlJFSkVDVEVEOlxuICAgICAgICByZXR1cm4gJyNlODRjMzUnO1xuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuUkVTT0xWRUQ6XG4gICAgICAgIHJldHVybiAnI0JDRTJFNSc7XG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5BUkNISVZFRDpcbiAgICAgICAgcmV0dXJuICcjQjBCMEIxJztcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLkxBVEU6XG4gICAgICAgIHJldHVybiAnI2U4NGMzNSc7XG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5CTE9DS0VEOlxuICAgICAgICByZXR1cm4gJyNlODRjMzUnO1xuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuQ09NUExFVEVEOlxuICAgICAgICByZXR1cm4gJyMzODg2NTknO1xuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuREVMQVlFRDpcbiAgICAgICAgcmV0dXJuICcjREI3NTQzJztcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLkNBTkNFTExFRDpcbiAgICAgICAgcmV0dXJuICcjZTg0YzM1JztcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLlRPX1JFRE86XG4gICAgICAgIHJldHVybiAnI0RCNzU0Myc7XG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5DUkVBVEVEOlxuICAgICAgICByZXR1cm4gJyNCMEIwQjEnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcjQkNFMkU1JztcbiAgICB9XG4gIH1cblxuICBnZXRUaWNrZXRQcmlvcml0eU51bWJlcih0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdC5wcmlvcml0eSA9PT0gVGlja2V0UHJpb3JpdHkuTUlOSU1VTVxuICAgICAgPyAtMVxuICAgICAgOiB0LnByaW9yaXR5ID09PSBUaWNrZXRQcmlvcml0eS5MT1dcbiAgICAgICAgPyAwXG4gICAgICAgIDogdC5wcmlvcml0eSA9PT0gVGlja2V0UHJpb3JpdHkuTUVESVVNXG4gICAgICAgICAgPyAxXG4gICAgICAgICAgOiB0LnByaW9yaXR5ID09PSBUaWNrZXRQcmlvcml0eS5ISUdIXG4gICAgICAgICAgICA/IDJcbiAgICAgICAgICAgIDogdC5wcmlvcml0eSA9PT0gVGlja2V0UHJpb3JpdHkuTUFYSU1VTVxuICAgICAgICAgICAgICA/IDNcbiAgICAgICAgICAgICAgOiAtMTtcbiAgfVxuXG4gIGdldFRpY2tldEljb24odHlwZTogVGlja2V0VHlwZSk6IGFueSB7XG4gICAgLy8gY29uc3QgdHlwZUljb24gOiBUaWNrZXRUeXBlID0gdGlja2V0LnR5cGU7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFRpY2tldFR5cGUuUkVQT1JUSU5HOlxuICAgICAgICByZXR1cm4gdGhpcy5yZXBvcnRpbmdJY29uO1xuICAgICAgY2FzZSBUaWNrZXRUeXBlLlJFUVVFU1RfRk9SX0lOVEVSVkVOVElPTjpcbiAgICAgICAgcmV0dXJuIHRoaXMubWFpbnRlbmFuY2VJY29uO1xuICAgICAgY2FzZSBUaWNrZXRUeXBlLlJFUVVFU1RfRk9SX01BSU5URU5BTkNFOlxuICAgICAgICByZXR1cm4gdGhpcy5tYWludGVuYW5jZUljb247XG4gICAgICBjYXNlIFRpY2tldFR5cGUuV09SS19PUkRFUjpcbiAgICAgICAgcmV0dXJuIHRoaXMud29ya29yZGVySWNvbjtcbiAgICAgIGNhc2UgVGlja2V0VHlwZS5JTkNJREVOVDpcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjaWRlbnRJY29uO1xuICAgICAgY2FzZSBUaWNrZXRUeXBlLklORk9STUFUSU9OOlxuICAgICAgICByZXR1cm4gdGhpcy5pbmZvcm1hdGlvbkljb247XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5tYWludGVuYW5jZUljb247XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkRXZlbnRUb1RpY2tldCh0aWNrZXQ6IFRpY2tldCwgZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTxFdmVudD4ge1xuICAgIGNvbnN0IGN1cnJlbnRNaXNzaW9uID0gdGhpcy51c2VyU2VydmljZS5jdXJyZW50TWlzc2lvbih0aWNrZXQuc3BhY2VJRCk7XG4gICAgZXZlbnQuZ3JvdXAgPSBldmVudC5ncm91cCA/IGV2ZW50Lmdyb3VwIDogJ2RlZmF1bHQnO1xuICAgIGV2ZW50LnRpY2tldElEID0gZXZlbnQudGlja2V0SUQgPyBldmVudC50aWNrZXRJRCA6IHRpY2tldC5pZDtcbiAgICBldmVudC5zdGF0dXMgPSBldmVudC5zdGF0dXMgPyBldmVudC5zdGF0dXMgOiBFdmVudFN0YXR1cy5DUkVBVEVEO1xuICAgIGV2ZW50LnR5cGUgPSBldmVudC50eXBlID8gZXZlbnQudHlwZSA6IEV2ZW50VHlwZS5USUNLRVQ7XG4gICAgZXZlbnQub3duZXJJRCA9IGV2ZW50Lm93bmVySUQgPyBldmVudC5vd25lcklEIDogY3VycmVudE1pc3Npb24uaWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlY2VpdmVkRXZlbnQgPSBhd2FpdCB0aGlzLmV2ZW50U2VydmljZS5jcmVhdGVFdmVudChldmVudCk7XG4gICAgICBpZiAoISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgJiYgISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkICYmIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQoKSkge1xuICAgICAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MuZ2V0SW5zdGFuY2UoKS5yZWNvcmQoXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgZXZlbnRUeXBlOiAnVGlja2V0IENoYW5nZScsXG4gICAgICAgICAgICAgIHRpY2tldElkOiBldmVudC50aWNrZXRJRCxcbiAgICAgICAgICAgICAgdGlja2V0OiB0aWNrZXQsXG4gICAgICAgICAgICAgIHN0YXR1czogZXZlbnQuc3RhdHVzLFxuICAgICAgICAgICAgICBldmVudDogZXZlbnQsXG4gICAgICAgICAgICAgIHVzZXI6IHRoaXMudXNlclNlcnZpY2UuY3UsXG4gICAgICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXG4gICAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgem9uZUlkOiB0aGlzLnpvbmVJREZpbHRlcixcbiAgICAgICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJlYW1OYW1lOiAnc21hcnRlcnBsYW5LaW5lc2lzLWFuYWx5dGljcycsXG4gICAgICAgICAgICAvLyBwYXJ0aXRpb25LZXk6IFwiXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnQVdTS2luZXNpcydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKCdFdmVudCBzdWNjZXNzZnVsbHkgY3JlYXRlZCAhJyk7XG4gICAgICByZXR1cm4gcmVjZWl2ZWRFdmVudDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkVGlja2V0KHRpY2tldDogVGlja2V0KTogUHJvbWlzZTxUaWNrZXQgfCB2b2lkPiB7XG4gICAgdGlja2V0LnN0YXR1cyA9IFRpY2tldFN0YXR1cy5DUkVBVEVEO1xuICAgIGlmICghdGlja2V0Lm93bmVyTWlzc2lvbklEKSB7XG4gICAgICB0aWNrZXQub3duZXJNaXNzaW9uSUQgPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKFxuICAgICAgICB0aWNrZXQuc3BhY2VJRFxuICAgICAgKS5pZDtcbiAgICB9XG4gICAgLy8gVE9ETyEhISBmaWx0ZXIgbWlzc2lvbnMgYnkgc3BhY2Ugb2YgdGlja2V0XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlY2VpdmVkVGlja2V0ID0gYXdhaXQgdGhpcy5jcmVhdGVUaWNrZXQodGlja2V0KTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCchISEgUmVzcG9uc2UgZnJvbSBjcmVhdGluZyB0aWNrZXQgOicpO1xuICAgICAgLy8gY29uc29sZS5sb2cocmVjZWl2ZWRUaWNrZXQpO1xuICAgICAgdGhpcy5hZGRFdmVudFRvVGlja2V0KHJlY2VpdmVkVGlja2V0LCB7XG4gICAgICAgIHRpdGxlOiAnQ3LDqWF0aW9uIGR1IHRpY2tldCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgVGlja2V0IGNyw6nDqSBwYXIgLWAsXG4gICAgICAgIHRyYW5zbGF0aW9uUGF0aDogJ3RpY2tldEV2ZW50LnRpY2tldC5jcmVhdGVkJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy51cGRhdGVEb25lLm5leHQodHJ1ZSk7XG4gICAgICByZXR1cm4gcmVjZWl2ZWRUaWNrZXQ7IC8vIGluc3RlYWQgb2YgdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnVGlja2V0IGNyZWF0aW9uIEZBSUxFRCcpO1xuICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGVUaWNrZXRXaXRoRXZlbnQoXG4gICAgdGlja2V0OiBJVXBkYXRlICYgUGFydGlhbDxUaWNrZXQ+LFxuICAgIGV2ZW50PzogRXZlbnRcbiAgKTogUHJvbWlzZTxUaWNrZXQ+IHtcbiAgICBjb25zdCByZWNlaXZlZFRpY2tldCA9IGF3YWl0IHRoaXMudXBkYXRlVGlja2V0KHRpY2tldCk7XG4gICAgaWYgKHJlY2VpdmVkVGlja2V0KSB7XG4gICAgICBjb25zb2xlLmxvZygnVXBkYXRlZCB0aWNrZXQgOicpO1xuICAgICAgY29uc29sZS5sb2cocmVjZWl2ZWRUaWNrZXQpO1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWRkRXZlbnRUb1RpY2tldChyZWNlaXZlZFRpY2tldCwgZXZlbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVEb25lLm5leHQodHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZWNlaXZlZFRpY2tldDtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZUFzc2lnbmVlRnJvbVRpY2tldChcbiAgICB0aWNrZXQ6IFRpY2tldCxcbiAgICBhc3NpZ25lZTogQWZmZWN0YXRpb25cbiAgKTogUHJvbWlzZTxUaWNrZXQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWZmZWN0YXRpb24gPVxuICAgICAgICBhd2FpdCB0aGlzLmFmZmVjdGF0aW9uU2VydmljZS5zb2Z0RGVsZXRlQWZmZWN0YXRpb25CeUlEKGFzc2lnbmVlLmlkKTtcbiAgICAgIGlmICghYWZmZWN0YXRpb24pIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGByZW1vdmVBc3NpZ25lZUZyb21UaWNrZXQoJHt0aWNrZXQuaWR9LCAke2Fzc2lnbmVlLmlkfSkgZmFpbGVkYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpY2tldDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVRpY2tldExvY2F0aW9uKFxuICAgIHRpY2tldDogVGlja2V0LFxuICAgIHRhZ0RhdGE6IE1hdHRlcnRhZ0RhdGFcbiAgKTogUHJvbWlzZTxQT0k+IHtcbiAgICBjb25zdCBwb2lJbnB1dCA9IHtcbiAgICAgIGNvb3JkaW5hdGU6IHRhZ0RhdGEuZ2V0Q29vcmRpbmF0ZVN0cmluZygpLFxuICAgICAgdHlwZTogUG9pVHlwZS5USUNLRVQsXG4gICAgICBlbGVtZW50SUQ6IHRpY2tldC5pZCxcbiAgICAgIG1ldGFkYXRhOiB0YWdEYXRhLmdldE1ldGFkYXRhU3RyaW5nKCksXG4gICAgICBtYXR0ZXJwb3J0U3dlZXBJRDogdGFnRGF0YS5nZXRTd2VlcElEKCksXG4gICAgfSBhcyBQT0k7XG4gICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmNyZWF0ZVBPSUZvclNwYWNlSUQocG9pSW5wdXQpO1xuICAgIGF3YWl0IHRoaXMuYWRkRXZlbnRUb1RpY2tldCh0aWNrZXQsIHtcbiAgICAgIHRpdGxlOiAnQ2hhbmdlbWVudCBwb3NpdGlvbiBkdSB0aWNrZXQnLFxuICAgICAgZGVzY3JpcHRpb246IFwiTGUgcG9pbnQgZCdpbnTDqXLDqnQgZHUgdGlja2V0IGEgw6l0w6kgbW9kaWZpw6lcIixcbiAgICAgIHN0YXR1czogRXZlbnRTdGF0dXMuUE9TSVRJT05fU0VULFxuICAgICAgdHJhbnNsYXRpb25QYXRoOiAndGlja2V0RXZlbnQucG9zaXRpb24uc2V0JyxcbiAgICB9KTtcbiAgICByZXR1cm4gcG9pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlU3RhdHVzT2ZUaWNrZXQoXG4gICAgdGlja2V0OiBUaWNrZXQsXG4gICAgc3RhdHVzOiBUaWNrZXRTdGF0dXNcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdHVzID0gdGlja2V0LnN0YXR1cztcbiAgICBjb25zdCBvbGRUaWNrZXRTdGF0dXMgPSB0aWNrZXQuc3RhdHVzO1xuICAgIHRpY2tldC5zdGF0dXMgPSBzdGF0dXM7XG4gICAgaWYgKGN1cnJlbnRTdGF0dXMgPT09IHN0YXR1cykge1xuICAgICAgcmV0dXJuIHRpY2tldDtcbiAgICB9XG4gICAgY29uc29sZS5sb2coJ1VwZGF0aW5nIHN0YXR1cycpO1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZVRpY2tldCh7XG4gICAgICBpZDogdGlja2V0LmlkLFxuICAgICAgc3RhdHVzLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlVHlwZU9mVGlja2V0KHRpY2tldDogVGlja2V0LCB0eXBlOiBUaWNrZXRUeXBlKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBwcmV2aW91c1R5cGUgPSB0aWNrZXQudHlwZTtcbiAgICB0aWNrZXQudHlwZSA9IHR5cGU7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVUaWNrZXRXaXRoRXZlbnQoXG4gICAgICB7aWQ6IHRpY2tldC5pZCwgdHlwZTogdGlja2V0LnR5cGV9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogJ1R5cGUgY2hhbmfDqScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQ2hhbmdlbWVudCBkZSAke3ByZXZpb3VzVHlwZX0gdmVycyAke3RpY2tldC50eXBlfWAsXG4gICAgICAgIG1ldGFkYXRhOiBKU09OLnN0cmluZ2lmeSh7dHlwZTogdGlja2V0LnR5cGV9KSxcbiAgICAgICAgdHJhbnNsYXRpb25QYXRoOiAndGlja2V0RXZlbnQudGlja2V0LnR5cGUnLFxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHRpY2tldDtcbiAgfVxuXG4gIGFzeW5jIGdldFRpY2tldHNGb3JVc2VyRm9yU3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxUaWNrZXRbXT4ge1xuICAgIGNvbnN0IHRpY2tldHNTcGFjZSA9IGF3YWl0IHRoaXMuZ2V0VGlja2V0c0J5U3BhY2Uoc3BhY2VJRCk7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJUaWNrZXRzRm9yQ3VycmVudFVzZXJJblNwYWNlKFxuICAgICAgdGlja2V0c1NwYWNlLFxuICAgICAgc3BhY2VJRFxuICAgICk7XG4gIH1cblxuICAvKiogQmFzaWMgQ1JVRCBvcGVyYXRpb25zICovXG4gIGFzeW5jIHJlYWRUaWNrZXQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uR2V0VGlja2V0KGlkKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVRpY2tldChpbnB1dDogVGlja2V0KTogUHJvbWlzZTxUaWNrZXQ+IHtcbiAgICBpZiAoISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgJiYgISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkICYmIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQoKSkge1xuICAgICAgdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzLmdldEluc3RhbmNlKCkucmVjb3JkKFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBldmVudFR5cGU6ICdPYmplY3QgQ3JlYXRpb24nLFxuICAgICAgICAgICAgb2JqZWN0VHlwZTogJ3RpY2tldCcsXG4gICAgICAgICAgICAvL3pvbmVJZDogaW5wdXQuc3BhY2VJRCwgLy8gVE9ETzogY2hlY2sgaWYgc3BhY2VJZCA9PSB6b25lSWRcbiAgICAgICAgICAgIGRvbWFpbjogaW5wdXQuZG9tYWluLFxuICAgICAgICAgICAgdXNlcjogdGhpcy51c2VyU2VydmljZS5jdSxcbiAgICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICB6b25lSWQ6IHRoaXMuem9uZUlERmlsdGVyLFxuICAgICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0cmVhbU5hbWU6ICdzbWFydGVycGxhbktpbmVzaXMtYW5hbHl0aWNzJyxcbiAgICAgICAgICAvLyBwYXJ0aXRpb25LZXk6IFwiXCIsXG4gICAgICAgIH0sXG4gICAgICAgICdBV1NLaW5lc2lzJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVUaWNrZXQoaW5wdXQpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlVGlja2V0KGlucHV0OiBJVXBkYXRlICYgUGFydGlhbDxUaWNrZXQ+KTogUHJvbWlzZTxUaWNrZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZVRpY2tldChpbnB1dCk7XG4gIH1cblxuICBhc3luYyBkZWxldGVUaWNrZXQodGlja2V0OiBUaWNrZXQpOiBQcm9taXNlPFRpY2tldD4ge1xuICAgIGNvbnN0IGRlbGV0ZWQgPSBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlVGlja2V0KHtpZDogdGlja2V0LmlkfSk7XG5cbiAgICAvLyBkZWxldGUgUE9JXG4gICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmdldFBvaUJ5RWxlbWVudElkKHRpY2tldC5pZCk7XG4gICAgaWYgKHBvaSkge1xuICAgICAgdGhpcy5wb2lTZXJ2aWNlLmRlbGV0ZVBvaShwb2kuaWQpO1xuICAgIH1cblxuICAgIC8vIGNsZWFuIHBhcmVudElEXG4gICAgaWYgKHRpY2tldC5jaGlsZHJlbi5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aWNrZXQuY2hpbGRyZW4uaXRlbXMubWFwKGFzeW5jIChjaGlsZFRpY2tldCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5VcGRhdGVUaWNrZXQoe1xuICAgICAgICAgICAgaWQ6IGNoaWxkVGlja2V0LmlkLFxuICAgICAgICAgICAgcGFyZW50SUQ6IG51bGwsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHVwZGF0ZSB0aWNrZXQnLCBjaGlsZFRpY2tldC5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlRXZlbnQoe1xuICAgICAgICAgIHRpdGxlOiAnVGlja2V0IHBhcmVudCBzdXBwcmltw6knLFxuICAgICAgICAgIHRpY2tldElEOiBjaGlsZFRpY2tldC5pZCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYFRpY2tldCBcXFwiJHRpY2tldC50aXRsZX1cXFwiIGEgw6l0w6kgc3VwcHJpbcOpYCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gZGVsZXRlIGV2ZW50c1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGlja2V0LmV2ZW50cy5pdGVtcy5tYXAoYXN5bmMgKGV2ZW50XykgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlRXZlbnQoe2lkOiBldmVudF8uaWR9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICAvLyBkZWxldGUgYWZmZWN0YXRpb25uc1xuICAgIGlmICh0aWNrZXQuYXNzaWduZWVzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aWNrZXQuYXNzaWduZWVzLml0ZW1zKSB7XG4gICAgICAgIHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVBZmZlY3RhdGlvbih7aWQ6IGVsZW1lbnQuaWR9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZGVsZXRlIGNvbW1lbnRzXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aWNrZXQuY29tbWVudHMuaXRlbXMubWFwKGFzeW5jIChjb21tZW50KSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVDb21tZW50KHtpZDogY29tbWVudC5pZH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIGF3YWl0IHRoaXMub3BlcmF0aW9uU2VydmljZS5kZWxldGVPcGVyYXRpb25zRm9yVGlja2V0KHRpY2tldC5pZCk7XG4gICAgcmV0dXJuIGRlbGV0ZWQ7XG4gIH1cblxuICAvKiogQ3VzdG9tIHJlcXVlc3RzICovXG4gIGFzeW5jIGdldFRpY2tldHNCeVNwYWNlKHNwYWNlSUQ6IHN0cmluZyk6IFByb21pc2U8VGlja2V0W10+IHtcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fXG4gICAgICAuVGlja2V0c0J5U3BhY2Uoc3BhY2VJRClcbiAgICAgIC50aGVuKCh0aWNrZXRzKSA9PiB0aWNrZXRzLml0ZW1zKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUljb25Gb3JBbGxUaWNrZXRzSW5TcGFjZShcbiAgICB0YWdJY29uOiBzdHJpbmcsXG4gICAgc3BhY2VJRDogc3RyaW5nXG4gICk6IFByb21pc2U8eyB0aWNrZXRzOiBUaWNrZXRbXTsgcG9pczogUE9JW10gfT4ge1xuICAgIGNvbnN0IHRpY2tldHMgPSBhd2FpdCB0aGlzLmdldFRpY2tldHNCeVNwYWNlKHNwYWNlSUQpO1xuICAgIGNvbnN0IHBvaXMgPSBhd2FpdCB0aGlzLnVwZGF0ZUljb25Gb3JBbGxPYmplY3RzKHRpY2tldHMsIHRhZ0ljb24pO1xuICAgIHJldHVybiB7dGlja2V0cywgcG9pc307XG4gIH1cblxuICAvKiogQXJjaGl2ZSByZWxhdGVkICovXG4gIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBhcmNoaXZlZCB0aGlzIHRpY2tldCAqL1xuICBpc0FyY2hpdmVkKHRpY2tldDogVGlja2V0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRpY2tldC5hcmNoaXZlZEZvck1pc3Npb25JRFxuICAgICAgPyB0aWNrZXQuYXJjaGl2ZWRGb3JNaXNzaW9uSUQuaW5jbHVkZXMoXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24odGlja2V0LnNwYWNlSUQpLmlkXG4gICAgICApXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgc2V0QXJjaGl2ZWQodGlja2V0OiBUaWNrZXQsIGFyY2hpdmVkOiBib29sZWFuKSB7XG4gICAgbGV0IGFyY2hpdmVkTGlzdCA9IHRpY2tldC5hcmNoaXZlZEZvck1pc3Npb25JRFxuICAgICAgPyB0aWNrZXQuYXJjaGl2ZWRGb3JNaXNzaW9uSURcbiAgICAgIDogW107XG4gICAgY29uc3QgbWlzc2lvbklEID0gdGhpcy51c2VyU2VydmljZS5jdXJyZW50TWlzc2lvbih0aWNrZXQuc3BhY2VJRCkuaWQ7XG5cbiAgICBhcmNoaXZlZExpc3QgPSBhcmNoaXZlZExpc3QuZmlsdGVyKChtKSA9PiBtICE9PSBtaXNzaW9uSUQpO1xuXG4gICAgaWYgKGFyY2hpdmVkKSB7XG4gICAgICBhcmNoaXZlZExpc3QucHVzaChtaXNzaW9uSUQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVwZGF0ZVRpY2tldFdpdGhFdmVudCh7XG4gICAgICBpZDogdGlja2V0LmlkLFxuICAgICAgYXJjaGl2ZWRGb3JNaXNzaW9uSUQ6IGFyY2hpdmVkTGlzdCxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5hdmlnYXRlVG9UaWNrZXRJbjNEKFxuICAgIHRpY2tldDogVGlja2V0LFxuICAgIGZvcmNlU3dpdGNoVmlzaXQ6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBsZXQgdXJsID0gYHZpc2l0LyR7dGlja2V0LnNwYWNlSUR9YDtcbiAgICBpZiAoZm9yY2VTd2l0Y2hWaXNpdCkge1xuICAgICAgdXJsICs9IGAvZGV0YWlsLyR7dGlja2V0LmlkfWA7XG4gICAgfVxuICAgIGNvbnN0IGNhbkdvVG9UYWcgPSBhd2FpdCB0aGlzLnZpZXdlclNlcnZpY2UuYWN0aW9uX21vdmVfdG9fdGFnKFxuICAgICAgYCR7dGlja2V0LmlkfWBcbiAgICApO1xuICAgIGlmIChjYW5Hb1RvVGFnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0TW9kZWwzZEFuZFN3ZWVwKHRpY2tldCk7XG4gICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5tb2RlbDNEKSB7XG4gICAgICBhbGVydCgnRXJyb3Igd2hpbGUgZ2V0dGluZyB2aXJ0dWFsIHZpc2l0IG1vZGVsJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghZm9yY2VTd2l0Y2hWaXNpdCkge1xuICAgICAgLyoqIFNpIG9uIG5lIGZvcmNlIHBhcyBsYSB2aXNpdGUsIG9uIGRlbWFuZGUgc2kgb24gdmV1dCBldHJlIHN3aXRjaCAqL1xuICAgICAgb3Blbk1vZGFsRm9yVmlzaXRTd2l0Y2goXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLFxuICAgICAgICByZXN1bHQubW9kZWwzRCxcbiAgICAgICAgdGlja2V0LnNwYWNlSUQsXG4gICAgICAgIHtzd2VlcFRvTW92ZTogcmVzdWx0LnN3ZWVwLCByb3RhdGlvbjogcmVzdWx0LnJvdGF0aW9ufVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLyoqIFNpIG9uIGZvcmNlIGxlIHN3aXRjaCBkZSBsYSB2aXNpdCAqL1xuICAgICAgd2luZG93Lm9wZW4oYCR7dXJsfT9tb2RlbDNEPSR7cmVzdWx0Lm1vZGVsM0R9JnN3ZWVwPXRydWVgLCAnX2JsYW5rJyk7XG4gICAgfVxuICB9XG5cbiAgaW5pdFN1YnNjcmlwdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLmlzTXVzZXVtVXNlcikge1xuICAgICAgdGhpcy5uYXZTdWJzY3JpcHRpb24gPSB0aGlzLnpvbmVDaGFuZ2VTZXJ2aWNlLnpvbmVDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgICAoem9uZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudFNwYWNlSUQ7XG4gICAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XG4gICAgICAgICAgICB0aGlzLnRpY2tldFRhZ3MubmV4dChudWxsKTtcbiAgICAgICAgICAgIHRoaXMudGlja2V0c1VwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBudWxsfSk7XG4gICAgICAgICAgICB0aGlzLnRpY2tldFR5cGVGaWx0ZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAoem9uZS5pZCAhPT0gdGhpcy56b25lSURGaWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gem9uZS5pZDtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiZ29pbmcgdG8gaW5pdCB0aWNrZXRzIGZyb20gem9uZVwiKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdFRpY2tldHMoKS5jYXRjaCgoZSkgPT4gY29uc29sZS5sb2coZS5tZXNzYWdlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGhpcy5maWxldHJTdWJzY3JpcHRpb24gPSB0aGlzLmZpbHRlclNlcnZpY2Uuc3Vic2NyaWJlVG9EYXRhRmlsdGVyVXBkYXRlKFxuICAgICAgICAoZGF0ZVJhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRlRmlsdGVyID0gZGF0ZVJhbmdlO1xuICAgICAgICAgIHRoaXMuaW5pdFRpY2tldHMoKS5jYXRjaCgoZSkgPT4gY29uc29sZS5sb2coZS5tZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLmRhdGVGaWx0ZXIgPSB0aGlzLmZpbHRlclNlcnZpY2UuY3VycmVudERhdGVGaWx0ZXI7XG4gICAgICB0aGlzLnVwZGF0ZURvbmUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQpIHtcbiAgICAgICAgICB0aGlzLmluaXRUaWNrZXRzKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUubWVzc2FnZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1bnN1YnNjcmliZSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy90aWNrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0Msc0NBQXNDO0FBQ3RDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQTBCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBQyx1QkFBdUIsRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBRXpFLE9BQU8sRUFHTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLFlBQVksRUFDWixXQUFXLEVBQ1gsU0FBUyxFQUdULE9BQU8sR0FHUixNQUFNLHFCQUFxQixDQUFDO0FBSzdCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBSXhELE9BQU8sZUFBZSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sYUFBYSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hFLE9BQU8sYUFBYSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JFLE9BQU8sZUFBZSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjtJQW9EbkQsWUFFSSwyQkFBZ0MsRUFDTCxXQUFnQixFQUNyQyxnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsa0JBQXNDLEVBQzlDLFVBQXNCLEVBQ2QsV0FBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUNoRCxpQkFBb0MsRUFDNUIsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLFlBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQWI3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUV4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBbEVoQyxtQkFBYyxHQUF3QztZQUNwRCxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztRQUVGLGVBQVUsR0FBc0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU5QyxvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUUvQixtQkFBYyxHQUdULElBQUksT0FBTyxFQUFFLENBQUM7UUFVbkIsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFFOUIsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFFbEMsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFFOUIsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFFbEMsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFFNUIsZUFBVSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTdDLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUszQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQU1yQixtQkFBYyxHQUFXLElBQUksQ0FBQztRQUU5QixrQkFBYSxHQUFTLElBQUksQ0FBQztRQUVuQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQW9CL0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ25ELElBQUksV0FBVyxFQUFFO2dCQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDdkM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6RCxJQUFJLEtBQUssRUFBRTtnQkFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2pFLElBQUksT0FBTyxFQUFFO29CQUNYLGVBQWUsR0FBRyxPQUFPLENBQUM7aUJBQzNCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxlQUFlO2dCQUNiLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FDekQsZUFBZSxFQUNmLElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQUM7WUFDSixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixDQUM1RCxlQUFlLEVBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQzthQUNIO1lBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQzVDLENBQUM7YUFDSDtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtZQUVsRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQzdELGVBQWUsRUFDZixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO2FBQ0g7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7UUFDOUIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbEMsYUFBYTtnQkFDYixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQyxzQkFBc0I7WUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxhQUFhO2dCQUNiLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRSxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FDekUsTUFBTSxDQUNQLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBYztRQUM3QixRQUFRLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDdkIsS0FBSyxjQUFjLENBQUMsT0FBTztnQkFDekIsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxjQUFjLENBQUMsSUFBSTtnQkFDdEIsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLGNBQWMsQ0FBQyxNQUFNO2dCQUN4QixPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLGNBQWMsQ0FBQyxHQUFHO2dCQUNyQixPQUFPLE9BQU8sQ0FBQztZQUNqQixLQUFLLGNBQWMsQ0FBQyxPQUFPO2dCQUN6QixPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixRQUFRLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDckIsS0FBSyxZQUFZLENBQUMsZUFBZTtnQkFDL0IsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxZQUFZLENBQUMsV0FBVztnQkFDM0IsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxZQUFZLENBQUMsc0JBQXNCO2dCQUN0QyxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxTQUFTO2dCQUN6QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxRQUFRO2dCQUN4QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxRQUFRO2dCQUN4QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxRQUFRO2dCQUN4QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxJQUFJO2dCQUNwQixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxTQUFTO2dCQUN6QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxTQUFTO2dCQUN6QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLFNBQVMsQ0FBQztZQUNuQjtnQkFDRSxPQUFPLFNBQVMsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsT0FBTztZQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssY0FBYyxDQUFDLEdBQUc7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxNQUFNO29CQUNwQyxDQUFDLENBQUMsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsSUFBSTt3QkFDbEMsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssY0FBYyxDQUFDLE9BQU87NEJBQ3JDLENBQUMsQ0FBQyxDQUFDOzRCQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWdCO1FBQzVCLDZDQUE2QztRQUM3QyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssVUFBVSxDQUFDLFNBQVM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUM1QixLQUFLLFVBQVUsQ0FBQyx3QkFBd0I7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM5QixLQUFLLFVBQVUsQ0FBQyx1QkFBdUI7Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM5QixLQUFLLFVBQVUsQ0FBQyxVQUFVO2dCQUN4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUIsS0FBSyxVQUFVLENBQUMsUUFBUTtnQkFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQzNCLEtBQUssVUFBVSxDQUFDLFdBQVc7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM5QjtnQkFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxLQUFZO1FBQ2pELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNwRCxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDN0QsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN4RCxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsSUFBSTtZQUNGLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDeEcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU07Z0JBQzNDLGFBQWE7Z0JBQ2I7b0JBQ0UsSUFBSSxFQUFFO3dCQUNKLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7d0JBQ3hCLE1BQU0sRUFBRSxNQUFNO3dCQUNkLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTt3QkFDcEIsS0FBSyxFQUFFLEtBQUs7d0JBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTt3QkFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO3dCQUMvQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7d0JBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTt3QkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtxQkFDaEM7b0JBQ0QsVUFBVSxFQUFFLDhCQUE4QjtvQkFDMUMsb0JBQW9CO2lCQUNyQixFQUNELFlBQVksQ0FDYixDQUFDO2FBQ0g7WUFDRCwrQ0FBK0M7WUFDL0MsT0FBTyxhQUFhLENBQUM7U0FDdEI7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFjO1FBQzVCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUMxQixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUNyRCxNQUFNLENBQUMsT0FBTyxDQUNmLENBQUMsRUFBRSxDQUFDO1NBQ047UUFDRCw2Q0FBNkM7UUFDN0MsSUFBSTtZQUNGLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxzREFBc0Q7WUFDdEQsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3BDLEtBQUssRUFBRSxvQkFBb0I7Z0JBQzNCLFdBQVcsRUFBRSxtQkFBbUI7Z0JBQ2hDLGVBQWUsRUFBRSw0QkFBNEI7YUFDOUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsT0FBTyxjQUFjLENBQUMsQ0FBQyxrQkFBa0I7U0FDMUM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCLENBQ3pCLE1BQWlDLEVBQ2pDLEtBQWE7UUFFYixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUM1QixNQUFjLEVBQ2QsUUFBcUI7UUFFckIsSUFBSTtZQUNGLE1BQU0sV0FBVyxHQUNmLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixPQUFPLENBQUMsSUFBSSxDQUNWLDRCQUE0QixNQUFNLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLFVBQVUsQ0FDaEUsQ0FBQzthQUNIO1NBQ0Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixNQUFjLEVBQ2QsT0FBc0I7UUFFdEIsTUFBTSxRQUFRLEdBQUc7WUFDZixVQUFVLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQ3pDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTTtZQUNwQixTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUNyQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFO1NBQ2pDLENBQUM7UUFDVCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEUsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQ2xDLEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsV0FBVyxFQUFFLDRDQUE0QztZQUN6RCxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVk7WUFDaEMsZUFBZSxFQUFFLDBCQUEwQjtTQUM1QyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLE1BQWMsRUFDZCxNQUFvQjtRQUVwQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3BDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDdEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxhQUFhLEtBQUssTUFBTSxFQUFFO1lBQzVCLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3ZCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNiLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQWMsRUFBRSxJQUFnQjtRQUN2RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUM5QixFQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFDLEVBQ2xDO1lBQ0UsS0FBSyxFQUFFLGFBQWE7WUFDcEIsV0FBVyxFQUFFLGlCQUFpQixZQUFZLFNBQVMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNoRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDN0MsZUFBZSxFQUFFLHlCQUF5QjtTQUMzQyxDQUNGLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLHlCQUF5QixDQUFDLE9BQWU7UUFDN0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGtDQUFrQyxDQUMxRCxZQUFZLEVBQ1osT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU07WUFDM0MsYUFBYTtZQUNiO2dCQUNFLElBQUksRUFBRTtvQkFDSixTQUFTLEVBQUUsaUJBQWlCO29CQUM1QixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsNERBQTREO29CQUM1RCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07b0JBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztvQkFDL0IsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO29CQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVk7b0JBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7aUJBQ2hDO2dCQUNELFVBQVUsRUFBRSw4QkFBOEI7Z0JBQzFDLG9CQUFvQjthQUNyQixFQUNELFlBQVksQ0FDYixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFnQztRQUNqRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQy9CLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBRXZFLGFBQWE7UUFDYixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25DO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFO2dCQUM5QyxJQUFJO29CQUNGLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO3dCQUNwQyxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7d0JBQ2xCLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQztpQkFDSjtnQkFBQyxNQUFNO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN6RDtnQkFFRCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztvQkFDbkMsS0FBSyxFQUFFLHdCQUF3QjtvQkFDL0IsUUFBUSxFQUFFLFdBQVcsQ0FBQyxFQUFFO29CQUN4QixXQUFXLEVBQUUsMENBQTBDO2lCQUN4RCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsZ0JBQWdCO1FBQ2hCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRix1QkFBdUI7UUFDdkIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLEtBQUssTUFBTSxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDO2FBQ3hEO1NBQ0Y7UUFDRCxrQkFBa0I7UUFDbEIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTO2FBQ3RCLGNBQWMsQ0FBQyxPQUFPLENBQUM7YUFDdkIsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyw4QkFBOEIsQ0FDbEMsT0FBZSxFQUNmLE9BQWU7UUFFZixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLCtEQUErRDtJQUMvRCxVQUFVLENBQUMsTUFBYztRQUN2QixPQUFPLE1BQU0sQ0FBQyxvQkFBb0I7WUFDaEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQ25EO1lBQ0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNaLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLFFBQWlCO1FBQzNDLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0I7WUFDNUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0I7WUFDN0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFckUsWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUUzRCxJQUFJLFFBQVEsRUFBRTtZQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUI7UUFFRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztZQUNoQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixvQkFBb0IsRUFBRSxZQUFZO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLE1BQWMsRUFDZCxtQkFBNEIsS0FBSztRQUVqQyxJQUFJLEdBQUcsR0FBRyxTQUFTLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQyxJQUFJLGdCQUFnQixFQUFFO1lBQ3BCLEdBQUcsSUFBSSxXQUFXLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUMvQjtRQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDNUQsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQ2YsQ0FBQztRQUNGLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTztTQUNSO1FBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDOUIsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDakQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLHNFQUFzRTtZQUN0RSx1QkFBdUIsQ0FDckIsSUFBSSxDQUFDLFlBQVksRUFDakIsTUFBTSxDQUFDLE9BQU8sRUFDZCxNQUFNLENBQUMsT0FBTyxFQUNkLEVBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUMsQ0FDdkQsQ0FBQztTQUNIO2FBQU07WUFDTCx3Q0FBd0M7WUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsWUFBWSxNQUFNLENBQUMsT0FBTyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FDaEUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDUCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7Z0JBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO29CQUNsRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO29CQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztpQkFDMUI7cUJBQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDNUIsa0RBQWtEO29CQUNsRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUN6RDtZQUNILENBQUMsQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQ3RFLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUNGLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7WUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM3QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzsyR0F0bEJVLGNBQWMsa0JBcURmLG1DQUFtQyxhQUVuQyxtQkFBbUI7K0dBdkRsQixjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBc0RJLE1BQU07MkJBQUMsbUNBQW1DOzswQkFFMUMsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXHJcbi8qIGVzbGludC1kaXNhYmxlIGNvbnNpc3RlbnQtcmV0dXJuICovXHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtOZ2JNb2RhbH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1N1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtvcGVuTW9kYWxGb3JWaXNpdFN3aXRjaCwgd2FpdFVudGlsfSBmcm9tICcuLi8uLi9oZWxwZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQge01hdHRlcnRhZ0RhdGF9IGZyb20gJy4uLy4uL21hdHRlcnRhZ0RhdGEnO1xyXG5pbXBvcnQge1xyXG4gIEV2ZW50LFxyXG4gIFRpY2tldCxcclxuICBUaWNrZXRUeXBlLFxyXG4gIFRpY2tldFByaW9yaXR5LFxyXG4gIFRpY2tldFN0YXR1cyxcclxuICBFdmVudFN0YXR1cyxcclxuICBFdmVudFR5cGUsXHJcbiAgQWZmZWN0YXRpb24sXHJcbiAgUE9JLFxyXG4gIFBvaVR5cGUsXHJcbiAgSVVwZGF0ZSxcclxuICBab25lLFxyXG59IGZyb20gJy4uLy4uL3R5cGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ZpbHRlclNlcnZpY2V9IGZyb20gJy4uL2ZpbHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtOYXZpZ2F0b3JTZXJ2aWNlfSBmcm9tICcuLi9uYXZpZ2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7QmFzZVVzZXJTZXJ2aWNlfSBmcm9tICcuLi91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZpZXdlclNlcnZpY2V9IGZyb20gJy4uL3ZpZXdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtCYXNlT2JqZWN0U2VydmljZX0gZnJvbSAnLi9iYXNlLW9iamVjdC5zZXJ2aWNlJztcclxuaW1wb3J0IHtOYXZpZ2F0aW9uU2VydmljZX0gZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge09wZXJhdGlvblNlcnZpY2V9IGZyb20gJy4vb3BlcmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BvaVNlcnZpY2V9IGZyb20gJy4vcG9pLnNlcnZpY2UnO1xyXG5pbXBvcnQgSW5mb3JtYXRpb25JY29uIGZyb20gJ0BpY29uaWZ5LWljb25zL21kaS9pbmZvcm1hdGlvbi1vdXRsaW5lJztcclxuaW1wb3J0IEFjY2lkZW50SWNvbiBmcm9tICdAaWNvbmlmeS1pY29ucy9tZGkvYWxlcnQnO1xyXG5pbXBvcnQgV29yZE9yZGVySWNvbiBmcm9tICdAaWNvbmlmeS1pY29ucy9tZGkvYWNjb3VudC1oYXJkLWhhdCc7XHJcbmltcG9ydCBSZXBvcnRpbmdJY29uIGZyb20gJ0BpY29uaWZ5LWljb25zL21kaS9maWxlLWRvY3VtZW50LW91dGxpbmUnO1xyXG5pbXBvcnQgTWFpbnRlbmFuY2VJY29uIGZyb20gJ0BpY29uaWZ5LWljb25zL21kaS90b29scyc7XHJcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0ludGVydmVudGlvblNlcnZpY2V9IGZyb20gJy4uL2ludGVydmVudGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtBZmZlY3RhdGlvblNlcnZpY2V9IGZyb20gJy4vYWZmZWN0YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7Wm9uZUNoYW5nZVNlcnZpY2V9IGZyb20gXCIuLi96b25lQ2hhbmdlLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaWNrZXRzU2VydmljZSBleHRlbmRzIEJhc2VPYmplY3RTZXJ2aWNlIHtcclxuICBjdXJyZW50VGlja2V0czogeyB6b25lOiBUaWNrZXRbXTsgc3BhY2U6IFRpY2tldFtdIH0gPSB7XHJcbiAgICB6b25lOiBbXSxcclxuICAgIHNwYWNlOiBbXSxcclxuICB9O1xyXG5cclxuICB0aWNrZXRUYWdzOiBTdWJqZWN0PFRpY2tldFtdPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHRpY2tldHNGaWx0ZXJlZDogVGlja2V0W10gPSBbXTtcclxuXHJcbiAgdGlja2V0c1VwZGF0ZWQ6IFN1YmplY3Q8e1xyXG4gICAgem9uZTogVGlja2V0W107XHJcbiAgICBzcGFjZTogVGlja2V0W107XHJcbiAgfT4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjdXJyZW50U3BhY2VJRDogc3RyaW5nO1xyXG5cclxuICB6b25lSURGaWx0ZXI6IHN0cmluZztcclxuXHJcbiAgZGF0ZUZpbHRlcjogRGF0ZVtdO1xyXG5cclxuICB0aWNrZXRUeXBlRmlsdGVyOiBUaWNrZXRUeXBlW107XHJcblxyXG4gIHJlcG9ydGluZ0ljb24gPSBSZXBvcnRpbmdJY29uO1xyXG5cclxuICBtYWludGVuYW5jZUljb24gPSBNYWludGVuYW5jZUljb247XHJcblxyXG4gIHdvcmtvcmRlckljb24gPSBXb3JkT3JkZXJJY29uO1xyXG5cclxuICBpbmZvcm1hdGlvbkljb24gPSBJbmZvcm1hdGlvbkljb247XHJcblxyXG4gIGFjY2lkZW50SWNvbiA9IEFjY2lkZW50SWNvbjtcclxuXHJcbiAgdXBkYXRlRG9uZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHVwZGF0aW5nOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgQVBJOiBhbnk7XHJcbiAgYXdzS2luZXNpc0FuYWx5dGljczogYW55OyAvL0FXU1xyXG5cclxuICBpc011c2V1bVVzZXIgPSBmYWxzZTtcclxuXHJcbiAgbmF2U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGZpbGV0clN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBmbG9vcnNQZXJTcGFjZTogWm9uZVtdID0gbnVsbDtcclxuXHJcbiAgc2VsZWN0ZWRGbG9vcjogWm9uZSA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ2N1cnJlbnRBd3NLaW5lc2lzQW5hbHl0aWNzU2VydmljZScpXHJcbiAgICAgIGF3c0tpbmVzaXNBbmFseXRpY3NJbmplY3RlZDogYW55LFxyXG4gICAgQEluamVjdCgnY3VycmVudEFQSVNlcnZpY2UnKSBhcGlJbmplY3RlZDogYW55LFxyXG4gICAgcHJpdmF0ZSBvcGVyYXRpb25TZXJ2aWNlOiBPcGVyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgYWZmZWN0YXRpb25TZXJ2aWNlOiBBZmZlY3RhdGlvblNlcnZpY2UsXHJcbiAgICBwb2lTZXJ2aWNlOiBQb2lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbnRlcnZlbnRpb25TZXJ2aWNlOiBJbnRlcnZlbnRpb25TZXJ2aWNlLFxyXG4gICAgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3ZXJTZXJ2aWNlOiBWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lQ2hhbmdlU2VydmljZTogWm9uZUNoYW5nZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWxcclxuICApIHtcclxuICAgIHN1cGVyKHBvaVNlcnZpY2UsIG5hdmlnYXRpb25TZXJ2aWNlKTtcclxuICAgIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcyA9IGF3c0tpbmVzaXNBbmFseXRpY3NJbmplY3RlZDtcclxuICAgIHRoaXMuQVBJID0gYXBpSW5qZWN0ZWQ7XHJcbiAgICB0aGlzLmlzTXVzZXVtVXNlciA9IHRoaXMudXNlclNlcnZpY2UuaGFzT25seU11c2V1bVJvbGUoKTtcclxuICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMudXNlclNlcnZpY2UuaXNDaGFuZ2VkLnN1YnNjcmliZSgoaXNDb25uZWN0ZWQpID0+IHtcclxuICAgICAgaWYgKGlzQ29ubmVjdGVkKSB7XHJcbiAgICAgICAgdGhpcy5pc011c2V1bVVzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmhhc09ubHlNdXNldW1Sb2xlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9ucygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLm5hdlN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5uYXZTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIHRoaXMuZmlsZXRyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnpvbmVDaGFuZ2VTZXJ2aWNlLmZsb29ySGFzQ2hhbmdlZC5zdWJzY3JpYmUoKGZsb29yKSA9PiB7XHJcbiAgICAgIGlmIChmbG9vcikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vciA9IGZsb29yO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGluaXRUaWNrZXRzKCkge1xyXG4gICAgbGV0IHRpY2tldHNGaWx0ZXJlZCA9IFtdO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQpIHtcclxuICAgICAgdGhpcy51cGRhdGluZy5uZXh0KHRydWUpO1xyXG4gICAgICBhd2FpdCB0aGlzLmdldFRpY2tldHNCeVNwYWNlKHRoaXMuY3VycmVudFNwYWNlSUQpLnRoZW4oKHRpY2tldHMpID0+IHtcclxuICAgICAgICBpZiAodGlja2V0cykge1xyXG4gICAgICAgICAgdGlja2V0c0ZpbHRlcmVkID0gdGlja2V0cztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aWNrZXRzRmlsdGVyZWQgPVxyXG4gICAgICAgIGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJUaWNrZXRzRm9yQ3VycmVudFVzZXJJblNwYWNlKFxyXG4gICAgICAgICAgdGlja2V0c0ZpbHRlcmVkLFxyXG4gICAgICAgICAgdGhpcy5jdXJyZW50U3BhY2VJRFxyXG4gICAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLmRhdGVGaWx0ZXIpIHtcclxuICAgICAgICB0aWNrZXRzRmlsdGVyZWQgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyT2JqZWN0c0ZvckRhdGVSYW5nZShcclxuICAgICAgICAgIHRpY2tldHNGaWx0ZXJlZCxcclxuICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlclxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGlja2V0VHlwZUZpbHRlcikge1xyXG4gICAgICAgIHRpY2tldHNGaWx0ZXJlZCA9IHRpY2tldHNGaWx0ZXJlZC5maWx0ZXIoKHRpY2tldCkgPT5cclxuICAgICAgICAgIHRoaXMudGlja2V0VHlwZUZpbHRlci5pbmNsdWRlcyh0aWNrZXQudHlwZSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudFRpY2tldHMuc3BhY2UgPSB0aWNrZXRzRmlsdGVyZWQ7XHJcbiAgICAgIHRoaXMudGlja2V0VGFncy5uZXh0KHRpY2tldHNGaWx0ZXJlZCk7IC8vIHRhZ3Mgd2l0aG91dCB6b25lIGZpbHRlclxyXG5cclxuICAgICAgaWYgKHRoaXMuem9uZUlERmlsdGVyKSB7XHJcbiAgICAgICAgdGlja2V0c0ZpbHRlcmVkID0gYXdhaXQgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck9iamVjdHNGb3Jab25lKFxyXG4gICAgICAgICAgdGlja2V0c0ZpbHRlcmVkLFxyXG4gICAgICAgICAgdGhpcy56b25lSURGaWx0ZXJcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudFRpY2tldHMuem9uZSA9IHRpY2tldHNGaWx0ZXJlZDtcclxuICAgICAgdGhpcy50aWNrZXRzVXBkYXRlZC5uZXh0KHRoaXMuY3VycmVudFRpY2tldHMpO1xyXG4gICAgICB0aGlzLnVwZGF0aW5nLm5leHQoZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50aWNrZXRUYWdzLm5leHQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGFwdFRpY2tldCh0aWNrZXQ6IFRpY2tldCk6IFByb21pc2U8VGlja2V0PiB7XHJcbiAgICBpZiAodGlja2V0LmNvbW1lbnRzLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGlja2V0LmNvbW1lbnRzLml0ZW1zLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGIuY3JlYXRlZEF0KSAtIG5ldyBEYXRlKGEuY3JlYXRlZEF0KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRpY2tldC5ldmVudHMuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAvLyBTb3J0IGV2ZW50cyBieSBkYXRlXHJcbiAgICAgIHRpY2tldC5ldmVudHMuaXRlbXMuc29ydCgoZXZlbnQxLCBldmVudDIpID0+IHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGV2ZW50Mi5jcmVhdGVkQXQpIC0gbmV3IERhdGUoZXZlbnQxLmNyZWF0ZWRBdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGlja2V0LnByZXN0YXRhaXJlID0gYXdhaXQgdGhpcy5pbnRlcnZlbnRpb25TZXJ2aWNlLmdldFByZXN0YXRhaXJlRm9yVGlja2V0KFxyXG4gICAgICB0aWNrZXRcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGlja2V0O1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJpb3JpdHlDb2xvcih0aWNrZXQ6IFRpY2tldCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHRpY2tldC5wcmlvcml0eSkge1xyXG4gICAgICBjYXNlIFRpY2tldFByaW9yaXR5Lk1BWElNVU06XHJcbiAgICAgICAgcmV0dXJuICdjcmltc29uJztcclxuICAgICAgY2FzZSBUaWNrZXRQcmlvcml0eS5ISUdIOlxyXG4gICAgICAgIHJldHVybiAncmVkJztcclxuICAgICAgY2FzZSBUaWNrZXRQcmlvcml0eS5NRURJVU06XHJcbiAgICAgICAgcmV0dXJuICdvcmFuZ2UnO1xyXG4gICAgICBjYXNlIFRpY2tldFByaW9yaXR5LkxPVzpcclxuICAgICAgICByZXR1cm4gJ2dyZWVuJztcclxuICAgICAgY2FzZSBUaWNrZXRQcmlvcml0eS5NSU5JTVVNOlxyXG4gICAgICAgIHJldHVybiAnYmx1ZSc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdibHVlJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFN0YXR1c0NvbG9yKHRpY2tldDogVGlja2V0KTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodGlja2V0LnN0YXR1cykge1xyXG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5UT19CRV9QUk9DRVNTRUQ6XHJcbiAgICAgICAgcmV0dXJuICcjQjBCMEIxJztcclxuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuUExBTk5FRDpcclxuICAgICAgICByZXR1cm4gJyNFQkRGMjcnO1xyXG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5JTl9QUk9HUkVTUzpcclxuICAgICAgICByZXR1cm4gJyNFQkRGMjcnO1xyXG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5XQUlUSU5HX0ZPUl9WQUxJREFUSU9OOlxyXG4gICAgICAgIHJldHVybiAnI0VCREYyNyc7XHJcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLlZBTElEQVRFRDpcclxuICAgICAgICByZXR1cm4gJyNCQ0UyRTUnO1xyXG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5SRUpFQ1RFRDpcclxuICAgICAgICByZXR1cm4gJyNlODRjMzUnO1xyXG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5SRVNPTFZFRDpcclxuICAgICAgICByZXR1cm4gJyNCQ0UyRTUnO1xyXG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5BUkNISVZFRDpcclxuICAgICAgICByZXR1cm4gJyNCMEIwQjEnO1xyXG4gICAgICBjYXNlIFRpY2tldFN0YXR1cy5MQVRFOlxyXG4gICAgICAgIHJldHVybiAnI2U4NGMzNSc7XHJcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLkJMT0NLRUQ6XHJcbiAgICAgICAgcmV0dXJuICcjZTg0YzM1JztcclxuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuQ09NUExFVEVEOlxyXG4gICAgICAgIHJldHVybiAnIzM4ODY1OSc7XHJcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLkRFTEFZRUQ6XHJcbiAgICAgICAgcmV0dXJuICcjREI3NTQzJztcclxuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuQ0FOQ0VMTEVEOlxyXG4gICAgICAgIHJldHVybiAnI2U4NGMzNSc7XHJcbiAgICAgIGNhc2UgVGlja2V0U3RhdHVzLlRPX1JFRE86XHJcbiAgICAgICAgcmV0dXJuICcjREI3NTQzJztcclxuICAgICAgY2FzZSBUaWNrZXRTdGF0dXMuQ1JFQVRFRDpcclxuICAgICAgICByZXR1cm4gJyNCMEIwQjEnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnI0JDRTJFNSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRQcmlvcml0eU51bWJlcih0KTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0LnByaW9yaXR5ID09PSBUaWNrZXRQcmlvcml0eS5NSU5JTVVNXHJcbiAgICAgID8gLTFcclxuICAgICAgOiB0LnByaW9yaXR5ID09PSBUaWNrZXRQcmlvcml0eS5MT1dcclxuICAgICAgICA/IDBcclxuICAgICAgICA6IHQucHJpb3JpdHkgPT09IFRpY2tldFByaW9yaXR5Lk1FRElVTVxyXG4gICAgICAgICAgPyAxXHJcbiAgICAgICAgICA6IHQucHJpb3JpdHkgPT09IFRpY2tldFByaW9yaXR5LkhJR0hcclxuICAgICAgICAgICAgPyAyXHJcbiAgICAgICAgICAgIDogdC5wcmlvcml0eSA9PT0gVGlja2V0UHJpb3JpdHkuTUFYSU1VTVxyXG4gICAgICAgICAgICAgID8gM1xyXG4gICAgICAgICAgICAgIDogLTE7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRJY29uKHR5cGU6IFRpY2tldFR5cGUpOiBhbnkge1xyXG4gICAgLy8gY29uc3QgdHlwZUljb24gOiBUaWNrZXRUeXBlID0gdGlja2V0LnR5cGU7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBUaWNrZXRUeXBlLlJFUE9SVElORzpcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXBvcnRpbmdJY29uO1xyXG4gICAgICBjYXNlIFRpY2tldFR5cGUuUkVRVUVTVF9GT1JfSU5URVJWRU5USU9OOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm1haW50ZW5hbmNlSWNvbjtcclxuICAgICAgY2FzZSBUaWNrZXRUeXBlLlJFUVVFU1RfRk9SX01BSU5URU5BTkNFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm1haW50ZW5hbmNlSWNvbjtcclxuICAgICAgY2FzZSBUaWNrZXRUeXBlLldPUktfT1JERVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMud29ya29yZGVySWNvbjtcclxuICAgICAgY2FzZSBUaWNrZXRUeXBlLklOQ0lERU5UOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmFjY2lkZW50SWNvbjtcclxuICAgICAgY2FzZSBUaWNrZXRUeXBlLklORk9STUFUSU9OOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmluZm9ybWF0aW9uSWNvbjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdGhpcy5tYWludGVuYW5jZUljb247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRFdmVudFRvVGlja2V0KHRpY2tldDogVGlja2V0LCBldmVudDogRXZlbnQpOiBQcm9taXNlPEV2ZW50PiB7XHJcbiAgICBjb25zdCBjdXJyZW50TWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24odGlja2V0LnNwYWNlSUQpO1xyXG4gICAgZXZlbnQuZ3JvdXAgPSBldmVudC5ncm91cCA/IGV2ZW50Lmdyb3VwIDogJ2RlZmF1bHQnO1xyXG4gICAgZXZlbnQudGlja2V0SUQgPSBldmVudC50aWNrZXRJRCA/IGV2ZW50LnRpY2tldElEIDogdGlja2V0LmlkO1xyXG4gICAgZXZlbnQuc3RhdHVzID0gZXZlbnQuc3RhdHVzID8gZXZlbnQuc3RhdHVzIDogRXZlbnRTdGF0dXMuQ1JFQVRFRDtcclxuICAgIGV2ZW50LnR5cGUgPSBldmVudC50eXBlID8gZXZlbnQudHlwZSA6IEV2ZW50VHlwZS5USUNLRVQ7XHJcbiAgICBldmVudC5vd25lcklEID0gZXZlbnQub3duZXJJRCA/IGV2ZW50Lm93bmVySUQgOiBjdXJyZW50TWlzc2lvbi5pZDtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlY2VpdmVkRXZlbnQgPSBhd2FpdCB0aGlzLmV2ZW50U2VydmljZS5jcmVhdGVFdmVudChldmVudCk7XHJcbiAgICAgIGlmICghIXRoaXMuYXdzS2luZXNpc0FuYWx5dGljcyAmJiAhIXRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQgJiYgdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzLnJlY29yZCgpKSB7XHJcbiAgICAgICAgdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzLmdldEluc3RhbmNlKCkucmVjb3JkKFxyXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgZXZlbnRUeXBlOiAnVGlja2V0IENoYW5nZScsXHJcbiAgICAgICAgICAgICAgdGlja2V0SWQ6IGV2ZW50LnRpY2tldElELFxyXG4gICAgICAgICAgICAgIHRpY2tldDogdGlja2V0LFxyXG4gICAgICAgICAgICAgIHN0YXR1czogZXZlbnQuc3RhdHVzLFxyXG4gICAgICAgICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICB1c2VyOiB0aGlzLnVzZXJTZXJ2aWNlLmN1LFxyXG4gICAgICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXHJcbiAgICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgIHpvbmVJZDogdGhpcy56b25lSURGaWx0ZXIsXHJcbiAgICAgICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3RyZWFtTmFtZTogJ3NtYXJ0ZXJwbGFuS2luZXNpcy1hbmFseXRpY3MnLFxyXG4gICAgICAgICAgICAvLyBwYXJ0aXRpb25LZXk6IFwiXCIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgJ0FXU0tpbmVzaXMnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZygnRXZlbnQgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgIScpO1xyXG4gICAgICByZXR1cm4gcmVjZWl2ZWRFdmVudDtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkVGlja2V0KHRpY2tldDogVGlja2V0KTogUHJvbWlzZTxUaWNrZXQgfCB2b2lkPiB7XHJcbiAgICB0aWNrZXQuc3RhdHVzID0gVGlja2V0U3RhdHVzLkNSRUFURUQ7XHJcbiAgICBpZiAoIXRpY2tldC5vd25lck1pc3Npb25JRCkge1xyXG4gICAgICB0aWNrZXQub3duZXJNaXNzaW9uSUQgPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKFxyXG4gICAgICAgIHRpY2tldC5zcGFjZUlEXHJcbiAgICAgICkuaWQ7XHJcbiAgICB9XHJcbiAgICAvLyBUT0RPISEhIGZpbHRlciBtaXNzaW9ucyBieSBzcGFjZSBvZiB0aWNrZXRcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlY2VpdmVkVGlja2V0ID0gYXdhaXQgdGhpcy5jcmVhdGVUaWNrZXQodGlja2V0KTtcclxuICAgICAgLy8gY29uc29sZS5sb2coJyEhISBSZXNwb25zZSBmcm9tIGNyZWF0aW5nIHRpY2tldCA6Jyk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHJlY2VpdmVkVGlja2V0KTtcclxuICAgICAgdGhpcy5hZGRFdmVudFRvVGlja2V0KHJlY2VpdmVkVGlja2V0LCB7XHJcbiAgICAgICAgdGl0bGU6ICdDcsOpYXRpb24gZHUgdGlja2V0JyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogYFRpY2tldCBjcsOpw6kgcGFyIC1gLFxyXG4gICAgICAgIHRyYW5zbGF0aW9uUGF0aDogJ3RpY2tldEV2ZW50LnRpY2tldC5jcmVhdGVkJyxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXBkYXRlRG9uZS5uZXh0KHRydWUpO1xyXG4gICAgICByZXR1cm4gcmVjZWl2ZWRUaWNrZXQ7IC8vIGluc3RlYWQgb2YgdHJ1ZVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1RpY2tldCBjcmVhdGlvbiBGQUlMRUQnKTtcclxuICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZVRpY2tldFdpdGhFdmVudChcclxuICAgIHRpY2tldDogSVVwZGF0ZSAmIFBhcnRpYWw8VGlja2V0PixcclxuICAgIGV2ZW50PzogRXZlbnRcclxuICApOiBQcm9taXNlPFRpY2tldD4ge1xyXG4gICAgY29uc3QgcmVjZWl2ZWRUaWNrZXQgPSBhd2FpdCB0aGlzLnVwZGF0ZVRpY2tldCh0aWNrZXQpO1xyXG4gICAgaWYgKHJlY2VpdmVkVGlja2V0KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdVcGRhdGVkIHRpY2tldCA6Jyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlY2VpdmVkVGlja2V0KTtcclxuICAgICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5hZGRFdmVudFRvVGlja2V0KHJlY2VpdmVkVGlja2V0LCBldmVudCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGVEb25lLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVjZWl2ZWRUaWNrZXQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyByZW1vdmVBc3NpZ25lZUZyb21UaWNrZXQoXHJcbiAgICB0aWNrZXQ6IFRpY2tldCxcclxuICAgIGFzc2lnbmVlOiBBZmZlY3RhdGlvblxyXG4gICk6IFByb21pc2U8VGlja2V0PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBhZmZlY3RhdGlvbiA9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5hZmZlY3RhdGlvblNlcnZpY2Uuc29mdERlbGV0ZUFmZmVjdGF0aW9uQnlJRChhc3NpZ25lZS5pZCk7XHJcbiAgICAgIGlmICghYWZmZWN0YXRpb24pIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBgcmVtb3ZlQXNzaWduZWVGcm9tVGlja2V0KCR7dGlja2V0LmlkfSwgJHthc3NpZ25lZS5pZH0pIGZhaWxlZGBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aWNrZXQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGVUaWNrZXRMb2NhdGlvbihcclxuICAgIHRpY2tldDogVGlja2V0LFxyXG4gICAgdGFnRGF0YTogTWF0dGVydGFnRGF0YVxyXG4gICk6IFByb21pc2U8UE9JPiB7XHJcbiAgICBjb25zdCBwb2lJbnB1dCA9IHtcclxuICAgICAgY29vcmRpbmF0ZTogdGFnRGF0YS5nZXRDb29yZGluYXRlU3RyaW5nKCksXHJcbiAgICAgIHR5cGU6IFBvaVR5cGUuVElDS0VULFxyXG4gICAgICBlbGVtZW50SUQ6IHRpY2tldC5pZCxcclxuICAgICAgbWV0YWRhdGE6IHRhZ0RhdGEuZ2V0TWV0YWRhdGFTdHJpbmcoKSxcclxuICAgICAgbWF0dGVycG9ydFN3ZWVwSUQ6IHRhZ0RhdGEuZ2V0U3dlZXBJRCgpLFxyXG4gICAgfSBhcyBQT0k7XHJcbiAgICBjb25zdCBwb2kgPSBhd2FpdCB0aGlzLnBvaVNlcnZpY2UuY3JlYXRlUE9JRm9yU3BhY2VJRChwb2lJbnB1dCk7XHJcbiAgICBhd2FpdCB0aGlzLmFkZEV2ZW50VG9UaWNrZXQodGlja2V0LCB7XHJcbiAgICAgIHRpdGxlOiAnQ2hhbmdlbWVudCBwb3NpdGlvbiBkdSB0aWNrZXQnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogXCJMZSBwb2ludCBkJ2ludMOpcsOqdCBkdSB0aWNrZXQgYSDDqXTDqSBtb2RpZmnDqVwiLFxyXG4gICAgICBzdGF0dXM6IEV2ZW50U3RhdHVzLlBPU0lUSU9OX1NFVCxcclxuICAgICAgdHJhbnNsYXRpb25QYXRoOiAndGlja2V0RXZlbnQucG9zaXRpb24uc2V0JyxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHBvaTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZVN0YXR1c09mVGlja2V0KFxyXG4gICAgdGlja2V0OiBUaWNrZXQsXHJcbiAgICBzdGF0dXM6IFRpY2tldFN0YXR1c1xyXG4gICk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBjdXJyZW50U3RhdHVzID0gdGlja2V0LnN0YXR1cztcclxuICAgIGNvbnN0IG9sZFRpY2tldFN0YXR1cyA9IHRpY2tldC5zdGF0dXM7XHJcbiAgICB0aWNrZXQuc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMgPT09IHN0YXR1cykge1xyXG4gICAgICByZXR1cm4gdGlja2V0O1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ1VwZGF0aW5nIHN0YXR1cycpO1xyXG4gICAgcmV0dXJuIHRoaXMudXBkYXRlVGlja2V0KHtcclxuICAgICAgaWQ6IHRpY2tldC5pZCxcclxuICAgICAgc3RhdHVzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGVUeXBlT2ZUaWNrZXQodGlja2V0OiBUaWNrZXQsIHR5cGU6IFRpY2tldFR5cGUpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3QgcHJldmlvdXNUeXBlID0gdGlja2V0LnR5cGU7XHJcbiAgICB0aWNrZXQudHlwZSA9IHR5cGU7XHJcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVRpY2tldFdpdGhFdmVudChcclxuICAgICAge2lkOiB0aWNrZXQuaWQsIHR5cGU6IHRpY2tldC50eXBlfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnVHlwZSBjaGFuZ8OpJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogYENoYW5nZW1lbnQgZGUgJHtwcmV2aW91c1R5cGV9IHZlcnMgJHt0aWNrZXQudHlwZX1gLFxyXG4gICAgICAgIG1ldGFkYXRhOiBKU09OLnN0cmluZ2lmeSh7dHlwZTogdGlja2V0LnR5cGV9KSxcclxuICAgICAgICB0cmFuc2xhdGlvblBhdGg6ICd0aWNrZXRFdmVudC50aWNrZXQudHlwZScsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gdGlja2V0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0VGlja2V0c0ZvclVzZXJGb3JTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPFRpY2tldFtdPiB7XHJcbiAgICBjb25zdCB0aWNrZXRzU3BhY2UgPSBhd2FpdCB0aGlzLmdldFRpY2tldHNCeVNwYWNlKHNwYWNlSUQpO1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJUaWNrZXRzRm9yQ3VycmVudFVzZXJJblNwYWNlKFxyXG4gICAgICB0aWNrZXRzU3BhY2UsXHJcbiAgICAgIHNwYWNlSURcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogQmFzaWMgQ1JVRCBvcGVyYXRpb25zICovXHJcbiAgYXN5bmMgcmVhZFRpY2tldChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldFRpY2tldChpZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjcmVhdGVUaWNrZXQoaW5wdXQ6IFRpY2tldCk6IFByb21pc2U8VGlja2V0PiB7XHJcbiAgICBpZiAoISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgJiYgISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkICYmIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQoKSkge1xyXG4gICAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MuZ2V0SW5zdGFuY2UoKS5yZWNvcmQoXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgZXZlbnRUeXBlOiAnT2JqZWN0IENyZWF0aW9uJyxcclxuICAgICAgICAgICAgb2JqZWN0VHlwZTogJ3RpY2tldCcsXHJcbiAgICAgICAgICAgIC8vem9uZUlkOiBpbnB1dC5zcGFjZUlELCAvLyBUT0RPOiBjaGVjayBpZiBzcGFjZUlkID09IHpvbmVJZFxyXG4gICAgICAgICAgICBkb21haW46IGlucHV0LmRvbWFpbixcclxuICAgICAgICAgICAgdXNlcjogdGhpcy51c2VyU2VydmljZS5jdSxcclxuICAgICAgICAgICAgbG9jYXRpb25JZDogdGhpcy5jdXJyZW50U3BhY2VJRCxcclxuICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICB6b25lSWQ6IHRoaXMuem9uZUlERmlsdGVyLFxyXG4gICAgICAgICAgICBmbG9vcklkOiB0aGlzLnNlbGVjdGVkRmxvb3I/LmlkLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHN0cmVhbU5hbWU6ICdzbWFydGVycGxhbktpbmVzaXMtYW5hbHl0aWNzJyxcclxuICAgICAgICAgIC8vIHBhcnRpdGlvbktleTogXCJcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgICdBV1NLaW5lc2lzJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVUaWNrZXQoaW5wdXQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlVGlja2V0KGlucHV0OiBJVXBkYXRlICYgUGFydGlhbDxUaWNrZXQ+KTogUHJvbWlzZTxUaWNrZXQ+IHtcclxuICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlVGlja2V0KGlucHV0KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRlbGV0ZVRpY2tldCh0aWNrZXQ6IFRpY2tldCk6IFByb21pc2U8VGlja2V0PiB7XHJcbiAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZVRpY2tldCh7aWQ6IHRpY2tldC5pZH0pO1xyXG5cclxuICAgIC8vIGRlbGV0ZSBQT0lcclxuICAgIGNvbnN0IHBvaSA9IGF3YWl0IHRoaXMucG9pU2VydmljZS5nZXRQb2lCeUVsZW1lbnRJZCh0aWNrZXQuaWQpO1xyXG4gICAgaWYgKHBvaSkge1xyXG4gICAgICB0aGlzLnBvaVNlcnZpY2UuZGVsZXRlUG9pKHBvaS5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY2xlYW4gcGFyZW50SURcclxuICAgIGlmICh0aWNrZXQuY2hpbGRyZW4uaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aWNrZXQuY2hpbGRyZW4uaXRlbXMubWFwKGFzeW5jIChjaGlsZFRpY2tldCkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlVGlja2V0KHtcclxuICAgICAgICAgICAgaWQ6IGNoaWxkVGlja2V0LmlkLFxyXG4gICAgICAgICAgICBwYXJlbnRJRDogbnVsbCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKCdDb3VsZCBub3QgdXBkYXRlIHRpY2tldCcsIGNoaWxkVGlja2V0LmlkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVFdmVudCh7XHJcbiAgICAgICAgICB0aXRsZTogJ1RpY2tldCBwYXJlbnQgc3VwcHJpbcOpJyxcclxuICAgICAgICAgIHRpY2tldElEOiBjaGlsZFRpY2tldC5pZCxcclxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgVGlja2V0IFxcXCIkdGlja2V0LnRpdGxlfVxcXCIgYSDDqXTDqSBzdXBwcmltw6lgLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIGRlbGV0ZSBldmVudHNcclxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICB0aWNrZXQuZXZlbnRzLml0ZW1zLm1hcChhc3luYyAoZXZlbnRfKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZUV2ZW50KHtpZDogZXZlbnRfLmlkfSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgLy8gZGVsZXRlIGFmZmVjdGF0aW9ubnNcclxuICAgIGlmICh0aWNrZXQuYXNzaWduZWVzLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRpY2tldC5hc3NpZ25lZXMuaXRlbXMpIHtcclxuICAgICAgICB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlQWZmZWN0YXRpb24oe2lkOiBlbGVtZW50LmlkfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGRlbGV0ZSBjb21tZW50c1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIHRpY2tldC5jb21tZW50cy5pdGVtcy5tYXAoYXN5bmMgKGNvbW1lbnQpID0+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlQ29tbWVudCh7aWQ6IGNvbW1lbnQuaWR9KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICBhd2FpdCB0aGlzLm9wZXJhdGlvblNlcnZpY2UuZGVsZXRlT3BlcmF0aW9uc0ZvclRpY2tldCh0aWNrZXQuaWQpO1xyXG4gICAgcmV0dXJuIGRlbGV0ZWQ7XHJcbiAgfVxyXG5cclxuICAvKiogQ3VzdG9tIHJlcXVlc3RzICovXHJcbiAgYXN5bmMgZ2V0VGlja2V0c0J5U3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxUaWNrZXRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fX1xyXG4gICAgICAuVGlja2V0c0J5U3BhY2Uoc3BhY2VJRClcclxuICAgICAgLnRoZW4oKHRpY2tldHMpID0+IHRpY2tldHMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlSWNvbkZvckFsbFRpY2tldHNJblNwYWNlKFxyXG4gICAgdGFnSWNvbjogc3RyaW5nLFxyXG4gICAgc3BhY2VJRDogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTx7IHRpY2tldHM6IFRpY2tldFtdOyBwb2lzOiBQT0lbXSB9PiB7XHJcbiAgICBjb25zdCB0aWNrZXRzID0gYXdhaXQgdGhpcy5nZXRUaWNrZXRzQnlTcGFjZShzcGFjZUlEKTtcclxuICAgIGNvbnN0IHBvaXMgPSBhd2FpdCB0aGlzLnVwZGF0ZUljb25Gb3JBbGxPYmplY3RzKHRpY2tldHMsIHRhZ0ljb24pO1xyXG4gICAgcmV0dXJuIHt0aWNrZXRzLCBwb2lzfTtcclxuICB9XHJcblxyXG4gIC8qKiBBcmNoaXZlIHJlbGF0ZWQgKi9cclxuICAvKiogUmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgYXJjaGl2ZWQgdGhpcyB0aWNrZXQgKi9cclxuICBpc0FyY2hpdmVkKHRpY2tldDogVGlja2V0KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGlja2V0LmFyY2hpdmVkRm9yTWlzc2lvbklEXHJcbiAgICAgID8gdGlja2V0LmFyY2hpdmVkRm9yTWlzc2lvbklELmluY2x1ZGVzKFxyXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24odGlja2V0LnNwYWNlSUQpLmlkXHJcbiAgICAgIClcclxuICAgICAgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldEFyY2hpdmVkKHRpY2tldDogVGlja2V0LCBhcmNoaXZlZDogYm9vbGVhbikge1xyXG4gICAgbGV0IGFyY2hpdmVkTGlzdCA9IHRpY2tldC5hcmNoaXZlZEZvck1pc3Npb25JRFxyXG4gICAgICA/IHRpY2tldC5hcmNoaXZlZEZvck1pc3Npb25JRFxyXG4gICAgICA6IFtdO1xyXG4gICAgY29uc3QgbWlzc2lvbklEID0gdGhpcy51c2VyU2VydmljZS5jdXJyZW50TWlzc2lvbih0aWNrZXQuc3BhY2VJRCkuaWQ7XHJcblxyXG4gICAgYXJjaGl2ZWRMaXN0ID0gYXJjaGl2ZWRMaXN0LmZpbHRlcigobSkgPT4gbSAhPT0gbWlzc2lvbklEKTtcclxuXHJcbiAgICBpZiAoYXJjaGl2ZWQpIHtcclxuICAgICAgYXJjaGl2ZWRMaXN0LnB1c2gobWlzc2lvbklEKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy51cGRhdGVUaWNrZXRXaXRoRXZlbnQoe1xyXG4gICAgICBpZDogdGlja2V0LmlkLFxyXG4gICAgICBhcmNoaXZlZEZvck1pc3Npb25JRDogYXJjaGl2ZWRMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuYXZpZ2F0ZVRvVGlja2V0SW4zRChcclxuICAgIHRpY2tldDogVGlja2V0LFxyXG4gICAgZm9yY2VTd2l0Y2hWaXNpdDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKSB7XHJcbiAgICBsZXQgdXJsID0gYHZpc2l0LyR7dGlja2V0LnNwYWNlSUR9YDtcclxuICAgIGlmIChmb3JjZVN3aXRjaFZpc2l0KSB7XHJcbiAgICAgIHVybCArPSBgL2RldGFpbC8ke3RpY2tldC5pZH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2FuR29Ub1RhZyA9IGF3YWl0IHRoaXMudmlld2VyU2VydmljZS5hY3Rpb25fbW92ZV90b190YWcoXHJcbiAgICAgIGAke3RpY2tldC5pZH1gXHJcbiAgICApO1xyXG4gICAgaWYgKGNhbkdvVG9UYWcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRNb2RlbDNkQW5kU3dlZXAodGlja2V0KTtcclxuICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQubW9kZWwzRCkge1xyXG4gICAgICBhbGVydCgnRXJyb3Igd2hpbGUgZ2V0dGluZyB2aXJ0dWFsIHZpc2l0IG1vZGVsJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghZm9yY2VTd2l0Y2hWaXNpdCkge1xyXG4gICAgICAvKiogU2kgb24gbmUgZm9yY2UgcGFzIGxhIHZpc2l0ZSwgb24gZGVtYW5kZSBzaSBvbiB2ZXV0IGV0cmUgc3dpdGNoICovXHJcbiAgICAgIG9wZW5Nb2RhbEZvclZpc2l0U3dpdGNoKFxyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLFxyXG4gICAgICAgIHJlc3VsdC5tb2RlbDNELFxyXG4gICAgICAgIHRpY2tldC5zcGFjZUlELFxyXG4gICAgICAgIHtzd2VlcFRvTW92ZTogcmVzdWx0LnN3ZWVwLCByb3RhdGlvbjogcmVzdWx0LnJvdGF0aW9ufVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLyoqIFNpIG9uIGZvcmNlIGxlIHN3aXRjaCBkZSBsYSB2aXNpdCAqL1xyXG4gICAgICB3aW5kb3cub3BlbihgJHt1cmx9P21vZGVsM0Q9JHtyZXN1bHQubW9kZWwzRH0mc3dlZXA9dHJ1ZWAsICdfYmxhbmsnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRTdWJzY3JpcHRpb25zKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzTXVzZXVtVXNlcikge1xyXG4gICAgICB0aGlzLm5hdlN1YnNjcmlwdGlvbiA9IHRoaXMuem9uZUNoYW5nZVNlcnZpY2Uuem9uZUNoYW5nZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHpvbmUpID0+IHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudFNwYWNlSUQ7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFNwYWNlSUQpIHtcclxuICAgICAgICAgICAgdGhpcy50aWNrZXRUYWdzLm5leHQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMudGlja2V0c1VwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBudWxsfSk7XHJcbiAgICAgICAgICAgIHRoaXMudGlja2V0VHlwZUZpbHRlciA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gbnVsbDtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoem9uZS5pZCAhPT0gdGhpcy56b25lSURGaWx0ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSB6b25lLmlkO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImdvaW5nIHRvIGluaXQgdGlja2V0cyBmcm9tIHpvbmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdFRpY2tldHMoKS5jYXRjaCgoZSkgPT4gY29uc29sZS5sb2coZS5tZXNzYWdlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZpbGV0clN1YnNjcmlwdGlvbiA9IHRoaXMuZmlsdGVyU2VydmljZS5zdWJzY3JpYmVUb0RhdGFGaWx0ZXJVcGRhdGUoXHJcbiAgICAgICAgKGRhdGVSYW5nZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXRlRmlsdGVyID0gZGF0ZVJhbmdlO1xyXG4gICAgICAgICAgdGhpcy5pbml0VGlja2V0cygpLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZGF0ZUZpbHRlciA9IHRoaXMuZmlsdGVyU2VydmljZS5jdXJyZW50RGF0ZUZpbHRlcjtcclxuICAgICAgdGhpcy51cGRhdGVEb25lLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQpIHtcclxuICAgICAgICAgIHRoaXMuaW5pdFRpY2tldHMoKS5jYXRjaCgoZSkgPT4gY29uc29sZS5sb2coZS5tZXNzYWdlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|