ng-miam 9.2.2 → 9.2.3
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 +6 -5
- 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/_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/fesm2015/ng-miam.js +6 -5
- package/fesm2015/ng-miam.js.map +1 -1
- package/package.json +1 -1
|
@@ -47,7 +47,7 @@ function RecipeDetailsComponent_div_0_div_2_img_13_Template(rf, ctx) { if (rf &
|
|
|
47
47
|
} if (rf & 2) {
|
|
48
48
|
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
49
49
|
i0.ɵɵproperty("src", ctx_r8.recipeDetailsService.recipe == null ? null : ctx_r8.recipeDetailsService.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
50
|
-
i0.ɵɵattribute("
|
|
50
|
+
i0.ɵɵattribute("aria-hidden", true);
|
|
51
51
|
} }
|
|
52
52
|
function RecipeDetailsComponent_div_0_div_2_youtube_player_14_Template(rf, ctx) { if (rf & 1) {
|
|
53
53
|
i0.ɵɵelement(0, "youtube-player", 41);
|
|
@@ -923,4 +923,4 @@ RecipeDetailsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeDetailsCompo
|
|
|
923
923
|
type: ViewChild,
|
|
924
924
|
args: ['topContainerImg']
|
|
925
925
|
}] }); })();
|
|
926
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVB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MkI7UUFBM0IsZ0RBQTJCOzt1RkR2UGpCLHNCQUFzQjtjQVBsQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsrYkFFVSxRQUFRO2tCQUFoQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDSSxXQUFXO2tCQUFwQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDdUIsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgUmVjaXBlc1NlcnZpY2UsXG4gIFNwb25zb3JCbG9ja1NlcnZpY2UsXG4gIFN1cHBsaWVyc1NlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFN0b3JlTG9jYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvc3RvcmUtbG9jYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50VHJhY2UgfSBmcm9tICcuLi8uLi9fdHlwZXMvZXZlbnQtdHJhY2UnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ2luZ3JlZGllbnRzJywgJ3RhZ3MnLCAncmVjaXBlLXN0ZXBzJywgJ3Nwb25zb3JzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnaW5mb3JtYXRpb25hbC1zZW50ZW5jZScsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ251bWJlci1vZi1ndWVzdHMnLCAnZGVzY3JpcHRpb24nLFxuICAgICdpbmZvcm1hdGlvbmFsLXBhZ2UtaHRtbCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJywgJ3Jlc3RpbmctdGltZScsICdvcmRlci1oaXN0b3J5JywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnLCAnYWN0aXZlJywgJ2ZvcmNlZC1lYW5zJywgJ3BpY3R1cmUtdXJsJywgJ3Bvc2l0aW9uJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnLCAnaWNvbi11cmwnLCAnbmFtZSddLFxuICAncmVjaXBlLXN0ZXBzJzogWydkZXNjcmlwdGlvbicsICdzdGVwLW51bWJlciddLFxuICBzcG9uc29yczogWydsb2dvLXVybCcsICduYW1lJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZURldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBndWVzdE51bWJlcjogbnVtYmVyO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yY2VEaXNwbGF5VGFnczogYm9vbGVhbjsgLy8gT3ZlcnJpZGUgZ2xvYmFsIHNldHRpbmcgaWYgbmVjZXNhcnlcbiAgQElucHV0KCkgZGlzcGxheVRhZ3NJY29ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHN0ZXBzT25MZWZ0U2lkZSA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBkZXRhaWwgaW4gNCBxdWFydGVycyBpbnN0ZWFkIG9mIDIgaGFsdmVzXG4gIEBJbnB1dCgpIGNvb2tpbmdUaW1lQXNQcmltYXJ5SW5mbyA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBjb29raW5nIHRpbWUgbmV4dCB0byB0b3RhbCB0aW1lXG4gIEBJbnB1dCgpIG1vcmVSZWNpcGVzSW1hZ2VVUkw6IHN0cmluZztcbiAgQElucHV0KCkgcHJpY2luZ0d1ZXN0c1RleHQgPSAncGFyLXBlcnNvbm5lJztcbiAgQE91dHB1dCgpIHJlY2lwZUFkZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWNpcGVFcnJvcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2xvc2VEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ3RvcENvbnRhaW5lckltZycpIHRvcENvbnRhaW5lckltZzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcmVtb3ZlZEluZ3JlZGllbnRzOiBJbmdyZWRpZW50W10gPSBbXTtcbiAgaXNNb2JpbGUgPSBmYWxzZTtcbiAgZGlzcGxheVRhZ3MgPSBmYWxzZTtcbiAgc2hvd0FkZG9uID0gZmFsc2U7XG4gIHNob3dTdG9yZVNlbGVjdG9yID0gZmFsc2U7XG4gIGlzUmVjaXBlRmV0Y2hlZCA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgcGxheWVyV2lkdGg7XG4gIHBsYXllckhlaWdodDtcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBzaG93VmlkZW87XG4gIGFkZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgdGl0bGVJbkhlYWRlciA9IGZhbHNlO1xuICBkaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSBmYWxzZTtcbiAgc3BvbnNvckhhc1N0b3J5dGVsbGluZyA9IGZhbHNlO1xuICB0aXRsZTogSFRNTEVsZW1lbnQ7XG4gIGNvbnRlbnQ6IEhUTUxFbGVtZW50O1xuICBhY3RpdmVUYWJJbmRleCA9IDA7XG4gIGluaXRpYWxUYWJJbmRleCA9IDA7XG4gIHBsYXllclZhcnM6IFlULlBsYXllclZhcnMgPSB7XG4gICAgY29udHJvbHM6IDEsXG4gICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgcmVsOiAwLFxuICAgIHNob3dpbmZvOiAwXG4gIH07XG4gIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uOiBib29sZWFuO1xuICByZWNpcGVEZXRhaWxzT3BlblRpbWVzdGFtcDogbnVtYmVyO1xuICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcG9uc29yQmxvY2tzU2VydmljZTogU3BvbnNvckJsb2NrU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZURldGFpbHNTZXJ2aWNlOiBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHNlb1NlcnZpY2U6IFNlb1NlcnZpY2UsXG4gICAgcHVibGljIHN0b3JlTG9jYXRvclNlcnZpY2U6IFN0b3JlTG9jYXRvclNlcnZpY2UsXG4gICAgcHVibGljIGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgIHB1YmxpYyBiYXNrZXRTeW5jaHJvU2VydmljZTogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMTtcbiAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gMTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc3RvcmVMb2NhdG9yT3BlbmVkJC5zdWJzY3JpYmUoc3RvcmVMb2NhdG9yT3BlbmVkID0+IHtcbiAgICAgICAgdGhpcy5zaG93U3RvcmVTZWxlY3RvciA9IHN0b3JlTG9jYXRvck9wZW5lZDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSksXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNMb2FkaW5nJC5waXBlKFxuICAgICAgICBtYXAoKHByb2R1Y3RzTG9hZGluZykgPT4gIXByb2R1Y3RzTG9hZGluZyAmJiAhdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSxcbiAgICAgICkuc3Vic2NyaWJlKChzaG93OiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNOb3RMb2FkaW5nQW5kTm90UHJlcGFyYXRpb24gPSBzaG93O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5uZXdTdG9yZVNlbGVjdGVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZldGNoUmVjaXBlKHRoaXMucmVjaXBlSWQpO1xuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluaXREZWZhdWx0U3RhdGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5pc1NtYWxsU2NyZWVuJC5zdWJzY3JpYmUoaXNTbWFsbCA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBpc1NtYWxsO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UucmVjaXBlRGV0YWlsc1RhYkluZGV4JC5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZClcbiAgICAgICkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVGb290ZXJEaXNwbGF5JCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkkLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCxcbiAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5oYXNQZW5kaW5nQWN0aW9ucygpLnN1YnNjcmliZShoYXNBY3Rpb25zID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGhhc0FjdGlvbnM7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnN1YnNjcmliZSgoaXNQb3NWYWxpZCkgPT4ge1xuICAgICAgICAgIGlmICghaXNQb3NWYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLnN0b3JlTG9jYXRvck9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTsgLy8gd2UgbmVlZCB0byBkZXRlY3QgYSBjaGFuZ2UgdGhhdCBpcyBpbiBhIHN1YnNjcmliZSBhbmQgdGh1cyBhc3luY1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlY2lwZUlkICYmIHRoaXMucmVjaXBlSWQ/Lmxlbmd0aCA+IDAgJiYgISghdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKSAmJiB0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpKSB7XG4gICAgICB0aGlzLnJlY2lwZURldGFpbHNPcGVuVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZmV0Y2hSZWNpcGUodGhpcy5yZWNpcGVJZCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHRoaXMuZGlzcGxheVRhZ3MpIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmZvcmNlRGlzcGxheVRhZ3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnRhZ3NPblJlY2lwZXNFbmFibGVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwc09uTGVmdFNpZGUpIHtcbiAgICAgIHRoaXMuY29va2luZ1RpbWVBc1ByaW1hcnlJbmZvID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VvU2VydmljZS5yZW1vdmVTRU9EYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hSZWNpcGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldChpZCwge1xuICAgICAgICBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHNcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnRvdGFsUHJvZHVjdHMkLm5leHQocmVzdWx0LnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YS5sZW5ndGgpO1xuICAgICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VvU2VydmljZS5zZXRTRU9EYXRhKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSArdGhpcy5ndWVzdE51bWJlciB8fCArcmVzdWx0Lmd1ZXN0cztcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmdldFByb2R1Y3RzKHRydWUpO1xuICAgICAgICAgIHRoaXMuc2VuZFBhZ2V2aWV3RXZlbnQoKTtcbiAgICAgICAgICB0aGlzLnNldHVwWW91dHViZVBsYXllcigpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmlzU3BvbnNvcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcG9uc29yQmxvY2tzU2VydmljZS5hbGwoe1xuICAgICAgICAgICAgICByZW1vdGVmaWx0ZXI6IHsgJ3Nwb25zb3ItaWQnOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5zcG9uc29yc1swXS5pZCB9LFxuICAgICAgICAgICAgICBwYWdlOiB7IG51bWJlcjogMSwgc2l6ZTogMSB9XG4gICAgICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB0aGlzLnNwb25zb3JIYXNTdG9yeXRlbGxpbmcgPSAhIXJlc3VsdC5kYXRhLmxlbmd0aClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1JlY2lwZUZldGNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuXG4gICAgKTtcbiAgfVxuXG4gIHNldHVwWW91dHViZVBsYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dWaWRlbyA9IGZhbHNlOyAvLyBmb3JjZSByZWxvYWQgdmlkZW8gcGxheWVyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2hvd1ZpZGVvID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy52aWRlb0lkO1xuICAgIGlmICh0aGlzLnNob3dWaWRlbykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh3aW5kb3cuWVQ/LlBsYXllcikge1xuICAgICAgICAgIHRoaXMucGxheWVyV2lkdGggPSB0aGlzLnRvcENvbnRhaW5lckltZz8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgdGhpcy5wbGF5ZXJIZWlnaHQgPSBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ4LCB0aGlzLnBsYXllcldpZHRoICogMzkwIC8gNjQwKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXR1cFlvdXR1YmVQbGF5ZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSwgNTApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHRoZSBsaXN0ZW5lciBvbiBzY3JvbGwgc28gdGhlIG1vZGFsIGNhbiBoaWRlIHRoZSBjbG9zZSBpY29uXG4gICAqL1xuICBpbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50aXRsZSkge1xuICAgICAgdGhpcy50aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRlbnQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgdGhpcy5jb250ZW50ICYmIHRoaXMudGl0bGUpIHtcbiAgICAgIC8vIEZvciBtb3JlIHByZWNpc2lvbiBvbiB0aXRsZSBzY3JvbGwgZGV0ZWN0aW9uLCB3ZSB3YW50IHRvIHRyaWdnZXIgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB1c2VyIHNjcm9sbHMgNSUgb2YgdGhlIGNvbnRlbnRcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IFsuLi5BcnJheSgyMCkua2V5cygpXS5tYXAoeCA9PiB4IC8gMjApO1xuICAgICAgLy8gUmVjZWl2ZSBhbiBldmVudCBlYWNoIHRpbWUgdGhlIHRpdGxlIGVudGVycy9sZWF2ZXMgdGhlIHZpZXdwb3J0XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVUaXRsZUluSGVhZGVyKCk7XG4gICAgICB9LCB7IHRocmVzaG9sZCB9KTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVRpdGxlSW5IZWFkZXIoKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZUluSGVhZGVyID0gdGhpcy50aXRsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPD0gNDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlTGFzdE9yZGVyTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSAhdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlR3Vlc3RzKGd1ZXN0czogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID09PSBndWVzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSBndWVzdHM7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVHdWVzdHModGhpcy5ldmVudFRyYWNlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVBZGRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBZGRvbiA9ICF0aGlzLnNob3dBZGRvbjtcbiAgICBpZiAodGhpcy5zaG93QWRkb24pIHtcbiAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAgICdzcG9uc29yLmRpc3BsYXknLFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUhlbHBlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnRvZ2dsZUhlbHBlcigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUJ1dHRvbkxvYWRlcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWRkQnV0dG9uTG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9yZGVyQWdhaW4oZXZlbnRUcmFjZTogRXZlbnRUcmFjZSk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsQ29udGVudEVsbTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWlhbS1tb2RhbF9fY29udGVudCcpO1xuICAgIGlmIChtb2RhbENvbnRlbnRFbG0pIHtcbiAgICAgIG1vZGFsQ29udGVudEVsbS5zY3JvbGxUb3AgPSAwO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgY2xvc2VMYXN0T3JkZXJNb2RhbChldmVudFRyYWNlOiBFdmVudFRyYWNlKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVMYXN0T3JkZXJNb2RhbCgpO1xuICAgIHRoaXMub3JkZXJBZ2FpbihldmVudFRyYWNlKTtcbiAgfVxuXG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuY29udGludWUnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIGNsb3NlKG9wZW5CYXNrZXQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAncmVjaXBlLmNsb3NlJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5vbkNsb3NlKG9wZW5CYXNrZXQpO1xuICB9XG5cbiAgb25DbG9zZShvcGVuQmFza2V0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnBhZ2V2aWV3RXZlbnRXYXNTZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLmNsb3NlU3RvcmVMb2NhdG9yKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuaW5pdGlhbFRhYkluZGV4O1xuICAgIGlmIChvcGVuQmFza2V0KSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLm9wZW5CYXNrZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5oaWRlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VEZXRhaWxzLmVtaXQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcmludCgpOiB2b2lkIHtcbiAgICB3aW5kb3cucHJpbnQoKTtcbiAgfVxuXG4gIHNlbmRQYWdldmlld0V2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCkge1xuICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IHRydWU7XG4gICAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1ByaWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUgJiYgdGhpcy5kaXNwbGF5UHJpY2luZyAmJiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmhhc0FkZGVkQVByb2R1Y3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4ID8gJ2Nvb2tpbmcnIDogJ3Nob3BwaW5nJztcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGByZWNpcGVzLyR7dGhpcy5yZWNpcGVJZCA/PyAwfS8ke3RoaXMuZ2V0QWN0aXZlVGFiSW5kZXhOYW1lKHRoaXMuYWN0aXZlVGFiSW5kZXgpfWA7XG4gIH1cblxuICBjaGVja1BvcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RUYWIoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYkluZGV4ID09PSBhY3RpdmVUYWJJbmRleCkgeyByZXR1cm47IH1cblxuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICBgcmVjaXBlLiR7dGhpcy5nZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXgpfS5kaXNwbGF5YCxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZUlkIH1cbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBhY3RpdmVUYWJJbmRleDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIhc2hvd0FkZG9uICYmICEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc1wiXG4gIFtjbGFzcy5oaWRkZW5dPVwic2hvd1N0b3JlU2VsZWN0b3JcIj5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlXCIgY2xhc3M9XCJtaWFtLWRzLWxvYWRlciBtaWFtLXJlY2lwZS1kZXRhaWxzX19sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRhaW5lclwiXG4gICAgICAgKm5nSWY9XCIhKHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlKSAmJiByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj5cbiAgICA8IS0tIEJBTk5FUiBDT05UQUlORVIgLS0+XG4gICAgPGRpdiAjdG9wQ29udGFpbmVySW1nIFtjbGFzcy5uby1zdXBwbGllcl09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlXCI+XG4gICAgICA8IS0tIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Jhbm5lcl9idXR0b25zXCI+XG4gICAgICAgIDwhLS0gVE9QIEJVVFRPTlMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190b3AtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8IS0tIERFU0tUT1AgQ0xPU0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIkZlcm1lclwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gTU9CSUxFIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGUtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDwhLS0gQkFDSyBCVVRUT04gT04gVEhFIExFRlQgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1pY29uXCJcbiAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL2NoZXZyb24tZG93bi1wcmltYXJ5LnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gTElLRSBCVVRUT04gT04gVEhFIFJJR0hUIC0tPlxuICAgICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQudmFsdWVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICAgICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLW1pYW0tbGlrZS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEdVRVNUIENPVU5URVIgLS0+XG4gICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXRcbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2d1ZXN0LWNvdW50ZXJcIlxuICAgICAgICAgIFtmbG9hdGluZ109XCJ0cnVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbbWluUmFuZ2VdPVwiMVwiXG4gICAgICAgICAgW2RlYm91bmNlVGltZV09XCIzMDBcIlxuICAgICAgICAgIFtkaXNhYmxlXT1cIihyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9uc1wiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCI+XG4gICAgICAgICAgPlxuICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBQSUNUVVJFIC8gVklERU8gLS0+XG4gICAgICA8aW1nXG4gICAgICAgIFthdHRyLmFsdF09XCInUGhvdG8gZGUgbGEgcmVjZXR0ZSAnICsgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddXCJcbiAgICAgICAgKm5nSWY9XCIhc2hvd1ZpZGVvXCJcbiAgICAgICAgW3NyY109XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCJcbiAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmVcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BpY3R1cmUtaW1nXCI+XG4gICAgICA8eW91dHViZS1wbGF5ZXJcbiAgICAgICAgKm5nSWY9XCJzaG93VmlkZW8gJiYgcGxheWVyV2lkdGhcIlxuICAgICAgICBbdmlkZW9JZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUudmlkZW9JZFwiXG4gICAgICAgIFt3aWR0aF09XCJwbGF5ZXJXaWR0aFwiXG4gICAgICAgIFtoZWlnaHRdPVwicGxheWVySGVpZ2h0XCJcbiAgICAgICAgW3BsYXllclZhcnNdPVwicGxheWVyVmFyc1wiXG4gICAgICAgIHRpdGxlPVwiVmlkw6lvIGRlIGxhIHJlY2V0dGVcIlxuICAgICAgPjwveW91dHViZS1wbGF5ZXI+XG4gICAgICA8IS0tIEZpbGlncmFuZSBsb2dvIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlX19maWxpZ3JhbmVcIj5cbiAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc3JjXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNQT05TT1IgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Nwb25zb3JcIj5cbiAgICAgIDxuZy1taWFtLWFkZG9uLWxpbmtcbiAgICAgICAgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pc1Nwb25zb3JlZCB8fCByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaW5mb3JtYXRpb25hbFNlbnRlbmNlXCJcbiAgICAgICAgW2hhc1N0b3J5dGVsbGluZ109XCJzcG9uc29ySGFzU3Rvcnl0ZWxsaW5nXCJcbiAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZScgKHNob3dBZGRvbik9J3RvZ2dsZUFkZG9uKCknPjwvbmctbWlhbS1hZGRvbi1saW5rPlxuICAgICAgPGhyIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3BvbnNvci1zZXBhcmF0b3JcIj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIExBU1QgT1JERVIgQkFER0UgLS0+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0xvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyLWJhZGdlIG1pYW0tZHMtYmFkZ2VcIiAoY2xpY2spPVwidG9nZ2xlTGFzdE9yZGVyTW9kYWwoKVwiIGFyaWEtbGFiZWw9XCJBZmZpY2hlciBsZXMgZMOpdGFpbHMgZGUgbGEgY29tbWFuZGUgcHLDqWPDqWRlbnRlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9JbmZvc19CbHVlLnN2Z1wiIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbGFzdC1vcmRlci1iYWRnZS10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+Q29tbWFuZGUgZHUgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTVElDS1kgSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGlja3ktaGVhZGVyXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBUSVRMRSBDT05UQUlORVIgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUtY29udGFpbmVyXCIgbmdNaWFtUmVhY2hUb3AgW3N0aWNreUJ5RGVmYXVsdF09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICAgIDwhLS0gQkFDSyBCVVRUT04gKE1PQklMRSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYWNrLWJ1dHRvbi1tb2JpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2stYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNtYWxsIHNxdWFyZSBnaG9zdFwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2staWNvblwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvY2hldnJvbi1kb3duLXByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBSRUNJUEUgVElUTEUgLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUgbWlhbS1kcy10ZXh0IHNpemUteGwgd2VpZ2h0LXh4bFwiIHJvbGU9XCJoZWFkaW5nXCIgYXJpYS1sZXZlbD1cIjFcIj5cbiAgICAgICAge3sgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddIH19XG4gICAgICA8L3NwYW4+XG4gICAgICAgIDwhLS0gUkVDSVBFIEFDVElPTlMgKExJS0UgLyBDTE9TRSBNT0RBTCktLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIj5cbiAgICAgICAgICA8IS0tIExJS0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC52YWx1ZSkgJiYgIWNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIlxuICAgICAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSdcbiAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwhLS0gQ0xPU0UgTU9EQUwgQlVUVE9OIChERVNLVE9QKSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faGlkZWFibGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fY2xvc2UtYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNxdWFyZSBnaG9zdFwiIGFyaWEtbGFiZWw9XCJGZXJtZXJcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCIvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFNUT1JFIExPQ0FUT1IgTElOSyAtLT5cbiAgICAgIDxuZy1taWFtLXN0b3JlLWxvY2F0b3ItbGluayAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tc3RvcmUtbG9jYXRvci1saW5rPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gUkVDSVBFIEJBU0lDIElORk9STUFUSU9OUyArIFRBQlMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICA8IS0tICBSRUNJUEUgQkFTSUMgSU5GT1JNQVRJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3NcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc1wiXG4gICAgICAgIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3M+XG4gICAgICA8IS0tIFRBQlMgVE8gU1dJVENIIEJFVFdFRU4gQkFTS0VUIEFORCBJTlNUUlVDVElPTlMgLS0+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogcmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvbn1cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhYnNcIj5cbiAgICAgICAgPG5nLW1pYW0tc2xpZGVyLXRhYnNcbiAgICAgICAgICBpMThuLXRhYnNcbiAgICAgICAgICB0YWJzPVwiSmUgZmFpcyBtZXMgY291cnNlcywgSmUgY3Vpc2luZVwiXG4gICAgICAgICAgW3NlbGVjdGVkVGFiSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXhcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cInNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gVEFCIEZPUiBQUk9EVUNUUyBQSUNLRVIgT1IgTk8gUE9TIERJU1BMQVkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYkluZGV4ID09PSAwXCI+XG4gICAgICA8bmctbWlhbS1wcm9kdWN0cy1waWNrZXJcbiAgICAgICAgKm5nSWY9XCIhcmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5ICYmICFyZWNpcGVEZXRhaWxzU2VydmljZS5pbnZhbGlkUG9zRGlzcGxheVwiXG4gICAgICAgIChjbG9zZU1vZGFsKT1cImNsb3NlKClcIlxuICAgICAgICAoZ3Vlc3RzQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Byb2R1Y3RzLXBpY2tlclwiXG4gICAgICA+XG4gICAgICA8L25nLW1pYW0tcHJvZHVjdHMtcGlja2VyPlxuICAgICAgPG5nLW1pYW0tbm8tcG9zLXNlbGVjdGVkXG4gICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5IHx8IHJlY2lwZURldGFpbHNTZXJ2aWNlLmludmFsaWRQb3NEaXNwbGF5XCJcbiAgICAgICAgW2ludmFsaWRQb3NdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuaW52YWxpZFBvc0Rpc3BsYXlcIlxuICAgICAgICAocG9zU2VsZWN0ZWQpPVwiY2hlY2tQb3MoKVwiXG4gICAgICA+PC9uZy1taWFtLW5vLXBvcy1zZWxlY3RlZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIFRBQiBGT1IgSU5TVFJVQ1RJT05TIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVUYWJJbmRleCA9PT0gMVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJlcGFyYXRpb24tdGFiXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBJTkdSRURJRU5UUyBUWVBFIEFORCBRVUFOVElUSUVTIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5ncmVkaWVudHNcbiAgICAgICAgW2luZ3JlZGllbnRzXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50c1wiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzPlxuICAgICAgPCEtLSBSRUNJUEUgSU5TVFJVQ1RJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHMgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj48L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHM+XG4gICAgICA8IS0tIE9SREVSIEFHQUlOIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoID4gMCAmJiAhIXJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19vcmRlci1hZ2Fpbi10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCIgaTE4bj5DZXR0ZSByZWNldHRlIHZvdXMgYSBwbHUgPzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLXRleHQgbWlhbS1kcy10ZXh0IHNpemUtbVwiIGkxOG4+XG4gICAgICAgICAgICBOb3VzIGF2b25zIGNvbnNlcnbDqSB2b3RyZSBkZXJuacOocmUgc8OpbGVjdGlvbiBkZSBwcm9kdWl0c1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLWN0YSBtaWFtLWRzLWJ1dHRvbiBzZWNvbmRhcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9yZGVyQWdhaW4oZXZlbnRUcmFjZSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlIHx8XG4gICAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgKGJhc2tldFN5bmNocm9TZXJ2aWNlLmhhc1BlbmRpbmdBY3Rpb25zKCkgfCBhc3luYyk7IGVsc2Ugc2hvd0ljb25cIlxuICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XG4gICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQmFza2V0X0JsdWUuc3ZnXCIvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Db21tYW5kZXIgw6Agbm91dmVhdTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZPT1RFUiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlVGFiSW5kZXggPT09IDAgJiYgIXJlY2lwZURldGFpbHNTZXJ2aWNlLm5vUG9zRGlzcGxheVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fZm9vdGVyXCJcbiAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCI+XG4gICAgICAgIDwhLS0gQUREIFRPIEJBU0tFVCBDVEEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLnZhbHVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0ZXIgdG91cyBsZXMgaW5ncsOpZGllbnRzIGF1IHBhbmllclwiPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWRkLXRvLWJhc2tldC1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyByZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoIDw9IDFcIj5wcm9kdWl0PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPiAxXCI+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGQtdG8tYmFza2V0LXJlbWFpbmluZy1wcmljZVwiPiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhpZGRlbl09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLnJlbWFpbmluZyB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIShyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFsbEluZ3JlZGllbnRzVG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0IGVuIGNvdXJzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19yZWNpcGUtaXMtaW4tYmFza2V0LWN0YS1jb250YWluZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8IS0tIENPTlRJTlVFIENUQSAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeSBtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250aW51ZS1zaG9wcGluZy1jdGFcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1oaWRkZW5dPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhX190ZXh0XCIgaTE4bj5Db250aW51ZXIgbWVzIGNvdXJzZXM8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPCEtLSBWSUVXIEJBU0tFVCBDVEEgKE9OTFkgSUYgTk8gU1VQUExJRVIgTU9ERSkgLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHByaW1hcnkgbWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldC1jdGFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldF9fdGV4dFwiIGkxOG4+XG4gICAgICAgICAgICAgIFZvaXIgbW9uIHBhbmllclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaWRcIlxuICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbZmV0Y2hQcmljaW5nT25TY3JvbGxdPVwiZmFsc2VcIj5cbiAgICAgICAgPC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dQcmljZSgpICYmIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJpY2UtbGFiZWwgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcHJpY2VcbiAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVJbmdyZWRpZW50RnJvbUJhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2tldFN5bmNocm9IYXNQZW5kaWdBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVQcmljZS5pbkJhc2tldCB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1wcmljZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEoKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucylcIlxuICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gaTE4biBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3ByaWNlLWluLWJhc2tldC1sYWJlbCBtaWFtLWRzLXRleHQgc2l6ZS14c1wiPmRhbnMgbW9uIHBhbmllcjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBBRERPTiAtLT5cbjxuZy1taWFtLXJlY2lwZS1hZGRvblxuICAqbmdJZj1cInNob3dBZGRvblwiIFtyZWNpcGVdPSdyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUnXG4gIChoaWRlQWRkb24pPVwidG9nZ2xlQWRkb24oKVwiPjwvbmctbWlhbS1yZWNpcGUtYWRkb24+XG48IS0tIFJFUExBQ0UgSVRFTSBQQUdFIC0tPlxuPG5nLW1pYW0tcmVwbGFjZS1pdGVtXG4gICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlXCJcbiAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICBbYmFza2V0RW50cnldPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmJhc2tldEVudHJ5XCJcbiAgW2luZ3JlZGllbnRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmluZ3JlZGllbnRcIlxuICBbaWdub3JlU2VsZWN0ZWRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmlnbm9yZVNlbGVjdGVkXCJcbiAgW2xvYWRPblNlbGVjdF09XCJ0cnVlXCJcbiAgKHNlbGVjdGVkKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlID0gbnVsbDtcIlxuICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4+XG48L25nLW1pYW0tcmVwbGFjZS1pdGVtPlxuPCEtLSBMQVNUIE9SREVSIE1PREFMIC0tPlxuPG5nLW1pYW0tbGFzdC1vcmRlci1tb2RhbFxuICAqbmdJZj1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtkaXNwbGF5XT1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtpbkJhc2tldF09XCIhIXJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLmluQmFza2V0XCJcbiAgW29yZGVySGlzdG9yeURhdGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub3JkZXJIaXN0b3J5RGF0ZVwiXG4gIChjbG9zZSk9XCJ0b2dnbGVMYXN0T3JkZXJNb2RhbCgpXCJcbiAgKHN1Ym1pdCk9XCJjbG9zZUxhc3RPcmRlck1vZGFsKGV2ZW50VHJhY2UpXCI+XG48L25nLW1pYW0tbGFzdC1vcmRlci1tb2RhbD5cbiJdfQ==
|
|
926
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVB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MkI7UUFBM0IsZ0RBQTJCOzt1RkR4UGpCLHNCQUFzQjtjQVBsQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsrYkFFVSxRQUFRO2tCQUFoQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDSSxXQUFXO2tCQUFwQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDdUIsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgUmVjaXBlc1NlcnZpY2UsXG4gIFNwb25zb3JCbG9ja1NlcnZpY2UsXG4gIFN1cHBsaWVyc1NlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFN0b3JlTG9jYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvc3RvcmUtbG9jYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50VHJhY2UgfSBmcm9tICcuLi8uLi9fdHlwZXMvZXZlbnQtdHJhY2UnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ2luZ3JlZGllbnRzJywgJ3RhZ3MnLCAncmVjaXBlLXN0ZXBzJywgJ3Nwb25zb3JzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnaW5mb3JtYXRpb25hbC1zZW50ZW5jZScsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ251bWJlci1vZi1ndWVzdHMnLCAnZGVzY3JpcHRpb24nLFxuICAgICdpbmZvcm1hdGlvbmFsLXBhZ2UtaHRtbCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJywgJ3Jlc3RpbmctdGltZScsICdvcmRlci1oaXN0b3J5JywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnLCAnYWN0aXZlJywgJ2ZvcmNlZC1lYW5zJywgJ3BpY3R1cmUtdXJsJywgJ3Bvc2l0aW9uJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnLCAnaWNvbi11cmwnLCAnbmFtZSddLFxuICAncmVjaXBlLXN0ZXBzJzogWydkZXNjcmlwdGlvbicsICdzdGVwLW51bWJlciddLFxuICBzcG9uc29yczogWydsb2dvLXVybCcsICduYW1lJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZURldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBndWVzdE51bWJlcjogbnVtYmVyO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yY2VEaXNwbGF5VGFnczogYm9vbGVhbjsgLy8gT3ZlcnJpZGUgZ2xvYmFsIHNldHRpbmcgaWYgbmVjZXNhcnlcbiAgQElucHV0KCkgZGlzcGxheVRhZ3NJY29ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHN0ZXBzT25MZWZ0U2lkZSA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBkZXRhaWwgaW4gNCBxdWFydGVycyBpbnN0ZWFkIG9mIDIgaGFsdmVzXG4gIEBJbnB1dCgpIGNvb2tpbmdUaW1lQXNQcmltYXJ5SW5mbyA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBjb29raW5nIHRpbWUgbmV4dCB0byB0b3RhbCB0aW1lXG4gIEBJbnB1dCgpIG1vcmVSZWNpcGVzSW1hZ2VVUkw6IHN0cmluZztcbiAgQElucHV0KCkgcHJpY2luZ0d1ZXN0c1RleHQgPSAncGFyLXBlcnNvbm5lJztcbiAgQE91dHB1dCgpIHJlY2lwZUFkZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWNpcGVFcnJvcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2xvc2VEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ3RvcENvbnRhaW5lckltZycpIHRvcENvbnRhaW5lckltZzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcmVtb3ZlZEluZ3JlZGllbnRzOiBJbmdyZWRpZW50W10gPSBbXTtcbiAgaXNNb2JpbGUgPSBmYWxzZTtcbiAgZGlzcGxheVRhZ3MgPSBmYWxzZTtcbiAgc2hvd0FkZG9uID0gZmFsc2U7XG4gIHNob3dTdG9yZVNlbGVjdG9yID0gZmFsc2U7XG4gIGlzUmVjaXBlRmV0Y2hlZCA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgcGxheWVyV2lkdGg7XG4gIHBsYXllckhlaWdodDtcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBzaG93VmlkZW87XG4gIGFkZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgdGl0bGVJbkhlYWRlciA9IGZhbHNlO1xuICBkaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSBmYWxzZTtcbiAgc3BvbnNvckhhc1N0b3J5dGVsbGluZyA9IGZhbHNlO1xuICB0aXRsZTogSFRNTEVsZW1lbnQ7XG4gIGNvbnRlbnQ6IEhUTUxFbGVtZW50O1xuICBhY3RpdmVUYWJJbmRleCA9IDA7XG4gIGluaXRpYWxUYWJJbmRleCA9IDA7XG4gIHBsYXllclZhcnM6IFlULlBsYXllclZhcnMgPSB7XG4gICAgY29udHJvbHM6IDEsXG4gICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgcmVsOiAwLFxuICAgIHNob3dpbmZvOiAwXG4gIH07XG4gIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uOiBib29sZWFuO1xuICByZWNpcGVEZXRhaWxzT3BlblRpbWVzdGFtcDogbnVtYmVyO1xuICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcG9uc29yQmxvY2tzU2VydmljZTogU3BvbnNvckJsb2NrU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZURldGFpbHNTZXJ2aWNlOiBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHNlb1NlcnZpY2U6IFNlb1NlcnZpY2UsXG4gICAgcHVibGljIHN0b3JlTG9jYXRvclNlcnZpY2U6IFN0b3JlTG9jYXRvclNlcnZpY2UsXG4gICAgcHVibGljIGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgIHB1YmxpYyBiYXNrZXRTeW5jaHJvU2VydmljZTogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMTtcbiAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gMTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc3RvcmVMb2NhdG9yT3BlbmVkJC5zdWJzY3JpYmUoc3RvcmVMb2NhdG9yT3BlbmVkID0+IHtcbiAgICAgICAgdGhpcy5zaG93U3RvcmVTZWxlY3RvciA9IHN0b3JlTG9jYXRvck9wZW5lZDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSksXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNMb2FkaW5nJC5waXBlKFxuICAgICAgICBtYXAoKHByb2R1Y3RzTG9hZGluZykgPT4gIXByb2R1Y3RzTG9hZGluZyAmJiAhdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSxcbiAgICAgICkuc3Vic2NyaWJlKChzaG93OiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNOb3RMb2FkaW5nQW5kTm90UHJlcGFyYXRpb24gPSBzaG93O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5uZXdTdG9yZVNlbGVjdGVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZldGNoUmVjaXBlKHRoaXMucmVjaXBlSWQpO1xuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluaXREZWZhdWx0U3RhdGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5pc1NtYWxsU2NyZWVuJC5zdWJzY3JpYmUoaXNTbWFsbCA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBpc1NtYWxsO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UucmVjaXBlRGV0YWlsc1RhYkluZGV4JC5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZClcbiAgICAgICkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVGb290ZXJEaXNwbGF5JCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkkLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCxcbiAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5oYXNQZW5kaW5nQWN0aW9ucygpLnN1YnNjcmliZShoYXNBY3Rpb25zID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGhhc0FjdGlvbnM7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnN1YnNjcmliZSgoaXNQb3NWYWxpZCkgPT4ge1xuICAgICAgICAgIGlmICghaXNQb3NWYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLnN0b3JlTG9jYXRvck9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTsgLy8gd2UgbmVlZCB0byBkZXRlY3QgYSBjaGFuZ2UgdGhhdCBpcyBpbiBhIHN1YnNjcmliZSBhbmQgdGh1cyBhc3luY1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlY2lwZUlkICYmIHRoaXMucmVjaXBlSWQ/Lmxlbmd0aCA+IDAgJiYgISghdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKSAmJiB0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpKSB7XG4gICAgICB0aGlzLnJlY2lwZURldGFpbHNPcGVuVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZmV0Y2hSZWNpcGUodGhpcy5yZWNpcGVJZCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHRoaXMuZGlzcGxheVRhZ3MpIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmZvcmNlRGlzcGxheVRhZ3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnRhZ3NPblJlY2lwZXNFbmFibGVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwc09uTGVmdFNpZGUpIHtcbiAgICAgIHRoaXMuY29va2luZ1RpbWVBc1ByaW1hcnlJbmZvID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VvU2VydmljZS5yZW1vdmVTRU9EYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hSZWNpcGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldChpZCwge1xuICAgICAgICBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHNcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnRvdGFsUHJvZHVjdHMkLm5leHQocmVzdWx0LnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YS5sZW5ndGgpO1xuICAgICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VvU2VydmljZS5zZXRTRU9EYXRhKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSArdGhpcy5ndWVzdE51bWJlciB8fCArcmVzdWx0Lmd1ZXN0cztcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmdldFByb2R1Y3RzKHRydWUpO1xuICAgICAgICAgIHRoaXMuc2VuZFBhZ2V2aWV3RXZlbnQoKTtcbiAgICAgICAgICB0aGlzLnNldHVwWW91dHViZVBsYXllcigpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmlzU3BvbnNvcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcG9uc29yQmxvY2tzU2VydmljZS5hbGwoe1xuICAgICAgICAgICAgICByZW1vdGVmaWx0ZXI6IHsgJ3Nwb25zb3ItaWQnOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5zcG9uc29yc1swXS5pZCB9LFxuICAgICAgICAgICAgICBwYWdlOiB7IG51bWJlcjogMSwgc2l6ZTogMSB9XG4gICAgICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB0aGlzLnNwb25zb3JIYXNTdG9yeXRlbGxpbmcgPSAhIXJlc3VsdC5kYXRhLmxlbmd0aClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1JlY2lwZUZldGNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuXG4gICAgKTtcbiAgfVxuXG4gIHNldHVwWW91dHViZVBsYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dWaWRlbyA9IGZhbHNlOyAvLyBmb3JjZSByZWxvYWQgdmlkZW8gcGxheWVyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2hvd1ZpZGVvID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy52aWRlb0lkO1xuICAgIGlmICh0aGlzLnNob3dWaWRlbykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh3aW5kb3cuWVQ/LlBsYXllcikge1xuICAgICAgICAgIHRoaXMucGxheWVyV2lkdGggPSB0aGlzLnRvcENvbnRhaW5lckltZz8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgdGhpcy5wbGF5ZXJIZWlnaHQgPSBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ4LCB0aGlzLnBsYXllcldpZHRoICogMzkwIC8gNjQwKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXR1cFlvdXR1YmVQbGF5ZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSwgNTApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHRoZSBsaXN0ZW5lciBvbiBzY3JvbGwgc28gdGhlIG1vZGFsIGNhbiBoaWRlIHRoZSBjbG9zZSBpY29uXG4gICAqL1xuICBpbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50aXRsZSkge1xuICAgICAgdGhpcy50aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRlbnQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgdGhpcy5jb250ZW50ICYmIHRoaXMudGl0bGUpIHtcbiAgICAgIC8vIEZvciBtb3JlIHByZWNpc2lvbiBvbiB0aXRsZSBzY3JvbGwgZGV0ZWN0aW9uLCB3ZSB3YW50IHRvIHRyaWdnZXIgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB1c2VyIHNjcm9sbHMgNSUgb2YgdGhlIGNvbnRlbnRcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IFsuLi5BcnJheSgyMCkua2V5cygpXS5tYXAoeCA9PiB4IC8gMjApO1xuICAgICAgLy8gUmVjZWl2ZSBhbiBldmVudCBlYWNoIHRpbWUgdGhlIHRpdGxlIGVudGVycy9sZWF2ZXMgdGhlIHZpZXdwb3J0XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVUaXRsZUluSGVhZGVyKCk7XG4gICAgICB9LCB7IHRocmVzaG9sZCB9KTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVRpdGxlSW5IZWFkZXIoKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZUluSGVhZGVyID0gdGhpcy50aXRsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPD0gNDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlTGFzdE9yZGVyTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSAhdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlR3Vlc3RzKGd1ZXN0czogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID09PSBndWVzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSBndWVzdHM7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVHdWVzdHModGhpcy5ldmVudFRyYWNlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVBZGRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBZGRvbiA9ICF0aGlzLnNob3dBZGRvbjtcbiAgICBpZiAodGhpcy5zaG93QWRkb24pIHtcbiAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAgICdzcG9uc29yLmRpc3BsYXknLFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUhlbHBlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnRvZ2dsZUhlbHBlcigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUJ1dHRvbkxvYWRlcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWRkQnV0dG9uTG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9yZGVyQWdhaW4oZXZlbnRUcmFjZTogRXZlbnRUcmFjZSk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsQ29udGVudEVsbTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWlhbS1tb2RhbF9fY29udGVudCcpO1xuICAgIGlmIChtb2RhbENvbnRlbnRFbG0pIHtcbiAgICAgIG1vZGFsQ29udGVudEVsbS5zY3JvbGxUb3AgPSAwO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgY2xvc2VMYXN0T3JkZXJNb2RhbChldmVudFRyYWNlOiBFdmVudFRyYWNlKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVMYXN0T3JkZXJNb2RhbCgpO1xuICAgIHRoaXMub3JkZXJBZ2FpbihldmVudFRyYWNlKTtcbiAgfVxuXG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuY29udGludWUnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIGNsb3NlKG9wZW5CYXNrZXQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAncmVjaXBlLmNsb3NlJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5vbkNsb3NlKG9wZW5CYXNrZXQpO1xuICB9XG5cbiAgb25DbG9zZShvcGVuQmFza2V0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnBhZ2V2aWV3RXZlbnRXYXNTZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLmNsb3NlU3RvcmVMb2NhdG9yKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuaW5pdGlhbFRhYkluZGV4O1xuICAgIGlmIChvcGVuQmFza2V0KSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLm9wZW5CYXNrZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5oaWRlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VEZXRhaWxzLmVtaXQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcmludCgpOiB2b2lkIHtcbiAgICB3aW5kb3cucHJpbnQoKTtcbiAgfVxuXG4gIHNlbmRQYWdldmlld0V2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCkge1xuICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IHRydWU7XG4gICAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1ByaWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUgJiYgdGhpcy5kaXNwbGF5UHJpY2luZyAmJiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmhhc0FkZGVkQVByb2R1Y3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4ID8gJ2Nvb2tpbmcnIDogJ3Nob3BwaW5nJztcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGByZWNpcGVzLyR7dGhpcy5yZWNpcGVJZCA/PyAwfS8ke3RoaXMuZ2V0QWN0aXZlVGFiSW5kZXhOYW1lKHRoaXMuYWN0aXZlVGFiSW5kZXgpfWA7XG4gIH1cblxuICBjaGVja1BvcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RUYWIoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYkluZGV4ID09PSBhY3RpdmVUYWJJbmRleCkgeyByZXR1cm47IH1cblxuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICBgcmVjaXBlLiR7dGhpcy5nZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXgpfS5kaXNwbGF5YCxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZUlkIH1cbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBhY3RpdmVUYWJJbmRleDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIhc2hvd0FkZG9uICYmICEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc1wiXG4gIFtjbGFzcy5oaWRkZW5dPVwic2hvd1N0b3JlU2VsZWN0b3JcIj5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlXCIgY2xhc3M9XCJtaWFtLWRzLWxvYWRlciBtaWFtLXJlY2lwZS1kZXRhaWxzX19sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRhaW5lclwiXG4gICAgICAgKm5nSWY9XCIhKHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlKSAmJiByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj5cbiAgICA8IS0tIEJBTk5FUiBDT05UQUlORVIgLS0+XG4gICAgPGRpdiAjdG9wQ29udGFpbmVySW1nIFtjbGFzcy5uby1zdXBwbGllcl09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlXCI+XG4gICAgICA8IS0tIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Jhbm5lcl9idXR0b25zXCI+XG4gICAgICAgIDwhLS0gVE9QIEJVVFRPTlMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190b3AtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8IS0tIERFU0tUT1AgQ0xPU0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIkZlcm1lclwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gTU9CSUxFIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGUtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDwhLS0gQkFDSyBCVVRUT04gT04gVEhFIExFRlQgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1pY29uXCJcbiAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL2NoZXZyb24tZG93bi1wcmltYXJ5LnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gTElLRSBCVVRUT04gT04gVEhFIFJJR0hUIC0tPlxuICAgICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQudmFsdWVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICAgICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLW1pYW0tbGlrZS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEdVRVNUIENPVU5URVIgLS0+XG4gICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXRcbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2d1ZXN0LWNvdW50ZXJcIlxuICAgICAgICAgIFtmbG9hdGluZ109XCJ0cnVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbbWluUmFuZ2VdPVwiMVwiXG4gICAgICAgICAgW2RlYm91bmNlVGltZV09XCIzMDBcIlxuICAgICAgICAgIFtkaXNhYmxlXT1cIihyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9uc1wiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCI+XG4gICAgICAgICAgPlxuICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBQSUNUVVJFIC8gVklERU8gLS0+XG4gICAgICA8aW1nXG4gICAgICAgIFthdHRyLmFsdF09XCJcIlxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCJcbiAgICAgICAgKm5nSWY9XCIhc2hvd1ZpZGVvXCJcbiAgICAgICAgW3NyY109XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCJcbiAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmVcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BpY3R1cmUtaW1nXCI+XG4gICAgICA8eW91dHViZS1wbGF5ZXJcbiAgICAgICAgKm5nSWY9XCJzaG93VmlkZW8gJiYgcGxheWVyV2lkdGhcIlxuICAgICAgICBbdmlkZW9JZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUudmlkZW9JZFwiXG4gICAgICAgIFt3aWR0aF09XCJwbGF5ZXJXaWR0aFwiXG4gICAgICAgIFtoZWlnaHRdPVwicGxheWVySGVpZ2h0XCJcbiAgICAgICAgW3BsYXllclZhcnNdPVwicGxheWVyVmFyc1wiXG4gICAgICAgIHRpdGxlPVwiVmlkw6lvIGRlIGxhIHJlY2V0dGVcIlxuICAgICAgPjwveW91dHViZS1wbGF5ZXI+XG4gICAgICA8IS0tIEZpbGlncmFuZSBsb2dvIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlX19maWxpZ3JhbmVcIj5cbiAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc3JjXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNQT05TT1IgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Nwb25zb3JcIj5cbiAgICAgIDxuZy1taWFtLWFkZG9uLWxpbmtcbiAgICAgICAgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pc1Nwb25zb3JlZCB8fCByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaW5mb3JtYXRpb25hbFNlbnRlbmNlXCJcbiAgICAgICAgW2hhc1N0b3J5dGVsbGluZ109XCJzcG9uc29ySGFzU3Rvcnl0ZWxsaW5nXCJcbiAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZScgKHNob3dBZGRvbik9J3RvZ2dsZUFkZG9uKCknPjwvbmctbWlhbS1hZGRvbi1saW5rPlxuICAgICAgPGhyIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3BvbnNvci1zZXBhcmF0b3JcIj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIExBU1QgT1JERVIgQkFER0UgLS0+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0xvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyLWJhZGdlIG1pYW0tZHMtYmFkZ2VcIiAoY2xpY2spPVwidG9nZ2xlTGFzdE9yZGVyTW9kYWwoKVwiIGFyaWEtbGFiZWw9XCJBZmZpY2hlciBsZXMgZMOpdGFpbHMgZGUgbGEgY29tbWFuZGUgcHLDqWPDqWRlbnRlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9JbmZvc19CbHVlLnN2Z1wiIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbGFzdC1vcmRlci1iYWRnZS10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+Q29tbWFuZGUgZHUgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTVElDS1kgSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGlja3ktaGVhZGVyXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBUSVRMRSBDT05UQUlORVIgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUtY29udGFpbmVyXCIgbmdNaWFtUmVhY2hUb3AgW3N0aWNreUJ5RGVmYXVsdF09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICAgIDwhLS0gQkFDSyBCVVRUT04gKE1PQklMRSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYWNrLWJ1dHRvbi1tb2JpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2stYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNtYWxsIHNxdWFyZSBnaG9zdFwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2staWNvblwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvY2hldnJvbi1kb3duLXByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBSRUNJUEUgVElUTEUgLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUgbWlhbS1kcy10ZXh0IHNpemUteGwgd2VpZ2h0LXh4bFwiIHJvbGU9XCJoZWFkaW5nXCIgYXJpYS1sZXZlbD1cIjFcIj5cbiAgICAgICAge3sgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddIH19XG4gICAgICA8L3NwYW4+XG4gICAgICAgIDwhLS0gUkVDSVBFIEFDVElPTlMgKExJS0UgLyBDTE9TRSBNT0RBTCktLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIj5cbiAgICAgICAgICA8IS0tIExJS0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC52YWx1ZSkgJiYgIWNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIlxuICAgICAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSdcbiAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwhLS0gQ0xPU0UgTU9EQUwgQlVUVE9OIChERVNLVE9QKSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faGlkZWFibGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fY2xvc2UtYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNxdWFyZSBnaG9zdFwiIGFyaWEtbGFiZWw9XCJGZXJtZXJcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCIvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFNUT1JFIExPQ0FUT1IgTElOSyAtLT5cbiAgICAgIDxuZy1taWFtLXN0b3JlLWxvY2F0b3ItbGluayAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tc3RvcmUtbG9jYXRvci1saW5rPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gUkVDSVBFIEJBU0lDIElORk9STUFUSU9OUyArIFRBQlMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICA8IS0tICBSRUNJUEUgQkFTSUMgSU5GT1JNQVRJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3NcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc1wiXG4gICAgICAgIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3M+XG4gICAgICA8IS0tIFRBQlMgVE8gU1dJVENIIEJFVFdFRU4gQkFTS0VUIEFORCBJTlNUUlVDVElPTlMgLS0+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogcmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvbn1cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhYnNcIj5cbiAgICAgICAgPG5nLW1pYW0tc2xpZGVyLXRhYnNcbiAgICAgICAgICBpMThuLXRhYnNcbiAgICAgICAgICB0YWJzPVwiSmUgZmFpcyBtZXMgY291cnNlcywgSmUgY3Vpc2luZVwiXG4gICAgICAgICAgW3NlbGVjdGVkVGFiSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXhcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cInNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gVEFCIEZPUiBQUk9EVUNUUyBQSUNLRVIgT1IgTk8gUE9TIERJU1BMQVkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYkluZGV4ID09PSAwXCI+XG4gICAgICA8bmctbWlhbS1wcm9kdWN0cy1waWNrZXJcbiAgICAgICAgKm5nSWY9XCIhcmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5ICYmICFyZWNpcGVEZXRhaWxzU2VydmljZS5pbnZhbGlkUG9zRGlzcGxheVwiXG4gICAgICAgIChjbG9zZU1vZGFsKT1cImNsb3NlKClcIlxuICAgICAgICAoZ3Vlc3RzQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Byb2R1Y3RzLXBpY2tlclwiXG4gICAgICA+XG4gICAgICA8L25nLW1pYW0tcHJvZHVjdHMtcGlja2VyPlxuICAgICAgPG5nLW1pYW0tbm8tcG9zLXNlbGVjdGVkXG4gICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5IHx8IHJlY2lwZURldGFpbHNTZXJ2aWNlLmludmFsaWRQb3NEaXNwbGF5XCJcbiAgICAgICAgW2ludmFsaWRQb3NdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuaW52YWxpZFBvc0Rpc3BsYXlcIlxuICAgICAgICAocG9zU2VsZWN0ZWQpPVwiY2hlY2tQb3MoKVwiXG4gICAgICA+PC9uZy1taWFtLW5vLXBvcy1zZWxlY3RlZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIFRBQiBGT1IgSU5TVFJVQ1RJT05TIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVUYWJJbmRleCA9PT0gMVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJlcGFyYXRpb24tdGFiXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBJTkdSRURJRU5UUyBUWVBFIEFORCBRVUFOVElUSUVTIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5ncmVkaWVudHNcbiAgICAgICAgW2luZ3JlZGllbnRzXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50c1wiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzPlxuICAgICAgPCEtLSBSRUNJUEUgSU5TVFJVQ1RJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHMgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj48L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHM+XG4gICAgICA8IS0tIE9SREVSIEFHQUlOIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoID4gMCAmJiAhIXJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19vcmRlci1hZ2Fpbi10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCIgaTE4bj5DZXR0ZSByZWNldHRlIHZvdXMgYSBwbHUgPzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLXRleHQgbWlhbS1kcy10ZXh0IHNpemUtbVwiIGkxOG4+XG4gICAgICAgICAgICBOb3VzIGF2b25zIGNvbnNlcnbDqSB2b3RyZSBkZXJuacOocmUgc8OpbGVjdGlvbiBkZSBwcm9kdWl0c1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLWN0YSBtaWFtLWRzLWJ1dHRvbiBzZWNvbmRhcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9yZGVyQWdhaW4oZXZlbnRUcmFjZSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlIHx8XG4gICAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgKGJhc2tldFN5bmNocm9TZXJ2aWNlLmhhc1BlbmRpbmdBY3Rpb25zKCkgfCBhc3luYyk7IGVsc2Ugc2hvd0ljb25cIlxuICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XG4gICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQmFza2V0X0JsdWUuc3ZnXCIvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Db21tYW5kZXIgw6Agbm91dmVhdTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZPT1RFUiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlVGFiSW5kZXggPT09IDAgJiYgIXJlY2lwZURldGFpbHNTZXJ2aWNlLm5vUG9zRGlzcGxheVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fZm9vdGVyXCJcbiAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCI+XG4gICAgICAgIDwhLS0gQUREIFRPIEJBU0tFVCBDVEEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLnZhbHVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0ZXIgdG91cyBsZXMgaW5ncsOpZGllbnRzIGF1IHBhbmllclwiPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWRkLXRvLWJhc2tldC1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyByZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoIDw9IDFcIj5wcm9kdWl0PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPiAxXCI+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGQtdG8tYmFza2V0LXJlbWFpbmluZy1wcmljZVwiPiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhpZGRlbl09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLnJlbWFpbmluZyB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIShyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFsbEluZ3JlZGllbnRzVG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0IGVuIGNvdXJzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19yZWNpcGUtaXMtaW4tYmFza2V0LWN0YS1jb250YWluZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8IS0tIENPTlRJTlVFIENUQSAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeSBtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250aW51ZS1zaG9wcGluZy1jdGFcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1oaWRkZW5dPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhX190ZXh0XCIgaTE4bj5Db250aW51ZXIgbWVzIGNvdXJzZXM8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPCEtLSBWSUVXIEJBU0tFVCBDVEEgKE9OTFkgSUYgTk8gU1VQUExJRVIgTU9ERSkgLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHByaW1hcnkgbWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldC1jdGFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldF9fdGV4dFwiIGkxOG4+XG4gICAgICAgICAgICAgIFZvaXIgbW9uIHBhbmllclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaWRcIlxuICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbZmV0Y2hQcmljaW5nT25TY3JvbGxdPVwiZmFsc2VcIj5cbiAgICAgICAgPC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dQcmljZSgpICYmIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJpY2UtbGFiZWwgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcHJpY2VcbiAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVJbmdyZWRpZW50RnJvbUJhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2tldFN5bmNocm9IYXNQZW5kaWdBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVQcmljZS5pbkJhc2tldCB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1wcmljZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEoKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucylcIlxuICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gaTE4biBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3ByaWNlLWluLWJhc2tldC1sYWJlbCBtaWFtLWRzLXRleHQgc2l6ZS14c1wiPmRhbnMgbW9uIHBhbmllcjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBBRERPTiAtLT5cbjxuZy1taWFtLXJlY2lwZS1hZGRvblxuICAqbmdJZj1cInNob3dBZGRvblwiIFtyZWNpcGVdPSdyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUnXG4gIChoaWRlQWRkb24pPVwidG9nZ2xlQWRkb24oKVwiPjwvbmctbWlhbS1yZWNpcGUtYWRkb24+XG48IS0tIFJFUExBQ0UgSVRFTSBQQUdFIC0tPlxuPG5nLW1pYW0tcmVwbGFjZS1pdGVtXG4gICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlXCJcbiAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICBbYmFza2V0RW50cnldPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmJhc2tldEVudHJ5XCJcbiAgW2luZ3JlZGllbnRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmluZ3JlZGllbnRcIlxuICBbaWdub3JlU2VsZWN0ZWRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmlnbm9yZVNlbGVjdGVkXCJcbiAgW2xvYWRPblNlbGVjdF09XCJ0cnVlXCJcbiAgKHNlbGVjdGVkKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlID0gbnVsbDtcIlxuICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4+XG48L25nLW1pYW0tcmVwbGFjZS1pdGVtPlxuPCEtLSBMQVNUIE9SREVSIE1PREFMIC0tPlxuPG5nLW1pYW0tbGFzdC1vcmRlci1tb2RhbFxuICAqbmdJZj1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtkaXNwbGF5XT1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtpbkJhc2tldF09XCIhIXJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLmluQmFza2V0XCJcbiAgW29yZGVySGlzdG9yeURhdGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub3JkZXJIaXN0b3J5RGF0ZVwiXG4gIChjbG9zZSk9XCJ0b2dnbGVMYXN0T3JkZXJNb2RhbCgpXCJcbiAgKHN1Ym1pdCk9XCJjbG9zZUxhc3RPcmRlck1vZGFsKGV2ZW50VHJhY2UpXCI+XG48L25nLW1pYW0tbGFzdC1vcmRlci1tb2RhbD5cbiJdfQ==
|
package/fesm2015/ng-miam.js
CHANGED
|
@@ -17522,7 +17522,8 @@ function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
17522
17522
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
17523
17523
|
i0.ɵɵproperty("threshold", 0)("debounceTime", 0);
|
|
17524
17524
|
i0.ɵɵadvance(3);
|
|
17525
|
-
i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl)
|
|
17525
|
+
i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
17526
|
+
i0.ɵɵattribute("aria-hidden", true);
|
|
17526
17527
|
i0.ɵɵadvance(4);
|
|
17527
17528
|
i0.ɵɵproperty("ngIf", !(ctx_r0.displayBadge && ctx_r0.recipe.sponsorLogoUrl));
|
|
17528
17529
|
i0.ɵɵadvance(1);
|
|
@@ -17827,7 +17828,7 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
|
|
|
17827
17828
|
}
|
|
17828
17829
|
else {
|
|
17829
17830
|
i18n_6 = $localize `:␟f51693cf087a834d433fa3835d7b64905fdc57ee␟9008711340501624723:Découvrez nos recettes`;
|
|
17830
|
-
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "
|
|
17831
|
+
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 4, "ngIf"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 4, "ngIf"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 1, "miam-recipe-card__badge"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 1, "miam-recipe-card__badge"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["aria-hidden", "true", 3, "src", "alt", "error"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__difficulty-and-time"], ["class", "miam-recipe-card__difficulty", 4, "ngIf"], ["class", "miam-recipe-card__time", 4, "ngIf"], [1, "miam-recipe-card__difficulty"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/ChefHat.svg", "alt", "", "aria-hidden", "true"], [1, "miam-ds-text", "size-s", "weight-m"], [1, "miam-recipe-card__time"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Clock.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom-promotion"], [1, "miam-recipe-card__price"], [1, "miam-ds-text", "weight-xxl", 3, "recipeId", "serves", "inViewport", "priceSet"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked"], [1, "miam-recipe-card__actions__replace"], [1, "miam-ds-button", "ghost", 3, "click"], i18n_0, ["aria-label", "Supprimer la recette", 1, "miam-ds-button", "ghost", "square", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], i18n_2, [1, "miam-recipe-card__redirect", 3, "href"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/Suggestion_Redirect_Background.png", "alt", "D\u00E9couvrez nos recettes"], [1, "miam-recipe-card__redirect__footer"], [1, "miam-recipe-card__redirect__title", "miam-ds-text", "size-l", "weight-xxl"], i18n_4, [1, "miam-recipe-card__redirect__button", "miam-ds-button", "primary"], i18n_6]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
17831
17832
|
i0.ɵɵelementStart(0, "div", 0);
|
|
17832
17833
|
i0.ɵɵlistener("inViewport", function RecipeCardComponent_Template_div_inViewport_0_listener() { return ctx.sendShowEvent(); });
|
|
17833
17834
|
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_Template, 32, 20, "div", 1);
|
|
@@ -18836,7 +18837,7 @@ CatalogListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogListComponent
|
|
|
18836
18837
|
}
|
|
18837
18838
|
else {
|
|
18838
18839
|
i18n_11 = $localize `:␟834498e5698b366d53cba7a7f98b06a12967862c␟1875448131572248295: Chargement des résultats... `;
|
|
18839
|
-
} return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], [1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, [3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
18840
|
+
} return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], ["role", "list", 1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, ["role", "listitem", 3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
18840
18841
|
i0.ɵɵelementStart(0, "div", 0);
|
|
18841
18842
|
i0.ɵɵtemplate(1, CatalogListComponent_div_1_Template, 7, 9, "div", 1);
|
|
18842
18843
|
i0.ɵɵpipe(2, "async");
|
|
@@ -19799,7 +19800,7 @@ CatalogCategoryComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogCategoryC
|
|
|
19799
19800
|
}
|
|
19800
19801
|
else {
|
|
19801
19802
|
i18n_4 = $localize `:␟8f2c8f66fed7cbda7649b4ba2320375ff7526dbb␟5011068305185462335: Chargement des résultats... `;
|
|
19802
|
-
} return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], [1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
|
|
19803
|
+
} return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], ["role", "list", 1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
|
|
19803
19804
|
i0.ɵɵtemplate(0, CatalogCategoryComponent_div_0_Template, 19, 10, "div", 0);
|
|
19804
19805
|
} if (rf & 2) {
|
|
19805
19806
|
i0.ɵɵproperty("ngIf", !ctx.hide);
|
|
@@ -22773,7 +22774,7 @@ function RecipeDetailsComponent_div_0_div_2_img_13_Template(rf, ctx) { if (rf &
|
|
|
22773
22774
|
} if (rf & 2) {
|
|
22774
22775
|
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
22775
22776
|
i0.ɵɵproperty("src", ctx_r8.recipeDetailsService.recipe == null ? null : ctx_r8.recipeDetailsService.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
22776
|
-
i0.ɵɵattribute("
|
|
22777
|
+
i0.ɵɵattribute("aria-hidden", true);
|
|
22777
22778
|
} }
|
|
22778
22779
|
function RecipeDetailsComponent_div_0_div_2_youtube_player_14_Template(rf, ctx) { if (rf & 1) {
|
|
22779
22780
|
i0.ɵɵelement(0, "youtube-player", 41);
|