application-sidebar 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/application-sidebar.component.mjs +41 -17
- package/esm2022/lib/nav-menus/nav-menus.component.mjs +3 -3
- package/esm2022/lib/navmenu1.mjs +1573 -0
- package/esm2022/lib/services/application-sidebar.service.mjs +6 -1
- package/fesm2022/application-sidebar.mjs +47 -18
- package/fesm2022/application-sidebar.mjs.map +1 -1
- package/lib/application-sidebar.component.d.ts +3 -1
- package/lib/navmenu1.d.ts +936 -0
- package/package.json +1 -1
|
@@ -63,8 +63,8 @@ export class NavMenusComponent {
|
|
|
63
63
|
var promise = new Promise(async (resolve, reject) => {
|
|
64
64
|
console.log('appId', this.parentPanelId, this.applicationId);
|
|
65
65
|
// on shift+click open url in new tab along with context params
|
|
66
|
-
if (this.parentMenuId === 'app_global_settings' || appId === 'app_global_settings') {
|
|
67
|
-
if (listMenu.id === 'global_account_mgmt') {
|
|
66
|
+
if ((this.parentPanelId === 'iac_insights' && this.applicationId === 'ads_data_platform') || this.parentMenuId === 'app_global_settings' || appId === 'app_global_settings') {
|
|
67
|
+
if (listMenu.id === 'global_account_mgmt' || listMenu.id === 'iac_insights_user_mgmt') {
|
|
68
68
|
const url = listMenu.route;
|
|
69
69
|
if (this.applicationId == "ads_amazon_content") {
|
|
70
70
|
this.applicationId = this.navigation.getApplicationID();
|
|
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
265
265
|
type: ViewChild,
|
|
266
266
|
args: [MatMenuTrigger]
|
|
267
267
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJCLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8saUJBQWlCO0lBa0JuQjtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUF0QkEsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDMUMsSUFBSSxDQUFjO0lBQ2xCLGFBQWEsQ0FBUTtJQUNyQixZQUFZLENBQVE7SUFDcEIsYUFBYSxDQUFRO0lBQ3JCLFlBQVksQ0FBUTtJQUM3QixRQUFRLENBQVU7SUFFbEIsV0FBVyxDQUFNO0lBRWpCLFdBQVcsQ0FBaUI7SUFFNUIsbUJBQW1CLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxF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LEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS04sV0FBVztzQkFEVixTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdk1lbnVJdGVtIH0gZnJvbSAnLi4vbmF2LW1lbnUtaXRlbSc7XG5pbXBvcnQge1JvdXRlcixBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblNpZGViYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwbGljYXRpb24tc2lkZWJhci5zZXJ2aWNlJ1xuaW1wb3J0IHsgVXJsQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91cmwtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbG5jLW5hdi1tZW51cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYtbWVudXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXYtbWVudXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZNZW51c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBPdXRwdXQoKSBtZW51Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuICBASW5wdXQoKSBpdGVtOiBOYXZNZW51SXRlbTtcbiAgQElucHV0KCkgYXBwbGljYXRpb25JZDpzdHJpbmc7XG4gIEBJbnB1dCgpIHBhcmVudE1lbnVJZDpzdHJpbmc7XG4gIEBJbnB1dCgpIHBhcmVudFBhbmVsSWQ6c3RyaW5nO1xuICBASW5wdXQoKSBpc0FjdGl2ZUl0ZW06Ym9vbGVhblxuICBleHBhbmRlZDogYm9vbGVhbjtcblxuICBxdWVyeVBhcmFtczogYW55O1xuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKVxuICBjb250ZXh0TWVudTogTWF0TWVudVRyaWdnZXI7XG5cbiAgY29udGV4dE1lbnVQb3NpdGlvbiA9IHsgeDogJzBweCcsIHk6ICcwcHgnIH07XG5cbiAgdHJhbnNsYXRpb246IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmF2aWdhdGlvbjogQXBwbGljYXRpb25TaWRlYmFyU2VydmljZSwgXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOkFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgdXJsQ29udGV4dFNlcnZpY2U6IFVybENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29va2llOiBDb29raWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOlRyYW5zbGF0aW9uU2VydmljZVxuICAgICkge1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKTtcbiAgICB9KTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKSBhcmlhRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgcHVibGljIGhhc0ljb24oaXRlbTpOYXZNZW51SXRlbSl7XG4gICAgcmV0dXJuIChpdGVtLmljb24gIT0gdW5kZWZpbmVkICYmIGl0ZW0uaWNvbiAhPSAnJyk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRBcHBsaWNhdGlvbihuYW1lKXtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuc2VsZWN0ZWRBcHBsaWNhdGlvbih0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscywgbmFtZSk7XG4gIH1cbiAgXG4gIHB1YmxpYyBnZXRTcGVjaWZpZWRWYWx1ZShrZXk6c3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uLmZldGNoS2V5VmFsdWUoa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdE1lbnUoZXZlbnQ6YW55LGxpc3RNZW51Ok5hdk1lbnVJdGVtLCBhcHBJZD86YW55KSB7XG4gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnYXBwSWQnICwgdGhpcy5wYXJlbnRQYW5lbElkICwgdGhpcy5hcHBsaWNhdGlvbklkKTtcbiAgICAgIC8vIG9uIHNoaWZ0K2NsaWNrIG9wZW4gdXJsIGluIG5ldyB0YWIgYWxvbmcgd2l0aCBjb250ZXh0IHBhcmFtc1xuICAgICAgaWYodGhpcy5wYXJlbnRNZW51SWQgPT09ICdhcHBfZ2xvYmFsX3NldHRpbmdzJyB8fCBhcHBJZCA9PT0gJ2FwcF9nbG9iYWxfc2V0dGluZ3MnKXtcbiAgICAgICAgaWYobGlzdE1lbnUuaWQgPT09ICdnbG9iYWxfYWNjb3VudF9tZ210Jyl7XG4gICAgICAgICAgY29uc3QgdXJsID0gbGlzdE1lbnUucm91dGU7XG4gICAgICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb25JZCA9PSBcImFkc19hbWF6b25fY29udGVudFwiKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSWQgPSB0aGlzLm5hdmlnYXRpb24uZ2V0QXBwbGljYXRpb25JRCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KVxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCAsIHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUXVlcnkgUGFyYW1zID0gXCIgLHRoaXMucXVlcnlQYXJhbXMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0pXG4gICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGFsZXJ0KCdubyByb3V0ZSB0byBuYXZpZ2F0ZScpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfWVsc2UgaWYobGlzdE1lbnUuZGVmYXVsdHVybCl7XG4gICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51LmRlZmF1bHR1cmw7XG4gICAgICAgIGlmKGxpc3RNZW51LmlkID09IFwiYWRzX3ZlbmRvcl9zYWxlc1wiIHx8IGxpc3RNZW51LmlkID09ICdhZHNfc2VsbGVyX3NhbGVzJyl7XG4gICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwsIHsgYXBwSWQgOiBsaXN0TWVudS5pZH0pO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICB0aGlzLnNob3dMb2FkZXIoKTtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9ZWxzZXtcbiAgICAgICAgaWYobGlzdE1lbnUuZXh0ZXJuYWxfbGluayAmJiBsaXN0TWVudS5leHRlcm5hbF9saW5rICE9ICcnKXtcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtsaXN0TWVudS5leHRlcm5hbF9saW5rfWAsICdfYmxhbmsnKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoKHRoaXMucGFyZW50TWVudUlkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwICYmICFhcHBJZCkgfHwgKGFwcElkICYmIGFwcElkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwKSApe1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkxlbmd0aCA9IFwiICx0aGlzLnF1ZXJ5UGFyYW1zLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYoT2JqZWN0LmtleXModGhpcy5xdWVyeVBhcmFtcykubGVuZ3RoICE9IDApe1xuICBcbiAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0sIHsgcXVlcnlQYXJhbXMgOiB0aGlzLnF1ZXJ5UGFyYW1zIH0pXG4gICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGlzdE1lbnUucm91dGVdKVxuICAgICAgICAgICAgICAgICAgdGhpcy5tZW51Q2xpY2tlZC5lbWl0KHthY3RpdmVQYW5lbCA6IHRoaXMucGFyZW50UGFuZWxJZH0pO1xuICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9IFxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBhbGVydCgnbm8gcm91dGUgdG8gbmF2aWdhdGUnKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51Lmxpbms7XG4gICAgICAgICAgaWYodGhpcy51cmxDb250ZXh0U2VydmljZS52YWxpZGF0ZUtleVN0cm9rZShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSlcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IE5hdk1lbnVJdGVtKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xuICAgIHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55ID0gZXZlbnQuY2xpZW50WSArICdweCc7XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51RGF0YSA9IHsgJ2l0ZW0nOiBpdGVtIH07XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51LmZvY3VzRmlyc3RJdGVtKCdtb3VzZScpO1xuICAgIHRoaXMuY29udGV4dE1lbnUub3Blbk1lbnUoKTtcbiAgfVxuXG4gIG9uQ29udGV4dE1lbnVBY3Rpb24oaXRlbTogTmF2TWVudUl0ZW0pIHtcblxuICAgIGlmKHRoaXMucGFyZW50TWVudUlkID09PSAnYXBwX2dsb2JhbF9zZXR0aW5ncycpe1xuICAgICAgaWYoaXRlbS5pZCA9PT0gJ2dsb2JhbF9hY2NvdW50X21nbXQnKXtcbiAgICAgICAgY29uc3QgdXJsID0gaXRlbS5saW5rO1xuICAgICAgICB0aGlzLm9wZW5Jbk5ld1RhYih1cmwsZmFsc2UseyBhcHBJZCA6IHRoaXMuYXBwbGljYXRpb25JZH0pXG4gICAgICB9XG4gICAgICBlbHNlIGlmKGl0ZW0ucm91dGUgIT0gJycpIHtcbiAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIoaXRlbS5yb3V0ZSx0cnVlKVxuICAgICAgfVxuICAgIH1lbHNle1xuICAgICAgaWYoaXRlbS5leHRlcm5hbF9saW5rICYmIGl0ZW0uZXh0ZXJuYWxfbGluayAhPSAnJyl7XG4gICAgICAgIHdpbmRvdy5vcGVuKGAke2l0ZW0uZXh0ZXJuYWxfbGlua31gLCAnX2JsYW5rJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYodGhpcy5wYXJlbnRNZW51SWQuaW5kZXhPZih0aGlzLmFwcGxpY2F0aW9uSWQpID49IDAgICl7XG4gICAgICAgIGlmIChpdGVtLnJvdXRlICE9ICcnKSB7XG4gICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIoaXRlbS5yb3V0ZSx0cnVlKVxuICAgICAgICB9XG4gICAgICB9IFxuICAgICAgZWxzZXtcbiAgICAgICAgICBjb25zdCB1cmwgPSBpdGVtLmxpbms7XG4gICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuSW5OZXdUYWIobGluayxpc1JvdXRlckxpbmssYXBwbGljYXRpb25JZCA9IHVuZGVmaW5lZCl7XG4gICAgbGV0IGRhdGVUaXRsZSA9IHRoaXMuZmV0Y2hEYXRlUmFuZ2UoKTtcbiAgICBsZXQgZGF0ZVJhbmdlVmFsID0gdGhpcy51cmxDb250ZXh0U2VydmljZS5zZXREYXRlUmFuZ2VVcmxWYWwoZGF0ZVRpdGxlKTtcbiAgICBcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudEFjY291bnQgPT0gdW5kZWZpbmVkKXtcbiAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgb2lkIDogdGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudE9yZ2FuaXphdGlvbi5vcmdhbml6YXRpb25JZCxcbiAgICAgICAgZHIgOiBkYXRlUmFuZ2VWYWwsXG4gICAgICB9XG4gICAgICBpZihhcHBsaWNhdGlvbklkKXtcbiAgICAgICAgcXVlcnlQYXJhbXMgPSB7Li4ucXVlcnlQYXJhbXMsIC4uLmFwcGxpY2F0aW9uSWR9XG4gICAgICB9XG4gICAgICB0aGlzLnVybENvbnRleHRTZXJ2aWNlLnNldFVybEFuZE9wZW5UYWIobGluayxxdWVyeVBhcmFtcyxpc1JvdXRlckxpbmspO1xuICAgIHJldHVyblxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgIGFpZCA6IHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLmN1cnJlbnRBY2NvdW50LmFtc0FjY291bnRJZCxcbiAgICAgICAgYmlkIDogdGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudEFjY291bnQuYnVzaW5lc3NHcm91cElkLFxuICAgICAgICBvaWQgOiB0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50QWNjb3VudC5vcmdhbml6YXRpb25JZCxcbiAgICAgICAgZHIgOiBkYXRlUmFuZ2VWYWwsXG4gICAgICB9XG4gICAgICBpZihhcHBsaWNhdGlvbklkKXtcbiAgICAgICAgcXVlcnlQYXJhbXMgPSB7Li4ucXVlcnlQYXJhbXMsIC4uLmFwcGxpY2F0aW9uSWR9XG4gICAgICB9XG4gICAgICB0aGlzLnVybENvbnRleHRTZXJ2aWNlLnNldFVybEFuZE9wZW5UYWIobGluayxxdWVyeVBhcmFtcyxpc1JvdXRlckxpbmspO1xuICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hEYXRlUmFuZ2UoKXtcbiAgICBpZih0aGlzLnF1ZXJ5UGFyYW1zLmhhc093blByb3BlcnR5KCd0aWQnKSAmJiB0aGlzLnF1ZXJ5UGFyYW1zLmhhc093blByb3BlcnR5KCdkcicpKXtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXJ5UGFyYW1zWydkciddO1xuICAgIH1lbHNle1xuICAgICAgY29uc3QgbG9nZ2VkSW5Vc2VyID0gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZS5nZXQoJ2xvZ2dlZEluVXNlcicpKTtcbiAgICAgIGNvbnNvbGUubG9nKCdMb2dnZWQgPSAnLGxvZ2dlZEluVXNlcik7XG4gICAgICByZXR1cm4gbG9nZ2VkSW5Vc2VyLmRhdGVSYW5nZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvd0xvYWRlcigpe1xuICAgIGxldCBsb2FkZXJfZGl2PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2FkZXJfc292Jyk7XG4gICAgICBpZihsb2FkZXJfZGl2KXtcbiAgICAgICAgbG9hZGVyX2Rpdi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgICAgfVxuICAgXG4gICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICBpZihsb2FkZXJfZGl2KXtcbiAgICAgICAgIGxvYWRlcl9kaXYuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgfVxuICAgICB9LCA1MDAwKTtcbiAgfVxuXG59XG4iLCI8YSBhcHBPZmZzZXRUb3AgY2xhc3M9XCJzaWRlbWVudS1vcHRpb24ge3tpdGVtLnN0eWxlX2NsYXNzZXN9fVwiIG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cIm9uU2VsZWN0TWVudSgkZXZlbnQsaXRlbSlcIlxuICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xlYWYnXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc0FjdGl2ZUl0ZW19XCIgKGNvbnRleHRtZW51KT1cIm9uQ29udGV4dE1lbnUoJGV2ZW50LCBpdGVtKVwiPlxuICA8IS0tIDxzcGFuIGNsYXNzPVwie3tpdGVtLmlkfX1faWNvblwiICpuZ0lmPVwiaXRlbS5pZCA9PSAnZ2xvYmFsX2FjY291bnRfbWdtdCdcIj48L3NwYW4+IC0tPlxuICA8aDMgbWF0TGluZSBjbGFzcz1cInNpZGVtZW51LXRleHQgZm9udC1jb2xvci1ibGFjayBuYXZNZW51cyBhcHBsaWNhdGlvbk1lbnVcIiBbbmdDbGFzc109XCJ7J21hcmdpbi1sZWZ0LTEwJzogaXRlbS5sZXZlbCA9PSAndHdvJywgXG4gICAgJ21hcmdpbi1sZWZ0LTM2JzogaXRlbS5sZXZlbCAhPSAndHdvJ31cIj5cbiAgICB7e3NlbGVjdGVkQXBwbGljYXRpb24oaXRlbSl9fVxuICAgIDxzcGFuIGlkPVwiYWN0aXZlQ291bnRcIiAqbmdJZj1cIml0ZW0uY291bnRLZXkgJiYgZ2V0U3BlY2lmaWVkVmFsdWUoaXRlbS5jb3VudEtleSlcIiBjbGFzcz1cIm5nLWJpbmRpbmcgbmctc2NvcGVcIj5cbiAgICAgIHt7IGdldFNwZWNpZmllZFZhbHVlKGl0ZW0uY291bnRLZXkpIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGlkPVwiYWN0aXZlUmVjQ291bnRcIiAqbmdJZj1cIml0ZW0ubmFtZSA9PSAnUmVjb21tZW5kYXRpb25zJyAmJiBpdGVtLnJlY0NvdW50ICE9ICcnICYmIGl0ZW0ucmVjQ291bnQgIT0gJzAnICYmIGl0ZW0ucmVjQ291bnQgIT0gbnVsbFwiIGNsYXNzPVwiYWN0aXZlUmVjQ291bnRcIj57e2l0ZW0ucmVjQ291bnR9fTwvc3Bhbj4gXG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCIgY2xhc3M9XCJiYWRnZS10ZXh0IHNvdi1iZXRhLXBvc2l0aW9uXCIgW2lubmVySFRNTF09XCJpdGVtLmJhZGdlXCI+PC9zcGFuPlxuICAgIDxzcGFuIGlkPVwiYWN0aXZlUmVjQ291bnRcIiAqbmdJZj1cIml0ZW0ubmFtZSA9PSAnUmVjb21tZW5kYXRpb25zJyAmJiBpdGVtLnJlY0NvdW50ICE9ICcnICYmIGl0ZW0ucmVjQ291bnQgIT0gJzAnICYmIGl0ZW0ucmVjQ291bnQgIT0gbnVsbFwiIGNsYXNzPVwiYWN0aXZlUmVjQ291bnRcIj57e2l0ZW0ucmVjQ291bnR9fTwvc3Bhbj4gXG4gIDwvaDM+XG48L2E+XG48ZGl2IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuOyBwb3NpdGlvbjogZml4ZWRcIiBbc3R5bGUubGVmdF09XCJjb250ZXh0TWVudVBvc2l0aW9uLnhcIlxuICBbc3R5bGUudG9wXT1cImNvbnRleHRNZW51UG9zaXRpb24ueVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJjb250ZXh0TWVudVwiPlxuPC9kaXY+XG48bWF0LW1lbnUgI2NvbnRleHRNZW51PVwibWF0TWVudVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNsYXNzPVwibmV3VGFiTWVudVwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25Db250ZXh0TWVudUFjdGlvbihpdGVtKVwiIGNsYXNzPVwibmV3VGFiTWVudVwiIGlkPVwibmV3VGFiQWN0aW9uQnRuXCI+T3BlbiBpbiBuZXdcbiAgICAgIHRhYjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cIm5ld1RhYk1lbnVcIj48L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG48bWF0LWRpdmlkZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzZXBhcmF0b3InXCIgY2xhc3M9XCJzZXBhcmF0b3JcIj48L21hdC1kaXZpZGVyPiJdfQ==
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJCLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8saUJBQWlCO0lBa0JuQjtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUF0QkEsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDMUMsSUFBSSxDQUFjO0lBQ2xCLGFBQWEsQ0FBUTtJQUNyQixZQUFZLENBQVE7SUFDcEIsYUFBYSxDQUFRO0lBQ3JCLFlBQVksQ0FBUTtJQUM3QixRQUFRLENBQVU7SUFFbEIsV0FBVyxDQUFNO0lBRWpCLFdBQVcsQ0FBaUI7SUFFNUIsbUJBQW1CLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxF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QitFOzs0RkRabEUsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7K1BBS2YsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFLTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2TWVudUl0ZW0gfSBmcm9tICcuLi9uYXYtbWVudS1pdGVtJztcbmltcG9ydCB7Um91dGVyLEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2lkZWJhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbi1zaWRlYmFyLnNlcnZpY2UnXG5pbXBvcnQgeyBVcmxDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VybC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsbmMtbmF2LW1lbnVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi1tZW51cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi1tZW51cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5hdk1lbnVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIG1lbnVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIEBJbnB1dCgpIGl0ZW06IE5hdk1lbnVJdGVtO1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbklkOnN0cmluZztcbiAgQElucHV0KCkgcGFyZW50TWVudUlkOnN0cmluZztcbiAgQElucHV0KCkgcGFyZW50UGFuZWxJZDpzdHJpbmc7XG4gIEBJbnB1dCgpIGlzQWN0aXZlSXRlbTpib29sZWFuXG4gIGV4cGFuZGVkOiBib29sZWFuO1xuXG4gIHF1ZXJ5UGFyYW1zOiBhbnk7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpXG4gIGNvbnRleHRNZW51OiBNYXRNZW51VHJpZ2dlcjtcblxuICBjb250ZXh0TWVudVBvc2l0aW9uID0geyB4OiAnMHB4JywgeTogJzBweCcgfTtcblxuICB0cmFuc2xhdGlvbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuYXZpZ2F0aW9uOiBBcHBsaWNhdGlvblNpZGViYXJTZXJ2aWNlLCBcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6QWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB1cmxDb250ZXh0U2VydmljZTogVXJsQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb29raWU6IENvb2tpZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6VHJhbnNsYXRpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCBwYXJhbXMpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpIGFyaWFFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgaGFzSWNvbihpdGVtOk5hdk1lbnVJdGVtKXtcbiAgICByZXR1cm4gKGl0ZW0uaWNvbiAhPSB1bmRlZmluZWQgJiYgaXRlbS5pY29uICE9ICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZEFwcGxpY2F0aW9uKG5hbWUpe1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5zZWxlY3RlZEFwcGxpY2F0aW9uKHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLCBuYW1lKTtcbiAgfVxuICBcbiAgcHVibGljIGdldFNwZWNpZmllZFZhbHVlKGtleTpzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb24uZmV0Y2hLZXlWYWx1ZShrZXkpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0TWVudShldmVudDphbnksbGlzdE1lbnU6TmF2TWVudUl0ZW0sIGFwcElkPzphbnkpIHtcbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdhcHBJZCcgLCB0aGlzLnBhcmVudFBhbmVsSWQgLCB0aGlzLmFwcGxpY2F0aW9uSWQpO1xuICAgICAgLy8gb24gc2hpZnQrY2xpY2sgb3BlbiB1cmwgaW4gbmV3IHRhYiBhbG9uZyB3aXRoIGNvbnRleHQgcGFyYW1zXG4gICAgICBpZigodGhpcy5wYXJlbnRQYW5lbElkID09PSAnaWFjX2luc2lnaHRzJyAmJiB0aGlzLmFwcGxpY2F0aW9uSWQgPT09ICdhZHNfZGF0YV9wbGF0Zm9ybScpIHx8IHRoaXMucGFyZW50TWVudUlkID09PSAnYXBwX2dsb2JhbF9zZXR0aW5ncycgfHwgYXBwSWQgPT09ICdhcHBfZ2xvYmFsX3NldHRpbmdzJyl7XG4gICAgICAgIGlmKGxpc3RNZW51LmlkID09PSAnZ2xvYmFsX2FjY291bnRfbWdtdCcgfHwgbGlzdE1lbnUuaWQgPT09ICdpYWNfaW5zaWdodHNfdXNlcl9tZ210Jyl7XG4gICAgICAgICAgY29uc3QgdXJsID0gbGlzdE1lbnUucm91dGU7XG4gICAgICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb25JZCA9PSBcImFkc19hbWF6b25fY29udGVudFwiKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSWQgPSB0aGlzLm5hdmlnYXRpb24uZ2V0QXBwbGljYXRpb25JRCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KVxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCAsIHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUXVlcnkgUGFyYW1zID0gXCIgLHRoaXMucXVlcnlQYXJhbXMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0pXG4gICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGFsZXJ0KCdubyByb3V0ZSB0byBuYXZpZ2F0ZScpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfWVsc2UgaWYobGlzdE1lbnUuZGVmYXVsdHVybCl7XG4gICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51LmRlZmF1bHR1cmw7XG4gICAgICAgIGlmKGxpc3RNZW51LmlkID09IFwiYWRzX3ZlbmRvcl9zYWxlc1wiIHx8IGxpc3RNZW51LmlkID09ICdhZHNfc2VsbGVyX3NhbGVzJyl7XG4gICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwsIHsgYXBwSWQgOiBsaXN0TWVudS5pZH0pO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICB0aGlzLnNob3dMb2FkZXIoKTtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9ZWxzZXtcbiAgICAgICAgaWYobGlzdE1lbnUuZXh0ZXJuYWxfbGluayAmJiBsaXN0TWVudS5leHRlcm5hbF9saW5rICE9ICcnKXtcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtsaXN0TWVudS5leHRlcm5hbF9saW5rfWAsICdfYmxhbmsnKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoKHRoaXMucGFyZW50TWVudUlkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwICYmICFhcHBJZCkgfHwgKGFwcElkICYmIGFwcElkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwKSApe1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkxlbmd0aCA9IFwiICx0aGlzLnF1ZXJ5UGFyYW1zLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYoT2JqZWN0LmtleXModGhpcy5xdWVyeVBhcmFtcykubGVuZ3RoICE9IDApe1xuICBcbiAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0sIHsgcXVlcnlQYXJhbXMgOiB0aGlzLnF1ZXJ5UGFyYW1zIH0pXG4gICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGlzdE1lbnUucm91dGVdKVxuICAgICAgICAgICAgICAgICAgdGhpcy5tZW51Q2xpY2tlZC5lbWl0KHthY3RpdmVQYW5lbCA6IHRoaXMucGFyZW50UGFuZWxJZH0pO1xuICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9IFxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBhbGVydCgnbm8gcm91dGUgdG8gbmF2aWdhdGUnKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51Lmxpbms7XG4gICAgICAgICAgaWYodGhpcy51cmxDb250ZXh0U2VydmljZS52YWxpZGF0ZUtleVN0cm9rZShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSlcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IE5hdk1lbnVJdGVtKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xuICAgIHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55ID0gZXZlbnQuY2xpZW50WSArICdweCc7XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51RGF0YSA9IHsgJ2l0ZW0nOiBpdGVtIH07XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51LmZvY3VzRmlyc3RJdGVtKCdtb3VzZScpO1xuICAgIHRoaXMuY29udGV4dE1lbnUub3Blbk1lbnUoKTtcbiAgfVxuXG4gIG9uQ29udGV4dE1lbnVBY3Rpb24oaXRlbTogTmF2TWVudUl0ZW0pIHtcblxuICAgIGlmKHRoaXMucGFyZW50TWVudUlkID09PSAnYXBwX2dsb2JhbF9zZXR0aW5ncycpe1xuICAgICAgaWYoaXRlbS5pZCA9PT0gJ2dsb2JhbF9hY2NvdW50X21nbXQnKXtcbiAgICAgICAgY29uc3QgdXJsID0gaXRlbS5saW5rO1xuICAgICAgICB0aGlzLm9wZW5Jbk5ld1RhYih1cmwsZmFsc2UseyBhcHBJZCA6IHRoaXMuYXBwbGljYXRpb25JZH0pXG4gICAgICB9XG4gICAgICBlbHNlIGlmKGl0ZW0ucm91dGUgIT0gJycpIHtcbiAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIoaXRlbS5yb3V0ZSx0cnVlKVxuICAgICAgfVxuICAgIH1lbHNle1xuICAgICAgaWYoaXRlbS5leHRlcm5hbF9saW5rICYmIGl0ZW0uZXh0ZXJuYWxfbGluayAhPSAnJyl7XG4gICAgICAgIHdpbmRvdy5vcGVuKGAke2l0ZW0uZXh0ZXJuYWxfbGlua31gLCAnX2JsYW5rJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYodGhpcy5wYXJlbnRNZW51SWQuaW5kZXhPZih0aGlzLmFwcGxpY2F0aW9uSWQpID49IDAgICl7XG4gICAgICAgIGlmIChpdGVtLnJvdXRlICE9ICcnKSB7XG4gICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIoaXRlbS5yb3V0ZSx0cnVlKVxuICAgICAgICB9XG4gICAgICB9IFxuICAgICAgZWxzZXtcbiAgICAgICAgICBjb25zdCB1cmwgPSBpdGVtLmxpbms7XG4gICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuSW5OZXdUYWIobGluayxpc1JvdXRlckxpbmssYXBwbGljYXRpb25JZCA9IHVuZGVmaW5lZCl7XG4gICAgbGV0IGRhdGVUaXRsZSA9IHRoaXMuZmV0Y2hEYXRlUmFuZ2UoKTtcbiAgICBsZXQgZGF0ZVJhbmdlVmFsID0gdGhpcy51cmxDb250ZXh0U2VydmljZS5zZXREYXRlUmFuZ2VVcmxWYWwoZGF0ZVRpdGxlKTtcbiAgICBcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudEFjY291bnQgPT0gdW5kZWZpbmVkKXtcbiAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgb2lkIDogdGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudE9yZ2FuaXphdGlvbi5vcmdhbml6YXRpb25JZCxcbiAgICAgICAgZHIgOiBkYXRlUmFuZ2VWYWwsXG4gICAgICB9XG4gICAgICBpZihhcHBsaWNhdGlvbklkKXtcbiAgICAgICAgcXVlcnlQYXJhbXMgPSB7Li4ucXVlcnlQYXJhbXMsIC4uLmFwcGxpY2F0aW9uSWR9XG4gICAgICB9XG4gICAgICB0aGlzLnVybENvbnRleHRTZXJ2aWNlLnNldFVybEFuZE9wZW5UYWIobGluayxxdWVyeVBhcmFtcyxpc1JvdXRlckxpbmspO1xuICAgIHJldHVyblxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgIGFpZCA6IHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLmN1cnJlbnRBY2NvdW50LmFtc0FjY291bnRJZCxcbiAgICAgICAgYmlkIDogdGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudEFjY291bnQuYnVzaW5lc3NHcm91cElkLFxuICAgICAgICBvaWQgOiB0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50QWNjb3VudC5vcmdhbml6YXRpb25JZCxcbiAgICAgICAgZHIgOiBkYXRlUmFuZ2VWYWwsXG4gICAgICB9XG4gICAgICBpZihhcHBsaWNhdGlvbklkKXtcbiAgICAgICAgcXVlcnlQYXJhbXMgPSB7Li4ucXVlcnlQYXJhbXMsIC4uLmFwcGxpY2F0aW9uSWR9XG4gICAgICB9XG4gICAgICB0aGlzLnVybENvbnRleHRTZXJ2aWNlLnNldFVybEFuZE9wZW5UYWIobGluayxxdWVyeVBhcmFtcyxpc1JvdXRlckxpbmspO1xuICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hEYXRlUmFuZ2UoKXtcbiAgICBpZih0aGlzLnF1ZXJ5UGFyYW1zLmhhc093blByb3BlcnR5KCd0aWQnKSAmJiB0aGlzLnF1ZXJ5UGFyYW1zLmhhc093blByb3BlcnR5KCdkcicpKXtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXJ5UGFyYW1zWydkciddO1xuICAgIH1lbHNle1xuICAgICAgY29uc3QgbG9nZ2VkSW5Vc2VyID0gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZS5nZXQoJ2xvZ2dlZEluVXNlcicpKTtcbiAgICAgIGNvbnNvbGUubG9nKCdMb2dnZWQgPSAnLGxvZ2dlZEluVXNlcik7XG4gICAgICByZXR1cm4gbG9nZ2VkSW5Vc2VyLmRhdGVSYW5nZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvd0xvYWRlcigpe1xuICAgIGxldCBsb2FkZXJfZGl2PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2FkZXJfc292Jyk7XG4gICAgICBpZihsb2FkZXJfZGl2KXtcbiAgICAgICAgbG9hZGVyX2Rpdi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgICAgfVxuICAgXG4gICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICBpZihsb2FkZXJfZGl2KXtcbiAgICAgICAgIGxvYWRlcl9kaXYuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgfVxuICAgICB9LCA1MDAwKTtcbiAgfVxuXG59XG4iLCI8YSBhcHBPZmZzZXRUb3AgY2xhc3M9XCJzaWRlbWVudS1vcHRpb24ge3tpdGVtLnN0eWxlX2NsYXNzZXN9fVwiIG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cIm9uU2VsZWN0TWVudSgkZXZlbnQsaXRlbSlcIlxuICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xlYWYnXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc0FjdGl2ZUl0ZW19XCIgKGNvbnRleHRtZW51KT1cIm9uQ29udGV4dE1lbnUoJGV2ZW50LCBpdGVtKVwiPlxuICA8IS0tIDxzcGFuIGNsYXNzPVwie3tpdGVtLmlkfX1faWNvblwiICpuZ0lmPVwiaXRlbS5pZCA9PSAnZ2xvYmFsX2FjY291bnRfbWdtdCdcIj48L3NwYW4+IC0tPlxuICA8aDMgbWF0TGluZSBjbGFzcz1cInNpZGVtZW51LXRleHQgZm9udC1jb2xvci1ibGFjayBuYXZNZW51cyBhcHBsaWNhdGlvbk1lbnVcIiBbbmdDbGFzc109XCJ7J21hcmdpbi1sZWZ0LTEwJzogaXRlbS5sZXZlbCA9PSAndHdvJywgXG4gICAgJ21hcmdpbi1sZWZ0LTM2JzogaXRlbS5sZXZlbCAhPSAndHdvJ31cIj5cbiAgICB7e3NlbGVjdGVkQXBwbGljYXRpb24oaXRlbSl9fVxuICAgIDxzcGFuIGlkPVwiYWN0aXZlQ291bnRcIiAqbmdJZj1cIml0ZW0uY291bnRLZXkgJiYgZ2V0U3BlY2lmaWVkVmFsdWUoaXRlbS5jb3VudEtleSlcIiBjbGFzcz1cIm5nLWJpbmRpbmcgbmctc2NvcGVcIj5cbiAgICAgIHt7IGdldFNwZWNpZmllZFZhbHVlKGl0ZW0uY291bnRLZXkpIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGlkPVwiYWN0aXZlUmVjQ291bnRcIiAqbmdJZj1cIml0ZW0ubmFtZSA9PSAnUmVjb21tZW5kYXRpb25zJyAmJiBpdGVtLnJlY0NvdW50ICE9ICcnICYmIGl0ZW0ucmVjQ291bnQgIT0gJzAnICYmIGl0ZW0ucmVjQ291bnQgIT0gbnVsbFwiIGNsYXNzPVwiYWN0aXZlUmVjQ291bnRcIj57e2l0ZW0ucmVjQ291bnR9fTwvc3Bhbj4gXG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCIgY2xhc3M9XCJiYWRnZS10ZXh0IHNvdi1iZXRhLXBvc2l0aW9uXCIgW2lubmVySFRNTF09XCJpdGVtLmJhZGdlXCI+PC9zcGFuPlxuICAgIDxzcGFuIGlkPVwiYWN0aXZlUmVjQ291bnRcIiAqbmdJZj1cIml0ZW0ubmFtZSA9PSAnUmVjb21tZW5kYXRpb25zJyAmJiBpdGVtLnJlY0NvdW50ICE9ICcnICYmIGl0ZW0ucmVjQ291bnQgIT0gJzAnICYmIGl0ZW0ucmVjQ291bnQgIT0gbnVsbFwiIGNsYXNzPVwiYWN0aXZlUmVjQ291bnRcIj57e2l0ZW0ucmVjQ291bnR9fTwvc3Bhbj4gXG4gIDwvaDM+XG48L2E+XG48ZGl2IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuOyBwb3NpdGlvbjogZml4ZWRcIiBbc3R5bGUubGVmdF09XCJjb250ZXh0TWVudVBvc2l0aW9uLnhcIlxuICBbc3R5bGUudG9wXT1cImNvbnRleHRNZW51UG9zaXRpb24ueVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJjb250ZXh0TWVudVwiPlxuPC9kaXY+XG48bWF0LW1lbnUgI2NvbnRleHRNZW51PVwibWF0TWVudVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNsYXNzPVwibmV3VGFiTWVudVwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25Db250ZXh0TWVudUFjdGlvbihpdGVtKVwiIGNsYXNzPVwibmV3VGFiTWVudVwiIGlkPVwibmV3VGFiQWN0aW9uQnRuXCI+T3BlbiBpbiBuZXdcbiAgICAgIHRhYjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cIm5ld1RhYk1lbnVcIj48L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG48bWF0LWRpdmlkZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzZXBhcmF0b3InXCIgY2xhc3M9XCJzZXBhcmF0b3JcIj48L21hdC1kaXZpZGVyPiJdfQ==
|