ng-miam 9.2.2 → 9.2.4
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/bundles/ng-miam.umd.js +20 -60
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +1 -1
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_models/basket.js +2 -9
- package/esm2015/lib/_services/baskets.service.js +2 -22
- package/esm2015/lib/_services/context.service.js +3 -4
- package/esm2015/lib/_services/items.service.js +2 -2
- package/esm2015/lib/_services/recipes.service.js +3 -3
- package/esm2015/lib/_types/builded/mealz-interface.js +1 -1
- package/esm2015/lib/_types/builded/mealz-internal-interface.js +1 -1
- package/esm2015/lib/_web-components/meals-planner/meals-planner.component.js +2 -3
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-pricing/recipe-pricing.component.js +6 -12
- package/esm2015/lib/environments/version.js +2 -2
- package/fesm2015/ng-miam.js +20 -54
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_models/basket.d.ts +0 -3
- package/lib/_models/basket.d.ts.map +1 -1
- package/lib/_services/baskets.service.d.ts +0 -2
- package/lib/_services/baskets.service.d.ts.map +1 -1
- package/lib/_services/context.service.d.ts.map +1 -1
- package/lib/_services/recipes.service.d.ts +1 -1
- package/lib/_services/recipes.service.d.ts.map +1 -1
- package/lib/_types/builded/mealz-interface.d.ts +0 -6
- package/lib/_types/builded/mealz-interface.d.ts.map +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts.map +1 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts +0 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts +0 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts.map +1 -1
- package/lib/environments/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -266,11 +266,11 @@ export class RecipesService extends Service {
|
|
|
266
266
|
return null;
|
|
267
267
|
}));
|
|
268
268
|
}
|
|
269
|
-
getPricing(recipeId, posId,
|
|
269
|
+
getPricing(recipeId, posId, serves = null) {
|
|
270
270
|
if (!recipeId) {
|
|
271
271
|
return of(null);
|
|
272
272
|
}
|
|
273
|
-
let url = MIAM_API_HOST + `recipes/${recipeId}/pricing?point_of_sale_id=${posId}
|
|
273
|
+
let url = MIAM_API_HOST + `recipes/${recipeId}/pricing?point_of_sale_id=${posId}`;
|
|
274
274
|
if (serves) {
|
|
275
275
|
url += `&serves=${serves}`;
|
|
276
276
|
}
|
|
@@ -440,4 +440,4 @@ RecipesService.ɵprov = i0.ɵɵdefineInjectable({ token: RecipesService, factory
|
|
|
440
440
|
providedIn: 'root'
|
|
441
441
|
}]
|
|
442
442
|
}], function () { return [{ type: i1.HttpClient }, { type: i2.AnalyticsService }, { type: i3.RecipeProviderService }, { type: i4.RecipeStatusService }, { type: i5.RecipeTypeService }, { type: i6.SuppliersService }, { type: i7.PointOfSalesService }, { type: i8.IngredientsService }, { type: i9.RecipeStepsService }, { type: i10.SponsorService }, { type: i11.PackageService }, { type: i12.TagsService }, { type: i13.RecipeLikesService }, { type: i14.SeoService }, { type: i15.PreferencesService }, { type: i16.StoreLocatorService }]; }, null); })();
|
|
443
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL19zZXJ2aWNlcy9yZWNpcGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBaUQsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBYyxFQUFFLEdBQVksTUFBTSxNQUFNLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBZSxNQUFNLEVBQU8sTUFBTSxZQUFZLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3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QUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyw2QkFBNkI7UUFDbkMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hJLENBQUM7OzRFQXBqQlUsY0FBYztzREFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uLCBEb2N1bWVudFJlc291cmNlLCBJUGFyYW1zLCBTZXJ2aWNlIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHNraXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQb2ludE9mU2FsZSwgUmVjaXBlLCBUYWcgfSBmcm9tICcuLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVByaWNpbmcgfSBmcm9tICcuLi9fbW9kZWxzL3JlY2lwZS1wcmljaW5nJztcbmltcG9ydCB7IFJlY2lwZUZpbHRlciwgUmVjaXBlRmlsdGVycyB9IGZyb20gJy4uL190eXBlcy9yZWNpcGUtZmlsdGVycyc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBJbmdyZWRpZW50c1NlcnZpY2UgfSBmcm9tICcuL2luZ3JlZGllbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFja2FnZVNlcnZpY2UgfSBmcm9tICcuL3BhY2thZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQb2ludE9mU2FsZXNTZXJ2aWNlIH0gZnJvbSAnLi9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBSZWNpcGVMaWtlc1NlcnZpY2UgfSBmcm9tICcuL3JlY2lwZS1saWtlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vcmVjaXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVjaXBlU3RhdHVzU2VydmljZSB9IGZyb20gJy4vcmVjaXBlLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZVN0ZXBzU2VydmljZSB9IGZyb20gJy4vcmVjaXBlLXN0ZXBzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVjaXBlVHlwZVNlcnZpY2UgfSBmcm9tICcuL3JlY2lwZS10eXBlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VvU2VydmljZSB9IGZyb20gJy4vc2VvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3BvbnNvclNlcnZpY2UgfSBmcm9tICcuL3Nwb25zb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZUxvY2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS1sb2NhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VwcGxpZXJzU2VydmljZSB9IGZyb20gJy4vc3VwcGxpZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFnc1NlcnZpY2UgfSBmcm9tICcuL3RhZ3Muc2VydmljZSc7XG5cbmNvbnN0IE1JQU1fQVBJX0hPU1QgPSBgJHtlbnZpcm9ubWVudC5taWFtQVBJfS9hcGkvdjEvYDtcblxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGVEaXNwbGF5IHtcbiAgcHJldmlld0FsbG93ZWQ6IGJvb2xlYW47XG4gIHJlY2lwZTogUmVjaXBlO1xuICBwcmV2aWV3TW9kZTogYm9vbGVhbjtcbiAgd2FzQWRkZWQ6IGJvb2xlYW47XG4gIGZvcmNlPzogYm9vbGVhbjtcbiAgZGlzcGxheUd1ZXN0cz86IGJvb2xlYW47XG4gIGhlbHBCdXR0b25BbGxvd2VkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVjaXBlRGlzcGxheVBhcmFtcyB7XG4gIHByZXZpZXdBbGxvd2VkPzogYm9vbGVhbjtcbiAgZ3Vlc3RzPzogbnVtYmVyO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIHdhc0FkZGVkPzogYm9vbGVhbjtcbiAgZGlzcGxheUd1ZXN0cz86IGJvb2xlYW47XG4gIGhlbHBCdXR0b25BbGxvd2VkPzogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlc1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPFJlY2lwZT4ge1xuXG4gIHJlc291cmNlID0gUmVjaXBlO1xuICB0eXBlID0gJ3JlY2lwZXMnO1xuICBkaXNwbGF5ZWRSZWNpcGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNpcGVEaXNwbGF5PihudWxsKTtcbiAgZGlzcGxheUhlbHBlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzcGxheWVkUmVjaXBlQ2hhbmdlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KG51bGwpO1xuICByZWNpcGVEZXRhaWxzVGFiSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KG51bGwpO1xuICBoaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMgPSB7IGRpc3BsYXk6IHRydWUsIGFkZFRvQmFza2V0OiB0cnVlIH07XG4gIHJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucyA9IHsgZGlzcGxheTogdHJ1ZSwgYWRkVG9CYXNrZXQ6IHRydWUgfTtcbiAgcmVsb2FkUmVjaXBlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlmZmljdWx0eUxldmVsczogeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSA9IFtcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogJ0ZhY2lsZScgfSxcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogJ01veWVuJyB9LFxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiAnRGlmZmljaWxlJyB9XG4gIF07XG4gIGNvbmZpcm1hdGlvblRvYXN0ZXI6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSByYW5kb21TZWVkOiBudW1iZXI7XG4gIHByaXZhdGUgcmFuZG9tUmVjaXBlQ291bnQgPSAxO1xuICBwcml2YXRlIHJlY2lwZXM6IFJlY2lwZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHByb3ZpZGVyU2VydmljZTogUmVjaXBlUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RhdHVzU2VydmljZTogUmVjaXBlU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHR5cGVTZXJ2aWNlOiBSZWNpcGVUeXBlU2VydmljZSxcbiAgICBwcml2YXRlIHN1cHBsaWVyc1NlcnZpY2U6IFN1cHBsaWVyc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5ncmVkaWVudHNTZXJ2aWNlOiBJbmdyZWRpZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVTdGVwc1NlcnZpY2U6IFJlY2lwZVN0ZXBzU2VydmljZSxcbiAgICBwcml2YXRlIHNwb25zb3JTZXJ2aWNlOiBTcG9uc29yU2VydmljZSxcbiAgICBwcml2YXRlIHBhY2thZ2VTZXJ2aWNlOiBQYWNrYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHRhZ3NTZXJ2aWNlOiBUYWdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZUxpa2VzU2VydmljZTogUmVjaXBlTGlrZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VvU2VydmljZTogU2VvU2VydmljZSxcbiAgICBwcml2YXRlIHByZWZlcmVuY2VzU2VydmljZTogUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVMb2NhdG9yU2VydmljZTogU3RvcmVMb2NhdG9yU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVnaXN0ZXIoKTtcbiAgICB0aGlzLmFwcGVuZERpc3BsYXllZFJlY2lwZVRvVXJsUXVlcnkoKTtcbiAgICB0aGlzLmluaXRSYW5kb21TZWVkKCk7XG4gIH1cblxuICBkaXNwbGF5UmVjaXBlSW5VcmwoKTogdm9pZCB7XG4gICAgY29uc3QgcmVjaXBlSWQgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXMuZ2V0KCdkaXNwbGF5UmVjaXBlJyk7XG4gICAgLy8gSWYgdGhlcmUgaXMgYSByZWNpcGUgaW4gVXJsLCBkaXNwbGF5IGl0IG9uIHN0YXJ0dXBcbiAgICBpZiAocmVjaXBlSWQpIHtcbiAgICAgIHRoaXMuZGlzcGxheShyZWNpcGVJZCwgeyBwcmV2aWV3QWxsb3dlZDogdHJ1ZSwgcHJldmlld01vZGU6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRSZWNpcGVzKHJlY2lwZXNJbmZvczogeyBpZDogc3RyaW5nOyBndWVzdHM/OiBzdHJpbmcgfVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAocmVjaXBlc0luZm9zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ocmVjaXBlc0luZm9zLm1hcChpbmZvID0+IHRoaXMuZ2V0T3JGZXRjaChpbmZvLmlkKS5waXBlKFxuICAgICAgdGFwKHIgPT4ge1xuICAgICAgICBpZiAoaW5mby5ndWVzdHMpIHtcbiAgICAgICAgICByLm1vZGlmaWVkR3Vlc3RzID0gK2luZm8uZ3Vlc3RzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVjaXBlcy5wdXNoKHIpO1xuICAgICAgfSlcbiAgICApKSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBtYW5kYXRvcnkgZGF0YSAoZ3Vlc3QsIHBvcyBpZCkgY29tcGxldGlvbiB0byB0aGUgZ2l2ZW4gZmlsdGVycy5cbiAgICovXG4gIGFkZE1hbmRhdG9yeUNvbXBsZXRpb25Ub0ZpbHRlcihmaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzKTogT2JzZXJ2YWJsZTxSZWNpcGVGaWx0ZXJzPiB7XG4gICAgY29uc3QgcmVxdWVzdEZpbHRlcnMgPSBmaWx0ZXJzLmNvcHkoKTtcbiAgICAvLyBvbmx5IHNldCBwcmltYXJ5X2NvbXBsZXRpb25fcGVyYyBpZiBub3Qgc2VhcmNoaW5nIGZhdm9yaXRlIHJlY2lwZXNcbiAgICBpZiAocmVxdWVzdEZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMubGlrZWQpIHtcbiAgICAgIHJldHVybiBvZihyZXF1ZXN0RmlsdGVycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucG9zU2VydmljZS5wb3NXYXNJbml0aWFsaXplZCgpLnBpcGUoXG4gICAgICBza2lwV2hpbGUod2FzSW5pdGlhbGl6ZWQgPT4gIXdhc0luaXRpYWxpemVkKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnBvc1NlcnZpY2UucG9zJCksXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWFwKChwb3M6IFBvaW50T2ZTYWxlKSA9PiB7XG4gICAgICAgIGlmIChwb3M/LmlkKSB7XG4gICAgICAgICAgLy8gbnVtYmVyIG9mIGd1ZXN0cyBhbmQgcG9pbnQgb2Ygc2FsZSBpZCBhcmUgbWFuZGF0b3J5IGluIG9yZGVyIHRvIHVzZSBwcmltYXJ5X2NvbXBsZXRpb25fcGVyYyBmaWx0ZXJcbiAgICAgICAgICByZXF1ZXN0RmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycyA9IHtcbiAgICAgICAgICAgIC4uLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMsXG4gICAgICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICAgIGd1ZXN0czogJzQnLFxuICAgICAgICAgICAgICBwb2ludF9vZl9zYWxlX2lkOiBwb3MuaWQsXG4gICAgICAgICAgICAgIHByaW1hcnlfY29tcGxldGlvbl9wZXJjOiAnMTAwLDEwMCcsXG4gICAgICAgICAgICAgIGZvcmNlZF9jb21wbGV0aW9uX3BlcmM6ICcxMDAsMTAwJyxcbiAgICAgICAgICAgICAgLi4uZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVyc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcXVlc3RGaWx0ZXJzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cblxuICAvLyBSZXR1cm5zIGxpc3Qgb2YgZmlsdGVyZWQgcmVjaXBlcy5cbiAgLy8gRmlsdGVycyBhbmQgcGFnZSBwYXJhbWV0ZXJzIGFyZSBtYW5kYXRvcnkuXG4gIC8vIE51bWJlciBvZiBndWVzdHMgYW5kIHJhbmRvbWl6YXRpb24gYXJlIG9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgZmlsdGVyKFxuICAgIGZpbHRlcnM6IFJlY2lwZUZpbHRlcnMsXG4gICAgcGFnZTogeyBudW1iZXI6IG51bWJlcjsgc2l6ZTogbnVtYmVyIH0sXG4gICAgaW5jbHVkZXM6IHN0cmluZ1tdID0gW10sXG4gICAgZmllbGRzID0ge30sXG4gICAgZ3Vlc3RzOiBudW1iZXIgPSBudWxsLFxuICAgIHJhbmRvbTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHNvcnQgPSAnJ1xuICApOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgbGV0IHJlY2lwZXM6IFJlY2lwZVtdO1xuICAgIGNvbnN0IGxpa2VkRmlsdGVyID0gZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5saWtlZCA/IHsgbGlrZWQ6ICd0cnVlJyB9IDogbnVsbDtcbiAgICBjb25zdCByZW1vdGVmaWx0ZXIgPSBsaWtlZEZpbHRlciB8fCB0aGlzLnByZWZlcmVuY2VzU2VydmljZS5hZGRQcmVmZXJlbmNlc1RvUmVtb3RlRmlsdGVycyh0aGlzLmJ1aWxkUmVtb3RlRmlsdGVycyhmaWx0ZXJzLCBndWVzdHMpKTtcblxuICAgIGlmIChyYW5kb20pIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVtb3RlZmlsdGVyLCB7IHJhbmRvbTogdGhpcy5yYW5kb21TZWVkIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hbGwoeyBwYWdlLCByZW1vdGVmaWx0ZXIsIGluY2x1ZGU6IGluY2x1ZGVzLCBzb3J0OiBbc29ydF0sIGZpZWxkcyB9KS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQuaXNfbG9hZGluZyksXG4gICAgICBzd2l0Y2hNYXAoKHJlc3VsdDogRG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZT4pID0+IHtcbiAgICAgICAgcmVjaXBlcyA9IHJlc3VsdC5kYXRhO1xuICAgICAgICBpZiAoZ3Vlc3RzICYmIGd1ZXN0cyA+IDApIHtcbiAgICAgICAgICByZWNpcGVzLmZvckVhY2gociA9PiByLm1vZGlmaWVkR3Vlc3RzID0gZ3Vlc3RzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZWNpcGVMaWtlc1NlcnZpY2UuYWRkTGlrZXNUb1JlY2lwZXMocmVjaXBlcyk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoKSA9PiByZWNpcGVzKVxuICAgICk7XG4gIH1cblxuICBsb2FkUmVjaXBlc0Zyb21QYWNrYWdlSWQocGFja2FnZUlkOiBzdHJpbmcsIHBhZ2U6IG51bWJlciwgc2l6ZTogbnVtYmVyLCBndWVzdHM6IG51bWJlcik6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICBjb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJ107XG4gICAgY29uc3QgcmVjaXBlU3BhcnNlRmllbGRzID0ge1xuICAgICAgcmVjaXBlczogWyd0aXRsZScsXG4gICAgICAgICdudW1iZXItb2YtZ3Vlc3RzJyxcbiAgICAgICAgJ21lZGlhLXVybCcsXG4gICAgICAgICd2aWRlby1pZCcsXG4gICAgICAgICdmaWxpZ3JhbmUtbG9nby11cmwnLFxuICAgICAgICAnZGlmZmljdWx0eScsXG4gICAgICAgICdwcmVwYXJhdGlvbi10aW1lJyxcbiAgICAgICAgJ2Nvb2tpbmctdGltZScsXG4gICAgICAgICdyZXN0aW5nLXRpbWUnLCAuLi5yZWNpcGVJbmNsdWRlc10sXG4gICAgICBzcG9uc29yczogWydsb2dvLXVybCddLFxuICAgICAgWydyZWNpcGUtcHJvdmlkZXInXTogWyduYW1lJ11cbiAgICB9O1xuICAgIGNvbnN0IHBhY2thZ2VGaWx0ZXIgPSBuZXcgUmVjaXBlRmlsdGVycyh7XG4gICAgICBhZGRpdGlvbmFsRmlsdGVyczoge1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICBwYWNrYWdlczogcGFja2FnZUlkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmFkZE1hbmRhdG9yeUNvbXBsZXRpb25Ub0ZpbHRlcihwYWNrYWdlRmlsdGVyKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJlcXVlc3RGaWx0ZXJzID0+IHRoaXMuZmlsdGVyKFxuICAgICAgICByZXF1ZXN0RmlsdGVycyxcbiAgICAgICAgeyBzaXplLCBudW1iZXI6IHBhZ2UgfSxcbiAgICAgICAgcmVjaXBlSW5jbHVkZXMsXG4gICAgICAgIHJlY2lwZVNwYXJzZUZpZWxkcyxcbiAgICAgICAgZ3Vlc3RzLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgJ3Bvc2l0aW9uJ1xuICAgICAgKSlcbiAgICApO1xuICB9XG5cbiAgLy8gRmV0Y2hlcyByZWNpcGVzIGNvcnJlc3BvbmRpbmcgdG8gZmlsdGVycywgYW5kIHJldHVybiB0b3RhbCByZWNpcGVzIGNvdW50XG4gIGZpbHRlckNvdW50KGZpbHRlcnM6IFJlY2lwZUZpbHRlcnMsIGd1ZXN0czogbnVtYmVyID0gbnVsbCwgZXhjbHVkZWRSZWNpcGVzSWRzOiBzdHJpbmdbXSA9IFtdLCBmcm9tUHJlZmVyZW5jZSA9IGZhbHNlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBjb25zdCBmID0gdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2UuYWRkUHJlZmVyZW5jZXNUb1JlbW90ZUZpbHRlcnModGhpcy5idWlsZFJlbW90ZUZpbHRlcnMoZmlsdGVycywgZ3Vlc3RzKSwgZnJvbVByZWZlcmVuY2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuYWxsKHsgcmVtb3RlZmlsdGVyOiBmLCBwYWdlOiB7IG51bWJlcjogMSwgc2l6ZTogMSB9LCBmaWVsZHM6IHsgcmVjaXBlczogWydpZCddIH0gfSkucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgICAgbWFwKChyZXN1bHQ6IERvY3VtZW50Q29sbGVjdGlvbjxSZWNpcGU+KSA9PiB7XG4gICAgICAgIC8vIEFwcGFyZW50bHkgdG90YWxfcmVzb3VyY2UgPSAxIGV2ZW4gaWYgbm8gcmVzdWx0IHdhcyBmb3VuZCBzbyB3ZSBoYXZlIHRvIGNoZWNrXG4gICAgICAgIGxldCByZWNpcGVzTnVtYmVyID0gcmVzdWx0LmRhdGEubGVuZ3RoID8gcmVzdWx0LnBhZ2U/LnRvdGFsX3Jlc291cmNlcyA6IDA7XG4gICAgICAgIHJlY2lwZXNOdW1iZXIgLT0gcmVzdWx0LmRhdGEuZmlsdGVyKHIgPT4gZXhjbHVkZWRSZWNpcGVzSWRzLmluY2x1ZGVzKHIuaWQpKS5sZW5ndGg7XG4gICAgICAgIHJldHVybiByZWNpcGVzTnVtYmVyO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJlbW90ZUZpbHRlcnMoZmlsdGVyczogUmVjaXBlRmlsdGVycywgZ3Vlc3RzOiBudW1iZXIgPSBudWxsKToge1xuICAgIHNlYXJjaD86IHN0cmluZztcbiAgICAndG90YWwtdGltZSc/OiBzdHJpbmc7XG4gICAgcHJpY2U/OiBzdHJpbmc7XG4gICAgZGlmZmljdWx0eT86IHN0cmluZztcbiAgICBwb2ludF9vZl9zYWxlX2lkPzogc3RyaW5nO1xuICAgIGd1ZXN0cz86IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3QgZGlmZmljdWx0eSA9IHRoaXMuYnVpbGRSZW1vdGVGaWx0ZXIoZmlsdGVycy5kaWZmaWN1bHR5LCAnLScpO1xuICAgIGNvbnN0IGNvc3QgPSB0aGlzLmJ1aWxkUmVtb3RlRmlsdGVyKGZpbHRlcnMuY29zdCwgJy0nKT8uc3BsaXQoJy0nKTtcbiAgICBjb25zdCB0b3RhbFRpbWUgPSB0aGlzLmJ1aWxkUmVtb3RlRmlsdGVyKGZpbHRlcnMudGltZSwgJywnKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi4oZGlmZmljdWx0eT8ubGVuZ3RoID4gMCkgPyB7IGRpZmZpY3VsdHk6IGRpZmZpY3VsdHkgKyAnLGVxJyB9IDoge30sIC8vIGV4OiBmaWx0ZXJbZGlmZmljdWx0eV09MS0yLTMsZXEgPT4gYWxsIGNoZWNrZWRcbiAgICAgIC4uLihjb3N0Py5sZW5ndGggPT09IDIpID8geyBjb21wdXRlZF9jb3N0OiBjb3N0WzBdICsgJyxndCwnICsgY29zdFsxXSArICcsbHQnIH0gOiB7fSwgLy8gZXg6IGZpbHRlcltjb3N0XT01LGd0LDEwLGx0ID0+IDUgPCBjb3N0IDwgMTBcbiAgICAgIC4uLih0b3RhbFRpbWU/Lmxlbmd0aCA+IDApID8geyAndG90YWwtdGltZSc6IHRvdGFsVGltZSB9IDoge30sXG4gICAgICAuLi4oZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycykgPyBmaWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLmZpbHRlcnMgOiB7fSxcbiAgICAgIC4uLihmaWx0ZXJzLnNlYXJjaCkgPyB7IHNlYXJjaDogZmlsdGVycy5zZWFyY2ggfSA6IHt9LFxuICAgICAgLi4uKGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMucHJpY2UpID8geyBwb2ludF9vZl9zYWxlX2lkOiB0aGlzLnBvc1NlcnZpY2UucG9zJC52YWx1ZS5pZCB9IDoge30sXG4gICAgICAuLi4oZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wcmljZSAmJiBndWVzdHMgIT09IG51bGwpID8geyBndWVzdHM6IGd1ZXN0cy50b1N0cmluZygpIH0gOiB7fVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZERpc3BsYXllZFJlY2lwZVRvVXJsUXVlcnkoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRSZWNpcGUkLnBpcGUoc2tpcCgxKSkuc3Vic2NyaWJlKChyZWNpcGVEaXNwbGF5OiBSZWNpcGVEaXNwbGF5KSA9PiB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMucmVtb3ZlRGlzcGxheVJlY2lwZUZyb21VcmxRdWVyeSgpKTtcbiAgICAgIGlmIChyZWNpcGVEaXNwbGF5Py5yZWNpcGUpIHtcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Rpc3BsYXlSZWNpcGUnLCByZWNpcGVEaXNwbGF5LnJlY2lwZS5pZCk7XG4gICAgICB9XG4gICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCB1cmwudG9TdHJpbmcoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZURpc3BsYXlSZWNpcGVGcm9tVXJsUXVlcnkoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICBjb25zdCBmaWx0ZXJlZFNlYXJjaCA9IHVybC5zcGxpdCgnPycpWzFdO1xuICAgIGlmIChmaWx0ZXJlZFNlYXJjaCkge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhmaWx0ZXJlZFNlYXJjaCk7XG4gICAgICBwYXJhbXMuZGVsZXRlKCdkaXNwbGF5UmVjaXBlJyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFF1ZXJ5U3RyaW5nID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgICBpZiAoZmlsdGVyZWRRdWVyeVN0cmluZykge1xuICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UoZmlsdGVyZWRTZWFyY2gsIGZpbHRlcmVkUXVlcnlTdHJpbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVybC5zcGxpdCgnPycpWzBdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgLy8gUmVhZHMgdGhlIHZhbHVlcyBvZiBhIGZpZWxkIGFuZCBjb252ZXJ0cyBpdCB0byB0aGUgc3RyaW5nIHRvIHBhc3MgaW4gdGhlIHJlbW90ZUZpbHRlcnNcbiAgLy8gZXg6IGJ1aWxkUmVtb3RlRmlsdGVyKHtcbiAgLy8gICB7bmFtZTogJzEnLCB2YWx1ZTogdHJ1ZSwgdGV4dDogJ0ZhY2lsZSd9LFxuICAvLyAgIHtuYW1lOiAnMicsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ01veWVuJ30sXG4gIC8vICAge25hbWU6ICczJywgdmFsdWU6IHRydWUsIHRleHQ6ICdEaWZmaWNpbGUnfVxuICAvLyB9LCAnLScpICA9PT4gJzEtMydcbiAgcHJpdmF0ZSBidWlsZFJlbW90ZUZpbHRlcihmaWx0ZXI6IFJlY2lwZUZpbHRlcltdLCBzZXBhcmF0b3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgZm9yIChjb25zdCBmIG9mIGZpbHRlcikge1xuICAgICAgaWYgKGYudmFsdWUpIHtcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ICs9IHNlcGFyYXRvcjtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gZi5uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gRmV0Y2ggb25lIHJhbmRvbSByZWNpcGVcbiAgZ2V0UmFuZG9tKGluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdLCBmaWVsZHMgPSB7fSk6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICB0aGlzLnJhbmRvbVJlY2lwZUNvdW50Kys7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKFxuICAgICAgeyByZXZpZXdlZDogdHJ1ZSwgZXhjbHVkZV9ub19waWN0dXJlOiB0cnVlIH0gYXMgUmVjaXBlRmlsdGVycyxcbiAgICAgIHsgbnVtYmVyOiB0aGlzLnJhbmRvbVJlY2lwZUNvdW50LCBzaXplOiAxIH0sXG4gICAgICBpbmNsdWRlcyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIG51bGwsXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlYm91bmNlIHRvIGxldCBlbm91Z2ggdGltZSBmb3IgdGhlIHBvcyB0byBiZSBkZWZpbmVkXG4gIGdldFN1Z2dlc3Rpb24oXG4gICAgY29udGV4dDogeyBpZDogc3RyaW5nOyBoYXNIaWdoV2VpZ2h0PzogYm9vbGVhbiB9W10sXG4gICAgaW5jbHVkZXM6IHN0cmluZ1tdID0gW10sXG4gICAgZmllbGRzID0ge31cbiAgKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4ge1xuICAgIGxldCBzdWdnZXN0aW9uRmllbGRzID0gJyc7XG4gICAgT2JqZWN0LmtleXMoZmllbGRzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBzdWdnZXN0aW9uRmllbGRzICs9IGAmZmllbGRzWyR7a2V5fV09JHsoZmllbGRzW2tleV0gYXMgc3RyaW5nW10pLmpvaW4oJywnKX1gO1xuICAgIH0pO1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZS5zdXBwbGllciQsXG4gICAgICB0aGlzLnBvc1NlcnZpY2UucG9zV2FzSW5pdGlhbGl6ZWQoKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUod2FzSW5pdGlhbGl6ZWQgPT4gIXdhc0luaXRpYWxpemVkKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMucG9zU2VydmljZS5wb3MkKVxuICAgICAgKVxuICAgIF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0c1swXSksXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIHN3aXRjaE1hcChyZXN1bHRzID0+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICBjb25zdCBib2R5ID0gdGhpcy5idWlsZFN1Z2dlc3Rpb25Cb2R5KGNvbnRleHQpO1xuICAgICAgICBsZXQgc3VwcGxpZXJGaWx0ZXIgPSBgc3VwcGxpZXJfaWQ9JHtyZXN1bHRzWzBdLmlkfWA7XG4gICAgICAgIGlmIChyZXN1bHRzWzFdKSB7XG4gICAgICAgICAgc3VwcGxpZXJGaWx0ZXIgPSBgc3VwcGxpZXJfaWQ9JHtyZXN1bHRzWzBdLmlkfSZwb3NfaWQ9JHtyZXN1bHRzWzFdLmlkfWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXJsID0gTUlBTV9BUElfSE9TVCArIGByZWNpcGVzL3N1Z2dlc3Rpb25zPyR7c3VwcGxpZXJGaWx0ZXJ9JmFsbG93LWVtcHR5PXRydWUkeyhpbmNsdWRlcy5sZW5ndGggPiAwKSA/ICgnJmluY2x1ZGU9JyArIGluY2x1ZGVzLmpvaW4oJywnKSkgOiAnJ30ke3N1Z2dlc3Rpb25GaWVsZHN9JHt0aGlzLmJ1aWxkZmlsdGVyVXJsRnJvbVByZWZlcmVuY2VzKCl9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgYm9keSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocmV0dXJuZWRSZWNpcGVzOiBEb2N1bWVudENvbGxlY3Rpb248UmVjaXBlPikgPT4ge1xuICAgICAgICBjb25zdCByZWNpcGVzID0gdGhpcy5uZXdDb2xsZWN0aW9uKCk7XG4gICAgICAgIHJlY2lwZXMuZmlsbChyZXR1cm5lZFJlY2lwZXMpO1xuICAgICAgICByZXR1cm4gcmVjaXBlcy5kYXRhO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2VhcmNoUmVjaXBlQnlFeHRJZChyZWNpcGVFeHRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZWNpcGU+IHtcbiAgICBjb25zdCB1cmwgPSBgJHtNSUFNX0FQSV9IT1NUfXJlY2lwZXMvZXh0ZXJuYWwvJHtyZWNpcGVFeHRJZH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IERvY3VtZW50UmVzb3VyY2U8UmVjaXBlPikgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YT8uYXR0cmlidXRlc1snZXh0LWlkJ10gPT09IHJlY2lwZUV4dElkKSB7XG4gICAgICAgICAgY29uc3QgcmVjaXBlID0gdGhpcy5uZXcoKTtcbiAgICAgICAgICByZWNpcGUuZmlsbChyZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuIHJlY2lwZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFByaWNpbmcocmVjaXBlSWQ6IHN0cmluZywgcG9zSWQ6IHN0cmluZywgcHJpY2Vib29rS2V5OiBzdHJpbmcsIHNlcnZlczogbnVtYmVyID0gbnVsbCk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZz4ge1xuICAgIGlmICghcmVjaXBlSWQpIHtcbiAgICAgIHJldHVybiAob2YobnVsbCkgYXMgT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPik7XG4gICAgfVxuICAgIGxldCB1cmwgPSBNSUFNX0FQSV9IT1NUICsgYHJlY2lwZXMvJHtyZWNpcGVJZH0vcHJpY2luZz9wb2ludF9vZl9zYWxlX2lkPSR7cG9zSWR9JnByaWNlYm9va19rZXk9JHtwcmljZWJvb2tLZXl9YDtcbiAgICBpZiAoc2VydmVzKSB7XG4gICAgICB1cmwgKz0gYCZzZXJ2ZXM9JHtzZXJ2ZXN9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBuZXcgUmVjaXBlUHJpY2luZyhyZXN1bHQpKVxuICAgICk7XG4gIH1cblxuICBnZW5lcmF0ZUZyb21QaWN0dXJlKGltYWdlQmFzZTY0OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IE1JQU1fQVBJX0hPU1QgKyAncmVjaXBlcy9nZW5lcmF0ZV9mcm9tX3BpY3R1cmUnO1xuICAgIGNvbnN0IGJvZHkgPSB7IGJhc2U2NF9pbWFnZTogaW1hZ2VCYXNlNjQgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBib2R5KTtcbiAgfVxuXG4gIC8vIE9wZW4gbW9kYWwgc2hvd2luZyByZWNpcGUgZGV0YWlsc1xuICBkaXNwbGF5KFxuICAgIHJlY2lwZUlkOiBzdHJpbmcsXG4gICAge1xuICAgICAgcHJldmlld0FsbG93ZWQgPSB0cnVlLFxuICAgICAgZ3Vlc3RzID0gbnVsbCxcbiAgICAgIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gICAgICBkaXNwbGF5R3Vlc3RzID0gdHJ1ZSxcbiAgICAgIGhlbHBCdXR0b25BbGxvd2VkID0gdHJ1ZVxuICAgIH06IElSZWNpcGVEaXNwbGF5UGFyYW1zXG4gICk6IHZvaWQge1xuICAgIGlmICghcmVjaXBlSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdldChyZWNpcGVJZCwgeyBpbmNsdWRlOiBbJ2luZ3JlZGllbnRzJywgJ3JlY2lwZS1zdGVwcycsICdyZWNpcGUtdHlwZScsICdzcG9uc29ycycsICd0YWdzJywgJ3JlY2lwZS1wcm92aWRlciddIH0pXG4gICAgICAucGlwZShza2lwV2hpbGUocmVjaXBlID0+IHJlY2lwZS5pc19sb2FkaW5nKSlcbiAgICAgIC5zdWJzY3JpYmUocmVjaXBlID0+IHtcbiAgICAgICAgdGhpcy5kaXNwbGF5T2JqZWN0KHJlY2lwZSwgeyBwcmV2aWV3QWxsb3dlZCwgZ3Vlc3RzLCBwcmV2aWV3TW9kZSwgZGlzcGxheUd1ZXN0cywgaGVscEJ1dHRvbkFsbG93ZWQgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRpc3BsYXlPYmplY3QoXG4gICAgcmVjaXBlOiBSZWNpcGUsXG4gICAge1xuICAgICAgcHJldmlld0FsbG93ZWQgPSB0cnVlLFxuICAgICAgZ3Vlc3RzID0gbnVsbCxcbiAgICAgIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gICAgICB3YXNBZGRlZCA9IGZhbHNlLFxuICAgICAgZGlzcGxheUd1ZXN0cyA9IHRydWUsXG4gICAgICBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWVcbiAgICB9OiBJUmVjaXBlRGlzcGxheVBhcmFtc1xuICApOiB2b2lkIHtcbiAgICBpZiAoIXJlY2lwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IGd1ZXN0cyB8fCArcmVjaXBlLmd1ZXN0cztcbiAgICB0aGlzLmRpc3BsYXllZFJlY2lwZSQubmV4dCh7IHByZXZpZXdBbGxvd2VkLCByZWNpcGUsIHByZXZpZXdNb2RlLCB3YXNBZGRlZCwgZGlzcGxheUd1ZXN0cywgaGVscEJ1dHRvbkFsbG93ZWQgfSk7XG4gIH1cblxuICBvcGVuQmFza2V0KGFuYWx5dGljc1BhdGg6IHN0cmluZyA9ICcnKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRSZWNpcGUkLm5leHQoeyBwcmV2aWV3QWxsb3dlZDogdHJ1ZSwgcmVjaXBlOiBudWxsLCBwcmV2aWV3TW9kZTogdHJ1ZSwgd2FzQWRkZWQ6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoJ2Jhc2tldC5kaXNwbGF5JywgYW5hbHl0aWNzUGF0aCwge30pO1xuICB9XG5cbiAgb3BlblJlY2lwZURldGFpbHMocmVjaXBlSWQ6IHN0cmluZywgZ3Vlc3RzOiBudW1iZXIsIGluaXRpYWxUYWJJbmRleDogbnVtYmVyLCBwYXRoOiBzdHJpbmcgPSAnJywgY2F0ZWdvcnlJZDogc3RyaW5nID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheShyZWNpcGVJZCwgeyBwcmV2aWV3QWxsb3dlZDogdHJ1ZSwgcHJldmlld01vZGU6IGZhbHNlLCBndWVzdHMgfSk7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzVGFiSW5kZXgkLm5leHQoaW5pdGlhbFRhYkluZGV4KTtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KCdyZWNpcGUuZGlzcGxheScsIHBhdGgsIHsgcmVjaXBlX2lkOiByZWNpcGVJZCwgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQgfSk7XG4gIH1cblxuICBvcGVuU3RvcmVMb2NhdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5jbG9zZU1vZGFsT25TZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLm9wZW5TdG9yZUxvY2F0b3IodHJ1ZSk7XG4gICAgdGhpcy5kaXNwbGF5ZWRSZWNpcGUkLm5leHQoe1xuICAgICAgcHJldmlld0FsbG93ZWQ6IGZhbHNlLFxuICAgICAgcmVjaXBlOiBudWxsLFxuICAgICAgcHJldmlld01vZGU6IHRydWUsXG4gICAgICB3YXNBZGRlZDogZmFsc2UsXG4gICAgICBmb3JjZTogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlSGVscGVyKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICAgIHRoaXMuZGlzcGxheUhlbHBlciQubmV4dCghdGhpcy5kaXNwbGF5SGVscGVyJC52YWx1ZSk7XG4gIH1cblxuICBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkUmVjaXBlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuaGlkZGVuLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBhZGRUYWdUb1JlY2lwZShyZWNpcGU6IFJlY2lwZSwgdGFnOiBUYWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChNSUFNX0FQSV9IT1NUICsgYHJlY2lwZXMvJHtyZWNpcGUuaWR9L3RhZ3MvJHt0YWcuaWR9YCwge30pO1xuICB9XG5cbiAgc2V0UmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zKGRpc3BsYXkgPSB0cnVlLCBhZGRUb0Jhc2tldCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucyA9IHsgZGlzcGxheSwgYWRkVG9CYXNrZXQgfTtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMgPSB7IGRpc3BsYXksIGFkZFRvQmFza2V0IH07XG4gICAgdGhpcy5yZWxvYWRBbGxSZWNpcGVzKCk7XG4gIH1cblxuICBzZXRTdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zKGRpc3BsYXkgPSB0cnVlLCBhZGRUb0Jhc2tldCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMgPSB7IGRpc3BsYXksIGFkZFRvQmFza2V0IH07XG4gICAgdGhpcy5yZWxvYWRBbGxSZWNpcGVzKCk7XG4gIH1cblxuICBwbGFuKFxuICAgIGJ1ZGdldDogbnVtYmVyLFxuICAgIGd1ZXN0czogbnVtYmVyLFxuICAgIHJlY2lwZXNDb3VudDogbnVtYmVyLFxuICAgIGluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdLFxuICAgIGZpZWxkcyA9IHt9LFxuICAgIGluQmFza2V0PzogYm9vbGVhblxuICApOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgbGV0IHBsYW5uZXJGaWVsZHMgPSAnJztcbiAgICBPYmplY3Qua2V5cyhmaWVsZHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHBsYW5uZXJGaWVsZHMgKz0gYCZmaWVsZHNbJHtrZXl9XT0keyhmaWVsZHNba2V5XSBhcyBzdHJpbmdbXSkuam9pbignLCcpfWA7XG4gICAgfSk7XG4gICAgbGV0IHVybCA9IE1JQU1fQVBJX0hPU1QgKyAncmVjaXBlcy9wbGFuJztcbiAgICB1cmwgKz0gYD9idWRnZXQ9JHtidWRnZXR9JmZpbHRlcltndWVzdHNdPSR7Z3Vlc3RzfSZyZWNpcGVzX2NvdW50PSR7cmVjaXBlc0NvdW50fSZmaWx0ZXJbcmVjaXBlX3R5cGVfaWRdPW1haW4tZGlzaGA7XG4gICAgdXJsICs9IGAmaW5jbHVkZT0ke2luY2x1ZGVzLmpvaW4oJywnKX0ke3BsYW5uZXJGaWVsZHN9JmZpbHRlcltyZWNpcGVfdHlwZV9pZF09bWFpbi1kaXNoJmZpbHRlcltwcmltYXJ5X2NvbXBsZXRpb25fcGVyY109MTAwLDEwMCZmaWx0ZXJbZm9yY2VkX2NvbXBsZXRpb25fcGVyY109MTAwLDEwMGA7XG4gICAgdXJsICs9IGluQmFza2V0ID09PSB1bmRlZmluZWQgPyAnJyA6IGAmZmlsdGVyW2luX2Jhc2tldF09JHtpbkJhc2tldH1gO1xuICAgIHVybCArPSB0aGlzLmJ1aWxkZmlsdGVyVXJsRnJvbVByZWZlcmVuY2VzKCk7XG4gICAgcmV0dXJuIHRoaXMucG9zU2VydmljZS53YWl0Rm9yUG9zLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKHBvcyA9PiB7XG4gICAgICAgIHVybCArPSBgJmZpbHRlcltwb2ludF9vZl9zYWxlX2lkXT0ke3Bvcy5pZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHt9KS5waXBlKFxuICAgICAgICAgIG1hcCgocmV0dXJuZWRSZWNpcGVzOiBEb2N1bWVudENvbGxlY3Rpb248UmVjaXBlPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjaXBlcyA9IHRoaXMubmV3Q29sbGVjdGlvbigpO1xuICAgICAgICAgICAgcmVjaXBlcy5maWxsKHJldHVybmVkUmVjaXBlcyk7XG4gICAgICAgICAgICByZXR1cm4gcmVjaXBlcy5kYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtYXhQbGFubmFibGVSZWNpcGVzKGJ1ZGdldDogbnVtYmVyLCBndWVzdHM6IG51bWJlciwgaW5CYXNrZXQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBsZXQgdXJsID0gTUlBTV9BUElfSE9TVCArICdyZWNpcGVzL3BsYW5fbWF4X3JlY2lwZXMnO1xuICAgIHVybCArPSBgP2J1ZGdldD0ke2J1ZGdldH0mZmlsdGVyW2d1ZXN0c109JHtndWVzdHN9JmZpbHRlcltyZWNpcGVfdHlwZV9pZF09bWFpbi1kaXNoJmZpbHRlcltwcmltYXJ5X2NvbXBsZXRpb25fcGVyY109MTAwLDEwMCZmaWx0ZXJbZm9yY2VkX2NvbXBsZXRpb25fcGVyY109MTAwLDEwMGA7XG4gICAgdXJsICs9IGluQmFza2V0ID09PSB1bmRlZmluZWQgPyAnJyA6IGAmZmlsdGVyW2luX2Jhc2tldF09JHtpbkJhc2tldH1gO1xuICAgIHVybCArPSB0aGlzLmJ1aWxkZmlsdGVyVXJsRnJvbVByZWZlcmVuY2VzKCk7XG4gICAgcmV0dXJuIHRoaXMucG9zU2VydmljZS53YWl0Rm9yUG9zLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKHBvcyA9PiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgICB1cmwgKz0gYCZmaWx0ZXJbcG9pbnRfb2Zfc2FsZV9pZF09JHtwb3MuaWR9YCxcbiAgICAgICAge31cbiAgICAgICkpLFxuICAgICAgbWFwKChyZXN1bHQ6IHsgbWF4X3JlY2lwZXM6IG51bWJlciB9KSA9PiByZXN1bHQubWF4X3JlY2lwZXMpXG4gICAgKTtcbiAgfVxuXG4gIGdldEluZ3JlZGllbnRzQnlSZWNpcGVJZChyZWNpcGVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyYW1zOiBJUGFyYW1zID0ge1xuICAgICAgaW5jbHVkZTogWydpbmdyZWRpZW50cyddLFxuICAgICAgZmllbGRzOiB7IHJlY2lwZXM6IFsnaW5ncmVkaWVudHMnXSB9XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5nZXQocmVjaXBlSWQsIHBhcmFtcyk7XG4gIH1cblxuICBzZWFyY2goXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGZpbHRlcnM6IHtcbiAgICAgIHBhcnRuZXI6IGJvb2xlYW47XG4gICAgICBzdGF0dXNlcz86IHN0cmluZ1tdO1xuICAgICAgdHlwZXM6IHN0cmluZ1tdO1xuICAgICAgcHJvdmlkZXJzOiBzdHJpbmdbXTtcbiAgICAgIHBhY2thZ2VzOiBzdHJpbmdbXTtcbiAgICB9LFxuICAgIHBhZ2U6IHsgc2l6ZTogbnVtYmVyOyBudW1iZXI6IG51bWJlciB9LFxuICAgIGluY2x1ZGU6IHN0cmluZ1tdLFxuICAgIHNvcnQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPERvY3VtZW50Q29sbGVjdGlvbjxSZWNpcGU+PiB7XG4gICAgbGV0IHVybCA9IE1JQU1fQVBJX0hPU1QgKyBgcmVjaXBlcy9zZWFyY2g/bmFtZT0ke25hbWV9YDtcbiAgICB1cmwgKz0gYCZwYWdlW3NpemVdPSR7cGFnZS5zaXplIHx8IDIwfSZwYWdlW251bWJlcl09JHtwYWdlLm51bWJlciB8fCAxfSZwYXJ0bmVyPSR7ZmlsdGVycy5wYXJ0bmVyfWA7XG4gICAgZmlsdGVycy5zdGF0dXNlcy5mb3JFYWNoKHN0YXR1cyA9PiB1cmwgKz0gYCZyZWNpcGVfc3RhdHVzX2lkc1tdPSR7c3RhdHVzfWApO1xuICAgIHVybCArPSBmaWx0ZXJzLnR5cGVzLmxlbmd0aCA/IGAmZmlsdGVyW3JlY2lwZV90eXBlX2lkXT0ke2ZpbHRlcnMudHlwZXMuam9pbignLCcpfWAgOiAnJztcbiAgICB1cmwgKz0gZmlsdGVycy5wcm92aWRlcnMubGVuZ3RoID8gYCZmaWx0ZXJbcmVjaXBlX3Byb3ZpZGVyX2lkXT0ke2ZpbHRlcnMucHJvdmlkZXJzLmpvaW4oJywnKX1gIDogJyc7XG4gICAgdXJsICs9IGZpbHRlcnMucGFja2FnZXMubGVuZ3RoID8gYCZmaWx0ZXJbcGFja2FnZXNdPSR7ZmlsdGVycy5wYWNrYWdlcy5qb2luKCcsJyl9YCA6ICcnO1xuICAgIHVybCArPSBpbmNsdWRlLmxlbmd0aCA/IGAmaW5jbHVkZT0ke2luY2x1ZGUuam9pbignLCcpfWAgOiAnJztcbiAgICB1cmwgKz0gc29ydCA/IGAmc29ydD0ke3NvcnR9YCA6ICcnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwge30pLnBpcGUoXG4gICAgICBtYXAoKHJldHVybmVkUmVjaXBlczogRG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZT4pID0+IHtcbiAgICAgICAgY29uc3QgcmVjaXBlcyA9IHRoaXMubmV3Q29sbGVjdGlvbigpO1xuICAgICAgICByZWNpcGVzLmZpbGwocmV0dXJuZWRSZWNpcGVzKTtcbiAgICAgICAgcmV0dXJuIHJlY2lwZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBERVBSRUNBVEVEIC8gdXNlIFRUTCBpbnN0ZWFkXG4gIHByaXZhdGUgZ2V0T3JGZXRjaChyZWNpcGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZWNpcGU+IHtcbiAgICBjb25zdCByZWNpcGUgPSB0aGlzLnJlY2lwZXMuZmluZChyID0+IHIuaWQgPT09IHJlY2lwZUlkKTtcbiAgICBpZiAocmVjaXBlKSB7XG4gICAgICByZXR1cm4gb2YocmVjaXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0KHJlY2lwZUlkLCB7IGZpZWxkczogeyByZWNpcGVzOiBbJ251bWJlci1vZi1ndWVzdHMnLCAnbWVkaWEtdXJsJ10gfSB9KS5waXBlKFxuICAgICAgICBza2lwV2hpbGUociA9PiByLmlzX2xvYWRpbmcpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBoZWxwIHVzIHRvIGtlZXAgYSB0cmFjayBvZiByYW5kb21cbiAgICogYW5kIGF2b2lkIHRvIHNob3cgc2FtZSByZWNpcGUgbXV0aXBsZSB0aW1lc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0UmFuZG9tU2VlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJhbmRvbVNlZWQgPSBEYXRlLm5vdygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWxvYWRBbGxSZWNpcGVzKCk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkUmVjaXBlcyQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBzdWdnZXN0aW9uIHJlcXVlc3QgYm9keSBiYXNlZCBvbiBjb250ZXh0IHBhc3NlZCAmIGN1cnJlbnQgcmV0YWlsZXIgYmFza2V0XG4gICAqL1xuICBwcml2YXRlIGJ1aWxkU3VnZ2VzdGlvbkJvZHkoY29udGV4dDogeyBpZDogc3RyaW5nOyBoYXNIaWdoV2VpZ2h0PzogYm9vbGVhbiB9W10pOiBhbnkge1xuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBzaGVsZl9pbmdyZWRpZW50c19pZHM6IFtdLCAvLyBMb3cgcHJpb3JpdHkgcHJvZHVjdHNcbiAgICAgIGN1cnJlbnRfaW5ncmVkaWVudHNfaWRzOiBbXSwgLy8gSGlnaCBwcmlvcml0eSBwcm9kdWN0c1xuICAgICAgYmFza2V0X2luZ3JlZGllbnRzX2lkczogW10sXG4gICAgICBncm91cF9pZDogJydcbiAgICB9O1xuICAgIGNvbnRleHQuZm9yRWFjaChwcm9kdWN0ID0+IHtcbiAgICAgIGlmIChwcm9kdWN0Lmhhc0hpZ2hXZWlnaHQpIHtcbiAgICAgICAgYm9keS5jdXJyZW50X2luZ3JlZGllbnRzX2lkcy5wdXNoKHByb2R1Y3QuaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYm9keS5zaGVsZl9pbmdyZWRpZW50c19pZHMucHVzaChwcm9kdWN0LmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBib2R5LmJhc2tldF9pbmdyZWRpZW50c19pZHMgPSB0aGlzLnN1cHBsaWVyc1NlcnZpY2UubGFzdFN1cHBsaWVyQ2FydC5tYXAocCA9PiBwLmlkKTtcbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRmaWx0ZXJVcmxGcm9tUHJlZmVyZW5jZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5wcmVmZXJlbmNlc1NlcnZpY2UuYWRkUHJlZmVyZW5jZXNUb1JlbW90ZUZpbHRlcnMoKSkubWFwKChbaywgdl0pID0+IGAmZmlsdGVyWyR7a31dPSR7dn1gKS5qb2luKCcnKTtcbiAgfVxufVxuIl19
|
|
443
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL19zZXJ2aWNlcy9yZWNpcGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBaUQsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBYyxFQUFFLEdBQVksTUFBTSxNQUFNLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBZSxNQUFNLEVBQU8sTUFBTSxZQUFZLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3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O0lBRU8sNkJBQTZCO1FBQ25DLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoSSxDQUFDOzs0RUFwakJVLGNBQWM7c0RBQWQsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTt1RkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50Q29sbGVjdGlvbiwgRG9jdW1lbnRSZXNvdXJjZSwgSVBhcmFtcywgU2VydmljZSB9IGZyb20gJ21pYW0tanNvbmFwaSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBza2lwLCBza2lwV2hpbGUsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGUsIFJlY2lwZSwgVGFnIH0gZnJvbSAnLi4vX21vZGVscyc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5pbXBvcnQgeyBSZWNpcGVGaWx0ZXIsIFJlY2lwZUZpbHRlcnMgfSBmcm9tICcuLi9fdHlwZXMvcmVjaXBlLWZpbHRlcnMnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5ncmVkaWVudHNTZXJ2aWNlIH0gZnJvbSAnLi9pbmdyZWRpZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFBhY2thZ2VTZXJ2aWNlIH0gZnJvbSAnLi9wYWNrYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4vcG9pbnQtb2Ytc2FsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuL3ByZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVjaXBlTGlrZXNTZXJ2aWNlIH0gZnJvbSAnLi9yZWNpcGUtbGlrZXMuc2VydmljZSc7XG5pbXBvcnQgeyBSZWNpcGVQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3JlY2lwZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZVN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3JlY2lwZS1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBSZWNpcGVTdGVwc1NlcnZpY2UgfSBmcm9tICcuL3JlY2lwZS1zdGVwcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZVR5cGVTZXJ2aWNlIH0gZnJvbSAnLi9yZWNpcGUtdHlwZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlb1NlcnZpY2UgfSBmcm9tICcuL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IFNwb25zb3JTZXJ2aWNlIH0gZnJvbSAnLi9zcG9uc29yLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmVMb2NhdG9yU2VydmljZSB9IGZyb20gJy4vc3RvcmUtbG9jYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cHBsaWVyc1NlcnZpY2UgfSBmcm9tICcuL3N1cHBsaWVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFRhZ3NTZXJ2aWNlIH0gZnJvbSAnLi90YWdzLnNlcnZpY2UnO1xuXG5jb25zdCBNSUFNX0FQSV9IT1NUID0gYCR7ZW52aXJvbm1lbnQubWlhbUFQSX0vYXBpL3YxL2A7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjaXBlRGlzcGxheSB7XG4gIHByZXZpZXdBbGxvd2VkOiBib29sZWFuO1xuICByZWNpcGU6IFJlY2lwZTtcbiAgcHJldmlld01vZGU6IGJvb2xlYW47XG4gIHdhc0FkZGVkOiBib29sZWFuO1xuICBmb3JjZT86IGJvb2xlYW47XG4gIGRpc3BsYXlHdWVzdHM/OiBib29sZWFuO1xuICBoZWxwQnV0dG9uQWxsb3dlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlY2lwZURpc3BsYXlQYXJhbXMge1xuICBwcmV2aWV3QWxsb3dlZD86IGJvb2xlYW47XG4gIGd1ZXN0cz86IG51bWJlcjtcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICB3YXNBZGRlZD86IGJvb2xlYW47XG4gIGRpc3BsYXlHdWVzdHM/OiBib29sZWFuO1xuICBoZWxwQnV0dG9uQWxsb3dlZD86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZXNTZXJ2aWNlIGV4dGVuZHMgU2VydmljZTxSZWNpcGU+IHtcblxuICByZXNvdXJjZSA9IFJlY2lwZTtcbiAgdHlwZSA9ICdyZWNpcGVzJztcbiAgZGlzcGxheWVkUmVjaXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjaXBlRGlzcGxheT4obnVsbCk7XG4gIGRpc3BsYXlIZWxwZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGRpc3BsYXllZFJlY2lwZUNoYW5nZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPihudWxsKTtcbiAgcmVjaXBlRGV0YWlsc1RhYkluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPihudWxsKTtcbiAgaGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBzdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zID0geyBkaXNwbGF5OiB0cnVlLCBhZGRUb0Jhc2tldDogdHJ1ZSB9O1xuICByZWNpcGVzUHJpbWFyeUJ1dHRvbkFjdGlvbnMgPSB7IGRpc3BsYXk6IHRydWUsIGFkZFRvQmFza2V0OiB0cnVlIH07XG4gIHJlbG9hZFJlY2lwZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGRpZmZpY3VsdHlMZXZlbHM6IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10gPSBbXG4gICAgeyB2YWx1ZTogMSwgbGFiZWw6ICdGYWNpbGUnIH0sXG4gICAgeyB2YWx1ZTogMiwgbGFiZWw6ICdNb3llbicgfSxcbiAgICB7IHZhbHVlOiAzLCBsYWJlbDogJ0RpZmZpY2lsZScgfVxuICBdO1xuICBjb25maXJtYXRpb25Ub2FzdGVyOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmFuZG9tU2VlZDogbnVtYmVyO1xuICBwcml2YXRlIHJhbmRvbVJlY2lwZUNvdW50ID0gMTtcbiAgcHJpdmF0ZSByZWNpcGVzOiBSZWNpcGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm92aWRlclNlcnZpY2U6IFJlY2lwZVByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHN0YXR1c1NlcnZpY2U6IFJlY2lwZVN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0eXBlU2VydmljZTogUmVjaXBlVHlwZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwcml2YXRlIGluZ3JlZGllbnRzU2VydmljZTogSW5ncmVkaWVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlU3RlcHNTZXJ2aWNlOiBSZWNpcGVTdGVwc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcG9uc29yU2VydmljZTogU3BvbnNvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYWNrYWdlU2VydmljZTogUGFja2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0YWdzU2VydmljZTogVGFnc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVMaWtlc1NlcnZpY2U6IFJlY2lwZUxpa2VzU2VydmljZSxcbiAgICBwcml2YXRlIHNlb1NlcnZpY2U6IFNlb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmVmZXJlbmNlc1NlcnZpY2U6IFByZWZlcmVuY2VzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlTG9jYXRvclNlcnZpY2U6IFN0b3JlTG9jYXRvclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlZ2lzdGVyKCk7XG4gICAgdGhpcy5hcHBlbmREaXNwbGF5ZWRSZWNpcGVUb1VybFF1ZXJ5KCk7XG4gICAgdGhpcy5pbml0UmFuZG9tU2VlZCgpO1xuICB9XG5cbiAgZGlzcGxheVJlY2lwZUluVXJsKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY2lwZUlkID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zLmdldCgnZGlzcGxheVJlY2lwZScpO1xuICAgIC8vIElmIHRoZXJlIGlzIGEgcmVjaXBlIGluIFVybCwgZGlzcGxheSBpdCBvbiBzdGFydHVwXG4gICAgaWYgKHJlY2lwZUlkKSB7XG4gICAgICB0aGlzLmRpc3BsYXkocmVjaXBlSWQsIHsgcHJldmlld0FsbG93ZWQ6IHRydWUsIHByZXZpZXdNb2RlOiBmYWxzZSB9KTtcbiAgICB9XG4gIH1cblxuICBsb2FkUmVjaXBlcyhyZWNpcGVzSW5mb3M6IHsgaWQ6IHN0cmluZzsgZ3Vlc3RzPzogc3RyaW5nIH1bXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHJlY2lwZXNJbmZvcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKHJlY2lwZXNJbmZvcy5tYXAoaW5mbyA9PiB0aGlzLmdldE9yRmV0Y2goaW5mby5pZCkucGlwZShcbiAgICAgIHRhcChyID0+IHtcbiAgICAgICAgaWYgKGluZm8uZ3Vlc3RzKSB7XG4gICAgICAgICAgci5tb2RpZmllZEd1ZXN0cyA9ICtpbmZvLmd1ZXN0cztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlY2lwZXMucHVzaChyKTtcbiAgICAgIH0pXG4gICAgKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbWFuZGF0b3J5IGRhdGEgKGd1ZXN0LCBwb3MgaWQpIGNvbXBsZXRpb24gdG8gdGhlIGdpdmVuIGZpbHRlcnMuXG4gICAqL1xuICBhZGRNYW5kYXRvcnlDb21wbGV0aW9uVG9GaWx0ZXIoZmlsdGVyczogUmVjaXBlRmlsdGVycyk6IE9ic2VydmFibGU8UmVjaXBlRmlsdGVycz4ge1xuICAgIGNvbnN0IHJlcXVlc3RGaWx0ZXJzID0gZmlsdGVycy5jb3B5KCk7XG4gICAgLy8gb25seSBzZXQgcHJpbWFyeV9jb21wbGV0aW9uX3BlcmMgaWYgbm90IHNlYXJjaGluZyBmYXZvcml0ZSByZWNpcGVzXG4gICAgaWYgKHJlcXVlc3RGaWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLmxpa2VkKSB7XG4gICAgICByZXR1cm4gb2YocmVxdWVzdEZpbHRlcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBvc1NlcnZpY2UucG9zV2FzSW5pdGlhbGl6ZWQoKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHdhc0luaXRpYWxpemVkID0+ICF3YXNJbml0aWFsaXplZCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5wb3NTZXJ2aWNlLnBvcyQpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgocG9zOiBQb2ludE9mU2FsZSkgPT4ge1xuICAgICAgICBpZiAocG9zPy5pZCkge1xuICAgICAgICAgIC8vIG51bWJlciBvZiBndWVzdHMgYW5kIHBvaW50IG9mIHNhbGUgaWQgYXJlIG1hbmRhdG9yeSBpbiBvcmRlciB0byB1c2UgcHJpbWFyeV9jb21wbGV0aW9uX3BlcmMgZmlsdGVyXG4gICAgICAgICAgcmVxdWVzdEZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgPSB7XG4gICAgICAgICAgICAuLi5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLFxuICAgICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgICBndWVzdHM6ICc0JyxcbiAgICAgICAgICAgICAgcG9pbnRfb2Zfc2FsZV9pZDogcG9zLmlkLFxuICAgICAgICAgICAgICBwcmltYXJ5X2NvbXBsZXRpb25fcGVyYzogJzEwMCwxMDAnLFxuICAgICAgICAgICAgICBmb3JjZWRfY29tcGxldGlvbl9wZXJjOiAnMTAwLDEwMCcsXG4gICAgICAgICAgICAgIC4uLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXF1ZXN0RmlsdGVycztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG5cbiAgLy8gUmV0dXJucyBsaXN0IG9mIGZpbHRlcmVkIHJlY2lwZXMuXG4gIC8vIEZpbHRlcnMgYW5kIHBhZ2UgcGFyYW1ldGVycyBhcmUgbWFuZGF0b3J5LlxuICAvLyBOdW1iZXIgb2YgZ3Vlc3RzIGFuZCByYW5kb21pemF0aW9uIGFyZSBvcHRpb25hbCBwYXJhbWV0ZXJzXG4gIGZpbHRlcihcbiAgICBmaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzLFxuICAgIHBhZ2U6IHsgbnVtYmVyOiBudW1iZXI7IHNpemU6IG51bWJlciB9LFxuICAgIGluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdLFxuICAgIGZpZWxkcyA9IHt9LFxuICAgIGd1ZXN0czogbnVtYmVyID0gbnVsbCxcbiAgICByYW5kb206IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBzb3J0ID0gJydcbiAgKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4ge1xuICAgIGxldCByZWNpcGVzOiBSZWNpcGVbXTtcbiAgICBjb25zdCBsaWtlZEZpbHRlciA9IGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMubGlrZWQgPyB7IGxpa2VkOiAndHJ1ZScgfSA6IG51bGw7XG4gICAgY29uc3QgcmVtb3RlZmlsdGVyID0gbGlrZWRGaWx0ZXIgfHwgdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2UuYWRkUHJlZmVyZW5jZXNUb1JlbW90ZUZpbHRlcnModGhpcy5idWlsZFJlbW90ZUZpbHRlcnMoZmlsdGVycywgZ3Vlc3RzKSk7XG5cbiAgICBpZiAocmFuZG9tKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlbW90ZWZpbHRlciwgeyByYW5kb206IHRoaXMucmFuZG9tU2VlZCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWxsKHsgcGFnZSwgcmVtb3RlZmlsdGVyLCBpbmNsdWRlOiBpbmNsdWRlcywgc29ydDogW3NvcnRdLCBmaWVsZHMgfSkucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgICAgc3dpdGNoTWFwKChyZXN1bHQ6IERvY3VtZW50Q29sbGVjdGlvbjxSZWNpcGU+KSA9PiB7XG4gICAgICAgIHJlY2lwZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgaWYgKGd1ZXN0cyAmJiBndWVzdHMgPiAwKSB7XG4gICAgICAgICAgcmVjaXBlcy5mb3JFYWNoKHIgPT4gci5tb2RpZmllZEd1ZXN0cyA9IGd1ZXN0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVjaXBlTGlrZXNTZXJ2aWNlLmFkZExpa2VzVG9SZWNpcGVzKHJlY2lwZXMpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gcmVjaXBlcylcbiAgICApO1xuICB9XG5cbiAgbG9hZFJlY2lwZXNGcm9tUGFja2FnZUlkKHBhY2thZ2VJZDogc3RyaW5nLCBwYWdlOiBudW1iZXIsIHNpemU6IG51bWJlciwgZ3Vlc3RzOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgY29uc3QgcmVjaXBlSW5jbHVkZXMgPSBbJ3JlY2lwZS1wcm92aWRlcicsICdzcG9uc29ycyddO1xuICAgIGNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgICAgIHJlY2lwZXM6IFsndGl0bGUnLFxuICAgICAgICAnbnVtYmVyLW9mLWd1ZXN0cycsXG4gICAgICAgICdtZWRpYS11cmwnLFxuICAgICAgICAndmlkZW8taWQnLFxuICAgICAgICAnZmlsaWdyYW5lLWxvZ28tdXJsJyxcbiAgICAgICAgJ2RpZmZpY3VsdHknLFxuICAgICAgICAncHJlcGFyYXRpb24tdGltZScsXG4gICAgICAgICdjb29raW5nLXRpbWUnLFxuICAgICAgICAncmVzdGluZy10aW1lJywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICAgICAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgICAgIFsncmVjaXBlLXByb3ZpZGVyJ106IFsnbmFtZSddXG4gICAgfTtcbiAgICBjb25zdCBwYWNrYWdlRmlsdGVyID0gbmV3IFJlY2lwZUZpbHRlcnMoe1xuICAgICAgYWRkaXRpb25hbEZpbHRlcnM6IHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgcGFja2FnZXM6IHBhY2thZ2VJZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5hZGRNYW5kYXRvcnlDb21wbGV0aW9uVG9GaWx0ZXIocGFja2FnZUZpbHRlcikucGlwZShcbiAgICAgIHN3aXRjaE1hcChyZXF1ZXN0RmlsdGVycyA9PiB0aGlzLmZpbHRlcihcbiAgICAgICAgcmVxdWVzdEZpbHRlcnMsXG4gICAgICAgIHsgc2l6ZSwgbnVtYmVyOiBwYWdlIH0sXG4gICAgICAgIHJlY2lwZUluY2x1ZGVzLFxuICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgIGd1ZXN0cyxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgICdwb3NpdGlvbidcbiAgICAgICkpXG4gICAgKTtcbiAgfVxuXG4gIC8vIEZldGNoZXMgcmVjaXBlcyBjb3JyZXNwb25kaW5nIHRvIGZpbHRlcnMsIGFuZCByZXR1cm4gdG90YWwgcmVjaXBlcyBjb3VudFxuICBmaWx0ZXJDb3VudChmaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzLCBndWVzdHM6IG51bWJlciA9IG51bGwsIGV4Y2x1ZGVkUmVjaXBlc0lkczogc3RyaW5nW10gPSBbXSwgZnJvbVByZWZlcmVuY2UgPSBmYWxzZSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgZiA9IHRoaXMucHJlZmVyZW5jZXNTZXJ2aWNlLmFkZFByZWZlcmVuY2VzVG9SZW1vdGVGaWx0ZXJzKHRoaXMuYnVpbGRSZW1vdGVGaWx0ZXJzKGZpbHRlcnMsIGd1ZXN0cyksIGZyb21QcmVmZXJlbmNlKTtcblxuICAgIHJldHVybiB0aGlzLmFsbCh7IHJlbW90ZWZpbHRlcjogZiwgcGFnZTogeyBudW1iZXI6IDEsIHNpemU6IDEgfSwgZmllbGRzOiB7IHJlY2lwZXM6IFsnaWQnXSB9IH0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgIG1hcCgocmVzdWx0OiBEb2N1bWVudENvbGxlY3Rpb248UmVjaXBlPikgPT4ge1xuICAgICAgICAvLyBBcHBhcmVudGx5IHRvdGFsX3Jlc291cmNlID0gMSBldmVuIGlmIG5vIHJlc3VsdCB3YXMgZm91bmQgc28gd2UgaGF2ZSB0byBjaGVja1xuICAgICAgICBsZXQgcmVjaXBlc051bWJlciA9IHJlc3VsdC5kYXRhLmxlbmd0aCA/IHJlc3VsdC5wYWdlPy50b3RhbF9yZXNvdXJjZXMgOiAwO1xuICAgICAgICByZWNpcGVzTnVtYmVyIC09IHJlc3VsdC5kYXRhLmZpbHRlcihyID0+IGV4Y2x1ZGVkUmVjaXBlc0lkcy5pbmNsdWRlcyhyLmlkKSkubGVuZ3RoO1xuICAgICAgICByZXR1cm4gcmVjaXBlc051bWJlcjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRSZW1vdGVGaWx0ZXJzKGZpbHRlcnM6IFJlY2lwZUZpbHRlcnMsIGd1ZXN0czogbnVtYmVyID0gbnVsbCk6IHtcbiAgICBzZWFyY2g/OiBzdHJpbmc7XG4gICAgJ3RvdGFsLXRpbWUnPzogc3RyaW5nO1xuICAgIHByaWNlPzogc3RyaW5nO1xuICAgIGRpZmZpY3VsdHk/OiBzdHJpbmc7XG4gICAgcG9pbnRfb2Zfc2FsZV9pZD86IHN0cmluZztcbiAgICBndWVzdHM/OiBzdHJpbmc7XG4gIH0ge1xuICAgIGNvbnN0IGRpZmZpY3VsdHkgPSB0aGlzLmJ1aWxkUmVtb3RlRmlsdGVyKGZpbHRlcnMuZGlmZmljdWx0eSwgJy0nKTtcbiAgICBjb25zdCBjb3N0ID0gdGhpcy5idWlsZFJlbW90ZUZpbHRlcihmaWx0ZXJzLmNvc3QsICctJyk/LnNwbGl0KCctJyk7XG4gICAgY29uc3QgdG90YWxUaW1lID0gdGhpcy5idWlsZFJlbW90ZUZpbHRlcihmaWx0ZXJzLnRpbWUsICcsJyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uKGRpZmZpY3VsdHk/Lmxlbmd0aCA+IDApID8geyBkaWZmaWN1bHR5OiBkaWZmaWN1bHR5ICsgJyxlcScgfSA6IHt9LCAvLyBleDogZmlsdGVyW2RpZmZpY3VsdHldPTEtMi0zLGVxID0+IGFsbCBjaGVja2VkXG4gICAgICAuLi4oY29zdD8ubGVuZ3RoID09PSAyKSA/IHsgY29tcHV0ZWRfY29zdDogY29zdFswXSArICcsZ3QsJyArIGNvc3RbMV0gKyAnLGx0JyB9IDoge30sIC8vIGV4OiBmaWx0ZXJbY29zdF09NSxndCwxMCxsdCA9PiA1IDwgY29zdCA8IDEwXG4gICAgICAuLi4odG90YWxUaW1lPy5sZW5ndGggPiAwKSA/IHsgJ3RvdGFsLXRpbWUnOiB0b3RhbFRpbWUgfSA6IHt9LFxuICAgICAgLi4uKGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMpID8gZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzIDoge30sXG4gICAgICAuLi4oZmlsdGVycy5zZWFyY2gpID8geyBzZWFyY2g6IGZpbHRlcnMuc2VhcmNoIH0gOiB7fSxcbiAgICAgIC4uLihmaWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnByaWNlKSA/IHsgcG9pbnRfb2Zfc2FsZV9pZDogdGhpcy5wb3NTZXJ2aWNlLnBvcyQudmFsdWUuaWQgfSA6IHt9LFxuICAgICAgLi4uKGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMucHJpY2UgJiYgZ3Vlc3RzICE9PSBudWxsKSA/IHsgZ3Vlc3RzOiBndWVzdHMudG9TdHJpbmcoKSB9IDoge31cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmREaXNwbGF5ZWRSZWNpcGVUb1VybFF1ZXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkUmVjaXBlJC5waXBlKHNraXAoMSkpLnN1YnNjcmliZSgocmVjaXBlRGlzcGxheTogUmVjaXBlRGlzcGxheSkgPT4ge1xuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnJlbW92ZURpc3BsYXlSZWNpcGVGcm9tVXJsUXVlcnkoKSk7XG4gICAgICBpZiAocmVjaXBlRGlzcGxheT8ucmVjaXBlKSB7XG4gICAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkaXNwbGF5UmVjaXBlJywgcmVjaXBlRGlzcGxheS5yZWNpcGUuaWQpO1xuICAgICAgfVxuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAnJywgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEaXNwbGF5UmVjaXBlRnJvbVVybFF1ZXJ5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgY29uc3QgZmlsdGVyZWRTZWFyY2ggPSB1cmwuc3BsaXQoJz8nKVsxXTtcbiAgICBpZiAoZmlsdGVyZWRTZWFyY2gpIHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoZmlsdGVyZWRTZWFyY2gpO1xuICAgICAgcGFyYW1zLmRlbGV0ZSgnZGlzcGxheVJlY2lwZScpO1xuICAgICAgY29uc3QgZmlsdGVyZWRRdWVyeVN0cmluZyA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgICAgaWYgKGZpbHRlcmVkUXVlcnlTdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHVybC5yZXBsYWNlKGZpbHRlcmVkU2VhcmNoLCBmaWx0ZXJlZFF1ZXJ5U3RyaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1cmwuc3BsaXQoJz8nKVswXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8vIFJlYWRzIHRoZSB2YWx1ZXMgb2YgYSBmaWVsZCBhbmQgY29udmVydHMgaXQgdG8gdGhlIHN0cmluZyB0byBwYXNzIGluIHRoZSByZW1vdGVGaWx0ZXJzXG4gIC8vIGV4OiBidWlsZFJlbW90ZUZpbHRlcih7XG4gIC8vICAge25hbWU6ICcxJywgdmFsdWU6IHRydWUsIHRleHQ6ICdGYWNpbGUnfSxcbiAgLy8gICB7bmFtZTogJzInLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb3llbid9LFxuICAvLyAgIHtuYW1lOiAnMycsIHZhbHVlOiB0cnVlLCB0ZXh0OiAnRGlmZmljaWxlJ31cbiAgLy8gfSwgJy0nKSAgPT0+ICcxLTMnXG4gIHByaXZhdGUgYnVpbGRSZW1vdGVGaWx0ZXIoZmlsdGVyOiBSZWNpcGVGaWx0ZXJbXSwgc2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZmlsdGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGZvciAoY29uc3QgZiBvZiBmaWx0ZXIpIHtcbiAgICAgIGlmIChmLnZhbHVlKSB7XG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCArPSBzZXBhcmF0b3I7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9IGYubmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIEZldGNoIG9uZSByYW5kb20gcmVjaXBlXG4gIGdldFJhbmRvbShpbmNsdWRlczogc3RyaW5nW10gPSBbXSwgZmllbGRzID0ge30pOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgdGhpcy5yYW5kb21SZWNpcGVDb3VudCsrO1xuICAgIHJldHVybiB0aGlzLmZpbHRlcihcbiAgICAgIHsgcmV2aWV3ZWQ6IHRydWUsIGV4Y2x1ZGVfbm9fcGljdHVyZTogdHJ1ZSB9IGFzIFJlY2lwZUZpbHRlcnMsXG4gICAgICB7IG51bWJlcjogdGhpcy5yYW5kb21SZWNpcGVDb3VudCwgc2l6ZTogMSB9LFxuICAgICAgaW5jbHVkZXMsXG4gICAgICBmaWVsZHMsXG4gICAgICBudWxsLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICAvLyBEZWJvdW5jZSB0byBsZXQgZW5vdWdoIHRpbWUgZm9yIHRoZSBwb3MgdG8gYmUgZGVmaW5lZFxuICBnZXRTdWdnZXN0aW9uKFxuICAgIGNvbnRleHQ6IHsgaWQ6IHN0cmluZzsgaGFzSGlnaFdlaWdodD86IGJvb2xlYW4gfVtdLFxuICAgIGluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdLFxuICAgIGZpZWxkcyA9IHt9XG4gICk6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICBsZXQgc3VnZ2VzdGlvbkZpZWxkcyA9ICcnO1xuICAgIE9iamVjdC5rZXlzKGZpZWxkcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgc3VnZ2VzdGlvbkZpZWxkcyArPSBgJmZpZWxkc1ske2tleX1dPSR7KGZpZWxkc1trZXldIGFzIHN0cmluZ1tdKS5qb2luKCcsJyl9YDtcbiAgICB9KTtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN1cHBsaWVyc1NlcnZpY2Uuc3VwcGxpZXIkLFxuICAgICAgdGhpcy5wb3NTZXJ2aWNlLnBvc1dhc0luaXRpYWxpemVkKCkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHdhc0luaXRpYWxpemVkID0+ICF3YXNJbml0aWFsaXplZCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnBvc1NlcnZpY2UucG9zJClcbiAgICAgIClcbiAgICBdKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdHMgPT4gIXJlc3VsdHNbMF0pLFxuICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0cyA9PiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuYnVpbGRTdWdnZXN0aW9uQm9keShjb250ZXh0KTtcbiAgICAgICAgbGV0IHN1cHBsaWVyRmlsdGVyID0gYHN1cHBsaWVyX2lkPSR7cmVzdWx0c1swXS5pZH1gO1xuICAgICAgICBpZiAocmVzdWx0c1sxXSkge1xuICAgICAgICAgIHN1cHBsaWVyRmlsdGVyID0gYHN1cHBsaWVyX2lkPSR7cmVzdWx0c1swXS5pZH0mcG9zX2lkPSR7cmVzdWx0c1sxXS5pZH1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVybCA9IE1JQU1fQVBJX0hPU1QgKyBgcmVjaXBlcy9zdWdnZXN0aW9ucz8ke3N1cHBsaWVyRmlsdGVyfSZhbGxvdy1lbXB0eT10cnVlJHsoaW5jbHVkZXMubGVuZ3RoID4gMCkgPyAoJyZpbmNsdWRlPScgKyBpbmNsdWRlcy5qb2luKCcsJykpIDogJyd9JHtzdWdnZXN0aW9uRmllbGRzfSR7dGhpcy5idWlsZGZpbHRlclVybEZyb21QcmVmZXJlbmNlcygpfWA7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGJvZHkpO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJldHVybmVkUmVjaXBlczogRG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZT4pID0+IHtcbiAgICAgICAgY29uc3QgcmVjaXBlcyA9IHRoaXMubmV3Q29sbGVjdGlvbigpO1xuICAgICAgICByZWNpcGVzLmZpbGwocmV0dXJuZWRSZWNpcGVzKTtcbiAgICAgICAgcmV0dXJuIHJlY2lwZXMuZGF0YTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNlYXJjaFJlY2lwZUJ5RXh0SWQocmVjaXBlRXh0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UmVjaXBlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7TUlBTV9BUElfSE9TVH1yZWNpcGVzL2V4dGVybmFsLyR7cmVjaXBlRXh0SWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBEb2N1bWVudFJlc291cmNlPFJlY2lwZT4pID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGE/LmF0dHJpYnV0ZXNbJ2V4dC1pZCddID09PSByZWNpcGVFeHRJZCkge1xuICAgICAgICAgIGNvbnN0IHJlY2lwZSA9IHRoaXMubmV3KCk7XG4gICAgICAgICAgcmVjaXBlLmZpbGwocmVzcG9uc2UpO1xuICAgICAgICAgIHJldHVybiByZWNpcGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRQcmljaW5nKHJlY2lwZUlkOiBzdHJpbmcsIHBvc0lkOiBzdHJpbmcsIHNlcnZlczogbnVtYmVyID0gbnVsbCk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZz4ge1xuICAgIGlmICghcmVjaXBlSWQpIHtcbiAgICAgIHJldHVybiAob2YobnVsbCkgYXMgT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPik7XG4gICAgfVxuICAgIGxldCB1cmwgPSBNSUFNX0FQSV9IT1NUICsgYHJlY2lwZXMvJHtyZWNpcGVJZH0vcHJpY2luZz9wb2ludF9vZl9zYWxlX2lkPSR7cG9zSWR9YDtcbiAgICBpZiAoc2VydmVzKSB7XG4gICAgICB1cmwgKz0gYCZzZXJ2ZXM9JHtzZXJ2ZXN9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBuZXcgUmVjaXBlUHJpY2luZyhyZXN1bHQpKVxuICAgICk7XG4gIH1cblxuICBnZW5lcmF0ZUZyb21QaWN0dXJlKGltYWdlQmFzZTY0OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IE1JQU1fQVBJX0hPU1QgKyAncmVjaXBlcy9nZW5lcmF0ZV9mcm9tX3BpY3R1cmUnO1xuICAgIGNvbnN0IGJvZHkgPSB7IGJhc2U2NF9pbWFnZTogaW1hZ2VCYXNlNjQgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBib2R5KTtcbiAgfVxuXG4gIC8vIE9wZW4gbW9kYWwgc2hvd2luZyByZWNpcGUgZGV0YWlsc1xuICBkaXNwbGF5KFxuICAgIHJlY2lwZUlkOiBzdHJpbmcsXG4gICAge1xuICAgICAgcHJldmlld0FsbG93ZWQgPSB0cnVlLFxuICAgICAgZ3Vlc3RzID0gbnVsbCxcbiAgICAgIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gICAgICBkaXNwbGF5R3Vlc3RzID0gdHJ1ZSxcbiAgICAgIGhlbHBCdXR0b25BbGxvd2VkID0gdHJ1ZVxuICAgIH06IElSZWNpcGVEaXNwbGF5UGFyYW1zXG4gICk6IHZvaWQge1xuICAgIGlmICghcmVjaXBlSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdldChyZWNpcGVJZCwgeyBpbmNsdWRlOiBbJ2luZ3JlZGllbnRzJywgJ3JlY2lwZS1zdGVwcycsICdyZWNpcGUtdHlwZScsICdzcG9uc29ycycsICd0YWdzJywgJ3JlY2lwZS1wcm92aWRlciddIH0pXG4gICAgICAucGlwZShza2lwV2hpbGUocmVjaXBlID0+IHJlY2lwZS5pc19sb2FkaW5nKSlcbiAgICAgIC5zdWJzY3JpYmUocmVjaXBlID0+IHtcbiAgICAgICAgdGhpcy5kaXNwbGF5T2JqZWN0KHJlY2lwZSwgeyBwcmV2aWV3QWxsb3dlZCwgZ3Vlc3RzLCBwcmV2aWV3TW9kZSwgZGlzcGxheUd1ZXN0cywgaGVscEJ1dHRvbkFsbG93ZWQgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRpc3BsYXlPYmplY3QoXG4gICAgcmVjaXBlOiBSZWNpcGUsXG4gICAge1xuICAgICAgcHJldmlld0FsbG93ZWQgPSB0cnVlLFxuICAgICAgZ3Vlc3RzID0gbnVsbCxcbiAgICAgIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gICAgICB3YXNBZGRlZCA9IGZhbHNlLFxuICAgICAgZGlzcGxheUd1ZXN0cyA9IHRydWUsXG4gICAgICBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWVcbiAgICB9OiBJUmVjaXBlRGlzcGxheVBhcmFtc1xuICApOiB2b2lkIHtcbiAgICBpZiAoIXJlY2lwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IGd1ZXN0cyB8fCArcmVjaXBlLmd1ZXN0cztcbiAgICB0aGlzLmRpc3BsYXllZFJlY2lwZSQubmV4dCh7IHByZXZpZXdBbGxvd2VkLCByZWNpcGUsIHByZXZpZXdNb2RlLCB3YXNBZGRlZCwgZGlzcGxheUd1ZXN0cywgaGVscEJ1dHRvbkFsbG93ZWQgfSk7XG4gIH1cblxuICBvcGVuQmFza2V0KGFuYWx5dGljc1BhdGg6IHN0cmluZyA9ICcnKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRSZWNpcGUkLm5leHQoeyBwcmV2aWV3QWxsb3dlZDogdHJ1ZSwgcmVjaXBlOiBudWxsLCBwcmV2aWV3TW9kZTogdHJ1ZSwgd2FzQWRkZWQ6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoJ2Jhc2tldC5kaXNwbGF5JywgYW5hbHl0aWNzUGF0aCwge30pO1xuICB9XG5cbiAgb3BlblJlY2lwZURldGFpbHMocmVjaXBlSWQ6IHN0cmluZywgZ3Vlc3RzOiBudW1iZXIsIGluaXRpYWxUYWJJbmRleDogbnVtYmVyLCBwYXRoOiBzdHJpbmcgPSAnJywgY2F0ZWdvcnlJZDogc3RyaW5nID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheShyZWNpcGVJZCwgeyBwcmV2aWV3QWxsb3dlZDogdHJ1ZSwgcHJldmlld01vZGU6IGZhbHNlLCBndWVzdHMgfSk7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzVGFiSW5kZXgkLm5leHQoaW5pdGlhbFRhYkluZGV4KTtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KCdyZWNpcGUuZGlzcGxheScsIHBhdGgsIHsgcmVjaXBlX2lkOiByZWNpcGVJZCwgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQgfSk7XG4gIH1cblxuICBvcGVuU3RvcmVMb2NhdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5jbG9zZU1vZGFsT25TZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLm9wZW5TdG9yZUxvY2F0b3IodHJ1ZSk7XG4gICAgdGhpcy5kaXNwbGF5ZWRSZWNpcGUkLm5leHQoe1xuICAgICAgcHJldmlld0FsbG93ZWQ6IGZhbHNlLFxuICAgICAgcmVjaXBlOiBudWxsLFxuICAgICAgcHJldmlld01vZGU6IHRydWUsXG4gICAgICB3YXNBZGRlZDogZmFsc2UsXG4gICAgICBmb3JjZTogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlSGVscGVyKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICAgIHRoaXMuZGlzcGxheUhlbHBlciQubmV4dCghdGhpcy5kaXNwbGF5SGVscGVyJC52YWx1ZSk7XG4gIH1cblxuICBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkUmVjaXBlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuaGlkZGVuLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBhZGRUYWdUb1JlY2lwZShyZWNpcGU6IFJlY2lwZSwgdGFnOiBUYWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChNSUFNX0FQSV9IT1NUICsgYHJlY2lwZXMvJHtyZWNpcGUuaWR9L3RhZ3MvJHt0YWcuaWR9YCwge30pO1xuICB9XG5cbiAgc2V0UmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zKGRpc3BsYXkgPSB0cnVlLCBhZGRUb0Jhc2tldCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucyA9IHsgZGlzcGxheSwgYWRkVG9CYXNrZXQgfTtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMgPSB7IGRpc3BsYXksIGFkZFRvQmFza2V0IH07XG4gICAgdGhpcy5yZWxvYWRBbGxSZWNpcGVzKCk7XG4gIH1cblxuICBzZXRTdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zKGRpc3BsYXkgPSB0cnVlLCBhZGRUb0Jhc2tldCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMgPSB7IGRpc3BsYXksIGFkZFRvQmFza2V0IH07XG4gICAgdGhpcy5yZWxvYWRBbGxSZWNpcGVzKCk7XG4gIH1cblxuICBwbGFuKFxuICAgIGJ1ZGdldDogbnVtYmVyLFxuICAgIGd1ZXN0czogbnVtYmVyLFxuICAgIHJlY2lwZXNDb3VudDogbnVtYmVyLFxuICAgIGluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdLFxuICAgIGZpZWxkcyA9IHt9LFxuICAgIGluQmFza2V0PzogYm9vbGVhblxuICApOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgbGV0IHBsYW5uZXJGaWVsZHMgPSAnJztcbiAgICBPYmplY3Qua2V5cyhmaWVsZHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHBsYW5uZXJGaWVsZHMgKz0gYCZmaWVsZHNbJHtrZXl9XT0keyhmaWVsZHNba2V5XSBhcyBzdHJpbmdbXSkuam9pbignLCcpfWA7XG4gICAgfSk7XG4gICAgbGV0IHVybCA9IE1JQU1fQVBJX0hPU1QgKyAncmVjaXBlcy9wbGFuJztcbiAgICB1cmwgKz0gYD9idWRnZXQ9JHtidWRnZXR9JmZpbHRlcltndWVzdHNdPSR7Z3Vlc3RzfSZyZWNpcGVzX2NvdW50PSR7cmVjaXBlc0NvdW50fSZmaWx0ZXJbcmVjaXBlX3R5cGVfaWRdPW1haW4tZGlzaGA7XG4gICAgdXJsICs9IGAmaW5jbHVkZT0ke2luY2x1ZGVzLmpvaW4oJywnKX0ke3BsYW5uZXJGaWVsZHN9JmZpbHRlcltyZWNpcGVfdHlwZV9pZF09bWFpbi1kaXNoJmZpbHRlcltwcmltYXJ5X2NvbXBsZXRpb25fcGVyY109MTAwLDEwMCZmaWx0ZXJbZm9yY2VkX2NvbXBsZXRpb25fcGVyY109MTAwLDEwMGA7XG4gICAgdXJsICs9IGluQmFza2V0ID09PSB1bmRlZmluZWQgPyAnJyA6IGAmZmlsdGVyW2luX2Jhc2tldF09JHtpbkJhc2tldH1gO1xuICAgIHVybCArPSB0aGlzLmJ1aWxkZmlsdGVyVXJsRnJvbVByZWZlcmVuY2VzKCk7XG4gICAgcmV0dXJuIHRoaXMucG9zU2VydmljZS53YWl0Rm9yUG9zLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKHBvcyA9PiB7XG4gICAgICAgIHVybCArPSBgJmZpbHRlcltwb2ludF9vZl9zYWxlX2lkXT0ke3Bvcy5pZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHt9KS5waXBlKFxuICAgICAgICAgIG1hcCgocmV0dXJuZWRSZWNpcGVzOiBEb2N1bWVudENvbGxlY3Rpb248UmVjaXBlPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjaXBlcyA9IHRoaXMubmV3Q29sbGVjdGlvbigpO1xuICAgICAgICAgICAgcmVjaXBlcy5maWxsKHJldHVybmVkUmVjaXBlcyk7XG4gICAgICAgICAgICByZXR1cm4gcmVjaXBlcy5kYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBtYXhQbGFubmFibGVSZWNpcGVzKGJ1ZGdldDogbnVtYmVyLCBndWVzdHM6IG51bWJlciwgaW5CYXNrZXQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBsZXQgdXJsID0gTUlBTV9BUElfSE9TVCArICdyZWNpcGVzL3BsYW5fbWF4X3JlY2lwZXMnO1xuICAgIHVybCArPSBgP2J1ZGdldD0ke2J1ZGdldH0mZmlsdGVyW2d1ZXN0c109JHtndWVzdHN9JmZpbHRlcltyZWNpcGVfdHlwZV9pZF09bWFpbi1kaXNoJmZpbHRlcltwcmltYXJ5X2NvbXBsZXRpb25fcGVyY109MTAwLDEwMCZmaWx0ZXJbZm9yY2VkX2NvbXBsZXRpb25fcGVyY109MTAwLDEwMGA7XG4gICAgdXJsICs9IGluQmFza2V0ID09PSB1bmRlZmluZWQgPyAnJyA6IGAmZmlsdGVyW2luX2Jhc2tldF09JHtpbkJhc2tldH1gO1xuICAgIHVybCArPSB0aGlzLmJ1aWxkZmlsdGVyVXJsRnJvbVByZWZlcmVuY2VzKCk7XG4gICAgcmV0dXJuIHRoaXMucG9zU2VydmljZS53YWl0Rm9yUG9zLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKHBvcyA9PiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgICB1cmwgKz0gYCZmaWx0ZXJbcG9pbnRfb2Zfc2FsZV9pZF09JHtwb3MuaWR9YCxcbiAgICAgICAge31cbiAgICAgICkpLFxuICAgICAgbWFwKChyZXN1bHQ6IHsgbWF4X3JlY2lwZXM6IG51bWJlciB9KSA9PiByZXN1bHQubWF4X3JlY2lwZXMpXG4gICAgKTtcbiAgfVxuXG4gIGdldEluZ3JlZGllbnRzQnlSZWNpcGVJZChyZWNpcGVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyYW1zOiBJUGFyYW1zID0ge1xuICAgICAgaW5jbHVkZTogWydpbmdyZWRpZW50cyddLFxuICAgICAgZmllbGRzOiB7IHJlY2lwZXM6IFsnaW5ncmVkaWVudHMnXSB9XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5nZXQocmVjaXBlSWQsIHBhcmFtcyk7XG4gIH1cblxuICBzZWFyY2goXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGZpbHRlcnM6IHtcbiAgICAgIHBhcnRuZXI6IGJvb2xlYW47XG4gICAgICBzdGF0dXNlcz86IHN0cmluZ1tdO1xuICAgICAgdHlwZXM6IHN0cmluZ1tdO1xuICAgICAgcHJvdmlkZXJzOiBzdHJpbmdbXTtcbiAgICAgIHBhY2thZ2VzOiBzdHJpbmdbXTtcbiAgICB9LFxuICAgIHBhZ2U6IHsgc2l6ZTogbnVtYmVyOyBudW1iZXI6IG51bWJlciB9LFxuICAgIGluY2x1ZGU6IHN0cmluZ1tdLFxuICAgIHNvcnQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPERvY3VtZW50Q29sbGVjdGlvbjxSZWNpcGU+PiB7XG4gICAgbGV0IHVybCA9IE1JQU1fQVBJX0hPU1QgKyBgcmVjaXBlcy9zZWFyY2g/bmFtZT0ke25hbWV9YDtcbiAgICB1cmwgKz0gYCZwYWdlW3NpemVdPSR7cGFnZS5zaXplIHx8IDIwfSZwYWdlW251bWJlcl09JHtwYWdlLm51bWJlciB8fCAxfSZwYXJ0bmVyPSR7ZmlsdGVycy5wYXJ0bmVyfWA7XG4gICAgZmlsdGVycy5zdGF0dXNlcy5mb3JFYWNoKHN0YXR1cyA9PiB1cmwgKz0gYCZyZWNpcGVfc3RhdHVzX2lkc1tdPSR7c3RhdHVzfWApO1xuICAgIHVybCArPSBmaWx0ZXJzLnR5cGVzLmxlbmd0aCA/IGAmZmlsdGVyW3JlY2lwZV90eXBlX2lkXT0ke2ZpbHRlcnMudHlwZXMuam9pbignLCcpfWAgOiAnJztcbiAgICB1cmwgKz0gZmlsdGVycy5wcm92aWRlcnMubGVuZ3RoID8gYCZmaWx0ZXJbcmVjaXBlX3Byb3ZpZGVyX2lkXT0ke2ZpbHRlcnMucHJvdmlkZXJzLmpvaW4oJywnKX1gIDogJyc7XG4gICAgdXJsICs9IGZpbHRlcnMucGFja2FnZXMubGVuZ3RoID8gYCZmaWx0ZXJbcGFja2FnZXNdPSR7ZmlsdGVycy5wYWNrYWdlcy5qb2luKCcsJyl9YCA6ICcnO1xuICAgIHVybCArPSBpbmNsdWRlLmxlbmd0aCA/IGAmaW5jbHVkZT0ke2luY2x1ZGUuam9pbignLCcpfWAgOiAnJztcbiAgICB1cmwgKz0gc29ydCA/IGAmc29ydD0ke3NvcnR9YCA6ICcnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwge30pLnBpcGUoXG4gICAgICBtYXAoKHJldHVybmVkUmVjaXBlczogRG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZT4pID0+IHtcbiAgICAgICAgY29uc3QgcmVjaXBlcyA9IHRoaXMubmV3Q29sbGVjdGlvbigpO1xuICAgICAgICByZWNpcGVzLmZpbGwocmV0dXJuZWRSZWNpcGVzKTtcbiAgICAgICAgcmV0dXJuIHJlY2lwZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBERVBSRUNBVEVEIC8gdXNlIFRUTCBpbnN0ZWFkXG4gIHByaXZhdGUgZ2V0T3JGZXRjaChyZWNpcGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZWNpcGU+IHtcbiAgICBjb25zdCByZWNpcGUgPSB0aGlzLnJlY2lwZXMuZmluZChyID0+IHIuaWQgPT09IHJlY2lwZUlkKTtcbiAgICBpZiAocmVjaXBlKSB7XG4gICAgICByZXR1cm4gb2YocmVjaXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0KHJlY2lwZUlkLCB7IGZpZWxkczogeyByZWNpcGVzOiBbJ251bWJlci1vZi1ndWVzdHMnLCAnbWVkaWEtdXJsJ10gfSB9KS5waXBlKFxuICAgICAgICBza2lwV2hpbGUociA9PiByLmlzX2xvYWRpbmcpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBoZWxwIHVzIHRvIGtlZXAgYSB0cmFjayBvZiByYW5kb21cbiAgICogYW5kIGF2b2lkIHRvIHNob3cgc2FtZSByZWNpcGUgbXV0aXBsZSB0aW1lc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0UmFuZG9tU2VlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJhbmRvbVNlZWQgPSBEYXRlLm5vdygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWxvYWRBbGxSZWNpcGVzKCk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkUmVjaXBlcyQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBzdWdnZXN0aW9uIHJlcXVlc3QgYm9keSBiYXNlZCBvbiBjb250ZXh0IHBhc3NlZCAmIGN1cnJlbnQgcmV0YWlsZXIgYmFza2V0XG4gICAqL1xuICBwcml2YXRlIGJ1aWxkU3VnZ2VzdGlvbkJvZHkoY29udGV4dDogeyBpZDogc3RyaW5nOyBoYXNIaWdoV2VpZ2h0PzogYm9vbGVhbiB9W10pOiBhbnkge1xuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBzaGVsZl9pbmdyZWRpZW50c19pZHM6IFtdLCAvLyBMb3cgcHJpb3JpdHkgcHJvZHVjdHNcbiAgICAgIGN1cnJlbnRfaW5ncmVkaWVudHNfaWRzOiBbXSwgLy8gSGlnaCBwcmlvcml0eSBwcm9kdWN0c1xuICAgICAgYmFza2V0X2luZ3JlZGllbnRzX2lkczogW10sXG4gICAgICBncm91cF9pZDogJydcbiAgICB9O1xuICAgIGNvbnRleHQuZm9yRWFjaChwcm9kdWN0ID0+IHtcbiAgICAgIGlmIChwcm9kdWN0Lmhhc0hpZ2hXZWlnaHQpIHtcbiAgICAgICAgYm9keS5jdXJyZW50X2luZ3JlZGllbnRzX2lkcy5wdXNoKHByb2R1Y3QuaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYm9keS5zaGVsZl9pbmdyZWRpZW50c19pZHMucHVzaChwcm9kdWN0LmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBib2R5LmJhc2tldF9pbmdyZWRpZW50c19pZHMgPSB0aGlzLnN1cHBsaWVyc1NlcnZpY2UubGFzdFN1cHBsaWVyQ2FydC5tYXAocCA9PiBwLmlkKTtcbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRmaWx0ZXJVcmxGcm9tUHJlZmVyZW5jZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5wcmVmZXJlbmNlc1NlcnZpY2UuYWRkUHJlZmVyZW5jZXNUb1JlbW90ZUZpbHRlcnMoKSkubWFwKChbaywgdl0pID0+IGAmZmlsdGVyWyR7a31dPSR7dn1gKS5qb2luKCcnKTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHotaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL190eXBlcy9idWlsZGVkL21lYWx6LWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24gfSBmcm9tICdtaWFtLWpzb25hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGUsIFN1cHBsaWVyIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBDb21wYXJhYmxlUHJvZHVjdCB9IGZyb20gJy4vY29tcGFyYWJsZS1wcm9kdWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBNZWFsekludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBNZXRob2QgdG8gY2FsbCB3aGVuIHRoZSB1c2VyIGJlZ2lucyB0aGUgcGF5bWVudCBwcm9jZWR1cmUgKHR5cGljYWxseSB3aGVuIHRoZXkgY2xpY2tcbiAgICogb24gYSBcIkNvbmZpcm0gbXkgY2FydFwiIGJ1dHRvbilcbiAgICogQHBhcmFtIHRvdGFsUHJpY2UgdGhlIHRvdGFsIHByaWNlIG9mIHlvdXIgYmFza2V0IChjYW4gYmUgYSBmbG9hdGluZyBvciBpbnRlZ2VyIG51bWJlcilcbiAgICovXG4gIHBheW1lbnRTdGFydGVkOiAodG90YWxQcmljZTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGFuYWx5dGljczoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgQW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZG9tYWluIFBsYXVzaWJsZSBkb21haW5cbiAgICAgKi9cbiAgICBpbml0OiAoZG9tYWluOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIG9uIGV2ZW50cyBhcyBhIHN0cmluZyBzZW50IGZyb20gQW5hbHl0aWNzXG4gICAgICovXG4gICAgZXZlbnRTZW50JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGluaXRcbiAgICAgKi9cbiAgICBzZXRBYlRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBiYXNrZXQ6IHtcbiAgICAvKipcbiAgICAgKiBFbWl0cyB0cnVlIHdoZW4gTWVhbHoncyBiYXNrZXQgaGFzIHN1Y2Nlc2Z1bGx5IGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAgICogRG9lcyBub3QgZW1pdCBhbnl0aGluZyBiZWZvcmUgb3IgYWZ0ZXIgdGhhdC5cbiAgICAgKi9cbiAgICBiYXNrZXRJc1JlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBGZXRjaCB0aGUgZmlyc3QgQmFza2V0IGVhcmx5IChiZWZvcmUgYW55IGFjdGlvbiByZXF1aXJlcyBpdCBvbiBNZWFseidzXG4gICAgICogc2lkZSksIHNvIHlvdSBjYW4gc3RhcnQgdGhlIGJhc2tldC1zeW5jIGVhcmxpZXJcbiAgICAgKi9cbiAgICBpbml0aWFsaXplOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlc2V0cyBNZWFseidzIGJhc2tldCA6IGVtcHRpZXMgYWxsIHByb2R1Y3RzICYgcmVjaXBlcyBhZGRlZCBieSB0aGUgdXNlclxuICAgICAqIC8hXFwgV2UgaGVhdmlseSByZWNvbW1lbmQgbm90IHRvIHVzZSB0aGlzIG1ldGhvZCBleGNlcHQgaW4gdGhlIGNvbnNvbGUgZm9yIHRlc3RpbmcgcHVycG9zZXMgLyFcXFxuICAgICAqL1xuICAgIHJlc2V0OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIElmIHlvdSBoYXZlIGRpZmZlcmVudCBwcmljZSB0YWJsZXMgKG9yIHByaWNlYm9va3MpIGZvciB0aGUgc2FtZSBwb2ludCBvZiBzYWxlLCB5b3UgY2FuIGNhbGwgdGhpc1xuICAgICAqIG1ldGhvZCB0byBtYWtlIE1lYWx6IGtub3cgb24gd2hpY2ggcHJpY2Vib29rIHlvdSBhcmUgdXNpbmdcbiAgICAgKiBGb3IgZXhhbXBsZSwgcHJpY2VzIGNhbiBiZSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIGlmIHRoZSB1c2VyIGNob3NlIGhvbWUgZGVsaXZlcnkgb3IgZHJpdmUtaW5cbiAgICAgKi9cbiAgICB1cGRhdGVQcmljZWJvb2s6IChwcmljZWJvb2tOYW1lOiBzdHJpbmcpID0+IE9ic2VydmFibGU8dm9pZD47XG4gICAgLyoqXG4gICAgICogQHJldHVybnMgQSBCZWhhdmlvclN1YmplY3QgdGhhdCBlbWl0cyB0aGUgY3VycmVudCBudW1iZXIgb2YgcmVjaXBlcyBpbiBNZWFseidzIEJhc2tldFxuICAgICAqL1xuICAgIHJlY2lwZUNvdW50OiAoKSA9PiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIHByZXZpZXcgYnkgY2FsbGluZyB0aGUgYG9wZW5CYXNrZXRgIG1ldGhvZCBvZiB0aGUgYHJlY2lwZXNTZXJ2aWNlYC5cbiAgICAgKi9cbiAgICBvcGVuUHJldmlldzogKGFuYWx5dGljc1BhdGg/OiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogLyFcXCBEZWJ1ZyBvbmx5OiBJZiBuby1zdXBwbGllciBtb2RlIGlzIGFjdGl2YXRlZCwgb3ZlcnJpZGUgdGhlIGJhc2Ugb2YgdGhlIHRyYW5zZmVyIHVybCB3aXRoIGFuIG90aGVyIHVybFxuICAgICAqIGV4OiBpZiB0cmFuc2ZlciB1cmwgaXMgJ2h0dHBzOi8vdGVzdC5jb20vcmVjaXBlcz9wYXJhbTE9eCxwYXJhbTI9eSdcbiAgICAgKiBhbmQgb3ZlcnJpZGVUcmFuc2ZlclVybCBpcyBjYWxsZWQgd2l0aCAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3JlY2V0dGVzJ1xuICAgICAqIHRyYW5zZmVyIHVybCB3aWxsIGJlY29tZSAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3JlY2V0dGVzP3BhcmFtMT14LHBhcmFtMj15J1xuICAgICAqL1xuICAgIG92ZXJyaWRlVHJhbnNmZXJVcmw6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICBiYXNrZXRTeW5jOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBpcyBjYWxsZWQgd2hlbiBNZWFseidzIGJhc2tldCBjaGFuZ2VzIHRvIHVwZGF0ZSB0aGUgdXNlcidzIGNhcnQgYWNjb3JkaW5nbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoUHJvZHVjdHNUb0NhcnQgYSBtZXRob2QgdGhhdCB1cGRhdGVzIHRoZSB1c2VyJ3MgY2FydCB3aXRoIHRoZSBwcm9kdWN0cyBwYXNzZWQgaW4gcGFyYW1ldGVyLCBieSBhZGRpbmdcbiAgICAgKiBwcm9kdWN0cyBpZiB0aGVpciBxdWFudGl0eSBpcyBwb3NpdGl2ZSwgYW5kIHJlbW92aW5nIHRoZW0gaWYgdGhlaXIgcXVhbnRpdHkgaXMgbmVnYXRpdmVcbiAgICAgKi9cbiAgICBkZWZpbmVQdXNoUHJvZHVjdHNUb0NhcnQ6IChwdXNoUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IGFkZHMgbmV3IHByb2R1Y3RzIHRvIHVwZGF0ZSB0aGUgdXNlcidzIGNhcnQgYWNjb3JkaW5nbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoUHJvZHVjdHNUb0NhcnQgYSBtZXRob2QgdGhhdCBhZGRzIHRoZSBwcm9kdWN0cyBwYXNzZWQgaW4gcGFyYW1ldGVyIHRvIHRoZSB1c2VyJ3MgY2FydFxuICAgICAqL1xuICAgIGRlZmluZUFkZFByb2R1Y3RzVG9DYXJ0OiAoYWRkUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IHJlbW92ZXMgc29tZSBwcm9kdWN0cyB0byB1cGRhdGUgdGhlIHVzZXIncyBjYXJ0IGFjY29yZGluZ2x5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHVzaFByb2R1Y3RzVG9DYXJ0IGEgbWV0aG9kIHRoYXQgcmVtb3ZlcyB0aGUgcHJvZHVjdHMgcGFzc2VkIGluIHBhcmFtZXRlciBmcm9tIHRoZSB1c2VyJ3MgY2FydCAodGhlIHF1YW50aXR5IGF0dHJpYnV0ZSBvZlxuICAgICAqIGVhY2ggcHJvZHVjdCBpcyBhIG5lZ2F0aXZlIG51bWJlciB0byBpbmRpY2F0ZSB0aGF0IGl0IGlzIHRoZSBxdWFudGl0eSB0byByZW1vdmUpXG4gICAgICovXG4gICAgZGVmaW5lUmVtb3ZlUHJvZHVjdHNGcm9tQ2FydDogKHJlbW92ZVByb2R1Y3RzRnJvbUNhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IGNoYW5nZXMgdG8gdXBkYXRlIHRoZSB1c2VyJ3MgY2FydCBhY2NvcmRpbmdseVxuICAgICAqXG4gICAgICogQHBhcmFtIHB1c2hQcm9kdWN0c1RvQ2FydCBhIG1ldGhvZCB0aGF0IHVwZGF0ZXMgdGhlIHVzZXIncyBjYXJ0IHdpdGggdGhlIHBydWR1Y3RzIHBhc3NlZCBpbiBwYXJhbWV0ZXIsIGJ5IGFkZGluZ1xuICAgICAqIHByb2R1Y3RzIGlmIHRoZWlyIHF1YW50aXR5IGlzIHBvc2l0aXZlLCBhbmQgcmVtb3ZpbmcgdGhlbSBpZiB0aGVpciBxdWFudGl0eSBpcyBuZWdhdGl2ZVxuICAgICAqL1xuICAgIGRlZmluZVB1c2hCYXNrZXRFbnRyaWVzVG9CYXNrZXQ6IChwdXNoUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIG5vdGlmeSBNZWFseiB0aGF0IHRoZSB1c2VyJ3MgY2FydCBoYXMgYmVlbiB1cGRhdGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tcGFyYWJsZVByb2R1Y3RzIFRoZSBwcm9kdWN0cyBpbiB0aGUgdXNlcidzIGNhcnRcbiAgICAgKi9cbiAgICByZXRhaWxlckJhc2tldENoYW5nZWQ6IChjb21wYXJhYmxlUHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBub3RpZnkgTWVhbHogdGhhdCB0aGUgdXNlcidzIGNhcnQgd2FzIHBhaWRcbiAgICAgKiBNZWFseiB0aGVuIHJlZnJlc2hlcyB0aGUgYmFza2V0IGZvciB0aGUgbmV4dCB1c2VyJ3MgY2FydFxuICAgICAqXG4gICAgICogQHBhcmFtIHRvdGFsIFRoZSB0b3RhbCBwcmljZSBvZiB0aGUgY2FydCBwYWlkXG4gICAgICovXG4gICAgaGFuZGxlUGF5bWVudDogKHRvdGFsOiBudW1iZXIpID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgY29uZmlnOiB7XG4gICAgbWVhbHpMb2dzOiAocGFyYW06ICdub25lJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnYWxsJykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBmZWF0dXJlczoge1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIHJlY2lwZXMgdG8gZGlzcGxheSBhIHZpZGVvIGluc3RlYWQgb2YgdGhlaXIgcGljdHVyZSwgaWYgdGhlcmUgaXMgYSB2aWRlbyBmb3IgdGhlIHJlY2lwZVxuICAgICAqL1xuICAgIGVuYWJsZVZpZGVvUmVjaXBlczogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSB0aGUgY2F0YWxvZyB0byBkaXNwbGF5IGFydGljbGVzLCBpZiB0aGVpciBhcmUgcGFja2FnZXMgdGhhdCBjb250YWluIGFueSBhcnRpY2xlc1xuICAgICAqL1xuICAgIGVuYWJsZUFydGljbGVzSW5DYXRhbG9nOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gYXV0aG9yaXplIE1lYWx6IHRvIGFzayBmb3IgdXNlciBwcmVmZXJlbmNlcyB0aGUgZmlyc3QgdGltZSB1c2VycyB2aWV3IHRoZSByZWNpcGUgY2F0YWxvZ1xuICAgICAqL1xuICAgIGVuYWJsZVVzZXJQcmVmZXJlbmNlczogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSB0YWdzIGRpc3BsYXlpbmcgb24gcmVjaXBlLWRldGFpbHNcbiAgICAgKi9cbiAgICBlbmFibGVUYWdzT25SZWNpcGVzOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIHRoZSBtZWFscy1wbGFubmVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIG9mIHRoZSBwYWdlIHdoZXJlIHlvdSBpbmplY3QgdGhlIG1lYWxzIHBsYW5uZXJcbiAgICAgKiBAcGFyYW0gYW50aUluZmxhdGlvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGFudGkgaW5mbGF0aW9uXG4gICAgICovXG4gICAgZW5hYmxlTWVhbHNQbGFubmVyOiAodXJsOiBzdHJpbmcsIGFudGlJbmZsYXRpb24/OiBib29sZWFuKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgU0VPIChUaXRsZSBhbmQgbWV0YSB0YWdzIG9uIHJlY2lwZSBkaXNwbGF5KVxuICAgICAqL1xuICAgIGVuYWJsZVNlbzogKCkgPT4gdm9pZFxuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIGd1ZXN0cyBpbnB1dCBvbiBteS1tZWFscyBjYXJkc1xuICAgICAqL1xuICAgIGVuYWJsZUd1ZXN0c0lucHV0T25NeU1lYWxzOiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgY29sbGFwc2luZyBvZiB1bmF2YWlsYWJsZSBwcm9kdWN0cyBieSBkZWZhdWx0XG4gICAgICogQGRlcHJlY2F0ZWQgTm90IHVzZWQgYW55bW9yZVxuICAgICAqL1xuICAgIGNvbGxhcHNlVW5hdmFpbGFibGVQcm9kdWN0c0J5RGVmYXVsdDogKCkgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBob29rOiB7XG4gICAgLyoqXG4gICAgICogU2V0IHVwIGEgY2FsbGJhY2sgd2hpY2ggTWVhbHogd2lsbCBjYWxsIGJlZm9yZSBhZGRpbmcgYSByZWNpcGUgdG8gdGhlIHVzZXIncyBjYXJ0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgYSBtZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nIHR3byBwYXJhbWV0ZXJzIDpcbiAgICAgKiAgLSBpc0xvZ2dlZCwgdHJ1ZSBpZiB0aGUgdXNlciBpcyBsb2dnZWQgKGFjY29yZGluZyB0byBNZWFseiwgc2VlIHVzZXIubG9hZFdpdGhFeHRJZCBmb3IgbW9yZSlcbiAgICAgKiAgLSBpc1Bvc1ZhbGlkIHRydWUgaWYgdGhlIFBvaW50T2ZTYWxlIGlzIHJlY29nbml6ZWQgYnkgTWVhbHpcbiAgICAgKiBUeXBpY2FsbHkgeW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgdG8gc2hvdyB5b3VyIGNvbm5leGlvbiBwYWdlIGlmIHRoZSB1c2VyIHRyaWVzIHRvIGFkZCBhIHJlY2lwZSB3aGlsZSBsb2dnZWQgb3V0XG4gICAgICogb3IgdG8gc2hvdyB5b3VyIHBvaW50IG9mIHNhbGUgcGlja2VyIGlmIHRoZSB1c2VyIGhhcyBub3QgY2hvc2VuIG9uZVxuICAgICAqL1xuICAgIHNldEhvb2tDYWxsYmFjazogKGNhbGxiYWNrOiAoaXNMb2dnZWQsIGlzUG9zVmFsaWQpID0+IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogU2V0IHVwIGEgY2FsbGJhY2sgd2hpY2ggTWVhbHogd2lsbCBjYWxsIHdoZW4gaXQgbmVlZHMgdG8gZm9yY2UgdGhlIFBPU1xuICAgICAqIChvbmx5IHVzZWQgd2hlbiB0cmFuZmVyaW5nIGEgYmFza2V0IGZyb20gYW4gYWZmaWxpYXRlZCB3ZWJzaXRlKVxuICAgICAqXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIGEgbWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgcGFzc2luZyA6XG4gICAgICogIC0gcG9zRXh0SWQsIHRoZSBpZCBvZiB0aGUgUE9TIChpbiB5b3VyIGRhdGFiYXNlKVxuICAgICAqL1xuICAgIHNldEZvcmNlUG9zQ2FsbGJhY2s6IChjYWxsYmFjazogKHBvc0V4dElkOiBzdHJpbmcpID0+IGJvb2xlYW4pID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcG9zOiB7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogb2YgdGhlIHBvaW50IG9mIHNhbGUgdGhlIHVzZXIgaXMgY3VycmVudGx5IG9uLiBEbyBub3QgZm9yZ2V0IHRvIGNhbGwgdGhlIG1ldGhvZFxuICAgICAqIGlmIGl0IGNoYW5nZXMgYWZ0ZXIgdXNlciBsb2FkcyB0aGUgcGFnZVxuICAgICAqXG4gICAgICogQHBhcmFtIGV4dGVybmFsSWQgdGhlIGlkIG9mIHRoZSBQb2ludE9mU2FsZSBpbiBjbGllbnQncyBkYXRhYmFzZVxuICAgICAqL1xuICAgIGxvYWQ6IChleHRlcm5hbElkKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdGhhdCB3aWxsIGJlIG1vdmVkIGVsc2V3aGVyZSBzb29uLiBEbyBub3QgY2FsbFxuICAgICAqL1xuICAgIGdldEJ5QWRkcmVzczogKGFkZHJlc3M6IHN0cmluZywgcmFkaXVzOiBzdHJpbmcsIHN1cHBsaWVyczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBvaW50T2ZTYWxlPj47XG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdGhhdCB3aWxsIGJlIG1vdmVkIGVsc2V3aGVyZSBzb29uLiBEbyBub3QgY2FsbFxuICAgICAqL1xuICAgIGdldEJ5Q29vcmRpbmF0ZXM6IChsYXRpdHVkZTogbnVtYmVyLCBsb25naXR1ZGU6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIHN1cHBsaWVyczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBvaW50T2ZTYWxlPj47XG5cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBubyBzdXBwbGllciBvbmJvYXJkaW5nIHBvcHVwXG4gICAgICovXG4gICAgb3Blbk5vU3VwcGxpZXJPbmJvYXJkaW5nOiAoKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHJlY2lwZXM6IHtcbiAgICAvKipcbiAgICAgKiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYSB2YWx1ZSB3aGVuIHRoZSByZWNpcGUtbW9kYWwgaXMgY2xvc2VkXG4gICAgICovXG4gICAgaGlkZGVuOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEFuIEV2ZW50RW1pdHRlciB0aGF0IGVtaXRzIGEgdmFsdWUgd2hlbiB0aGUgXCJBZGQgYWxsIGluZ3JlZGllbnRzXCIgQ1RBIG9uIHJlY2lwZS1kZXRhaWxzIGlzIGNsaWNrZWRcbiAgICAgKi9cbiAgICBhZGRBbGxJbmdyZWRpZW50c0NUQVdhc0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjx7IGluZ3JlZGllbnRzQWRkZWQ6IG51bWJlcjsgaW5ncmVkaWVudHNUb3RhbDogbnVtYmVyIH0+O1xuICAgIC8qKlxuICAgICAqIENhbGwgd2l0aCBhbiB1cmwgb2YgYSBwaWN0dXJlIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBwaWN0dXJlIGRpc3BsYXllZCBpZiBhbiBpbmdyZWRpZW50IGRvZXNuJ3QgaGF2ZSBhIHBpY3R1cmVcbiAgICAgKiBhbmQgaWYgaW5ncmVkaWVudHMgcGljdHVyZSBoYXZlIGJlZW4gZW5hYmxlZCB3aXRoIHJlY2lwZXMuc2hvdWxkRGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHModHJ1ZSlcbiAgICAgKi9cbiAgICBzZXREZWZhdWx0SW5ncmVkaWVudFBpY3R1cmU6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENhbGwgd2l0aCBhbiB1cmwgb2YgYSBwaWN0dXJlIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBwaWN0dXJlIGRpc3BsYXllZCBpZiBhIHJlY2lwZSBkb2Vzbid0IGhhdmUgYSBwaWN0dXJlXG4gICAgICovXG4gICAgc2V0RGVmYXVsdFJlY2lwZVBpY3R1cmU6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIGRlZmF1bHQgbGFiZWxzIGZvciBkaWZmaWN1bHR5IGxldmVsc1xuICAgICAqXG4gICAgICogQHBhcmFtIGxldmVscyBUaGUgbGlzdCBvZiBsYWJlbHMgdG8gb3ZlcnJpZGUgZm9yIGVhY2ggZGlmZmljdWx0eSAoZGlmZmljdWx0aWVzIGFyZSByZXNwZWN0aXZlbHkgMTogRWFzeSwgMjogTWVkaXVtLCAzOiBIYXJkKVxuICAgICAqIGV4YW1wbGUgOiBbe3ZhbHVlOiAxLCBsYWJlbDogXCJCZWdpbm5lclwifV0gdG8gdXBkYXRlIHRoZSBsYWJlbCBvZiBlYXN5IHJlY2lwZXMgdG8gXCJCZWdpbm5lclwiXG4gICAgICovXG4gICAgc2V0RGlmZmljdWx0eUxldmVsczogKGxldmVsczogeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSkgPT4gdm9pZDtcbiAgICAvLyAvKipcbiAgICAvLyAgKiAvIVxcIERFUFJFQ0FURUQ6IERPIE5PVCBVU0UgLyFcXFxuICAgIC8vICAqL1xuICAgIC8vICBzZXRSZWNpcGVzUHJpbWFyeUJ1dHRvbkFjdGlvbnM6IChkaXNwbGF5OiBib29sZWFuLCBhZGRUb0Jhc2tldDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAvLyAvKipcbiAgICAvLyAgKiAvIVxcIERFUFJFQ0FURUQ6IERPIE5PVCBVU0UgLyFcXFxuICAgIC8vICAqL1xuICAgIC8vIHNldFN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnM6IChkaXNwbGF5OiBib29sZWFuLCBhZGRUb0Jhc2tldDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBJZiBjYWxsZWQsIGFkZGluZyBvciByZW1vdmluZyBhbnkgcHJvZHVjdCB0byBvciBmcm9tIHRoZSBjYXJ0IHdpbGwgZGlzcGxheSBhIGNvbmZpcm1hdGlvbiB0b2FzdGVyXG4gICAgICovXG4gICAgc2hvd0NvbmZpcm1hdGlvblRvYXN0ZXI6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gc2hvdWxkIGlmIHNldCB0byB0cnVlLCB0aGUgcmVjaXBlLWNhcmRzIHdpbGwgZGlzcGxheSB0aGUgaW5ncmVkaWVudHMgb2YgdGhlaXIgcmVjaXBlXG4gICAgICovXG4gICAgc2hvdWxkRGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHM6IChzaG91bGQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcm91dGVyOiB7XG4gICAgLyoqXG4gICAgICogSW5mb3JtIE1lYWx6IG9mIHRoZSB1cmwgd2hlcmUgdGhlIGNhdGFsb2cgaXMgZm9yIHRoZSByZWRpcmVjdGlvbiBsaW5rIG9mIHJlY2lwZS1kZXRhaWxzXG4gICAgICovXG4gICAgc2V0UmVjaXBlQ2F0YWxvZ1VybDogKHVybD86IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBJbmZvcm0gTWVhbHogb2YgdGhlIHVybCB3aGVyZSB0aGUgb25ib2FyZGluZyBzZWN0aW9uIG9mIHRoZSBjYXRhbG9nIHNob3VsZCByZWRpcmVjdFxuICAgICAqL1xuICAgIHNldFJlY2lwZUluZm9MaW5rOiAodXJsPzogc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEluZm9ybSBNZWFseiBvZiB0aGUgdXJsIG9mIHRoZSByZXRhaWxlcidzIGlmIE1lYWx6IG5lZWRzIHRvIHJlZGlyZWN0IHRoZXJlXG4gICAgICovXG4gICAgc2V0UmV0YWlsZXJDYXJ0VXJsOiAodXJsPzogc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEluZm9ybSBNZWFseiBvZiB0aGUgdXJsIHdoZXJlIHRoZSBwcm9tb3Rpb25zIGFyZVxuICAgICAqL1xuICAgIHNldFByb21vdGlvbnNVcmw6ICh1cmw/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgc3VwcGxpZXI6IHtcbiAgICAvKipcbiAgICAgKiAvIVxcIFRoaXMgbmVlZHMgdG8gYmUgdGhlIGZpcnN0IG1ldGhvZCBjYWxsZWQsIGJlY2F1c2Ugbm90aGluZyB3aWxsIHdvcmsgaWYgdGhlIG9yaWdpbiBpc24ndCBzZXRcbiAgICAgKiBAcGFyYW0gb3JpZ2luIGFuIGlkZW50aWZpZXIgc3RyaW5nIHRoYXQgTWVhbHogcGFzc2VzIHRvIHRoZSBBUEkgd2l0aCBlYWNoIHJlcXVlc3QgdG8ga2VlcCB0cmFjayBvZiB0aGUgb3JpZ2luXG4gICAgICogb2YgdGhlIHJlcXVlc3RcbiAgICAgKi9cbiAgICBzZXRPcmlnaW46IChvcmlnaW46IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGluZm9ybSBNZWFseiBvZiB0aGUgc3VwcGxpZXIgdGhlIHVzZXIgaXMgY3VycmVudGx5IG9uLiBEbyBub3QgZm9yZ2V0IHRvIGNhbGwgdGhlIG1ldGhvZFxuICAgICAqIGlmIGl0IGNoYW5nZXMgYWZ0ZXIgdXNlciBsb2FkcyB0aGUgcGFnZSAoc2hvdWxkIG5vdCBoYXBwZW4gZXNjZXB0IGluIHZlcnkgc3BlY2lmaWMgY2FzZXMpXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VwcGxpZXJJZCB0aGUgU3VwcGxpZXIgaWQgaW4gTWVhbHoncyBkYXRhYmFzZVxuICAgICAqL1xuICAgIGxvYWQ6IChzdXBwbGllcklkOiBudW1iZXIgfCBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogMy1pbi0xIHZlcnNpb24gb2Ygc3VwcGxpZXIubG9hZCwgc3VwcGxpZXIuc2V0T3JpZ2luICYgYW5hbHl0aWNzLmluaXQsIHRoYXQgcmVxdWlyZXMgYSBzaW5nbGUgdG9rZW5cbiAgICAgKiBAcGFyYW0gdG9rZW4gYSBzaW5nbGUgdG9rZW4gY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gZm9yIHN1cHBsaWVySWQsIG9yaWdpbiAmIHBsYXVzaWJsZSBkb21haW5cbiAgICAgKi9cbiAgICBzZXR1cFdpdGhUb2tlbjogKHRva2VuOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICBnZXRBZmZpbGlhdGVTdXBwbGllcnM6ICgpID0+IE9ic2VydmFibGU8U3VwcGxpZXJbXT47XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgdXNlcjoge1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IG9mIHRoZSBpZCBvZiB0aGUgdXNlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBhIHN0cmluZyB1bmlxdWUgaWRlbnRpZmllciB0byB0aGUgdXNlclxuICAgICAqIEBwYXJhbSBmb3JiaWRQcm9maWxpbmcgaWYgc2V0IHRvIHRydWUsIGRlc2FjdGl2YXRlIHBlcnNvbmFsaXplZCBjb250ZW50IChwZXJzb25hbGl6ZWQgcmVjaXBlcyAmIHByb2R1Y3RzKVxuICAgICAqIEBwYXJhbSBpbml0QmFza2V0IERFUFJFQ0FURUQgLSBpZiBzZXQgdG8gdHJ1ZSwgZmV0Y2ggdGhlIEdyb2Nlcmllc0xpc3QgJiBCYXNrZXQgb2YgdGhlIHVzZXIgKHJlY29tbWFuZGVkIGFzXG4gICAgICogaXQgc2F2ZXMgdGltZSBsYXRlcilcbiAgICAgKi9cbiAgICBsb2FkV2l0aEV4dGVybmFsSWQ6IChpZDogc3RyaW5nLCBmb3JiaWRQcm9maWxpbmc/OiBib29sZWFuLCBpbml0QmFza2V0PzogYm9vbGVhbikgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+O1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IHRoYXQgdGhlIHVzZXIgaXMgYXV0aGxlc3Mgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBpZFxuICAgICAqIEBwYXJhbSBpZCBhdXRobGVzcy1pZCBmZXRjaGVkIGZyb20gdGhlIHJvdXRlIC9nZW5lcmF0ZS1hdXRobGVzcy10b2tlblxuICAgICAqIEBwYXJhbSBmb3JiaWRQcm9maWxpbmcgaWYgc2V0IHRvIHRydWUsIGRlc2FjdGl2YXRlIHBlcnNvbmFsaXplZCBjb250ZW50IChwZXJzb25hbGl6ZWQgcmVjaXBlcyAmIHByb2R1Y3RzKVxuICAgICAqL1xuICAgIGxvYWRXaXRoQXV0aGxlc3NJZDogKGlkOiBzdHJpbmcsIGZvcmJpZFByb2ZpbGluZz86IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogdGhhdCBwcm9maWxpbmcgcHJlZmVyZW5jZXMgaGF2ZSBiZWVuIHVwZGF0ZWRcbiAgICAgKiBAcGFyYW0gZm9yYmlkUHJvZmlsaW5nIGlmIHNldCB0byB0cnVlLCBkZXNhY3RpdmF0ZSBwZXJzb25hbGl6ZWQgY29udGVudCAocGVyc29uYWxpemVkIHJlY2lwZXMgJiBwcm9kdWN0cylcbiAgICAgKiBAcGFyYW0gdXNlcklkIHVzZXJJZCBvciBhdXRobGVzc0lkIG9mIHRoZSB1c2VyXG4gICAgICogQHBhcmFtIGlzQXV0aGxlc3MgaWYgdHJ1ZSBNZWFseiB3aWxsIHRyZWF0IHVzZXJJRCBhcyBhbiBhdXRobGVzcy1pZFxuICAgICAqL1xuICAgIHVwZGF0ZUZvcmJpZFByb2ZpbGluZzogKGZvcmJpZFByb2ZpbGluZzogYm9vbGVhbiwgdXNlcklkOiBzdHJpbmcsIGlzQXV0aGxlc3M6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogdGhhdCB0aGUgdXNlciBoYXMgbG9nZ2VkIG91dFxuICAgICAqL1xuICAgIHJlc2V0OiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHVzZXIgbGFuZ3VhZ2Ugd2l0aCBhIElTTyA2MzktMSBjb2RlIG9yIGN1c3RvbSBsYW5ndWFnZSBuYW1lXG4gICAgICogQHBhcmFtIGxhbmdcbiAgICAgKi9cbiAgICBzZXRMYW5ndWFnZTogKGxhbmc6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIElmIHlvdXIgd2Vic2l0ZSBoYXMgYSBcImZhdm9yaXRlIHByb2R1Y3RzXCIgZmVhdHVyZSwgeW91IGNhbiBwYXNzIHRoZSBpZHMgb2YgYWxsIHByb2R1Y3RzXG4gICAgICogd2hpY2ggdGhlIHVzZXIgaGFzIG1hcmtlZCBhcyBmYXZvcml0ZXMsIHNvIHRoZXkgY2FuIGJlIHByaW9yaXRpemVkIHdoZW4gYWRkaW5nIGEgcmVjaXBlXG4gICAgICogdG8gdGhlaXIgY2FydCwgaWYgb25lIG9mIHRoZW0gaXMgcmV0dXJuZWQgYXMgYSBtYXRjaGluZyBwcm9kdWN0IGZvciB0aGUgcmVjaXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZhdm9yaXRlUHJvZHVjdElkcyBhbiBhcnJheSBvZiBwcm9kdWN0IGlkcywgcGFzc2VkIGFzIHN0cmluZ1xuICAgICAqL1xuICAgIHNldEZhdm9yaXRlSXRlbXM6IChmYXZvcml0ZVByb2R1Y3RJZHM6IHN0cmluZ1tdKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyIGxvY2F0aW9uIGNhbiBiZSBzZXQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgaWYgdGhleSBhbGxvd2VkIGl0XG4gICAgICogQHBhcmFtIGNvb3JkcyBtdXN0IHByb3ZpZGUgbGF0aXR1ZGUgKG51bWJlcikgYW5kIGxvbmdpdHVkZSAobnVtYmVyKSBhbmQgb3B0aW9uYWxseSBhbiBhY2N1cmFjeSAobnVtYmVyKVxuICAgICAqL1xuICAgIHNldExvY2F0aW9uOiAoY29vcmRzOiBHZW9sb2NhdGlvblBvc2l0aW9uKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGV2ZW50czoge1xuICAgIHN0b3JlTG9jYXRvck9wZW5lZDogKCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPlxuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxsIHdpdGggdGhlIGhlaWdodCBpbiBweCBvZiB5b3VyIHdlYnNpdGUncyBoZWFkZXIgd2hlbiBpdCBpcyBzdGlja3kgc28gTWVhbHogY2FuIG9mZnNldCBpdHMgc3RpY2t5IGNvbXBvbmVudHNcbiAgICogSWYgbm90IGNhbGxlZCwgYW55IHN0aWNreSBjb21wb25lbnRzIGZyb20gTWVhbHogbWF5IGFwcGVhciBub3Qgc3RpY2sgY29ycmVjdGx5IGJlbG93IHlvdXIgaGVhZGVyXG4gICAqL1xuICBzZXRTdGlja3lIZWFkZXJIZWlnaHQ6IChoZWlnaHQ6IG51bWJlcikgPT4gdm9pZDtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdHdvIHRpbWVzIHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgKERFUFJFQ0FURUQpXG4gICAqIEBwYXJhbSBpY29uIGhhdmUgdG8gYmUgYSBrbm93ZWQgaWNvbiBuYW1lIHNlZSBzZWN0aW9uICdDdXN0b20gaWNvbnMnIGluIHJlYWQgbWVcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgbmV3IGljb25cbiAgICovXG4gIG92ZXJyaWRlSWNvbjogKGljb24sIHVybDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBQYXNzIGEgY2FsbGJhY2sgdGhhdCByZXR1cm5zIHRoZSBkZWZhdWx0IHNjcm9sbCBjb250YWluZXIgb2YgdGhlIHBhZ2Ugc28gbWVhbHogbW9kYWwgY2FuIGJsb2NrIHRoZSBzY3JvbGwgd2hlbiBvcGVuZWRcbiAgICogRGVmYXVsdCBjYWxsYmFjayByZXR1cm5zIGRvY3VtZW50LmJvZHlcbiAgICovXG4gIHNldERlZmF1bHRTY3JvbGxFbGVtZW50R2V0dGVyOiAoY2FsbGJhY2s6ICgpID0+IEhUTUxFbGVtZW50KSA9PiB2b2lkO1xufVxuIl19
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHotaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL190eXBlcy9idWlsZGVkL21lYWx6LWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24gfSBmcm9tICdtaWFtLWpzb25hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGUsIFN1cHBsaWVyIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBDb21wYXJhYmxlUHJvZHVjdCB9IGZyb20gJy4vY29tcGFyYWJsZS1wcm9kdWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBNZWFsekludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBNZXRob2QgdG8gY2FsbCB3aGVuIHRoZSB1c2VyIGJlZ2lucyB0aGUgcGF5bWVudCBwcm9jZWR1cmUgKHR5cGljYWxseSB3aGVuIHRoZXkgY2xpY2tcbiAgICogb24gYSBcIkNvbmZpcm0gbXkgY2FydFwiIGJ1dHRvbilcbiAgICogQHBhcmFtIHRvdGFsUHJpY2UgdGhlIHRvdGFsIHByaWNlIG9mIHlvdXIgYmFza2V0IChjYW4gYmUgYSBmbG9hdGluZyBvciBpbnRlZ2VyIG51bWJlcilcbiAgICovXG4gIHBheW1lbnRTdGFydGVkOiAodG90YWxQcmljZTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGFuYWx5dGljczoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgQW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZG9tYWluIFBsYXVzaWJsZSBkb21haW5cbiAgICAgKi9cbiAgICBpbml0OiAoZG9tYWluOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIG9uIGV2ZW50cyBhcyBhIHN0cmluZyBzZW50IGZyb20gQW5hbHl0aWNzXG4gICAgICovXG4gICAgZXZlbnRTZW50JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGluaXRcbiAgICAgKi9cbiAgICBzZXRBYlRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBiYXNrZXQ6IHtcbiAgICAvKipcbiAgICAgKiBFbWl0cyB0cnVlIHdoZW4gTWVhbHoncyBiYXNrZXQgaGFzIHN1Y2Nlc2Z1bGx5IGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAgICogRG9lcyBub3QgZW1pdCBhbnl0aGluZyBiZWZvcmUgb3IgYWZ0ZXIgdGhhdC5cbiAgICAgKi9cbiAgICBiYXNrZXRJc1JlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBGZXRjaCB0aGUgZmlyc3QgQmFza2V0IGVhcmx5IChiZWZvcmUgYW55IGFjdGlvbiByZXF1aXJlcyBpdCBvbiBNZWFseidzXG4gICAgICogc2lkZSksIHNvIHlvdSBjYW4gc3RhcnQgdGhlIGJhc2tldC1zeW5jIGVhcmxpZXJcbiAgICAgKi9cbiAgICBpbml0aWFsaXplOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlc2V0cyBNZWFseidzIGJhc2tldCA6IGVtcHRpZXMgYWxsIHByb2R1Y3RzICYgcmVjaXBlcyBhZGRlZCBieSB0aGUgdXNlclxuICAgICAqIC8hXFwgV2UgaGVhdmlseSByZWNvbW1lbmQgbm90IHRvIHVzZSB0aGlzIG1ldGhvZCBleGNlcHQgaW4gdGhlIGNvbnNvbGUgZm9yIHRlc3RpbmcgcHVycG9zZXMgLyFcXFxuICAgICAqL1xuICAgIHJlc2V0OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgZW1pdHMgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHJlY2lwZXMgaW4gTWVhbHoncyBCYXNrZXRcbiAgICAgKi9cbiAgICByZWNpcGVDb3VudDogKCkgPT4gT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBwcmV2aWV3IGJ5IGNhbGxpbmcgdGhlIGBvcGVuQmFza2V0YCBtZXRob2Qgb2YgdGhlIGByZWNpcGVzU2VydmljZWAuXG4gICAgICovXG4gICAgb3BlblByZXZpZXc6IChhbmFseXRpY3NQYXRoPzogc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIC8hXFwgRGVidWcgb25seTogSWYgbm8tc3VwcGxpZXIgbW9kZSBpcyBhY3RpdmF0ZWQsIG92ZXJyaWRlIHRoZSBiYXNlIG9mIHRoZSB0cmFuc2ZlciB1cmwgd2l0aCBhbiBvdGhlciB1cmxcbiAgICAgKiBleDogaWYgdHJhbnNmZXIgdXJsIGlzICdodHRwczovL3Rlc3QuY29tL3JlY2lwZXM/cGFyYW0xPXgscGFyYW0yPXknXG4gICAgICogYW5kIG92ZXJyaWRlVHJhbnNmZXJVcmwgaXMgY2FsbGVkIHdpdGggJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9yZWNldHRlcydcbiAgICAgKiB0cmFuc2ZlciB1cmwgd2lsbCBiZWNvbWUgJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9yZWNldHRlcz9wYXJhbTE9eCxwYXJhbTI9eSdcbiAgICAgKi9cbiAgICBvdmVycmlkZVRyYW5zZmVyVXJsOiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG4gIH07XG5cbiAgYmFza2V0U3luYzoge1xuICAgIC8qKlxuICAgICAqIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgaXMgY2FsbGVkIHdoZW4gTWVhbHoncyBiYXNrZXQgY2hhbmdlcyB0byB1cGRhdGUgdGhlIHVzZXIncyBjYXJ0IGFjY29yZGluZ2x5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHVzaFByb2R1Y3RzVG9DYXJ0IGEgbWV0aG9kIHRoYXQgdXBkYXRlcyB0aGUgdXNlcidzIGNhcnQgd2l0aCB0aGUgcHJvZHVjdHMgcGFzc2VkIGluIHBhcmFtZXRlciwgYnkgYWRkaW5nXG4gICAgICogcHJvZHVjdHMgaWYgdGhlaXIgcXVhbnRpdHkgaXMgcG9zaXRpdmUsIGFuZCByZW1vdmluZyB0aGVtIGlmIHRoZWlyIHF1YW50aXR5IGlzIG5lZ2F0aXZlXG4gICAgICovXG4gICAgZGVmaW5lUHVzaFByb2R1Y3RzVG9DYXJ0OiAocHVzaFByb2R1Y3RzVG9DYXJ0OiAocHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBpcyBjYWxsZWQgd2hlbiBNZWFseidzIGJhc2tldCBhZGRzIG5ldyBwcm9kdWN0cyB0byB1cGRhdGUgdGhlIHVzZXIncyBjYXJ0IGFjY29yZGluZ2x5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHVzaFByb2R1Y3RzVG9DYXJ0IGEgbWV0aG9kIHRoYXQgYWRkcyB0aGUgcHJvZHVjdHMgcGFzc2VkIGluIHBhcmFtZXRlciB0byB0aGUgdXNlcidzIGNhcnRcbiAgICAgKi9cbiAgICBkZWZpbmVBZGRQcm9kdWN0c1RvQ2FydDogKGFkZFByb2R1Y3RzVG9DYXJ0OiAocHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBpcyBjYWxsZWQgd2hlbiBNZWFseidzIGJhc2tldCByZW1vdmVzIHNvbWUgcHJvZHVjdHMgdG8gdXBkYXRlIHRoZSB1c2VyJ3MgY2FydCBhY2NvcmRpbmdseVxuICAgICAqXG4gICAgICogQHBhcmFtIHB1c2hQcm9kdWN0c1RvQ2FydCBhIG1ldGhvZCB0aGF0IHJlbW92ZXMgdGhlIHByb2R1Y3RzIHBhc3NlZCBpbiBwYXJhbWV0ZXIgZnJvbSB0aGUgdXNlcidzIGNhcnQgKHRoZSBxdWFudGl0eSBhdHRyaWJ1dGUgb2ZcbiAgICAgKiBlYWNoIHByb2R1Y3QgaXMgYSBuZWdhdGl2ZSBudW1iZXIgdG8gaW5kaWNhdGUgdGhhdCBpdCBpcyB0aGUgcXVhbnRpdHkgdG8gcmVtb3ZlKVxuICAgICAqL1xuICAgIGRlZmluZVJlbW92ZVByb2R1Y3RzRnJvbUNhcnQ6IChyZW1vdmVQcm9kdWN0c0Zyb21DYXJ0OiAocHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBpcyBjYWxsZWQgd2hlbiBNZWFseidzIGJhc2tldCBjaGFuZ2VzIHRvIHVwZGF0ZSB0aGUgdXNlcidzIGNhcnQgYWNjb3JkaW5nbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoUHJvZHVjdHNUb0NhcnQgYSBtZXRob2QgdGhhdCB1cGRhdGVzIHRoZSB1c2VyJ3MgY2FydCB3aXRoIHRoZSBwcnVkdWN0cyBwYXNzZWQgaW4gcGFyYW1ldGVyLCBieSBhZGRpbmdcbiAgICAgKiBwcm9kdWN0cyBpZiB0aGVpciBxdWFudGl0eSBpcyBwb3NpdGl2ZSwgYW5kIHJlbW92aW5nIHRoZW0gaWYgdGhlaXIgcXVhbnRpdHkgaXMgbmVnYXRpdmVcbiAgICAgKi9cbiAgICBkZWZpbmVQdXNoQmFza2V0RW50cmllc1RvQmFza2V0OiAocHVzaFByb2R1Y3RzVG9DYXJ0OiAocHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBub3RpZnkgTWVhbHogdGhhdCB0aGUgdXNlcidzIGNhcnQgaGFzIGJlZW4gdXBkYXRlZFxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXBhcmFibGVQcm9kdWN0cyBUaGUgcHJvZHVjdHMgaW4gdGhlIHVzZXIncyBjYXJ0XG4gICAgICovXG4gICAgcmV0YWlsZXJCYXNrZXRDaGFuZ2VkOiAoY29tcGFyYWJsZVByb2R1Y3RzOiBDb21wYXJhYmxlUHJvZHVjdFtdKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gbm90aWZ5IE1lYWx6IHRoYXQgdGhlIHVzZXIncyBjYXJ0IHdhcyBwYWlkXG4gICAgICogTWVhbHogdGhlbiByZWZyZXNoZXMgdGhlIGJhc2tldCBmb3IgdGhlIG5leHQgdXNlcidzIGNhcnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0b3RhbCBUaGUgdG90YWwgcHJpY2Ugb2YgdGhlIGNhcnQgcGFpZFxuICAgICAqL1xuICAgIGhhbmRsZVBheW1lbnQ6ICh0b3RhbDogbnVtYmVyKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGNvbmZpZzoge1xuICAgIG1lYWx6TG9nczogKHBhcmFtOiAnbm9uZScgfCAnd2FybicgfCAnZXJyb3InIHwgJ2FsbCcpID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgZmVhdHVyZXM6IHtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSByZWNpcGVzIHRvIGRpc3BsYXkgYSB2aWRlbyBpbnN0ZWFkIG9mIHRoZWlyIHBpY3R1cmUsIGlmIHRoZXJlIGlzIGEgdmlkZW8gZm9yIHRoZSByZWNpcGVcbiAgICAgKi9cbiAgICBlbmFibGVWaWRlb1JlY2lwZXM6ICgpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgdGhlIGNhdGFsb2cgdG8gZGlzcGxheSBhcnRpY2xlcywgaWYgdGhlaXIgYXJlIHBhY2thZ2VzIHRoYXQgY29udGFpbiBhbnkgYXJ0aWNsZXNcbiAgICAgKi9cbiAgICBlbmFibGVBcnRpY2xlc0luQ2F0YWxvZzogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGF1dGhvcml6ZSBNZWFseiB0byBhc2sgZm9yIHVzZXIgcHJlZmVyZW5jZXMgdGhlIGZpcnN0IHRpbWUgdXNlcnMgdmlldyB0aGUgcmVjaXBlIGNhdGFsb2dcbiAgICAgKi9cbiAgICBlbmFibGVVc2VyUHJlZmVyZW5jZXM6ICgpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgdGFncyBkaXNwbGF5aW5nIG9uIHJlY2lwZS1kZXRhaWxzXG4gICAgICovXG4gICAgZW5hYmxlVGFnc09uUmVjaXBlczogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSB0aGUgbWVhbHMtcGxhbm5lclxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBvZiB0aGUgcGFnZSB3aGVyZSB5b3UgaW5qZWN0IHRoZSBtZWFscyBwbGFubmVyXG4gICAgICogQHBhcmFtIGFudGlJbmZsYXRpb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBhbnRpIGluZmxhdGlvblxuICAgICAqL1xuICAgIGVuYWJsZU1lYWxzUGxhbm5lcjogKHVybDogc3RyaW5nLCBhbnRpSW5mbGF0aW9uPzogYm9vbGVhbikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIFNFTyAoVGl0bGUgYW5kIG1ldGEgdGFncyBvbiByZWNpcGUgZGlzcGxheSlcbiAgICAgKi9cbiAgICBlbmFibGVTZW86ICgpID0+IHZvaWRcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSBndWVzdHMgaW5wdXQgb24gbXktbWVhbHMgY2FyZHNcbiAgICAgKi9cbiAgICBlbmFibGVHdWVzdHNJbnB1dE9uTXlNZWFsczogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIGNvbGxhcHNpbmcgb2YgdW5hdmFpbGFibGUgcHJvZHVjdHMgYnkgZGVmYXVsdFxuICAgICAqIEBkZXByZWNhdGVkIE5vdCB1c2VkIGFueW1vcmVcbiAgICAgKi9cbiAgICBjb2xsYXBzZVVuYXZhaWxhYmxlUHJvZHVjdHNCeURlZmF1bHQ6ICgpID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgaG9vazoge1xuICAgIC8qKlxuICAgICAqIFNldCB1cCBhIGNhbGxiYWNrIHdoaWNoIE1lYWx6IHdpbGwgY2FsbCBiZWZvcmUgYWRkaW5nIGEgcmVjaXBlIHRvIHRoZSB1c2VyJ3MgY2FydFxuICAgICAqXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIGEgbWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgcGFzc2luZyB0d28gcGFyYW1ldGVycyA6XG4gICAgICogIC0gaXNMb2dnZWQsIHRydWUgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkIChhY2NvcmRpbmcgdG8gTWVhbHosIHNlZSB1c2VyLmxvYWRXaXRoRXh0SWQgZm9yIG1vcmUpXG4gICAgICogIC0gaXNQb3NWYWxpZCB0cnVlIGlmIHRoZSBQb2ludE9mU2FsZSBpcyByZWNvZ25pemVkIGJ5IE1lYWx6XG4gICAgICogVHlwaWNhbGx5IHlvdSBtaWdodCB3YW50IHRvIHVzZSB0aGlzIHRvIHNob3cgeW91ciBjb25uZXhpb24gcGFnZSBpZiB0aGUgdXNlciB0cmllcyB0byBhZGQgYSByZWNpcGUgd2hpbGUgbG9nZ2VkIG91dFxuICAgICAqIG9yIHRvIHNob3cgeW91ciBwb2ludCBvZiBzYWxlIHBpY2tlciBpZiB0aGUgdXNlciBoYXMgbm90IGNob3NlbiBvbmVcbiAgICAgKi9cbiAgICBzZXRIb29rQ2FsbGJhY2s6IChjYWxsYmFjazogKGlzTG9nZ2VkLCBpc1Bvc1ZhbGlkKSA9PiBib29sZWFuKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFNldCB1cCBhIGNhbGxiYWNrIHdoaWNoIE1lYWx6IHdpbGwgY2FsbCB3aGVuIGl0IG5lZWRzIHRvIGZvcmNlIHRoZSBQT1NcbiAgICAgKiAob25seSB1c2VkIHdoZW4gdHJhbmZlcmluZyBhIGJhc2tldCBmcm9tIGFuIGFmZmlsaWF0ZWQgd2Vic2l0ZSlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBhIG1ldGhvZCB0aGF0IHdpbGwgYmUgY2FsbGVkIHBhc3NpbmcgOlxuICAgICAqICAtIHBvc0V4dElkLCB0aGUgaWQgb2YgdGhlIFBPUyAoaW4geW91ciBkYXRhYmFzZSlcbiAgICAgKi9cbiAgICBzZXRGb3JjZVBvc0NhbGxiYWNrOiAoY2FsbGJhY2s6IChwb3NFeHRJZDogc3RyaW5nKSA9PiBib29sZWFuKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHBvczoge1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IG9mIHRoZSBwb2ludCBvZiBzYWxlIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBvbi4gRG8gbm90IGZvcmdldCB0byBjYWxsIHRoZSBtZXRob2RcbiAgICAgKiBpZiBpdCBjaGFuZ2VzIGFmdGVyIHVzZXIgbG9hZHMgdGhlIHBhZ2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBleHRlcm5hbElkIHRoZSBpZCBvZiB0aGUgUG9pbnRPZlNhbGUgaW4gY2xpZW50J3MgZGF0YWJhc2VcbiAgICAgKi9cbiAgICBsb2FkOiAoZXh0ZXJuYWxJZCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kIHRoYXQgd2lsbCBiZSBtb3ZlZCBlbHNld2hlcmUgc29vbi4gRG8gbm90IGNhbGxcbiAgICAgKi9cbiAgICBnZXRCeUFkZHJlc3M6IChhZGRyZXNzOiBzdHJpbmcsIHJhZGl1czogc3RyaW5nLCBzdXBwbGllcnM6IHN0cmluZ1tdKSA9PiBPYnNlcnZhYmxlPERvY3VtZW50Q29sbGVjdGlvbjxQb2ludE9mU2FsZT4+O1xuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kIHRoYXQgd2lsbCBiZSBtb3ZlZCBlbHNld2hlcmUgc29vbi4gRG8gbm90IGNhbGxcbiAgICAgKi9cbiAgICBnZXRCeUNvb3JkaW5hdGVzOiAobGF0aXR1ZGU6IG51bWJlciwgbG9uZ2l0dWRlOiBudW1iZXIsIHJhZGl1czogbnVtYmVyLCBzdXBwbGllcnM6IHN0cmluZ1tdKSA9PiBPYnNlcnZhYmxlPERvY3VtZW50Q29sbGVjdGlvbjxQb2ludE9mU2FsZT4+O1xuXG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgbm8gc3VwcGxpZXIgb25ib2FyZGluZyBwb3B1cFxuICAgICAqL1xuICAgIG9wZW5Ob1N1cHBsaWVyT25ib2FyZGluZzogKCkgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICByZWNpcGVzOiB7XG4gICAgLyoqXG4gICAgICogQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgdmFsdWUgd2hlbiB0aGUgcmVjaXBlLW1vZGFsIGlzIGNsb3NlZFxuICAgICAqL1xuICAgIGhpZGRlbjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBBbiBFdmVudEVtaXR0ZXIgdGhhdCBlbWl0cyBhIHZhbHVlIHdoZW4gdGhlIFwiQWRkIGFsbCBpbmdyZWRpZW50c1wiIENUQSBvbiByZWNpcGUtZGV0YWlscyBpcyBjbGlja2VkXG4gICAgICovXG4gICAgYWRkQWxsSW5ncmVkaWVudHNDVEFXYXNDbGlja2VkOiBFdmVudEVtaXR0ZXI8eyBpbmdyZWRpZW50c0FkZGVkOiBudW1iZXI7IGluZ3JlZGllbnRzVG90YWw6IG51bWJlciB9PjtcbiAgICAvKipcbiAgICAgKiBDYWxsIHdpdGggYW4gdXJsIG9mIGEgcGljdHVyZSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgcGljdHVyZSBkaXNwbGF5ZWQgaWYgYW4gaW5ncmVkaWVudCBkb2Vzbid0IGhhdmUgYSBwaWN0dXJlXG4gICAgICogYW5kIGlmIGluZ3JlZGllbnRzIHBpY3R1cmUgaGF2ZSBiZWVuIGVuYWJsZWQgd2l0aCByZWNpcGVzLnNob3VsZERpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzKHRydWUpXG4gICAgICovXG4gICAgc2V0RGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlOiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsIHdpdGggYW4gdXJsIG9mIGEgcGljdHVyZSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgcGljdHVyZSBkaXNwbGF5ZWQgaWYgYSByZWNpcGUgZG9lc24ndCBoYXZlIGEgcGljdHVyZVxuICAgICAqL1xuICAgIHNldERlZmF1bHRSZWNpcGVQaWN0dXJlOiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBPdmVycmlkZSBkZWZhdWx0IGxhYmVscyBmb3IgZGlmZmljdWx0eSBsZXZlbHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsZXZlbHMgVGhlIGxpc3Qgb2YgbGFiZWxzIHRvIG92ZXJyaWRlIGZvciBlYWNoIGRpZmZpY3VsdHkgKGRpZmZpY3VsdGllcyBhcmUgcmVzcGVjdGl2ZWx5IDE6IEVhc3ksIDI6IE1lZGl1bSwgMzogSGFyZClcbiAgICAgKiBleGFtcGxlIDogW3t2YWx1ZTogMSwgbGFiZWw6IFwiQmVnaW5uZXJcIn1dIHRvIHVwZGF0ZSB0aGUgbGFiZWwgb2YgZWFzeSByZWNpcGVzIHRvIFwiQmVnaW5uZXJcIlxuICAgICAqL1xuICAgIHNldERpZmZpY3VsdHlMZXZlbHM6IChsZXZlbHM6IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10pID0+IHZvaWQ7XG4gICAgLy8gLyoqXG4gICAgLy8gICogLyFcXCBERVBSRUNBVEVEOiBETyBOT1QgVVNFIC8hXFxcbiAgICAvLyAgKi9cbiAgICAvLyAgc2V0UmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zOiAoZGlzcGxheTogYm9vbGVhbiwgYWRkVG9CYXNrZXQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLy8gLyoqXG4gICAgLy8gICogLyFcXCBERVBSRUNBVEVEOiBETyBOT1QgVVNFIC8hXFxcbiAgICAvLyAgKi9cbiAgICAvLyBzZXRTdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zOiAoZGlzcGxheTogYm9vbGVhbiwgYWRkVG9CYXNrZXQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogSWYgY2FsbGVkLCBhZGRpbmcgb3IgcmVtb3ZpbmcgYW55IHByb2R1Y3QgdG8gb3IgZnJvbSB0aGUgY2FydCB3aWxsIGRpc3BsYXkgYSBjb25maXJtYXRpb24gdG9hc3RlclxuICAgICAqL1xuICAgIHNob3dDb25maXJtYXRpb25Ub2FzdGVyOiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHNob3VsZCBpZiBzZXQgdG8gdHJ1ZSwgdGhlIHJlY2lwZS1jYXJkcyB3aWxsIGRpc3BsYXkgdGhlIGluZ3JlZGllbnRzIG9mIHRoZWlyIHJlY2lwZVxuICAgICAqL1xuICAgIHNob3VsZERpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzOiAoc2hvdWxkOiBib29sZWFuKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHJvdXRlcjoge1xuICAgIC8qKlxuICAgICAqIEluZm9ybSBNZWFseiBvZiB0aGUgdXJsIHdoZXJlIHRoZSBjYXRhbG9nIGlzIGZvciB0aGUgcmVkaXJlY3Rpb24gbGluayBvZiByZWNpcGUtZGV0YWlsc1xuICAgICAqL1xuICAgIHNldFJlY2lwZUNhdGFsb2dVcmw6ICh1cmw/OiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogSW5mb3JtIE1lYWx6IG9mIHRoZSB1cmwgd2hlcmUgdGhlIG9uYm9hcmRpbmcgc2VjdGlvbiBvZiB0aGUgY2F0YWxvZyBzaG91bGQgcmVkaXJlY3RcbiAgICAgKi9cbiAgICBzZXRSZWNpcGVJbmZvTGluazogKHVybD86IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBJbmZvcm0gTWVhbHogb2YgdGhlIHVybCBvZiB0aGUgcmV0YWlsZXIncyBpZiBNZWFseiBuZWVkcyB0byByZWRpcmVjdCB0aGVyZVxuICAgICAqL1xuICAgIHNldFJldGFpbGVyQ2FydFVybDogKHVybD86IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBJbmZvcm0gTWVhbHogb2YgdGhlIHVybCB3aGVyZSB0aGUgcHJvbW90aW9ucyBhcmVcbiAgICAgKi9cbiAgICBzZXRQcm9tb3Rpb25zVXJsOiAodXJsPzogc3RyaW5nKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHN1cHBsaWVyOiB7XG4gICAgLyoqXG4gICAgICogLyFcXCBUaGlzIG5lZWRzIHRvIGJlIHRoZSBmaXJzdCBtZXRob2QgY2FsbGVkLCBiZWNhdXNlIG5vdGhpbmcgd2lsbCB3b3JrIGlmIHRoZSBvcmlnaW4gaXNuJ3Qgc2V0XG4gICAgICogQHBhcmFtIG9yaWdpbiBhbiBpZGVudGlmaWVyIHN0cmluZyB0aGF0IE1lYWx6IHBhc3NlcyB0byB0aGUgQVBJIHdpdGggZWFjaCByZXF1ZXN0IHRvIGtlZXAgdHJhY2sgb2YgdGhlIG9yaWdpblxuICAgICAqIG9mIHRoZSByZXF1ZXN0XG4gICAgICovXG4gICAgc2V0T3JpZ2luOiAob3JpZ2luOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogb2YgdGhlIHN1cHBsaWVyIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBvbi4gRG8gbm90IGZvcmdldCB0byBjYWxsIHRoZSBtZXRob2RcbiAgICAgKiBpZiBpdCBjaGFuZ2VzIGFmdGVyIHVzZXIgbG9hZHMgdGhlIHBhZ2UgKHNob3VsZCBub3QgaGFwcGVuIGVzY2VwdCBpbiB2ZXJ5IHNwZWNpZmljIGNhc2VzKVxuICAgICAqXG4gICAgICogQHBhcmFtIHN1cHBsaWVySWQgdGhlIFN1cHBsaWVyIGlkIGluIE1lYWx6J3MgZGF0YWJhc2VcbiAgICAgKi9cbiAgICBsb2FkOiAoc3VwcGxpZXJJZDogbnVtYmVyIHwgc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIDMtaW4tMSB2ZXJzaW9uIG9mIHN1cHBsaWVyLmxvYWQsIHN1cHBsaWVyLnNldE9yaWdpbiAmIGFuYWx5dGljcy5pbml0LCB0aGF0IHJlcXVpcmVzIGEgc2luZ2xlIHRva2VuXG4gICAgICogQHBhcmFtIHRva2VuIGEgc2luZ2xlIHRva2VuIGNvbnRhaW5pbmcgdGhlIGluZm9ybWF0aW9uIGZvciBzdXBwbGllcklkLCBvcmlnaW4gJiBwbGF1c2libGUgZG9tYWluXG4gICAgICovXG4gICAgc2V0dXBXaXRoVG9rZW46ICh0b2tlbjogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgZ2V0QWZmaWxpYXRlU3VwcGxpZXJzOiAoKSA9PiBPYnNlcnZhYmxlPFN1cHBsaWVyW10+O1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHVzZXI6IHtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGluZm9ybSBNZWFseiBvZiB0aGUgaWQgb2YgdGhlIHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgYSBzdHJpbmcgdW5pcXVlIGlkZW50aWZpZXIgdG8gdGhlIHVzZXJcbiAgICAgKiBAcGFyYW0gZm9yYmlkUHJvZmlsaW5nIGlmIHNldCB0byB0cnVlLCBkZXNhY3RpdmF0ZSBwZXJzb25hbGl6ZWQgY29udGVudCAocGVyc29uYWxpemVkIHJlY2lwZXMgJiBwcm9kdWN0cylcbiAgICAgKiBAcGFyYW0gaW5pdEJhc2tldCBERVBSRUNBVEVEIC0gaWYgc2V0IHRvIHRydWUsIGZldGNoIHRoZSBHcm9jZXJpZXNMaXN0ICYgQmFza2V0IG9mIHRoZSB1c2VyIChyZWNvbW1hbmRlZCBhc1xuICAgICAqIGl0IHNhdmVzIHRpbWUgbGF0ZXIpXG4gICAgICovXG4gICAgbG9hZFdpdGhFeHRlcm5hbElkOiAoaWQ6IHN0cmluZywgZm9yYmlkUHJvZmlsaW5nPzogYm9vbGVhbiwgaW5pdEJhc2tldD86IGJvb2xlYW4pID0+IE9ic2VydmFibGU8b2JqZWN0PjtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGluZm9ybSBNZWFseiB0aGF0IHRoZSB1c2VyIGlzIGF1dGhsZXNzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgaWRcbiAgICAgKiBAcGFyYW0gaWQgYXV0aGxlc3MtaWQgZmV0Y2hlZCBmcm9tIHRoZSByb3V0ZSAvZ2VuZXJhdGUtYXV0aGxlc3MtdG9rZW5cbiAgICAgKiBAcGFyYW0gZm9yYmlkUHJvZmlsaW5nIGlmIHNldCB0byB0cnVlLCBkZXNhY3RpdmF0ZSBwZXJzb25hbGl6ZWQgY29udGVudCAocGVyc29uYWxpemVkIHJlY2lwZXMgJiBwcm9kdWN0cylcbiAgICAgKi9cbiAgICBsb2FkV2l0aEF1dGhsZXNzSWQ6IChpZDogc3RyaW5nLCBmb3JiaWRQcm9maWxpbmc/OiBib29sZWFuKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IHRoYXQgcHJvZmlsaW5nIHByZWZlcmVuY2VzIGhhdmUgYmVlbiB1cGRhdGVkXG4gICAgICogQHBhcmFtIGZvcmJpZFByb2ZpbGluZyBpZiBzZXQgdG8gdHJ1ZSwgZGVzYWN0aXZhdGUgcGVyc29uYWxpemVkIGNvbnRlbnQgKHBlcnNvbmFsaXplZCByZWNpcGVzICYgcHJvZHVjdHMpXG4gICAgICogQHBhcmFtIHVzZXJJZCB1c2VySWQgb3IgYXV0aGxlc3NJZCBvZiB0aGUgdXNlclxuICAgICAqIEBwYXJhbSBpc0F1dGhsZXNzIGlmIHRydWUgTWVhbHogd2lsbCB0cmVhdCB1c2VySUQgYXMgYW4gYXV0aGxlc3MtaWRcbiAgICAgKi9cbiAgICB1cGRhdGVGb3JiaWRQcm9maWxpbmc6IChmb3JiaWRQcm9maWxpbmc6IGJvb2xlYW4sIHVzZXJJZDogc3RyaW5nLCBpc0F1dGhsZXNzOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IHRoYXQgdGhlIHVzZXIgaGFzIGxvZ2dlZCBvdXRcbiAgICAgKi9cbiAgICByZXNldDogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFNldCB1c2VyIGxhbmd1YWdlIHdpdGggYSBJU08gNjM5LTEgY29kZSBvciBjdXN0b20gbGFuZ3VhZ2UgbmFtZVxuICAgICAqIEBwYXJhbSBsYW5nXG4gICAgICovXG4gICAgc2V0TGFuZ3VhZ2U6IChsYW5nOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBJZiB5b3VyIHdlYnNpdGUgaGFzIGEgXCJmYXZvcml0ZSBwcm9kdWN0c1wiIGZlYXR1cmUsIHlvdSBjYW4gcGFzcyB0aGUgaWRzIG9mIGFsbCBwcm9kdWN0c1xuICAgICAqIHdoaWNoIHRoZSB1c2VyIGhhcyBtYXJrZWQgYXMgZmF2b3JpdGVzLCBzbyB0aGV5IGNhbiBiZSBwcmlvcml0aXplZCB3aGVuIGFkZGluZyBhIHJlY2lwZVxuICAgICAqIHRvIHRoZWlyIGNhcnQsIGlmIG9uZSBvZiB0aGVtIGlzIHJldHVybmVkIGFzIGEgbWF0Y2hpbmcgcHJvZHVjdCBmb3IgdGhlIHJlY2lwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmYXZvcml0ZVByb2R1Y3RJZHMgYW4gYXJyYXkgb2YgcHJvZHVjdCBpZHMsIHBhc3NlZCBhcyBzdHJpbmdcbiAgICAgKi9cbiAgICBzZXRGYXZvcml0ZUl0ZW1zOiAoZmF2b3JpdGVQcm9kdWN0SWRzOiBzdHJpbmdbXSkgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+O1xuXG4gICAgLyoqXG4gICAgICogVXNlciBsb2NhdGlvbiBjYW4gYmUgc2V0IGZyb20gdGhlIHVzZXIncyBicm93c2VyIGlmIHRoZXkgYWxsb3dlZCBpdFxuICAgICAqIEBwYXJhbSBjb29yZHMgbXVzdCBwcm92aWRlIGxhdGl0dWRlIChudW1iZXIpIGFuZCBsb25naXR1ZGUgKG51bWJlcikgYW5kIG9wdGlvbmFsbHkgYW4gYWNjdXJhY3kgKG51bWJlcilcbiAgICAgKi9cbiAgICBzZXRMb2NhdGlvbjogKGNvb3JkczogR2VvbG9jYXRpb25Qb3NpdGlvbikgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBldmVudHM6IHtcbiAgICBzdG9yZUxvY2F0b3JPcGVuZWQ6ICgpID0+IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgfTtcblxuICAvKipcbiAgICogQ2FsbCB3aXRoIHRoZSBoZWlnaHQgaW4gcHggb2YgeW91ciB3ZWJzaXRlJ3MgaGVhZGVyIHdoZW4gaXQgaXMgc3RpY2t5IHNvIE1lYWx6IGNhbiBvZmZzZXQgaXRzIHN0aWNreSBjb21wb25lbnRzXG4gICAqIElmIG5vdCBjYWxsZWQsIGFueSBzdGlja3kgY29tcG9uZW50cyBmcm9tIE1lYWx6IG1heSBhcHBlYXIgbm90IHN0aWNrIGNvcnJlY3RseSBiZWxvdyB5b3VyIGhlYWRlclxuICAgKi9cbiAgc2V0U3RpY2t5SGVhZGVySGVpZ2h0OiAoaGVpZ2h0OiBudW1iZXIpID0+IHZvaWQ7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHR3byB0aW1lcyB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIChERVBSRUNBVEVEKVxuICAgKiBAcGFyYW0gaWNvbiBoYXZlIHRvIGJlIGEga25vd2VkIGljb24gbmFtZSBzZWUgc2VjdGlvbiAnQ3VzdG9tIGljb25zJyBpbiByZWFkIG1lXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIG5ldyBpY29uXG4gICAqL1xuICBvdmVycmlkZUljb246IChpY29uLCB1cmw6IHN0cmluZykgPT4gdm9pZDtcblxuICAvKipcbiAgICogUGFzcyBhIGNhbGxiYWNrIHRoYXQgcmV0dXJucyB0aGUgZGVmYXVsdCBzY3JvbGwgY29udGFpbmVyIG9mIHRoZSBwYWdlIHNvIG1lYWx6IG1vZGFsIGNhbiBibG9jayB0aGUgc2Nyb2xsIHdoZW4gb3BlbmVkXG4gICAqIERlZmF1bHQgY2FsbGJhY2sgcmV0dXJucyBkb2N1bWVudC5ib2R5XG4gICAqL1xuICBzZXREZWZhdWx0U2Nyb2xsRWxlbWVudEdldHRlcjogKGNhbGxiYWNrOiAoKSA9PiBIVE1MRWxlbWVudCkgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHotaW50ZXJuYWwtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL190eXBlcy9idWlsZGVkL21lYWx6LWludGVybmFsLWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdXNpYmxlUHJvcHMgfSBmcm9tICdtZWFsei1zaGFyZWQtYW5hbHl0aWNzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2tldEVudHJ5LCBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVByaWNpbmcgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZS1wcmljaW5nJztcbmltcG9ydCB7IEV2ZW50Sm91cm5leSB9IGZyb20gJy4uL2V2ZW50LWpvdXJuZXkuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVhbHpJbnRlcm5hbEludGVyZmFjZSB7XG5cbiAgYW5hbHl0aWNzOiB7XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhbiBhbmFseXRpY3MgZXZlbnQgdmlhIG1lYWx6LXNoYXJlZC1hbmFseXRpY3NcbiAgICAgKi9cbiAgICBzZW5kRXZlbnQ6IChuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgcHJvcHM6IFBsYXVzaWJsZVByb3BzLCBqb3VybmV5PzogRXZlbnRKb3VybmV5KSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgYGpvdXJuZXlgIHByb3BlcnR5IGZvciBtZWFsei1zaGFyZWQtYW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBTZXQgdG8gdHJ1ZSBpZiB3ZSBjdXJyZW50bHkgYXJlIGluIGEgbWVhbHogZGVkaWNhdGVkIHBhZ2VcbiAgICAgKi9cbiAgICBzZXRJc01lYWx6UGFnZTogKGlzTWVhbHpQYWdlOiBib29sZWFuKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGJhc2tldDoge1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIGxpc3Qgb2YgcmVjaXBlIElEcyB3aGVuIHJlY2lwZXMgYXJlIGFkZGVkIHRvIHRoZSBiYXNrZXQuXG4gICAgICovXG4gICAgcmVjaXBlc0FkZGVkVG9CYXNrZXQkOiAoKSA9PiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHRoZSBwcmljaW5nIGluZm9ybWF0aW9uIGZvciByZWNpcGVzIGluIHRoZSBiYXNrZXQuXG4gICAgICovXG4gICAgcmVjaXBlUHJpY2VzSW5CYXNrZXQkOiAoKSA9PiBPYnNlcnZhYmxlPHsgaWQ6IHN0cmluZzsgcHJpY2U6IHN0cmluZyB9W10+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIGxpc3Qgb2YgcmVjaXBlcyBpbiB0aGUgYmFza2V0LlxuICAgICAqL1xuICAgIHdhaXRGb3JCYXNrZXRFbnRyaWVzOiAoKSA9PiBPYnNlcnZhYmxlPEJhc2tldEVudHJ5W10+O1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGNhdGFsb2c6IHtcblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHByZWZlcmVuY2VzIG1vZGFsXG4gICAgICovXG4gICAgb3BlblByZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gb2JzZXJ2YWJsZSB0aGF0IG5vdGlmaWVzIHN1YnNjcmliZXJzIHdoZW4gdGhlIHByZWZlcmVuY2VzIGhhdmUgY2hhbmdlZFxuICAgICAqL1xuICAgIHByZWZlcmVuY2VzTW9kYWxDaGFuZ2VkOiAoKSA9PiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhbiBvYnNlcnZhYmxlIHdpdGggdGhlIG51bWJlciBvZiBwcmVmZXJlbmNlcyBzZXRcbiAgICAgKi9cbiAgICBwcmVmZXJlbmNlc0NvdW50OiAoKSA9PiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICBsb2FkTW9yZVJlY2lwZXM6IChwYWNrYWdlSWQ6IHN0cmluZywgcGFnZTogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBndWVzdHM6IG51bWJlcikgPT4gT2JzZXJ2YWJsZTxSZWNpcGVbXT47XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgY29uZmlnOiB7XG4gICAgbG9nTGV2ZWw6IE9ic2VydmFibGU8c3RyaW5nPlxuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHJlY2lwZXM6IHtcbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgcmVjaXBlIGRldGFpbHMgYnkgY2FsbGluZyB0aGUgYG9wZW5SZWNpcGVEZXRhaWxzYCBtZXRob2Qgb2YgdGhlIGByZWNpcGVzU2VydmljZWAuXG4gICAgICovXG4gICAgb3BlbkRldGFpbHM6IChyZWNpcGVJZDogc3RyaW5nLCBndWVzdHM6IG51bWJlciwgaW5pdGlhbFRhYkluZGV4OiBudW1iZXIsIGFuYWx5dGljc1BhdGg/OiBzdHJpbmcsIGNhdGVnb3J5SWQ/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIG9yIGNyZWF0ZXMgYSByZWNpcGUgbGlrZSBlbnRyeS5cbiAgICAgKiBJZiBgcmVjaXBlTGlrZUlkYCBpcyBwcm92aWRlZCwgaXQgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbGlrZTsgb3RoZXJ3aXNlLCBpdCBjcmVhdGVzIGEgbmV3IG9uZS5cbiAgICAgKiBJdCBhbHNvIHNldHMgdGhlIGBpc1Bhc3RgIHN0YXR1cyBhbmQgdHJhY2tzIHRoZSB1cGRhdGUgZXZlbnQuXG4gICAgICovXG4gICAgdXBkYXRlUmVjaXBlTGlrZTogKHJlY2lwZUxpa2VJZDogc3RyaW5nLCByZWNpcGVJZDogc3RyaW5nLCBpc1Bhc3Q6IGJvb2xlYW4sIHBhdGg/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBvYnNlcnZhYmxlIHRoYXQgbm90aWZpZXMgc3Vic2NyaWJlcnMgd2hlbiBhIHJlY2lwZSBsaWtlIGhhcyBiZWVuIHVwZGF0ZWQuXG4gICAgICovXG4gICAgcmVjaXBlTGlrZVVwZGF0ZWQ6ICgpID0+IE9ic2VydmFibGU8eyBpZDogc3RyaW5nOyBpc1Bhc3Q6IGJvb2xlYW4gfT47XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBvYnNlcnZhYmxlIHRoYXQgbm90aWZpZXMgc3Vic2NyaWJlcnMgd2hlbiB0aGUgbnVtYmVyIG9mIGd1ZXN0cyBvZiBhIHJlY2lwZSBoYXMgYmVlbiB1cGRhdGVkIGZyb20gcmVjaXBlIGRldGFpbHMuXG4gICAgICovXG4gICAgZ3Vlc3RzVXBkYXRlZDogKCkgPT4gT2JzZXJ2YWJsZTx7IGd1ZXN0czogbnVtYmVyOyByZWNpcGVJZDogc3RyaW5nIH0+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gb2JzZXJ2YWJsZSB0aGF0IG5vdGlmaWVzIHN1YnNjcmliZXJzIHdoZW4gYSByZWNpcGUgcHJpY2UgaGFzIGJlZW4gdXBkYXRlZC5cbiAgICAgKi9cbiAgICByZWNpcGVQcmljZVVwZGF0ZWQ6ICgpID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHotaW50ZXJuYWwtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL190eXBlcy9idWlsZGVkL21lYWx6LWludGVybmFsLWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdXNpYmxlUHJvcHMgfSBmcm9tICdtZWFsei1zaGFyZWQtYW5hbHl0aWNzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2tldEVudHJ5LCBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVByaWNpbmcgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZS1wcmljaW5nJztcbmltcG9ydCB7IEV2ZW50Sm91cm5leSB9IGZyb20gJy4uL2V2ZW50LWpvdXJuZXkuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVhbHpJbnRlcm5hbEludGVyZmFjZSB7XG5cbiAgYW5hbHl0aWNzOiB7XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhbiBhbmFseXRpY3MgZXZlbnQgdmlhIG1lYWx6LXNoYXJlZC1hbmFseXRpY3NcbiAgICAgKi9cbiAgICBzZW5kRXZlbnQ6IChuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgcHJvcHM6IFBsYXVzaWJsZVByb3BzLCBqb3VybmV5PzogRXZlbnRKb3VybmV5KSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgYGpvdXJuZXlgIHByb3BlcnR5IGZvciBtZWFsei1zaGFyZWQtYW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBTZXQgdG8gdHJ1ZSBpZiB3ZSBjdXJyZW50bHkgYXJlIGluIGEgbWVhbHogZGVkaWNhdGVkIHBhZ2VcbiAgICAgKi9cbiAgICBzZXRJc01lYWx6UGFnZTogKGlzTWVhbHpQYWdlOiBib29sZWFuKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGJhc2tldDoge1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIGxpc3Qgb2YgcmVjaXBlIElEcyB3aGVuIHJlY2lwZXMgYXJlIGFkZGVkIHRvIHRoZSBiYXNrZXQuXG4gICAgICovXG4gICAgcmVjaXBlc0FkZGVkVG9CYXNrZXQkOiAoKSA9PiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHRoZSBwcmljaW5nIGluZm9ybWF0aW9uIGZvciByZWNpcGVzIGluIHRoZSBiYXNrZXQuXG4gICAgICovXG4gICAgcmVjaXBlUHJpY2VzSW5CYXNrZXQkOiAoKSA9PiBPYnNlcnZhYmxlPHsgaWQ6IHN0cmluZzsgcHJpY2U6IHN0cmluZyB9W10+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIGxpc3Qgb2YgcmVjaXBlcyBpbiB0aGUgYmFza2V0LlxuICAgICAqL1xuICAgIHdhaXRGb3JCYXNrZXRFbnRyaWVzOiAoKSA9PiBPYnNlcnZhYmxlPEJhc2tldEVudHJ5W10+O1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGNhdGFsb2c6IHtcblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHByZWZlcmVuY2VzIG1vZGFsXG4gICAgICovXG4gICAgb3BlblByZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gb2JzZXJ2YWJsZSB0aGF0IG5vdGlmaWVzIHN1YnNjcmliZXJzIHdoZW4gdGhlIHByZWZlcmVuY2VzIGhhdmUgY2hhbmdlZFxuICAgICAqL1xuICAgIHByZWZlcmVuY2VzTW9kYWxDaGFuZ2VkOiAoKSA9PiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhbiBvYnNlcnZhYmxlIHdpdGggdGhlIG51bWJlciBvZiBwcmVmZXJlbmNlcyBzZXRcbiAgICAgKi9cbiAgICBwcmVmZXJlbmNlc0NvdW50OiAoKSA9PiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICBsb2FkTW9yZVJlY2lwZXM6IChwYWNrYWdlSWQ6IHN0cmluZywgcGFnZTogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBndWVzdHM6IG51bWJlcikgPT4gT2JzZXJ2YWJsZTxSZWNpcGVbXT47XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgY29uZmlnOiB7XG4gICAgbG9nTGV2ZWw6IE9ic2VydmFibGU8c3RyaW5nPlxuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHJlY2lwZXM6IHtcbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgcmVjaXBlIGRldGFpbHMgYnkgY2FsbGluZyB0aGUgYG9wZW5SZWNpcGVEZXRhaWxzYCBtZXRob2Qgb2YgdGhlIGByZWNpcGVzU2VydmljZWAuXG4gICAgICovXG4gICAgb3BlbkRldGFpbHM6IChyZWNpcGVJZDogc3RyaW5nLCBndWVzdHM6IG51bWJlciwgaW5pdGlhbFRhYkluZGV4OiBudW1iZXIsIGFuYWx5dGljc1BhdGg/OiBzdHJpbmcsIGNhdGVnb3J5SWQ/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIG9yIGNyZWF0ZXMgYSByZWNpcGUgbGlrZSBlbnRyeS5cbiAgICAgKiBJZiBgcmVjaXBlTGlrZUlkYCBpcyBwcm92aWRlZCwgaXQgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbGlrZTsgb3RoZXJ3aXNlLCBpdCBjcmVhdGVzIGEgbmV3IG9uZS5cbiAgICAgKiBJdCBhbHNvIHNldHMgdGhlIGBpc1Bhc3RgIHN0YXR1cyBhbmQgdHJhY2tzIHRoZSB1cGRhdGUgZXZlbnQuXG4gICAgICovXG4gICAgdXBkYXRlUmVjaXBlTGlrZTogKHJlY2lwZUxpa2VJZDogc3RyaW5nLCByZWNpcGVJZDogc3RyaW5nLCBpc1Bhc3Q6IGJvb2xlYW4sIHBhdGg/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBvYnNlcnZhYmxlIHRoYXQgbm90aWZpZXMgc3Vic2NyaWJlcnMgd2hlbiBhIHJlY2lwZSBsaWtlIGhhcyBiZWVuIHVwZGF0ZWQuXG4gICAgICovXG4gICAgcmVjaXBlTGlrZVVwZGF0ZWQ6ICgpID0+IE9ic2VydmFibGU8eyBpZDogc3RyaW5nOyBpc1Bhc3Q6IGJvb2xlYW4gfT47XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBvYnNlcnZhYmxlIHRoYXQgbm90aWZpZXMgc3Vic2NyaWJlcnMgd2hlbiB0aGUgbnVtYmVyIG9mIGd1ZXN0cyBvZiBhIHJlY2lwZSBoYXMgYmVlbiB1cGRhdGVkIGZyb20gcmVjaXBlIGRldGFpbHMuXG4gICAgICovXG4gICAgZ3Vlc3RzVXBkYXRlZDogKCkgPT4gT2JzZXJ2YWJsZTx7IGd1ZXN0czogbnVtYmVyOyByZWNpcGVJZDogc3RyaW5nIH0+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gb2JzZXJ2YWJsZSB0aGF0IG5vdGlmaWVzIHN1YnNjcmliZXJzIHdoZW4gYSByZWNpcGUgcHJpY2UgaGFzIGJlZW4gdXBkYXRlZC5cbiAgICAgKi9cbiAgICByZWNpcGVQcmljZVVwZGF0ZWQ6ICgpID0+IE9ic2VydmFibGU8eyByZW1haW5pbmc6IG51bWJlcjsgaW5CYXNrZXQ6IG51bWJlcjsgcmVjaXBlSWQ6IHN0cmluZyB9PjtcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgdGhlIHByaWNpbmcgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgcmVjaXBlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXJzLlxuICAgICAqL1xuICAgIGZldGNoUHJpY2luZzogKHJlY2lwZUlkOiBzdHJpbmcsIHBvc0lkOiBzdHJpbmcsIHNlcnZlczogbnVtYmVyKSA9PiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+O1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHN1cHBsaWVyOiB7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHRva2VuIGZyb20gdGhlIHN1cHBsaWVycyBzZXJ2aWNlXG4gICAgICovXG4gICAgZ2V0VG9rZW46ICgpID0+IHN0cmluZztcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICB1c2VyOiB7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZSB1c2VyIGxhbmd1YWdlIGFzIGFuIElTTyA2MzktMSBjb2RlIG9yIGN1c3RvbSBjb2RlXG4gICAgICovXG4gICAgZ2V0TGFuZ3VhZ2U6ICgpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBhdXRoZW50aWNhdGlvbiBzdGF0dXMgb2YgdGhlIHVzZXIuXG4gICAgICovXG4gICAgaXNBdXRoZW50aWNhdGVkOiAoKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgU0RLJ3Mgc2Vzc2lvbiBJRCB0byBlbnN1cmUgY29uc2lzdGVuY3kgd2l0aCBTU1IuXG4gICAgICovXG4gICAgc2V0U2Vzc2lvbklkOiAoc2Vzc2lvbklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIH07XG5cbiAgZ2V0U3RpY2t5SGVhZGVySGVpZ2h0OiAoKSA9PiBPYnNlcnZhYmxlPG51bWJlcj47XG59XG4iXX0=
|