client-core-services 1.0.3 → 1.0.5

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.
@@ -497,4 +497,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
497
497
  providedIn: 'root'
498
498
  }]
499
499
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EnvService }, { type: i3.ApiService }, { type: i4.StorageService }, { type: i5.Router }, { type: i6.EncryptionService }, { type: i7.CommonFunctionService }, { type: i8.CoreFunctionService }, { type: i9.AuthDataShareService }, { type: i10.ApiCallService }]; } });
500
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hcGkvYXV0aC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUlqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7Ozs7O0FBWXJGLE1BQU0sT0FBTyxXQUFXO0lBR3RCLFlBQ1UsSUFBZSxFQUNmLFVBQXFCLEVBQ3JCLFVBQXFCLEVBQ3JCLGNBQTZCLEVBQzdCLE1BQWEsRUFDYixpQkFBbUMsRUFDbkMscUJBQTJDLEVBQzNDLG1CQUF1QyxFQUN2QyxvQkFBMEMsRUFDMUMsY0FBNkI7UUFUN0IsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtJQUNqQyxDQUFDO0lBR1AsUUFBUTtJQUVSLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxjQUFjLENBQUMsT0FB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QVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0MsUUFBUSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7Z0JBQzVCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO2dCQUM5QixRQUFRLENBQUMsR0FBRyxHQUFHLG9CQUFvQixDQUFDO2dCQUNwQyxJQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBQztvQkFDckIsUUFBUSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3hDO2dCQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pFO1FBQ0gsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFDLEVBQUU7WUFDUCxRQUFRLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDN0IsUUFBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7WUFDMUIsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQzs7eUdBaGVVLFdBQVc7NkdBQVgsV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlDYWxsU2VydmljZSB9IGZyb20gJy4vLi4vLi4vYXBpL2FwaS1jYWxsL2FwaS1jYWxsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVudlNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbnYvZW52LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVRva2VuU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3N0b3JhZ2UtdG9rZW4tc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uLXV0aWxzL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUZ1bmN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi11dGlscy9jb3JlLWZ1bmN0aW9uL2NvcmUtZnVuY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhEYXRhU2hhcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS1zaGFyZS9hdXRoLWRhdGEtc2hhcmUvYXV0aC1kYXRhLXNoYXJlLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6SHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZW52U2VydmljZTpFbnZTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOkFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOlN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6Um91dGVyLFxyXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTpFbmNyeXB0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tbW9uRnVuY3Rpb25TZXJ2aWNlOkNvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29yZUZ1bmN0aW9uU2VydmljZTpDb3JlRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoRGF0YVNoYXJlU2VydmljZTogQXV0aERhdGFTaGFyZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaUNhbGxTZXJ2aWNlOkFwaUNhbGxTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKXtcclxuXHJcbiAgfVxyXG5cclxuICBMb2dvdXQocGF5bG9hZDphbnkpe1xyXG4gICAgdGhpcy5yZXNldERhdGEoKTtcclxuICAgIHRoaXMubG9nT3V0UmVkaXJlY3Rpb24oKTtcclxuICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2UucmVzdFNldHRpbmdNb2R1bGUoJ2xvZ2dlZF9vdXQnKTtcclxuICB9XHJcbiAgU2Vzc2lvbkV4cGlyZWQocGF5bG9hZD86YW55KXtcclxuICAgIGxldCByZXNwb25zZSA9IHtcclxuICAgICAgc3RhdHVzOiAnJyxcclxuICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICBtc2c6ICcnXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXNldERhdGEoKTtcclxuICAgIHRoaXMubG9nT3V0UmVkaXJlY3Rpb24oKTtcclxuICAgIHJlc3BvbnNlLmNsYXNzID0gXCJiZy1pbmZvXCI7XHJcbiAgICByZXNwb25zZS5zdGF0dXMgPSBcInN1Y2Nlc3NcIjtcclxuICAgIHJlc3BvbnNlLm1zZyA9IFwiU2Vzc2lvbiBFeHBpcmVkLCBLaW5kbHkgTG9naW4gQWdhaW4uXCI7XHJcbiAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldFNlc3Npb25FeHBpcmVkKHJlc3BvbnNlKTtcclxuICAgIGlmKHRoaXMuc3RvcmFnZVNlcnZpY2UuY2hlY2tQbGF0Rm9ybSgpICE9ICdtb2JpbGUnKXtcclxuICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5yZXN0U2V0dGluZ01vZHVsZSgnbG9nZ2VkX291dCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNldERhdGEoKXtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlRGF0YUZvcm1TdG9yYWdlKCk7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UucmVzZXRNZW51RGF0YSgpO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLnJlc2V0VGVtcERhdGEoKTtcclxuICAgIHRoaXMuYXBpU2VydmljZS5yZXNldEdyaWREYXRhKCk7XHJcbiAgICB0aGlzLmVudlNlcnZpY2Uuc2V0UmVxdWVzdFR5cGUoJ1BVQkxJQycpO1xyXG4gICAgdGhpcy5hcGlDYWxsU2VydmljZS5nZXRBcHBsaWNhdGlvbkFsbFNldHRpbmdzKCk7XHJcbiAgfVxyXG4gIGxvZ091dFJlZGlyZWN0aW9uKCl7XHJcbiAgICBpZiAodGhpcy5lbnZTZXJ2aWNlLmNoZWNrUmVkaXJlY3Rpb25VcmwoKSkge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZW52U2VydmljZS5jaGVja1JlZGlyZWN0aW9uVXJsKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5yZWRpcmVjdFRvU2lnblBhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ290VG9TaWduaW5QYWdlKCl7XHJcbiAgICB0aGlzLnJlc2V0RGF0YSgpXHJcbiAgICB0aGlzLnJlZGlyZWN0VG9TaWduUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgR2V0VXNlckluZm9Gcm9tVG9rZW4ocGF5bG9hZDphbnksIGxvZ2luUmVkaXJlY3Q/OnN0cmluZyl7XHJcbiAgICBsZXQgcmVzcG9uc2UgPSB7XHJcbiAgICAgIHN0YXR1czogJycsXHJcbiAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgbXNnOiAnJ1xyXG4gICAgfTtcclxuICAgIGxldCBhcGkgPSBcIlwiO1xyXG4gICAgbGV0IHJlcUJvZHkgPSB7fTtcclxuICAgIGlmKHBheWxvYWQgJiYgcGF5bG9hZC5yb2xlTmFtZSAmJiBwYXlsb2FkLnJvbGVOYW1lICE9ICcnKXtcclxuICAgICAgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0dFVF9VU0VSX1BFUk1JU1NJT04nKStcIi9cIitwYXlsb2FkLnJvbGVOYW1lO1xyXG4gICAgICByZXFCb2R5ID0geyBrZXk6IHBheWxvYWQudG9rZW4gfTtcclxuICAgIH1lbHNle1xyXG4gICAgICBhcGkgPSB0aGlzLmVudlNlcnZpY2UuZ2V0QXV0aEFwaSgnR0VUX1VTRVJfUEVSTUlTU0lPTicpK1wiL1wiK251bGw7XHJcbiAgICAgIHJlcUJvZHkgPSB7IGtleTogcGF5bG9hZCB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgcmVxQm9keSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6YW55KSA9PntcclxuICAgICAgICBpZiAocmVzcERhdGEgJiYgcmVzcERhdGEudXNlcikge1xyXG4gICAgICAgICAgbGV0IG1vZGlmeURhdGEgPSB0aGlzLmNvcmVGdW5jdGlvblNlcnZpY2UuZ2V0TW9kdWxlc0Zyb21NYXBPYmplY3QocmVzcERhdGEpO1xyXG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5TZXRVc2VySW5mbyhtb2RpZnlEYXRhKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuR2V0VXNlckluZm8oKTtcclxuICAgICAgICAgIHRoaXMuZW52U2VydmljZS5zZXRSZXF1ZXN0VHlwZSgnUFJJVkFURScpO1xyXG4gICAgICAgICAgdGhpcy5hcGlDYWxsU2VydmljZS5nZXRBcHBsaWNhdGlvbkFsbFNldHRpbmdzKCk7XHJcbiAgICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnJlc3RTZXR0aW5nTW9kdWxlKCdsb2dnZWRfaW4nKTtcclxuICAgICAgICAgIHRoaXMuYXBpU2VydmljZS5naXRWZXJzaW9uKCcnKTtcclxuICAgICAgICAgIHRoaXMuYXBpQ2FsbFNlcnZpY2UuZ2V0VXNlclByZWZyZXJlbmNlKHJlc3BEYXRhLnVzZXIpO1xyXG4gICAgICAgICAgLy8gdGhpcy5hcGlDYWxsU2VydmljZS5nZXRVc2VyTm90aWZpY2F0aW9uKDEpO1xyXG4gICAgICAgICAgdGhpcy5yZWRpcmVjdGlvbldpdGhNZW51VHlwZShsb2dpblJlZGlyZWN0KTtcclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IFwic3VjY2Vzc1wiO1xyXG4gICAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRVc2VySW5mbyhyZXNwb25zZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbnZTZXJ2aWNlLnNldFJlcXVlc3RUeXBlKCdQVUJMSUMnKTtcclxuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvU2lnblBhZ2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcik9PntcclxuICAgICAgICBpZihlcnJvci5zdGF0dXMgPT0gNDAzKXtcclxuICAgICAgICAgIHRoaXMuZW52U2VydmljZS5zZXRSZXF1ZXN0VHlwZSgnUFVCTElDJyk7XHJcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9TaWduUGFnZSgpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaWYoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzID09IDQwMyl7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdVc2VybmFtZSBwYXNzd29yZCBkb2VzIG5vdCBtYXRjaC4nO1xyXG4gICAgICAgICAgfWVsc2UgaWYoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IubWVzc2FnZSl7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdlcnJvcic7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRVc2VySW5mbyhyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIHJlZGlyZWN0aW9uV2l0aE1lbnVUeXBlKGxvZ2luUmVkaXJlY3RVcmw/OnN0cmluZyl7XHJcbiAgICBjb25zdCBtZW51VHlwZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuR2V0TWVudVR5cGUoKTtcclxuICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRSZWRpcmVjdFVybCgpO1xyXG4gICAgY29uc3QgY2hpbGRXaW5kb3dVcmwgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENoaWxkV2luZG93VXJsKCk7XHJcbiAgICBsZXQgcm91dGUgPSAnL2Rhc2hib2FyZCc7XHJcbiAgICBpZihtZW51VHlwZSA9PSAnSG9yaXpvbnRhbCcpe1xyXG4gICAgICByb3V0ZSA9ICcvaG9tZSc7XHJcbiAgICB9XHJcbiAgICBpZihyZWRpcmVjdFVybCAmJiByZWRpcmVjdFVybCAhPSAnJyAmJiByZWRpcmVjdFVybCAhPSAnLycpe1xyXG4gICAgICByb3V0ZSA9IHJlZGlyZWN0VXJsO1xyXG4gICAgfWVsc2UgaWYoY2hpbGRXaW5kb3dVcmwgJiYgY2hpbGRXaW5kb3dVcmwgIT0gJycgJiYgY2hpbGRXaW5kb3dVcmwgIT0gJy8nKXtcclxuICAgICAgcm91dGUgPSBjaGlsZFdpbmRvd1VybDtcclxuICAgIH1lbHNlIGlmKGxvZ2luUmVkaXJlY3RVcmwgJiYgbG9naW5SZWRpcmVjdFVybCAhPSAnJyAmJiBsb2dpblJlZGlyZWN0VXJsICE9ICcvJyl7XHJcbiAgICAgIHJvdXRlID0gbG9naW5SZWRpcmVjdFVybDtcclxuICAgIH1cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0pO1xyXG4gIH1cclxuICByZWRpcmVjdFRvU2lnblBhZ2UoKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NpZ25pbiddKTtcclxuICB9XHJcbiAgU2lnbmluKHBheWxvYWQ6YW55KXtcclxuICAgIGxldCByZXNwb25zZSA9IHtcclxuICAgICAgc3RhdHVzOiAnJyxcclxuICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICBtc2c6ICcnLFxyXG4gICAgICBtZXNzYWdlOicnLFxyXG4gICAgICB3cm9uZ0xvZ2luQXR0ZW1wdDowXHJcbiAgICB9O1xyXG4gICAgbGV0IGFwaSA9IHRoaXMuZW52U2VydmljZS5nZXRBdXRoQXBpKCdBVV9TSUdOSU4nKTtcclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6YW55KSA9PntcclxuICAgICAgICBpZihyZXNwRGF0YSAmJiByZXNwRGF0YVsndG9rZW4nXSl7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvZ25pdG9JZFRva2VuID0gcmVzcERhdGFbJ3Rva2VuJ107XHJcbiAgICAgICAgICAgIGNvbnN0IGNvZ25pdG9FeHBpcmVzSW4gPSA4NjQwMDtcclxuICAgICAgICAgICAgLy8gY29uc3QgY29nbml0b0V4cGlyZXNJbiA9IDQyMDtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRFeHBpcmVzSW4oY29nbml0b0V4cGlyZXNJbik7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuU2V0SWRUb2tlbihjb2duaXRvSWRUb2tlbik7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICAgICAgcmVzcG9uc2UuY2xhc3MgPSAnYmctc3VjY2Vzcyc7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdMb2dpbiAgU3VjY2Vzc2Z1bC4nO1xyXG4gICAgICAgICAgICBpZihyZXNwRGF0YVsnbWVzc2FnZSddKXtcclxuICAgICAgICAgICAgICByZXNwb25zZS5tZXNzYWdlID0gcmVzcERhdGFbJ21lc3NhZ2UnXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldEF1dGhlbnRpY2F0aW9uKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSBpZihyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKXtcclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdlcnJvcic7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gcmVzcERhdGFbJ21lc3NhZ2UnXTtcclxuICAgICAgICAgIHJlc3BvbnNlLndyb25nTG9naW5BdHRlbXB0ID0gcmVzcERhdGE/Lndyb25nTG9naW5BdHRlbXB0O1xyXG4gICAgICAgIH1lbHNlIGlmIChyZXNwRGF0YS5oYXNPd25Qcm9wZXJ0eSgnZXJyb3InKSkge1xyXG4gICAgICAgICAgICBpZiAocmVzcERhdGFbXCJlcnJvclwiXSA9PSBcIm5vdF9jb25maXJtZWRcIikge1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UubXNnID0gJ1VzZXIgTm90IENvbmZpcm1lZCAnO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BEYXRhW1wiZXJyb3JcIl0gPT0gXCJ1c2VyX25hbWVfcGFzc3dvcmRfZG9lc19ub3RfbWF0Y2hcIikge1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UubXNnID0gJ1VzZXJuYW1lIHBhc3N3b3JkIGRvZXMgbm90IG1hdGNoICc7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnVXNlcm5hbWUgcGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgICAgICByZXNwb25zZS53cm9uZ0xvZ2luQXR0ZW1wdCA9IHJlc3BEYXRhPy53cm9uZ0xvZ2luQXR0ZW1wdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRTaWduaW5SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcik9PntcclxuICAgICAgICBpZihlcnJvciAmJiBlcnJvci5zdGF0dXMgPT0gNDAzKXtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiU2lnbiBJbiBmaXJzdCBlcnJvciBoYW5kbGluZy5cIiArIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSAnVXNlcm5hbWUgcGFzc3dvcmQgZG9lcyBub3QgbWF0Y2guJztcclxuICAgICAgICB9ZWxzZSBpZihlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKXtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiU2lnbiBJbiBTZWNvbmcgZXJyb3IgaGFuZGxpbmcuXCIgKyBKU09OLnN0cmluZ2lmeShlcnJvcikpO1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgIHJlc3BvbnNlLndyb25nTG9naW5BdHRlbXB0ID0gZXJyb3IuZXJyb3I/Lndyb25nTG9naW5BdHRlbXB0O1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJTaWduIEluIFRoaXJkIGVycm9yIGhhbmRsaW5nLlwiICsgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICByZXNwb25zZS53cm9uZ0xvZ2luQXR0ZW1wdCA9IGVycm9yPy53cm9uZ0xvZ2luQXR0ZW1wdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldFNpZ25pblJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBTaWdudXAocGF5bG9hZDphbnkpe1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJycsXHJcbiAgICAgIGFwcFByZXNlbnRBbGVydDogZmFsc2UsXHJcbiAgICAgIGF1dG9Mb2dpbjpmYWxzZSxcclxuICAgICAgcGF5bG9hZDoge31cclxuICAgIH07XHJcbiAgICBsZXQgbmV3UGF5bG9hZCA6YW55ID0gJyc7XHJcbiAgICBsZXQgaXNIeWJyaWRQbGF0Zm9ybSA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5zdG9yYWdlU2VydmljZS5jaGVja1BsYXRGb3JtKCkgPT0gJ21vYmlsZScpe1xyXG4gICAgICBpc0h5YnJpZFBsYXRmb3JtID0gdHJ1ZTtcclxuICAgICAgbmV3UGF5bG9hZCA9IHBheWxvYWQuZGF0YTtcclxuICAgIH1lbHNle1xyXG4gICAgICBuZXdQYXlsb2FkID0gcGF5bG9hZDtcclxuICAgIH1cclxuICAgIGxldCBhcGkgPSB0aGlzLmVudlNlcnZpY2UuZ2V0QXV0aEFwaSgnQVVfU0lHTlVQJyk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGksIHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFJlcXVlc3QobmV3UGF5bG9hZCkpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BEYXRhOmFueSkgPT57XHJcbiAgICAgICAgaWYocmVzcERhdGEgJiYgcmVzcERhdGFbJ21lc3NhZ2UnXSA9PSAnVXNlciByZWdpc3RlcmVkIHN1Y2Nlc3NmdWxseScpe1xyXG4gICAgICAgICAgaWYocGF5bG9hZC5hdXRvbG9naW4gJiYgaXNIeWJyaWRQbGF0Zm9ybSl7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdTdWNjZXNzZnVsbHkgUmVnaXN0ZXJlZC4nO1xyXG4gICAgICAgICAgICByZXNwb25zZS5hdXRvTG9naW4gPSBwYXlsb2FkLmF1dG9sb2dpbjtcclxuICAgICAgICAgICAgcmVzcG9uc2UucGF5bG9hZCA9IHsgdXNlcklkOiBuZXdQYXlsb2FkLnVzZXJJZCwgcGFzc3dvcmQ6IG5ld1BheWxvYWQucGFzc3dvcmQgfTtcclxuICAgICAgICAgICAgLy8gdGhpcy5TaWduaW4oYXBwUGF5bG9hZCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgaWYodGhpcy5lbnZTZXJ2aWNlLmdldFZlcmlmeVR5cGUoKSA9PSAnbW9iaWxlJyl7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnT1RQIGhhcyBiZWVuIHNlbnQgdG8geW91ciByZWdpc3RlcmVkIE1vYmlsZSBuby4nO1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UucGF5bG9hZCA9IHsgdXNlcklkOiBuZXdQYXlsb2FkLnVzZXJJZCwgcGFzc3dvcmQ6IG5ld1BheWxvYWQucGFzc3dvcmQgfTtcclxuICAgICAgICAgICAgICAgIGlmKGlzSHlicmlkUGxhdGZvcm0pe1xyXG4gICAgICAgICAgICAgICAgICByZXNwb25zZS5hcHBQcmVzZW50QWxlcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF5bG9hZC5yZWRpcmVjdGlvbiArJy8nK3BheWxvYWQuZGF0YS51c2VySWRdKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ290cF92YXJpZnknKycvJytwYXlsb2FkLnVzZXJJZF0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBpZihuZXdQYXlsb2FkLmFkbWluKXtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdBIHZlcmlmaWNhdGlvbiBsaW5rIGhhcyBiZWVuIHNlbnQgdG8geW91ciBlbWFpbCBhY2NvdW50LiBJZiBub3QgcmVjZWl2ZWQsIHBsZWFzZSBjb25uZWN0IHRvIGFkbWluIHRvIHZlcmlmeSB5b3VyIGVtYWlsLic7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnQSB2ZXJpZmljYXRpb24gbGluayBoYXMgYmVlbiBzZW50IHRvIHlvdXIgZW1haWwgYWNjb3VudC4gcGxlYXNlIGNsaWNrIG9uIHRoZSBsaW5rIHRvIHZlcmlmeSB5b3VyIGVtYWlsIGFuZCBjb250aW51ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuJztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmVzcG9uc2UuYXBwUHJlc2VudEFsZXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZihyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKXtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IHJlc3BEYXRhWydtZXNzYWdlJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1zdWNjZXNzJztcclxuICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldFNpZ25VcFJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKT0+e1xyXG4gICAgICAgIGlmKGVycm9yICYmIGVycm9yLmVycm9yICYmIGVycm9yLmVycm9yLm1lc3NhZ2Upe1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJTaWduIEluIFNlY29uZyBlcnJvciBoYW5kbGluZy5cIiArIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJTaWduIEluIFRoaXJkIGVycm9yIGhhbmRsaW5nLlwiICsgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdlcnJvcic7XHJcbiAgICAgICAgcmVzcG9uc2UuY2xhc3MgPSAnYmctZGFuZ2VyJztcclxuICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldFNpZ25VcFJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBUcnlGb3Jnb3RQYXNzd29yZChwYXlsb2FkOmFueSl7XHJcbiAgICBsZXQgcmVzcG9uc2UgPSB7XHJcbiAgICAgIHN0YXR1czogJycsXHJcbiAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgbXNnOiAnJ1xyXG4gICAgfTtcclxuICAgIGxldCBhcGkgPSB0aGlzLmVudlNlcnZpY2UuZ2V0QXV0aEFwaSgnQVVUSF9GT1JHRVRfUEFTU1dPUkQnKTtcclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6YW55KSA9PntcclxuICAgICAgICBpZihyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKXtcclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLXN1Y2Nlc3MnO1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gcmVzcERhdGFbJ21lc3NhZ2UnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRGb3Jnb3QocmVzcG9uc2UpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpPT57XHJcbiAgICAgICAgaWYoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IubWVzc2FnZSl7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0Rm9yZ290KHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBTYXZlTmV3UGFzc3dvcmQocGF5bG9hZDphbnkpe1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJydcclxuICAgIH07XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0FVVEhfUkVTRVRfUEFTU1dPUkQnKTtcclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6YW55KSA9PntcclxuICAgICAgICBpZihyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKXtcclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLXN1Y2Nlc3MnO1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gcmVzcERhdGFbJ21lc3NhZ2UnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5yZXNldFBhc3N3b3JkKHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKT0+e1xyXG4gICAgICAgIGlmKGVycm9yICYmIGVycm9yLmVycm9yICYmIGVycm9yLmVycm9yLm1lc3NhZ2Upe1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdlcnJvcic7XHJcbiAgICAgICAgcmVzcG9uc2UuY2xhc3MgPSAnYmctZGFuZ2VyJztcclxuICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnJlc2V0UGFzc3dvcmQocmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIFJlc2V0UGFzcyhwYXlsb2FkOmFueSl7XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ1JFU0VUX1BBU1NXT1JEJyk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGksdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6YW55KSA9PntcclxuICAgICAgICBpZiAocmVzcERhdGEgJiYgcmVzcERhdGEuaGFzT3duUHJvcGVydHkoJ3N1Y2Nlc3MnKSkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZ5KFwiYmctc3VjY2Vzc1wiLCBcIiBOZXcgUGFzc3dvcmQgU2V0ICBTdWNjZXNzZnVsbHkuXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hZG1pbiddKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3BEYXRhLmhhc093blByb3BlcnR5KCdlcnJvcicpKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXNwRGF0YVtcImVycm9yXCJdID09IFwibm90X2NvbmZpcm1lZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZ5KFwiYmctZGFuZ2VyXCIsIFwiVXNlciBOb3QgQ29uZmlybWVkIFwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwRGF0YVtcImVycm9yXCJdID09IFwidXNlcl9uYW1lX3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZnkoXCJiZy1kYW5nZXJcIiwgXCJVc2VybmFtZSBwYXNzd29yZCBkb2VzIG5vdCBtYXRjaCBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcik9PntcclxuICAgICAgICAvLyB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZ5KFwiYmctZGFuZ2VyXCIsIGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIFRyeVZlcmlmeShwYXlsb2FkOm9iamVjdCl7XHJcbiAgICBjb25zb2xlLmxvZyhwYXlsb2FkKTtcclxuICB9XHJcbiAgY2hhbmdlUGFzc3dvcmQocGF5bG9hZDphbnkpe1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJydcclxuICAgIH07XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0FVVEhfQ0hBTkdFX1BBU1NXT1JEJylcclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6YW55KSA9PiB7XHJcbiAgICAgICAgaWYocmVzcERhdGEgJiYgcmVzcERhdGFbJ21lc3NhZ2UnXSl7XHJcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1zdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IHJlc3BEYXRhWydtZXNzYWdlJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0Q2hhbmdlUHdkKHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzID09IDQwMyl7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSBcIkludmFsaWQgY3VycmVudCBwYXNzd29yZC5cIjtcclxuICAgICAgICB9ZWxzZSBpZihlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKXtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0Q2hhbmdlUHdkKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICB1c2VyVmFyaWZ5KHBheWxvYWQ6YW55KXtcclxuICAgIGxldCByZXNwb25zZSA9IHtcclxuICAgICAgc3RhdHVzOiAnJyxcclxuICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICBtc2c6ICcnLFxyXG4gICAgICBhdXRvTG9naW46ZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgbGV0IG5ld1BheWxvYWQgOmFueSA9ICcnO1xyXG4gICAgbGV0IGlzSHlicmlkUGxhdGZvcm0gPSBmYWxzZTtcclxuICAgIGlmKHRoaXMuc3RvcmFnZVNlcnZpY2UuY2hlY2tQbGF0Rm9ybSgpID09ICdtb2JpbGUnKXtcclxuICAgICAgaXNIeWJyaWRQbGF0Zm9ybSA9IHRydWU7XHJcbiAgICAgIG5ld1BheWxvYWQgPSBwYXlsb2FkLmRhdGE7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbmV3UGF5bG9hZCA9IHBheWxvYWQ7XHJcbiAgICB9XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ1VTRVJfVkFSSUZZJyk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGksIHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFJlcXVlc3QobmV3UGF5bG9hZCkpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BEYXRhOmFueSkgPT57XHJcbiAgICAgICAgaWYocmVzcERhdGEgJiYgcmVzcERhdGFbJ21lc3NhZ2UnXSA9PSBcIlVzZXIgaGFzIGJlZW4gdmVyaWZpZWQgc3VjY2Vzc2Z1bGx5XCIpe1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gcmVzcERhdGFbJ21lc3NhZ2UnXTtcclxuICAgICAgICAgIGlmKHBheWxvYWQuYXV0b2xvZ2luKXtcclxuICAgICAgICAgICAgcmVzcG9uc2UuYXV0b0xvZ2luID0gcGF5bG9hZC5hdXRvbG9naW47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpZih0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFZlcmlmeVR5cGUoKSA9PSAnbW9iaWxlJyl7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfWVsc2UgaWYocmVzcERhdGEgJiYgcmVzcERhdGFbJ21lc3NhZ2UnXSl7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSByZXNwRGF0YVsnbWVzc2FnZSddO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgcmVzcG9uc2UuY2xhc3MgPSAnYmctc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRPdHBSZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcik9PntcclxuICAgICAgICBpZihlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKXtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnZXJyb3InO1xyXG4gICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLWRhbmdlcic7XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRPdHBSZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgY2hlY2tJZFRva2VuU3RhdHVzKCl7XHJcbiAgICBsZXQgc3RhdHVzV2l0aE1zZz17XHJcbiAgICAgIFwic3RhdHVzXCI6ZmFsc2UsXHJcbiAgICAgIFwibXNnXCIgOiBcIlwiXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UgIT0gbnVsbCAmJiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLkdldElkVG9rZW4oKSAhPSBudWxsKSB7XHJcbiAgICAgIGlmKHRoaXMuc3RvcmFnZVNlcnZpY2UuR2V0SWRUb2tlblN0YXR1cygpID09IFN0b3JhZ2VUb2tlblN0YXR1cy5JRF9UT0tFTl9BQ1RJVkUpe1xyXG4gICAgICAgIHN0YXR1c1dpdGhNc2cuc3RhdHVzID0gdHJ1ZTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgc3RhdHVzV2l0aE1zZy5zdGF0dXMgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuU2Vzc2lvbkV4cGlyZWQoKTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHN0YXR1c1dpdGhNc2cuc3RhdHVzPWZhbHNlO1xyXG4gICAgICBzdGF0dXNXaXRoTXNnLm1zZz1cIllvdXIgYXJlIGFscmVhZHkgbG9nb3V0ICEhIVwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXR1c1dpdGhNc2c7XHJcbiAgfVxyXG4gIGNoZWNrQXBwbGljYXRpb25TZXR0aW5nKCl7XHJcbiAgICBsZXQgZXhpc3RzID0gZmFsc2U7XHJcbiAgICBsZXQgYXBwbGljYXRpb25TZXR0aW5nID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBcHBsaWNhdGlvblNldHRpbmcoKTtcclxuICAgIGlmKGFwcGxpY2F0aW9uU2V0dGluZyl7XHJcbiAgICAgIGV4aXN0cyA9IHRydWU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgZXhpc3RzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXhpc3RzO1xyXG4gIH1cclxuXHJcbiAgYXV0aGVudGljYXRlVXNlcihwYXlsb2FkOmFueSl7XHJcbiAgICBsZXQgcmVzcG9uc2UgPSB7XHJcbiAgICAgIHN0YXR1czogJycsXHJcbiAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgbXNnOiAnJyxcclxuICAgICAgbWVzc2FnZTonJ1xyXG4gICAgfTtcclxuICAgIGxldCBhcGkgPSB0aGlzLmVudlNlcnZpY2UuZ2V0QXV0aEFwaSgnVFdPX0ZBQ1RPUl9BVVRIRU5USUNBVElPTicpO1xyXG4gICAgdGhpcy5odHRwLnBvc3QoYXBpLCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRSZXF1ZXN0KHBheWxvYWQpKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwRGF0YTphbnkpID0+e1xyXG4gICAgICAgIGlmKHJlc3BEYXRhICYmIHJlc3BEYXRhWyd0b2tlbiddKXtcclxuICAgICAgICAgICAgY29uc3QgY29nbml0b0lkVG9rZW4gPSByZXNwRGF0YVsndG9rZW4nXTtcclxuICAgICAgICAgICAgY29uc3QgY29nbml0b0V4cGlyZXNJbiA9IDg2NDAwO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEV4cGlyZXNJbihjb2duaXRvRXhwaXJlc0luKTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5TZXRJZFRva2VuKGNvZ25pdG9JZFRva2VuKTtcclxuICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1zdWNjZXNzJztcclxuICAgICAgICAgICAgcmVzcG9uc2UubXNnID0gJ0xvZ2luICBTdWNjZXNzZnVsLic7XHJcbiAgICAgICAgICAgIGlmKHJlc3BEYXRhWydtZXNzYWdlJ10pe1xyXG4gICAgICAgICAgICAgIHJlc3BvbnNlLm1lc3NhZ2UgPSByZXNwRGF0YVsnbWVzc2FnZSddO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0QXV0aGVudGljYXRpb24odHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0QXV0aGVudGljYXRpb25SZXNwb25jZShyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpPT57XHJcbiAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnZXJyb3InO1xyXG4gICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLWRhbmdlcic7XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRBdXRoZW50aWNhdGlvblJlc3BvbmNlKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxufVxyXG4iXX0=
500
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hcGkvYXV0aC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7Ozs7O0FBWXJGLE1BQU0sT0FBTyxXQUFXO0lBR3RCLFlBQ1UsSUFBZ0IsRUFDaEIsVUFBc0IsRUFDdEIsVUFBc0IsRUFDdEIsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLGlCQUFvQyxFQUNwQyxxQkFBNEMsRUFDNUMsbUJBQXdDLEVBQ3hDLG9CQUEwQyxFQUMxQyxjQUE4QjtRQVQ5QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3BDLENBQUM7SUFHTCxRQUFRO0lBRVIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELGNBQWMsQ0FB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QUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0MsUUFBUSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7Z0JBQzVCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO2dCQUM5QixRQUFRLENBQUMsR0FBRyxHQUFHLG9CQUFvQixDQUFDO2dCQUNwQyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDdkIsUUFBUSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3hDO2dCQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQy9EO1FBQ0gsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixRQUFRLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDN0IsUUFBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7WUFDMUIsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQzs7eUdBaGVVLFdBQVc7NkdBQVgsV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlDYWxsU2VydmljZSB9IGZyb20gJy4vLi4vLi4vYXBpL2FwaS1jYWxsL2FwaS1jYWxsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW52U2VydmljZSB9IGZyb20gJy4uLy4uL2Vudi9lbnYuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlVG9rZW5TdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvc3RvcmFnZS10b2tlbi1zdGF0dXMuZW51bSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24tdXRpbHMvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uLXV0aWxzL2NvcmUtZnVuY3Rpb24vY29yZS1mdW5jdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aERhdGFTaGFyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhLXNoYXJlL2F1dGgtZGF0YS1zaGFyZS9hdXRoLWRhdGEtc2hhcmUuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGVudlNlcnZpY2U6IEVudlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tbW9uRnVuY3Rpb25TZXJ2aWNlOiBDb21tb25GdW5jdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVGdW5jdGlvblNlcnZpY2U6IENvcmVGdW5jdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhEYXRhU2hhcmVTZXJ2aWNlOiBBdXRoRGF0YVNoYXJlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpQ2FsbFNlcnZpY2U6IEFwaUNhbGxTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIExvZ291dChwYXlsb2FkOiBhbnkpIHtcclxuICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgICB0aGlzLmxvZ091dFJlZGlyZWN0aW9uKCk7XHJcbiAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnJlc3RTZXR0aW5nTW9kdWxlKCdsb2dnZWRfb3V0Jyk7XHJcbiAgfVxyXG4gIFNlc3Npb25FeHBpcmVkKHBheWxvYWQ/OiBhbnkpIHtcclxuICAgIGxldCByZXNwb25zZSA9IHtcclxuICAgICAgc3RhdHVzOiAnJyxcclxuICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICBtc2c6ICcnXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXNldERhdGEoKTtcclxuICAgIHRoaXMubG9nT3V0UmVkaXJlY3Rpb24oKTtcclxuICAgIHJlc3BvbnNlLmNsYXNzID0gXCJiZy1pbmZvXCI7XHJcbiAgICByZXNwb25zZS5zdGF0dXMgPSBcInN1Y2Nlc3NcIjtcclxuICAgIHJlc3BvbnNlLm1zZyA9IFwiU2Vzc2lvbiBFeHBpcmVkLCBLaW5kbHkgTG9naW4gQWdhaW4uXCI7XHJcbiAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldFNlc3Npb25FeHBpcmVkKHJlc3BvbnNlKTtcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNoZWNrUGxhdEZvcm0oKSAhPSAnbW9iaWxlJykge1xyXG4gICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnJlc3RTZXR0aW5nTW9kdWxlKCdsb2dnZWRfb3V0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0RGF0YSgpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlRGF0YUZvcm1TdG9yYWdlKCk7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UucmVzZXRNZW51RGF0YSgpO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLnJlc2V0VGVtcERhdGEoKTtcclxuICAgIHRoaXMuYXBpU2VydmljZS5yZXNldEdyaWREYXRhKCk7XHJcbiAgICB0aGlzLmVudlNlcnZpY2Uuc2V0UmVxdWVzdFR5cGUoJ1BVQkxJQycpO1xyXG4gICAgdGhpcy5hcGlDYWxsU2VydmljZS5nZXRBcHBsaWNhdGlvbkFsbFNldHRpbmdzKCk7XHJcbiAgfVxyXG4gIGxvZ091dFJlZGlyZWN0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZW52U2VydmljZS5jaGVja1JlZGlyZWN0aW9uVXJsKCkpIHtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmVudlNlcnZpY2UuY2hlY2tSZWRpcmVjdGlvblVybCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZWRpcmVjdFRvU2lnblBhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ290VG9TaWduaW5QYWdlKCkge1xyXG4gICAgdGhpcy5yZXNldERhdGEoKVxyXG4gICAgdGhpcy5yZWRpcmVjdFRvU2lnblBhZ2UoKTtcclxuICB9XHJcblxyXG4gIEdldFVzZXJJbmZvRnJvbVRva2VuKHBheWxvYWQ6IGFueSwgbG9naW5SZWRpcmVjdD86IHN0cmluZykge1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJydcclxuICAgIH07XHJcbiAgICBsZXQgYXBpID0gXCJcIjtcclxuICAgIGxldCByZXFCb2R5ID0ge307XHJcbiAgICBpZiAocGF5bG9hZCAmJiBwYXlsb2FkLnJvbGVOYW1lICYmIHBheWxvYWQucm9sZU5hbWUgIT0gJycpIHtcclxuICAgICAgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0dFVF9VU0VSX1BFUk1JU1NJT04nKSArIFwiL1wiICsgcGF5bG9hZC5yb2xlTmFtZTtcclxuICAgICAgcmVxQm9keSA9IHsga2V5OiBwYXlsb2FkLnRva2VuIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhcGkgPSB0aGlzLmVudlNlcnZpY2UuZ2V0QXV0aEFwaSgnR0VUX1VTRVJfUEVSTUlTU0lPTicpICsgXCIvXCIgKyBudWxsO1xyXG4gICAgICByZXFCb2R5ID0geyBrZXk6IHBheWxvYWQgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGksIHJlcUJvZHkpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcERhdGEgJiYgcmVzcERhdGEudXNlcikge1xyXG4gICAgICAgICAgbGV0IG1vZGlmeURhdGEgPSB0aGlzLmNvcmVGdW5jdGlvblNlcnZpY2UuZ2V0TW9kdWxlc0Zyb21NYXBPYmplY3QocmVzcERhdGEpO1xyXG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5TZXRVc2VySW5mbyhtb2RpZnlEYXRhKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuR2V0VXNlckluZm8oKTtcclxuICAgICAgICAgIHRoaXMuZW52U2VydmljZS5zZXRSZXF1ZXN0VHlwZSgnUFJJVkFURScpO1xyXG4gICAgICAgICAgdGhpcy5hcGlDYWxsU2VydmljZS5nZXRBcHBsaWNhdGlvbkFsbFNldHRpbmdzKCk7XHJcbiAgICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnJlc3RTZXR0aW5nTW9kdWxlKCdsb2dnZWRfaW4nKTtcclxuICAgICAgICAgIHRoaXMuYXBpU2VydmljZS5naXRWZXJzaW9uKCcnKTtcclxuICAgICAgICAgIHRoaXMuYXBpQ2FsbFNlcnZpY2UuZ2V0VXNlclByZWZyZXJlbmNlKHJlc3BEYXRhLnVzZXIpO1xyXG4gICAgICAgICAgLy8gdGhpcy5hcGlDYWxsU2VydmljZS5nZXRVc2VyTm90aWZpY2F0aW9uKDEpO1xyXG4gICAgICAgICAgdGhpcy5yZWRpcmVjdGlvbldpdGhNZW51VHlwZShsb2dpblJlZGlyZWN0KTtcclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IFwic3VjY2Vzc1wiO1xyXG4gICAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRVc2VySW5mbyhyZXNwb25zZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZW52U2VydmljZS5zZXRSZXF1ZXN0VHlwZSgnUFVCTElDJyk7XHJcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9TaWduUGFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDMpIHtcclxuICAgICAgICAgIHRoaXMuZW52U2VydmljZS5zZXRSZXF1ZXN0VHlwZSgnUFVCTElDJyk7XHJcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9TaWduUGFnZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzID09IDQwMykge1xyXG4gICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnVXNlcm5hbWUgcGFzc3dvcmQgZG9lcyBub3QgbWF0Y2guJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IubWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXNwb25zZS5tc2cgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdlcnJvcic7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRVc2VySW5mbyhyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIHJlZGlyZWN0aW9uV2l0aE1lbnVUeXBlKGxvZ2luUmVkaXJlY3RVcmw/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1lbnVUeXBlID0gdGhpcy5zdG9yYWdlU2VydmljZS5HZXRNZW51VHlwZSgpO1xyXG4gICAgY29uc3QgcmVkaXJlY3RVcmwgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFJlZGlyZWN0VXJsKCk7XHJcbiAgICBjb25zdCBjaGlsZFdpbmRvd1VybCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2hpbGRXaW5kb3dVcmwoKTtcclxuICAgIGxldCByb3V0ZSA9ICcvZGFzaGJvYXJkJztcclxuICAgIGlmIChtZW51VHlwZSA9PSAnSG9yaXpvbnRhbCcpIHtcclxuICAgICAgcm91dGUgPSAnL2hvbWUnO1xyXG4gICAgfVxyXG4gICAgaWYgKHJlZGlyZWN0VXJsICYmIHJlZGlyZWN0VXJsICE9ICcnICYmIHJlZGlyZWN0VXJsICE9ICcvJykge1xyXG4gICAgICByb3V0ZSA9IHJlZGlyZWN0VXJsO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZFdpbmRvd1VybCAmJiBjaGlsZFdpbmRvd1VybCAhPSAnJyAmJiBjaGlsZFdpbmRvd1VybCAhPSAnLycpIHtcclxuICAgICAgcm91dGUgPSBjaGlsZFdpbmRvd1VybDtcclxuICAgIH0gZWxzZSBpZiAobG9naW5SZWRpcmVjdFVybCAmJiBsb2dpblJlZGlyZWN0VXJsICE9ICcnICYmIGxvZ2luUmVkaXJlY3RVcmwgIT0gJy8nKSB7XHJcbiAgICAgIHJvdXRlID0gbG9naW5SZWRpcmVjdFVybDtcclxuICAgIH1cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0pO1xyXG4gIH1cclxuICByZWRpcmVjdFRvU2lnblBhZ2UoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zaWduaW4nXSk7XHJcbiAgfVxyXG4gIFNpZ25pbihwYXlsb2FkOiBhbnkpIHtcclxuICAgIGxldCByZXNwb25zZSA9IHtcclxuICAgICAgc3RhdHVzOiAnJyxcclxuICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICBtc2c6ICcnLFxyXG4gICAgICBtZXNzYWdlOiAnJyxcclxuICAgICAgd3JvbmdMb2dpbkF0dGVtcHQ6IDBcclxuICAgIH07XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0FVX1NJR05JTicpO1xyXG4gICAgdGhpcy5odHRwLnBvc3QoYXBpLCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRSZXF1ZXN0KHBheWxvYWQpKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BEYXRhICYmIHJlc3BEYXRhWyd0b2tlbiddKSB7XHJcbiAgICAgICAgICBjb25zdCBjb2duaXRvSWRUb2tlbiA9IHJlc3BEYXRhWyd0b2tlbiddO1xyXG4gICAgICAgICAgY29uc3QgY29nbml0b0V4cGlyZXNJbiA9IDg2NDAwO1xyXG4gICAgICAgICAgLy8gY29uc3QgY29nbml0b0V4cGlyZXNJbiA9IDQyMDtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0RXhwaXJlc0luKGNvZ25pdG9FeHBpcmVzSW4pO1xyXG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5TZXRJZFRva2VuKGNvZ25pdG9JZFRva2VuKTtcclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLXN1Y2Nlc3MnO1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gJ0xvZ2luICBTdWNjZXNzZnVsLic7XHJcbiAgICAgICAgICBpZiAocmVzcERhdGFbJ21lc3NhZ2UnXSkge1xyXG4gICAgICAgICAgICByZXNwb25zZS5tZXNzYWdlID0gcmVzcERhdGFbJ21lc3NhZ2UnXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0QXV0aGVudGljYXRpb24odHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKSB7XHJcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnZXJyb3InO1xyXG4gICAgICAgICAgcmVzcG9uc2UuY2xhc3MgPSAnYmctZGFuZ2VyJztcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IHJlc3BEYXRhWydtZXNzYWdlJ107XHJcbiAgICAgICAgICByZXNwb25zZS53cm9uZ0xvZ2luQXR0ZW1wdCA9IHJlc3BEYXRhPy53cm9uZ0xvZ2luQXR0ZW1wdDtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3BEYXRhLmhhc093blByb3BlcnR5KCdlcnJvcicpKSB7XHJcbiAgICAgICAgICBpZiAocmVzcERhdGFbXCJlcnJvclwiXSA9PSBcIm5vdF9jb25maXJtZWRcIikge1xyXG4gICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnVXNlciBOb3QgQ29uZmlybWVkICc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BEYXRhW1wiZXJyb3JcIl0gPT0gXCJ1c2VyX25hbWVfcGFzc3dvcmRfZG9lc19ub3RfbWF0Y2hcIikge1xyXG4gICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnVXNlcm5hbWUgcGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdVc2VybmFtZSBwYXNzd29yZCBkb2VzIG5vdCBtYXRjaCAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLWRhbmdlcic7XHJcbiAgICAgICAgICByZXNwb25zZS53cm9uZ0xvZ2luQXR0ZW1wdCA9IHJlc3BEYXRhPy53cm9uZ0xvZ2luQXR0ZW1wdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRTaWduaW5SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvciAmJiBlcnJvci5zdGF0dXMgPT0gNDAzKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlNpZ24gSW4gZmlyc3QgZXJyb3IgaGFuZGxpbmcuXCIgKyBKU09OLnN0cmluZ2lmeShlcnJvcikpO1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gJ1VzZXJuYW1lIHBhc3N3b3JkIGRvZXMgbm90IG1hdGNoLic7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlNpZ24gSW4gU2Vjb25nIGVycm9yIGhhbmRsaW5nLlwiICsgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICByZXNwb25zZS53cm9uZ0xvZ2luQXR0ZW1wdCA9IGVycm9yLmVycm9yPy53cm9uZ0xvZ2luQXR0ZW1wdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJTaWduIEluIFRoaXJkIGVycm9yIGhhbmRsaW5nLlwiICsgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICByZXNwb25zZS53cm9uZ0xvZ2luQXR0ZW1wdCA9IGVycm9yPy53cm9uZ0xvZ2luQXR0ZW1wdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldFNpZ25pblJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBTaWdudXAocGF5bG9hZDogYW55KSB7XHJcbiAgICBsZXQgcmVzcG9uc2UgPSB7XHJcbiAgICAgIHN0YXR1czogJycsXHJcbiAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgbXNnOiAnJyxcclxuICAgICAgYXBwUHJlc2VudEFsZXJ0OiBmYWxzZSxcclxuICAgICAgYXV0b0xvZ2luOiBmYWxzZSxcclxuICAgICAgcGF5bG9hZDoge31cclxuICAgIH07XHJcbiAgICBsZXQgbmV3UGF5bG9hZDogYW55ID0gJyc7XHJcbiAgICBsZXQgaXNIeWJyaWRQbGF0Zm9ybSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuY2hlY2tQbGF0Rm9ybSgpID09ICdtb2JpbGUnKSB7XHJcbiAgICAgIGlzSHlicmlkUGxhdGZvcm0gPSB0cnVlO1xyXG4gICAgICBuZXdQYXlsb2FkID0gcGF5bG9hZC5kYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3UGF5bG9hZCA9IHBheWxvYWQ7XHJcbiAgICB9XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0FVX1NJR05VUCcpO1xyXG4gICAgdGhpcy5odHRwLnBvc3QoYXBpLCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRSZXF1ZXN0KG5ld1BheWxvYWQpKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BEYXRhICYmIHJlc3BEYXRhWydtZXNzYWdlJ10gPT0gJ1VzZXIgcmVnaXN0ZXJlZCBzdWNjZXNzZnVsbHknKSB7XHJcbiAgICAgICAgICBpZiAocGF5bG9hZC5hdXRvbG9naW4gJiYgaXNIeWJyaWRQbGF0Zm9ybSkge1xyXG4gICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnU3VjY2Vzc2Z1bGx5IFJlZ2lzdGVyZWQuJztcclxuICAgICAgICAgICAgcmVzcG9uc2UuYXV0b0xvZ2luID0gcGF5bG9hZC5hdXRvbG9naW47XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLnBheWxvYWQgPSB7IHVzZXJJZDogbmV3UGF5bG9hZC51c2VySWQsIHBhc3N3b3JkOiBuZXdQYXlsb2FkLnBhc3N3b3JkIH07XHJcbiAgICAgICAgICAgIC8vIHRoaXMuU2lnbmluKGFwcFBheWxvYWQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZW52U2VydmljZS5nZXRWZXJpZnlUeXBlKCkgPT0gJ21vYmlsZScpIHtcclxuICAgICAgICAgICAgICByZXNwb25zZS5tc2cgPSAnT1RQIGhhcyBiZWVuIHNlbnQgdG8geW91ciByZWdpc3RlcmVkIE1vYmlsZSBuby4nO1xyXG4gICAgICAgICAgICAgIHJlc3BvbnNlLnBheWxvYWQgPSB7IHVzZXJJZDogbmV3UGF5bG9hZC51c2VySWQsIHBhc3N3b3JkOiBuZXdQYXlsb2FkLnBhc3N3b3JkIH07XHJcbiAgICAgICAgICAgICAgaWYgKGlzSHlicmlkUGxhdGZvcm0pIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmFwcFByZXNlbnRBbGVydCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF5bG9hZC5yZWRpcmVjdGlvbiArJy8nK3BheWxvYWQuZGF0YS51c2VySWRdKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydvdHBfdmFyaWZ5JysnLycrcGF5bG9hZC51c2VySWRdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKG5ld1BheWxvYWQuYWRtaW4pIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdBIHZlcmlmaWNhdGlvbiBsaW5rIGhhcyBiZWVuIHNlbnQgdG8geW91ciBlbWFpbCBhY2NvdW50LiBJZiBub3QgcmVjZWl2ZWQsIHBsZWFzZSBjb25uZWN0IHRvIGFkbWluIHRvIHZlcmlmeSB5b3VyIGVtYWlsLic7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdBIHZlcmlmaWNhdGlvbiBsaW5rIGhhcyBiZWVuIHNlbnQgdG8geW91ciBlbWFpbCBhY2NvdW50LiBwbGVhc2UgY2xpY2sgb24gdGhlIGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYW5kIGNvbnRpbnVlIHRoZSByZWdpc3RyYXRpb24gcHJvY2Vzcy4nO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXNwb25zZS5hcHBQcmVzZW50QWxlcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKSB7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSByZXNwRGF0YVsnbWVzc2FnZSddO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgcmVzcG9uc2UuY2xhc3MgPSAnYmctc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRTaWduVXBSZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlNpZ24gSW4gU2Vjb25nIGVycm9yIGhhbmRsaW5nLlwiICsgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiU2lnbiBJbiBUaGlyZCBlcnJvciBoYW5kbGluZy5cIiArIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnZXJyb3InO1xyXG4gICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLWRhbmdlcic7XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRTaWduVXBSZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgVHJ5Rm9yZ290UGFzc3dvcmQocGF5bG9hZDogYW55KSB7XHJcbiAgICBsZXQgcmVzcG9uc2UgPSB7XHJcbiAgICAgIHN0YXR1czogJycsXHJcbiAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgbXNnOiAnJ1xyXG4gICAgfTtcclxuICAgIGxldCBhcGkgPSB0aGlzLmVudlNlcnZpY2UuZ2V0QXV0aEFwaSgnQVVUSF9GT1JHRVRfUEFTU1dPUkQnKTtcclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKSB7XHJcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1zdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IHJlc3BEYXRhWydtZXNzYWdlJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0Rm9yZ290KHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yICYmIGVycm9yLmVycm9yICYmIGVycm9yLmVycm9yLm1lc3NhZ2UpIHtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICdlcnJvcic7XHJcbiAgICAgICAgcmVzcG9uc2UuY2xhc3MgPSAnYmctZGFuZ2VyJztcclxuICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldEZvcmdvdChyZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgU2F2ZU5ld1Bhc3N3b3JkKHBheWxvYWQ6IGFueSkge1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJydcclxuICAgIH07XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0FVVEhfUkVTRVRfUEFTU1dPUkQnKTtcclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKSB7XHJcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1zdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IHJlc3BEYXRhWydtZXNzYWdlJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2UucmVzZXRQYXNzd29yZChyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKSB7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnZXJyb3InO1xyXG4gICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLWRhbmdlcic7XHJcbiAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5yZXNldFBhc3N3b3JkKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBSZXNldFBhc3MocGF5bG9hZDogYW55KSB7XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ1JFU0VUX1BBU1NXT1JEJyk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGksIHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFJlcXVlc3QocGF5bG9hZCkpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcERhdGEgJiYgcmVzcERhdGEuaGFzT3duUHJvcGVydHkoJ3N1Y2Nlc3MnKSkge1xyXG4gICAgICAgICAgLy8gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLm5vdGlmeShcImJnLXN1Y2Nlc3NcIiwgXCIgTmV3IFBhc3N3b3JkIFNldCAgU3VjY2Vzc2Z1bGx5LlwiKTtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2FkbWluJ10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzcERhdGEuaGFzT3duUHJvcGVydHkoJ2Vycm9yJykpIHtcclxuICAgICAgICAgIGlmIChyZXNwRGF0YVtcImVycm9yXCJdID09IFwibm90X2NvbmZpcm1lZFwiKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZnkoXCJiZy1kYW5nZXJcIiwgXCJVc2VyIE5vdCBDb25maXJtZWQgXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXNwRGF0YVtcImVycm9yXCJdID09IFwidXNlcl9uYW1lX3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoXCIpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLm5vdGlmeShcImJnLWRhbmdlclwiLCBcIlVzZXJuYW1lIHBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIFwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZnkoXCJiZy1kYW5nZXJcIiwgZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgVHJ5VmVyaWZ5KHBheWxvYWQ6IG9iamVjdCkge1xyXG4gICAgY29uc29sZS5sb2cocGF5bG9hZCk7XHJcbiAgfVxyXG4gIGNoYW5nZVBhc3N3b3JkKHBheWxvYWQ6IGFueSkge1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJydcclxuICAgIH07XHJcbiAgICBsZXQgYXBpID0gdGhpcy5lbnZTZXJ2aWNlLmdldEF1dGhBcGkoJ0FVVEhfQ0hBTkdFX1BBU1NXT1JEJylcclxuICAgIHRoaXMuaHR0cC5wb3N0KGFwaSwgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0UmVxdWVzdChwYXlsb2FkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwRGF0YSAmJiByZXNwRGF0YVsnbWVzc2FnZSddKSB7XHJcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1zdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IHJlc3BEYXRhWydtZXNzYWdlJ107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0Q2hhbmdlUHdkKHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yICYmIGVycm9yLnN0YXR1cyA9PSA0MDMpIHtcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9IFwiSW52YWxpZCBjdXJyZW50IHBhc3N3b3JkLlwiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IubWVzc2FnZSkge1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0Q2hhbmdlUHdkKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICB1c2VyVmFyaWZ5KHBheWxvYWQ6IGFueSkge1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJycsXHJcbiAgICAgIGF1dG9Mb2dpbjogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgbGV0IG5ld1BheWxvYWQ6IGFueSA9ICcnO1xyXG4gICAgbGV0IGlzSHlicmlkUGxhdGZvcm0gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNoZWNrUGxhdEZvcm0oKSA9PSAnbW9iaWxlJykge1xyXG4gICAgICBpc0h5YnJpZFBsYXRmb3JtID0gdHJ1ZTtcclxuICAgICAgbmV3UGF5bG9hZCA9IHBheWxvYWQuZGF0YTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld1BheWxvYWQgPSBwYXlsb2FkO1xyXG4gICAgfVxyXG4gICAgbGV0IGFwaSA9IHRoaXMuZW52U2VydmljZS5nZXRBdXRoQXBpKCdVU0VSX1ZBUklGWScpO1xyXG4gICAgdGhpcy5odHRwLnBvc3QoYXBpLCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRSZXF1ZXN0KG5ld1BheWxvYWQpKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BEYXRhICYmIHJlc3BEYXRhWydtZXNzYWdlJ10gPT0gXCJVc2VyIGhhcyBiZWVuIHZlcmlmaWVkIHN1Y2Nlc3NmdWxseVwiKSB7XHJcbiAgICAgICAgICByZXNwb25zZS5tc2cgPSByZXNwRGF0YVsnbWVzc2FnZSddO1xyXG4gICAgICAgICAgaWYgKHBheWxvYWQuYXV0b2xvZ2luKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLmF1dG9Mb2dpbiA9IHBheWxvYWQuYXV0b2xvZ2luO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaWYodGhpcy5zdG9yYWdlU2VydmljZS5nZXRWZXJpZnlUeXBlKCkgPT0gJ21vYmlsZScpe1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzcERhdGEgJiYgcmVzcERhdGFbJ21lc3NhZ2UnXSkge1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gcmVzcERhdGFbJ21lc3NhZ2UnXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIHJlc3BvbnNlLmNsYXNzID0gJ2JnLXN1Y2Nlc3MnO1xyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0T3RwUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IubWVzc2FnZSkge1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzcG9uc2UubXNnID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0T3RwUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIGNoZWNrSWRUb2tlblN0YXR1cygpIHtcclxuICAgIGxldCBzdGF0dXNXaXRoTXNnID0ge1xyXG4gICAgICBcInN0YXR1c1wiOiBmYWxzZSxcclxuICAgICAgXCJtc2dcIjogXCJcIlxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlICE9IG51bGwgJiYgdGhpcy5zdG9yYWdlU2VydmljZS5HZXRJZFRva2VuKCkgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZS5HZXRJZFRva2VuU3RhdHVzKCkgPT0gU3RvcmFnZVRva2VuU3RhdHVzLklEX1RPS0VOX0FDVElWRSkge1xyXG4gICAgICAgIHN0YXR1c1dpdGhNc2cuc3RhdHVzID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzdGF0dXNXaXRoTXNnLnN0YXR1cyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuU2Vzc2lvbkV4cGlyZWQoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RhdHVzV2l0aE1zZy5zdGF0dXMgPSBmYWxzZTtcclxuICAgICAgc3RhdHVzV2l0aE1zZy5tc2cgPSBcIllvdXIgYXJlIGFscmVhZHkgbG9nb3V0ICEhIVwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXR1c1dpdGhNc2c7XHJcbiAgfVxyXG4gIGNoZWNrQXBwbGljYXRpb25TZXR0aW5nKCkge1xyXG4gICAgbGV0IGV4aXN0cyA9IGZhbHNlO1xyXG4gICAgbGV0IGFwcGxpY2F0aW9uU2V0dGluZyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0QXBwbGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBpZiAoYXBwbGljYXRpb25TZXR0aW5nKSB7XHJcbiAgICAgIGV4aXN0cyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBleGlzdHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBleGlzdHM7XHJcbiAgfVxyXG5cclxuICBhdXRoZW50aWNhdGVVc2VyKHBheWxvYWQ6IGFueSkge1xyXG4gICAgbGV0IHJlc3BvbnNlID0ge1xyXG4gICAgICBzdGF0dXM6ICcnLFxyXG4gICAgICBjbGFzczogJycsXHJcbiAgICAgIG1zZzogJycsXHJcbiAgICAgIG1lc3NhZ2U6ICcnXHJcbiAgICB9O1xyXG4gICAgbGV0IGFwaSA9IHRoaXMuZW52U2VydmljZS5nZXRBdXRoQXBpKCdUV09fRkFDVE9SX0FVVEhFTlRJQ0FUSU9OJyk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGksIHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFJlcXVlc3QocGF5bG9hZCkpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcERhdGEgJiYgcmVzcERhdGFbJ3Rva2VuJ10pIHtcclxuICAgICAgICAgIGNvbnN0IGNvZ25pdG9JZFRva2VuID0gcmVzcERhdGFbJ3Rva2VuJ107XHJcbiAgICAgICAgICBjb25zdCBjb2duaXRvRXhwaXJlc0luID0gODY0MDA7XHJcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEV4cGlyZXNJbihjb2duaXRvRXhwaXJlc0luKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuU2V0SWRUb2tlbihjb2duaXRvSWRUb2tlbik7XHJcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1zdWNjZXNzJztcclxuICAgICAgICAgIHJlc3BvbnNlLm1zZyA9ICdMb2dpbiAgU3VjY2Vzc2Z1bC4nO1xyXG4gICAgICAgICAgaWYgKHJlc3BEYXRhWydtZXNzYWdlJ10pIHtcclxuICAgICAgICAgICAgcmVzcG9uc2UubWVzc2FnZSA9IHJlc3BEYXRhWydtZXNzYWdlJ107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmF1dGhEYXRhU2hhcmVTZXJ2aWNlLnNldEF1dGhlbnRpY2F0aW9uKHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5hdXRoRGF0YVNoYXJlU2VydmljZS5zZXRBdXRoZW50aWNhdGlvblJlc3BvbmNlKHJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHJlc3BvbnNlLm1zZyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gJ2Vycm9yJztcclxuICAgICAgICByZXNwb25zZS5jbGFzcyA9ICdiZy1kYW5nZXInO1xyXG4gICAgICAgIHRoaXMuYXV0aERhdGFTaGFyZVNlcnZpY2Uuc2V0QXV0aGVudGljYXRpb25SZXNwb25jZShyZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcbn1cclxuIl19
@@ -152,13 +152,19 @@ export class DataShareService {
152
152
  getSaveResponce() {
153
153
  return this.saveFromDataRsponce;
154
154
  }
155
- setDeleteGridRowResponce(responce) {
156
- this.deleteGridRowResponceData.next(responce);
157
- this.deleteGridRowDataRsponce = responce;
155
+ setDeleteGridRowResponse(response) {
156
+ this.deleteGridRowResponceData.next(response);
157
+ this.deleteGridRowDataRsponce = response;
158
158
  }
159
159
  getDeleteRowDataResponce() {
160
160
  return this.deleteGridRowDataRsponce;
161
161
  }
162
+ /**
163
+ * @deprecated Use setDeleteGridRowResponse instead
164
+ */
165
+ setDeleteGridRowResponce(response) {
166
+ this.setDeleteGridRowResponse(response);
167
+ }
162
168
  setGridFilterData(responce) {
163
169
  this.gridFilterData.next(responce);
164
170
  }
@@ -273,6 +279,12 @@ export class DataShareService {
273
279
  setNextFormData(responce) {
274
280
  this.nextFormData.next(responce);
275
281
  }
282
+ /**
283
+ * @deprecated Use setGitVersion instead
284
+ */
285
+ setGitVirsion(responce) {
286
+ this.setGitVersion(responce);
287
+ }
276
288
  setReportLoadGridData(responce) {
277
289
  this.getReportLoadData.next(responce);
278
290
  }
@@ -314,8 +326,8 @@ export class DataShareService {
314
326
  getMenuOrSubmenuIndexs() {
315
327
  return this.menuOrSubmenuIndex;
316
328
  }
317
- setReqResponce(responce) {
318
- this.requestResponce.next(responce);
329
+ setReqResponse(reqResponse) {
330
+ this.requestResponce.next(reqResponse);
319
331
  }
320
332
  resetHeaderMenu(responce) {
321
333
  this.headerMenu.next(responce);
@@ -367,4 +379,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
367
379
  providedIn: 'root'
368
380
  }]
369
381
  }], ctorParameters: function () { return []; } });
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zaGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9kYXRhLXNoYXJlL2RhdGEtc2hhcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU1oRCxNQUFNLE9BQU8sZ0JBQWdCO0lBcUYzQjtRQXBGQSxlQUFVLEdBQWdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEMsZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixtQkFBYyxHQUFrQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUMvRCxtQkFBYyxHQUFrQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUMvRCxlQUFVLEdBQWlCLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQzFELGtCQUFhLEdBQUMsRUFBRSxDQUFDO1FBQ2pCLGtCQUFhLEdBQWlCLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQzdELHFCQUFnQixHQUFDLEVBQUUsQ0FBQztRQUNwQixhQUFRLEdBQWlCLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3hELFNBQUksR0FBZ0IsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDbkQsYUFBUSxHQUFnQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUV2RCx3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFDOUIsNkJBQXdCLEdBQVEsRUFBRSxDQUFDO1FBQ25DLHFCQUFnQixHQUFlLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFD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LGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhU2hhcmVTZXJ2aWNlIHtcclxuICBzaGFyZWREYXRhOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY3VycmVudFBhZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY3VycmVudHBhZ2U6c3RyaW5nID0gJyc7XHJcbiAgc2VydmVySG9zdG5hbWUgOiBTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgc2VydmVyRW5kUG9pbnQgOiBTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgc3RhdGljRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIHNldFN0YXRpY0RhdGE9e307XHJcbiAgZ3JpZENvdW50RGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIHNldEdyaWRDb3VudERhdGE9e307XHJcbiAgZ3JpZERhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBtZW51OlN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICB0ZW1wRGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgdGVtcFN0b3JlRGF0YTphbnk7XHJcbiAgc2F2ZUZyb21EYXRhUnNwb25jZTpzdHJpbmc9Jyc7XHJcbiAgZGVsZXRlR3JpZFJvd0RhdGFSc3BvbmNlOnN0cmluZz0nJztcclxuICBzYXZlUmVzcG9uY2VEYXRhOlN1YmplY3Q8YW55Pj0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGRlbGV0ZUdyaWRSb3dSZXNwb25jZURhdGE6U3ViamVjdDxhbnk+PSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgZ3JpZEZpbHRlckRhdGE6U3ViamVjdDxhbnk+PSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgdHlwZUFoZWFkRGF0YTpTdWJqZWN0PGFueT49IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBmb3JtOlN1YmplY3Q8YW55Pj0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGRpbmFtaWNGb3JtPXt9O1xyXG4gIGRvY0RhdGE6U3ViamVjdDxhbnk+PSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgbmVzdGVkRm9ybTpTdWJqZWN0PGFueT49IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBob3N0RGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZGFzaGxldERhdGE6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIERhc2hMZXREYXRhOmFueT17fTtcclxuICBhcHBOYW1lOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBuYXZpZ2F0aW9uRGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcGVybWlzc2lvbkRhdGE6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHF1b3RlRGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZGVwYXJ0bWVudERhdGE6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGNhdGVnb3J5RGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJvZHVjdERhdGE6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHRlc3RQYXJhbWV0ZXJzOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBleHBvcnRFeGNlbExpbms6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGV4cG9ydENWU0xpbms6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGdldFByb2R1Y3RMaXN0OlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcmV2aWV3SHRtbDpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgdXBkYXRlUHJvZHVjdEJyYW5jaDpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZ2V0Sm9iU2NoZWR1bGVzRGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZG93bmxvYWRQZGZEYXRhOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBnZXRmaWxlRGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZmlsZURvd25sb2FkVXJsOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBjaGFydERhdGE6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGFwcGxpY2F0aW9uU2V0dGluZzpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgdGhlbWVTZXR0aW5nOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBmaWVsZERpbmFtaWNSZXNwb25jZTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgY2hlY2tWYWxpZGF0aW9uOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBkYXNobGV0TWFzdGVyOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBEYXNobGV0TWFzdGVyOmFueSA9IFtdO1xyXG4gIGdpdFZpcnNpb246U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIG5leHRGb3JtRGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZ2V0UmVwb3J0TG9hZERhdGE6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGdldElzR3JpZFNlbGVjdGlvbk9wZW46U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGNoYXJ0TW9kZWxTaG93SGlkZTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgYXVkaXRIaXN0b3J5TGlzdDpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgYXVkaXRWZXJzaW9uTGlzdDpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgYXBwbGljYXRpb25TZXR0aW5nczpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgdXNlck5vdGlmaWNhdGlvbjpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgdXNlck5vdGlmaWNhdGlvblNldHRpbmc6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHVzZXJQcmVmZXJlbmNlOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBtb2R1bGVJbmRleDpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgbWVudUluZGV4czpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcE1vZHVsZUluZGV4OmFueT0tMTtcclxuICBtZW51T3JTdWJtZW51SW5kZXg6YW55PXt9O1xyXG4gIGhlYWRlck1lbnU6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHJlcXVlc3RSZXNwb25jZTpTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBtb25nb0RiQ2hhcnRMaXN0OlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBNb25nb0RiQ2hhcnRMaXN0OmFueSA9IFtdO1xyXG4gIG1vbmdvRGFzaGJvcmRMaXN0OlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwZGZGaWxlTmFtZTpTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgUzNVcmw6U3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIHByaW50RGF0YTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgc2V0Q2xpZW50TmFtZTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZ3JpZFJ1bm5pbmdEYXRhOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgY29sbGVjdGlvbmRhdGE6U3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGNoaWxkR3JpZDpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgY2hpbGRncmlkZmllbGRzOmFueTtcclxuICByb2xlQ2hhbmdlOlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBkYXNoYm9yZFNlcmNoS2V5OlN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBhZGRBbmRVcGRhdGVSZXNwb25jZTpTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZFJvd0luZGV4U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBzZWxlY3RlZFJvd0luZGV4JCA9IHRoaXMuc2VsZWN0ZWRSb3dJbmRleFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgc2VuZEN1cnJlbnRQYWdlKHJlc3BvbmNlOmFueSkge1xyXG4gICAgaWYocmVzcG9uY2UgIT0gdW5kZWZpbmVkICYmIHJlc3BvbmNlICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLm5leHQocmVzcG9uY2UpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gcmVzcG9uY2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZS5uZXh0KCdIT01FJyk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAnSE9NRSc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEN1cnJlbnRQYWdlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50cGFnZTtcclxuICB9XHJcbiAgc2hhcmVEYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnNoYXJlZERhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNoYXJlU3RhdGljRGF0YShzdGF0aWNEYXRhOmFueSxkYXRhOmFueSl7XHJcbiAgICB0aGlzLnN0YXRpY0RhdGEubmV4dChkYXRhKTtcclxuICAgIHRoaXMuc2V0U3RhdGljRGF0YSA9IHN0YXRpY0RhdGE7XHJcbiAgfVxyXG4gIGdldFN0YXRpRGF0YSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0U3RhdGljRGF0YTtcclxuICB9XHJcbiAgc2hhcmVHcmlkQ291bnREYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLmdyaWRDb3VudERhdGEubmV4dChyZXNwb25jZS5jb3VudCk7XHJcbiAgICB0aGlzLnNldEdyaWRDb3VudERhdGEgPSByZXNwb25jZS5ncmlkQ291bnREYXRhO1xyXG4gIH1cclxuICBnZXRHcmlkQ291bnREYXRhKCl7XHJcbiAgICByZXR1cm4gdGhpcy5zZXRHcmlkQ291bnREYXRhO1xyXG4gIH1cclxuICBzaGFyZUdyaWREYXRhKGdyaWREYXRhOmFueSl7XHJcbiAgICB0aGlzLmdyaWREYXRhLm5leHQoZ3JpZERhdGEpO1xyXG4gIH1cclxuICBzaGFyZURhc2hsZXRNYXN0ZXIocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZGFzaGxldE1hc3Rlci5uZXh0KHJlc3BvbmNlKTtcclxuICAgIHRoaXMuRGFzaGxldE1hc3RlciA9IHJlc3BvbmNlO1xyXG4gIH1cclxuICBnZXREYXNobGV0TWFzdGVyKCl7XHJcbiAgICByZXR1cm4gdGhpcy5EYXNobGV0TWFzdGVyO1xyXG4gIH1cclxuICBzaGFyZU1vbmdvQ2hhcnQoY2hhcnREYXRhOmFueSl7XHJcbiAgICB0aGlzLm1vbmdvRGJDaGFydExpc3QubmV4dChjaGFydERhdGEpO1xyXG4gICAgdGhpcy5Nb25nb0RiQ2hhcnRMaXN0ID0gY2hhcnREYXRhO1xyXG4gIH1cclxuICBnZXRNb25nb0NoYXJ0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5Nb25nb0RiQ2hhcnRMaXN0O1xyXG4gIH1cclxuICBzaGFyZU1vbmdvRGFzaGJvcmQocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMubW9uZ29EYXNoYm9yZExpc3QubmV4dChyZXNwb25jZSlcclxuICB9XHJcbiAgc2hhcmVNZW51RGF0YShtZW51RGF0YTphbnkpe1xyXG4gICAgdGhpcy5tZW51Lm5leHQobWVudURhdGEpO1xyXG4gIH1cclxuICBzaGFyZVRlbXBEYXRhKHRlbXBEYXRhOmFueSl7XHJcbiAgICB0aGlzLnRlbXBEYXRhLm5leHQodGVtcERhdGEpO1xyXG4gICAgdGhpcy50ZW1wU3RvcmVEYXRhID0gdGVtcERhdGE7XHJcbiAgfVxyXG4gIGdldFRlbXBEYXRhKCl7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wU3RvcmVEYXRhO1xyXG4gIH1cclxuICBzZXRTYXZlUmVzcG9uY2UocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuc2F2ZVJlc3BvbmNlRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICAgIHRoaXMuc2F2ZUZyb21EYXRhUnNwb25jZSA9IHJlc3BvbmNlO1xyXG4gIH1cclxuICBnZXRTYXZlUmVzcG9uY2UoKXtcclxuICAgIHJldHVybiB0aGlzLnNhdmVGcm9tRGF0YVJzcG9uY2U7XHJcbiAgfVxyXG5cclxuICBzZXREZWxldGVHcmlkUm93UmVzcG9uY2UocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZGVsZXRlR3JpZFJvd1Jlc3BvbmNlRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICAgIHRoaXMuZGVsZXRlR3JpZFJvd0RhdGFSc3BvbmNlID0gcmVzcG9uY2U7XHJcbiAgfVxyXG4gIGdldERlbGV0ZVJvd0RhdGFSZXNwb25jZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlR3JpZFJvd0RhdGFSc3BvbmNlO1xyXG4gIH1cclxuXHJcbiAgc2V0R3JpZEZpbHRlckRhdGEocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZ3JpZEZpbHRlckRhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldFR5cGVBaGVhZERhdGEocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMudHlwZUFoZWFkRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0Rm9ybShmb3JtOmFueSl7XHJcbiAgICB0aGlzLmZvcm0ubmV4dChmb3JtKTtcclxuICAgIHRoaXMuZGluYW1pY0Zvcm0gPSBmb3JtO1xyXG4gIH1cclxuICBnZXREaW5hbWljRm9ybSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZGluYW1pY0Zvcm07XHJcbiAgfVxyXG4gIHNldE5lc3RlZEZvcm0oZm9ybTphbnkpe1xyXG4gICAgdGhpcy5uZXN0ZWRGb3JtLm5leHQoZm9ybSlcclxuICB9XHJcbiAgc2V0SG9zdERhdGEoZGF0YTphbnkpe1xyXG4gICAgdGhpcy5ob3N0RGF0YS5uZXh0KGRhdGEpO1xyXG4gIH1cclxuICBzZXREYXNobGV0RGF0YShkYXNobGV0RGF0YTphbnkpe1xyXG4gICAgdGhpcy5kYXNobGV0RGF0YS5uZXh0KGRhc2hsZXREYXRhKTtcclxuICAgIHRoaXMuRGFzaExldERhdGEgPSBkYXNobGV0RGF0YTtcclxuICB9XHJcbiAgZ2V0RGFzaGxldERhdGEoKXtcclxuICAgIHJldHVybiB0aGlzLkRhc2hMZXREYXRhXHJcbiAgfVxyXG4gIHJlc2V0RGFzaGxldERhdGEoKXtcclxuICAgIHRoaXMuRGFzaExldERhdGEgPSB7fTtcclxuICB9XHJcbiAgcmVzZXREYXNobGV0RGF0YUJ5S2V5KGtleU5hbWU6YW55KXtcclxuICAgIGRlbGV0ZSB0aGlzLkRhc2hMZXREYXRhW2tleU5hbWVdO1xyXG4gICAgdGhpcy5kYXNobGV0RGF0YS5uZXh0KHRoaXMuRGFzaExldERhdGEpO1xyXG4gIH1cclxuICBzZXRBcHBOYW1lKHJlc3BvbnNlOmFueSl7XHJcbiAgICB0aGlzLmFwcE5hbWUubmV4dChyZXNwb25zZSk7XHJcbiAgfVxyXG4gIHNldE5hdmlnYXRpb25EYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25EYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRQZXJtaXNzaW9uRGF0YShyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5wZXJtaXNzaW9uRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0UXVvdGVEYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnF1b3RlRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0RGVwYXJ0bWVudERhdGEocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZGVwYXJ0bWVudERhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldENhdGVnb3J5RGF0YShyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5jYXRlZ29yeURhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldFByb2R1Y3REYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnByb2R1Y3REYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRUZXN0UGFyYW1ldGVyKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnRlc3RQYXJhbWV0ZXJzLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRFeHBvcnRFeGNlbExpbmsocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZXhwb3J0RXhjZWxMaW5rLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRFeHBvcnRDVlNMaW5rKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLmV4cG9ydENWU0xpbmsubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldFByb2R1Y3RMaXN0KHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLmdldFByb2R1Y3RMaXN0Lm5leHQocmVzcG9uY2UpXHJcbiAgfVxyXG4gIHNldFByZXZpZXdIdG1sKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnByZXZpZXdIdG1sLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRVcGRhdGVQcm9kdWN0QnJhbmNoKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnVwZGF0ZVByb2R1Y3RCcmFuY2gubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldEpvYlNjaGVkdWxlRGF0YShyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5nZXRKb2JTY2hlZHVsZXNEYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXREb3dubG9hZFBkZkRhdGEocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZG93bmxvYWRQZGZEYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRGaWxlRGF0YShyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5nZXRmaWxlRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0UHJpbnRUZW1wbGF0ZShyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5wcmludERhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldEZpbGVEb3dubG9hZFVybChyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5maWxlRG93bmxvYWRVcmwubmV4dChyZXNwb25jZSlcclxuICB9XHJcbiAgc2V0Q2hhcnREYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLmNoYXJ0RGF0YS5uZXh0KHJlc3BvbmNlKVxyXG4gIH1cclxuICBzZXRUaGVtZVNldHRpbmcocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5nLm5leHQocmVzcG9uY2UpXHJcbiAgfVxyXG4gIHNldEFwcGxpY2F0aW9uU2V0dGluZyhyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5hcHBsaWNhdGlvblNldHRpbmcubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHJlc2V0VGhlbWVTZXR0aW5nKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnRoZW1lU2V0dGluZy5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgcmVzZXRBcHBsaWNhdGlvblNldHRpbmcocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuYXBwbGljYXRpb25TZXR0aW5nLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRGaWVsZERpbmFtaWNBcGlSZXNwb25jZShyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5maWVsZERpbmFtaWNSZXNwb25jZS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0VmFsaWRhdGlvbkNvbmRpdGlvbihyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5jaGVja1ZhbGlkYXRpb24ubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldEdpdFZlcnNpb24ocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZ2l0Vmlyc2lvbi5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0TmV4dEZvcm1EYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLm5leHRGb3JtRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0UmVwb3J0TG9hZEdyaWREYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLmdldFJlcG9ydExvYWREYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRJc0dyaWRTZWxlY3Rpb25PcGVuT3JOb3QoY2hlY2s6Ym9vbGVhbil7XHJcbiAgICB0aGlzLmdldElzR3JpZFNlbGVjdGlvbk9wZW4ubmV4dChjaGVjayk7XHJcbiAgfVxyXG4gIHNldENoYXJ0TW9kZWxTaG93SGlkZSh2YWx1ZTphbnkpe1xyXG4gICAgdGhpcy5jaGFydE1vZGVsU2hvd0hpZGUubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHNldEF1ZGl0SGlzdG9yeURhdGEoZGF0YTphbnkpe1xyXG4gICAgdGhpcy5hdWRpdEhpc3RvcnlMaXN0Lm5leHQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzZXRBdWRpdFZlcnNpb25MaXN0KGRhdGE6YW55KXtcclxuICAgIHRoaXMuYXVkaXRWZXJzaW9uTGlzdC5uZXh0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc2hhcmVVc2VyTm90aWZpY2F0aW9uKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLnVzZXJOb3RpZmljYXRpb24ubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNoYXJlVXNlck5vdGlmaWNhdGlvblNldHRpbmcocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMudXNlck5vdGlmaWNhdGlvblNldHRpbmcubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldFVzZXJQcmVmZXJlbmNlKHVzZXJQcmVmZXJlbmNlOmFueSl7XHJcbiAgICB0aGlzLnVzZXJQcmVmZXJlbmNlLm5leHQodXNlclByZWZlcmVuY2UpO1xyXG4gIH1cclxuICBzdWJzY3JpYmVUZW1lU2V0dGluZyhyZXNwb25jZTphbnkpe1xyXG4gICAgdGhpcy5hcHBsaWNhdGlvblNldHRpbmdzLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRNb2R1bGVJbmRleChpbmRleDphbnkpe1xyXG4gICAgdGhpcy5tb2R1bGVJbmRleC5uZXh0KGluZGV4KTtcclxuICAgIHRoaXMucE1vZHVsZUluZGV4ID0gaW5kZXg7XHJcbiAgfVxyXG4gIHNldE1lbnVJbmRleHMoaW5kZXhzOmFueSl7XHJcbiAgICB0aGlzLm1lbnVJbmRleHMubmV4dChpbmRleHMpO1xyXG4gICAgdGhpcy5tZW51T3JTdWJtZW51SW5kZXggPSBpbmRleHM7XHJcbiAgfVxyXG4gIGdldFByb2plY3RNb2R1bGVJbmRleCgpe1xyXG4gICAgcmV0dXJuIHRoaXMucE1vZHVsZUluZGV4O1xyXG4gIH1cclxuICBnZXRNZW51T3JTdWJtZW51SW5kZXhzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51T3JTdWJtZW51SW5kZXg7XHJcbiAgfVxyXG4gIHNldFJlcVJlc3BvbmNlKHJlc3BvbmNlOmJvb2xlYW4pe1xyXG4gICAgdGhpcy5yZXF1ZXN0UmVzcG9uY2UubmV4dChyZXNwb25jZSlcclxuICB9XHJcbiAgcmVzZXRIZWFkZXJNZW51KHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLmhlYWRlck1lbnUubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNoYXJlUGRmRmlsZU5hbWUoZmlsZU5hbWU6YW55KXtcclxuICAgIHRoaXMucGRmRmlsZU5hbWUubmV4dChmaWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBzaGFyZVB1YmxpY1VybEZyb21TMyh1cmw6YW55KXtcclxuICAgIHRoaXMuUzNVcmwubmV4dCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgc2hhcmVHcmlkUnVubmluZ0RhdGEocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuZ3JpZFJ1bm5pbmdEYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzaGFyZVNlcnZlckhvc3ROYW1lKHNlcnZlckhvc3RuYW1lOmFueSl7XHJcbiAgICB0aGlzLnNlcnZlckhvc3RuYW1lLm5leHQoc2VydmVySG9zdG5hbWUpO1xyXG4gIH1cclxuICBnZXRTZXJ2ZXJFbmRQb2ludChyZXE6Ym9vbGVhbil7XHJcbiAgICB0aGlzLnNlcnZlckVuZFBvaW50Lm5leHQocmVxKTtcclxuICB9XHJcbiAgIC8vRm9yIEFwcFxyXG4gIGNvbGxlY3Rpb25EYXRhKHJlc3BvbmNlOmFueSl7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25kYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRDaGlsZEdyaWQocmVzcG9uY2U6YW55KXtcclxuICAgIHRoaXMuY2hpbGRHcmlkLm5leHQocmVzcG9uY2UpO1xyXG4gICAgdGhpcy5jaGlsZGdyaWRmaWVsZHMgPSByZXNwb25jZTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRHcmlkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5jaGlsZGdyaWRmaWVsZHM7XHJcbiAgfVxyXG4gIHNoYXJlUm9sZUNoYW5nZShyb2xlOmFueSl7XHJcbiAgICB0aGlzLnJvbGVDaGFuZ2UubmV4dChyb2xlKTtcclxuICB9XHJcbiAgc2hhcmVEYXNoYm9yZFNlcmFjaChrZXk6c3RyaW5nKXtcclxuICAgIHRoaXMuZGFzaGJvcmRTZXJjaEtleS5uZXh0KGtleSk7XHJcbiAgfVxyXG4gIHNoYXJlQWRkQW5kVXBkYXRlUmVzcG9uY2UocmVzcG9uY2U6c3RyaW5nKXtcclxuICAgIHRoaXMuYWRkQW5kVXBkYXRlUmVzcG9uY2UubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHVwZGF0ZVNlbGVjdGVkUm93SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd0luZGV4U291cmNlLm5leHQoaW5kZXgpO1xyXG4gIH1cclxuICAvL0VuZCBGb3IgQXBwXHJcblxyXG59XHJcbiJdfQ==
382
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zaGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9kYXRhLXNoYXJlL2RhdGEtc2hhcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNaEQsTUFBTSxPQUFPLGdCQUFnQjtJQXFGM0I7UUFwRkEsZUFBVSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLGdCQUFXLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsbUJBQWMsR0FBaUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDOUQsbUJBQWMsR0FBaUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDOUQsZUFBVSxHQUFpQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUMxRCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrQkFBYSxHQUFpQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUM3RCxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsYUFBUSxHQUFpQixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUN4RCxTQUFJLEdBQWlCLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3BELGFBQVEsR0FBaUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFFeEQsd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBQ2pDLDZCQUF3QixHQUFXLEVBQUUsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBaUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENB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QUMsUUFBZ0I7UUFDeEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7OzhHQXhYVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVNoYXJlU2VydmljZSB7XHJcbiAgc2hhcmVkRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjdXJyZW50UGFnZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjdXJyZW50cGFnZTogc3RyaW5nID0gJyc7XHJcbiAgc2VydmVySG9zdG5hbWU6IFN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBzZXJ2ZXJFbmRQb2ludDogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIHN0YXRpY0RhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBzZXRTdGF0aWNEYXRhID0ge307XHJcbiAgZ3JpZENvdW50RGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIHNldEdyaWRDb3VudERhdGEgPSB7fTtcclxuICBncmlkRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIG1lbnU6IFN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICB0ZW1wRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIHRlbXBTdG9yZURhdGE6IGFueTtcclxuICBzYXZlRnJvbURhdGFSc3BvbmNlOiBzdHJpbmcgPSAnJztcclxuICBkZWxldGVHcmlkUm93RGF0YVJzcG9uY2U6IHN0cmluZyA9ICcnO1xyXG4gIHNhdmVSZXNwb25jZURhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBkZWxldGVHcmlkUm93UmVzcG9uY2VEYXRhOlN1YmplY3Q8YW55Pj0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGdyaWRGaWx0ZXJEYXRhOiBTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgdHlwZUFoZWFkRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGZvcm06IFN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBkaW5hbWljRm9ybSA9IHt9O1xyXG4gIGRvY0RhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBuZXN0ZWRGb3JtOiBTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgaG9zdERhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBkYXNobGV0RGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIERhc2hMZXREYXRhOiBhbnkgPSB7fTtcclxuICBhcHBOYW1lOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgbmF2aWdhdGlvbkRhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwZXJtaXNzaW9uRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHF1b3RlRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGRlcGFydG1lbnREYXRhOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgY2F0ZWdvcnlEYXRhOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJvZHVjdERhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICB0ZXN0UGFyYW1ldGVyczogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGV4cG9ydEV4Y2VsTGluazogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGV4cG9ydENWU0xpbms6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBnZXRQcm9kdWN0TGlzdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByZXZpZXdIdG1sOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgdXBkYXRlUHJvZHVjdEJyYW5jaDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGdldEpvYlNjaGVkdWxlc0RhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBkb3dubG9hZFBkZkRhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBnZXRmaWxlRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGZpbGVEb3dubG9hZFVybDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGNoYXJ0RGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGFwcGxpY2F0aW9uU2V0dGluZzogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHRoZW1lU2V0dGluZzogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGZpZWxkRGluYW1pY1Jlc3BvbmNlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgY2hlY2tWYWxpZGF0aW9uOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZGFzaGxldE1hc3RlcjogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIERhc2hsZXRNYXN0ZXI6IGFueSA9IFtdO1xyXG4gIGdpdFZpcnNpb246IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBuZXh0Rm9ybURhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBnZXRSZXBvcnRMb2FkRGF0YTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGdldElzR3JpZFNlbGVjdGlvbk9wZW46IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBjaGFydE1vZGVsU2hvd0hpZGU6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBhdWRpdEhpc3RvcnlMaXN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgYXVkaXRWZXJzaW9uTGlzdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGFwcGxpY2F0aW9uU2V0dGluZ3M6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICB1c2VyTm90aWZpY2F0aW9uOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgdXNlck5vdGlmaWNhdGlvblNldHRpbmc6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICB1c2VyUHJlZmVyZW5jZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIG1vZHVsZUluZGV4OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgbWVudUluZGV4czogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHBNb2R1bGVJbmRleDogYW55ID0gLTE7XHJcbiAgbWVudU9yU3VibWVudUluZGV4OiBhbnkgPSB7fTtcclxuICBoZWFkZXJNZW51OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcmVxdWVzdFJlc3BvbmNlOlN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIG1vbmdvRGJDaGFydExpc3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBNb25nb0RiQ2hhcnRMaXN0OiBhbnkgPSBbXTtcclxuICBtb25nb0Rhc2hib3JkTGlzdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHBkZkZpbGVOYW1lOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgUzNVcmw6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICBwcmludERhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBzZXRDbGllbnROYW1lOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZ3JpZFJ1bm5pbmdEYXRhOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgY29sbGVjdGlvbmRhdGE6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBjaGlsZEdyaWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBjaGlsZGdyaWRmaWVsZHM6IGFueTtcclxuICByb2xlQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgZGFzaGJvcmRTZXJjaEtleTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGFkZEFuZFVwZGF0ZVJlc3BvbmNlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZFJvd0luZGV4U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBzZWxlY3RlZFJvd0luZGV4JCA9IHRoaXMuc2VsZWN0ZWRSb3dJbmRleFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgc2VuZEN1cnJlbnRQYWdlKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIGlmIChyZXNwb25jZSAhPSB1bmRlZmluZWQgJiYgcmVzcG9uY2UgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLm5leHQocmVzcG9uY2UpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gcmVzcG9uY2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLm5leHQoJ0hPTUUnKTtcclxuICAgICAgdGhpcy5jdXJyZW50cGFnZSA9ICdIT01FJztcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0Q3VycmVudFBhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50cGFnZTtcclxuICB9XHJcbiAgc2hhcmVEYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuc2hhcmVkRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2hhcmVTdGF0aWNEYXRhKHN0YXRpY0RhdGE6IGFueSwgZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLnN0YXRpY0RhdGEubmV4dChkYXRhKTtcclxuICAgIHRoaXMuc2V0U3RhdGljRGF0YSA9IHN0YXRpY0RhdGE7XHJcbiAgfVxyXG4gIGdldFN0YXRpRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNldFN0YXRpY0RhdGE7XHJcbiAgfVxyXG4gIHNoYXJlR3JpZENvdW50RGF0YShyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLmdyaWRDb3VudERhdGEubmV4dChyZXNwb25jZS5jb3VudCk7XHJcbiAgICB0aGlzLnNldEdyaWRDb3VudERhdGEgPSByZXNwb25jZS5ncmlkQ291bnREYXRhO1xyXG4gIH1cclxuICBnZXRHcmlkQ291bnREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0R3JpZENvdW50RGF0YTtcclxuICB9XHJcbiAgc2hhcmVHcmlkRGF0YShncmlkRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmdyaWREYXRhLm5leHQoZ3JpZERhdGEpO1xyXG4gIH1cclxuICBzaGFyZURhc2hsZXRNYXN0ZXIocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5kYXNobGV0TWFzdGVyLm5leHQocmVzcG9uY2UpO1xyXG4gICAgdGhpcy5EYXNobGV0TWFzdGVyID0gcmVzcG9uY2U7XHJcbiAgfVxyXG4gIGdldERhc2hsZXRNYXN0ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5EYXNobGV0TWFzdGVyO1xyXG4gIH1cclxuICBzaGFyZU1vbmdvQ2hhcnQoY2hhcnREYXRhOiBhbnkpIHtcclxuICAgIHRoaXMubW9uZ29EYkNoYXJ0TGlzdC5uZXh0KGNoYXJ0RGF0YSk7XHJcbiAgICB0aGlzLk1vbmdvRGJDaGFydExpc3QgPSBjaGFydERhdGE7XHJcbiAgfVxyXG4gIGdldE1vbmdvQ2hhcnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5Nb25nb0RiQ2hhcnRMaXN0O1xyXG4gIH1cclxuICBzaGFyZU1vbmdvRGFzaGJvcmQocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5tb25nb0Rhc2hib3JkTGlzdC5uZXh0KHJlc3BvbmNlKVxyXG4gIH1cclxuICBzaGFyZU1lbnVEYXRhKG1lbnVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMubWVudS5uZXh0KG1lbnVEYXRhKTtcclxuICB9XHJcbiAgc2hhcmVUZW1wRGF0YSh0ZW1wRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLnRlbXBEYXRhLm5leHQodGVtcERhdGEpO1xyXG4gICAgdGhpcy50ZW1wU3RvcmVEYXRhID0gdGVtcERhdGE7XHJcbiAgfVxyXG4gIGdldFRlbXBEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFN0b3JlRGF0YTtcclxuICB9XHJcbiAgc2V0U2F2ZVJlc3BvbmNlKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuc2F2ZVJlc3BvbmNlRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICAgIHRoaXMuc2F2ZUZyb21EYXRhUnNwb25jZSA9IHJlc3BvbmNlO1xyXG4gIH1cclxuICBnZXRTYXZlUmVzcG9uY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXZlRnJvbURhdGFSc3BvbmNlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVsZXRlR3JpZFJvd1Jlc3BvbnNlKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIHRoaXMuZGVsZXRlR3JpZFJvd1Jlc3BvbmNlRGF0YS5uZXh0KHJlc3BvbnNlKTtcclxuICAgIHRoaXMuZGVsZXRlR3JpZFJvd0RhdGFSc3BvbmNlID0gcmVzcG9uc2U7XHJcbiAgfVxyXG4gIGdldERlbGV0ZVJvd0RhdGFSZXNwb25jZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRlbGV0ZUdyaWRSb3dEYXRhUnNwb25jZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHNldERlbGV0ZUdyaWRSb3dSZXNwb25zZSBpbnN0ZWFkXHJcbiAgICovXHJcbiAgc2V0RGVsZXRlR3JpZFJvd1Jlc3BvbmNlKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIHRoaXMuc2V0RGVsZXRlR3JpZFJvd1Jlc3BvbnNlKHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHNldEdyaWRGaWx0ZXJEYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZ3JpZEZpbHRlckRhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldFR5cGVBaGVhZERhdGEocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy50eXBlQWhlYWREYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRGb3JtKGZvcm06IGFueSkge1xyXG4gICAgdGhpcy5mb3JtLm5leHQoZm9ybSk7XHJcbiAgICB0aGlzLmRpbmFtaWNGb3JtID0gZm9ybTtcclxuICB9XHJcbiAgZ2V0RGluYW1pY0Zvcm0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaW5hbWljRm9ybTtcclxuICB9XHJcbiAgc2V0TmVzdGVkRm9ybShmb3JtOiBhbnkpIHtcclxuICAgIHRoaXMubmVzdGVkRm9ybS5uZXh0KGZvcm0pXHJcbiAgfVxyXG4gIHNldEhvc3REYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5ob3N0RGF0YS5uZXh0KGRhdGEpO1xyXG4gIH1cclxuICBzZXREYXNobGV0RGF0YShkYXNobGV0RGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmRhc2hsZXREYXRhLm5leHQoZGFzaGxldERhdGEpO1xyXG4gICAgdGhpcy5EYXNoTGV0RGF0YSA9IGRhc2hsZXREYXRhO1xyXG4gIH1cclxuICBnZXREYXNobGV0RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLkRhc2hMZXREYXRhXHJcbiAgfVxyXG4gIHJlc2V0RGFzaGxldERhdGEoKSB7XHJcbiAgICB0aGlzLkRhc2hMZXREYXRhID0ge307XHJcbiAgfVxyXG4gIHJlc2V0RGFzaGxldERhdGFCeUtleShrZXlOYW1lOiBhbnkpIHtcclxuICAgIGRlbGV0ZSB0aGlzLkRhc2hMZXREYXRhW2tleU5hbWVdO1xyXG4gICAgdGhpcy5kYXNobGV0RGF0YS5uZXh0KHRoaXMuRGFzaExldERhdGEpO1xyXG4gIH1cclxuICBzZXRBcHBOYW1lKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIHRoaXMuYXBwTmFtZS5uZXh0KHJlc3BvbnNlKTtcclxuICB9XHJcbiAgc2V0TmF2aWdhdGlvbkRhdGEocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0UGVybWlzc2lvbkRhdGEocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5wZXJtaXNzaW9uRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0UXVvdGVEYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMucXVvdGVEYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXREZXBhcnRtZW50RGF0YShyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnREYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRDYXRlZ29yeURhdGEocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5jYXRlZ29yeURhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldFByb2R1Y3REYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMucHJvZHVjdERhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldFRlc3RQYXJhbWV0ZXIocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy50ZXN0UGFyYW1ldGVycy5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0RXhwb3J0RXhjZWxMaW5rKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZXhwb3J0RXhjZWxMaW5rLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRFeHBvcnRDVlNMaW5rKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZXhwb3J0Q1ZTTGluay5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0UHJvZHVjdExpc3QocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5nZXRQcm9kdWN0TGlzdC5uZXh0KHJlc3BvbmNlKVxyXG4gIH1cclxuICBzZXRQcmV2aWV3SHRtbChyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLnByZXZpZXdIdG1sLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRVcGRhdGVQcm9kdWN0QnJhbmNoKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMudXBkYXRlUHJvZHVjdEJyYW5jaC5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0Sm9iU2NoZWR1bGVEYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZ2V0Sm9iU2NoZWR1bGVzRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0RG93bmxvYWRQZGZEYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZG93bmxvYWRQZGZEYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRGaWxlRGF0YShyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLmdldGZpbGVEYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRQcmludFRlbXBsYXRlKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMucHJpbnREYXRhLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRGaWxlRG93bmxvYWRVcmwocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5maWxlRG93bmxvYWRVcmwubmV4dChyZXNwb25jZSlcclxuICB9XHJcbiAgc2V0Q2hhcnREYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuY2hhcnREYXRhLm5leHQocmVzcG9uY2UpXHJcbiAgfVxyXG4gIHNldFRoZW1lU2V0dGluZyhyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLnRoZW1lU2V0dGluZy5uZXh0KHJlc3BvbmNlKVxyXG4gIH1cclxuICBzZXRBcHBsaWNhdGlvblNldHRpbmcocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5hcHBsaWNhdGlvblNldHRpbmcubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHJlc2V0VGhlbWVTZXR0aW5nKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5nLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICByZXNldEFwcGxpY2F0aW9uU2V0dGluZyhyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLmFwcGxpY2F0aW9uU2V0dGluZy5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0RmllbGREaW5hbWljQXBpUmVzcG9uY2UocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5maWVsZERpbmFtaWNSZXNwb25jZS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0VmFsaWRhdGlvbkNvbmRpdGlvbihyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLmNoZWNrVmFsaWRhdGlvbi5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0R2l0VmVyc2lvbihyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLmdpdFZpcnNpb24ubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldE5leHRGb3JtRGF0YShyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLm5leHRGb3JtRGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHNldEdpdFZlcnNpb24gaW5zdGVhZFxyXG4gICAqL1xyXG4gIHNldEdpdFZpcnNpb24ocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5zZXRHaXRWZXJzaW9uKHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0UmVwb3J0TG9hZEdyaWREYXRhKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZ2V0UmVwb3J0TG9hZERhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNldElzR3JpZFNlbGVjdGlvbk9wZW5Pck5vdChjaGVjazogYm9vbGVhbikge1xyXG4gICAgdGhpcy5nZXRJc0dyaWRTZWxlY3Rpb25PcGVuLm5leHQoY2hlY2spO1xyXG4gIH1cclxuICBzZXRDaGFydE1vZGVsU2hvd0hpZGUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5jaGFydE1vZGVsU2hvd0hpZGUubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHNldEF1ZGl0SGlzdG9yeURhdGEoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmF1ZGl0SGlzdG9yeUxpc3QubmV4dChkYXRhKTtcclxuICB9XHJcblxyXG4gIHNldEF1ZGl0VmVyc2lvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmF1ZGl0VmVyc2lvbkxpc3QubmV4dChkYXRhKTtcclxuICB9XHJcblxyXG4gIHNoYXJlVXNlck5vdGlmaWNhdGlvbihyZXNwb25jZTogYW55KSB7XHJcbiAgICB0aGlzLnVzZXJOb3RpZmljYXRpb24ubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNoYXJlVXNlck5vdGlmaWNhdGlvblNldHRpbmcocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy51c2VyTm90aWZpY2F0aW9uU2V0dGluZy5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0VXNlclByZWZlcmVuY2UodXNlclByZWZlcmVuY2U6IGFueSkge1xyXG4gICAgdGhpcy51c2VyUHJlZmVyZW5jZS5uZXh0KHVzZXJQcmVmZXJlbmNlKTtcclxuICB9XHJcbiAgc3Vic2NyaWJlVGVtZVNldHRpbmcocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5hcHBsaWNhdGlvblNldHRpbmdzLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICBzZXRNb2R1bGVJbmRleChpbmRleDogYW55KSB7XHJcbiAgICB0aGlzLm1vZHVsZUluZGV4Lm5leHQoaW5kZXgpO1xyXG4gICAgdGhpcy5wTW9kdWxlSW5kZXggPSBpbmRleDtcclxuICB9XHJcbiAgc2V0TWVudUluZGV4cyhpbmRleHM6IGFueSkge1xyXG4gICAgdGhpcy5tZW51SW5kZXhzLm5leHQoaW5kZXhzKTtcclxuICAgIHRoaXMubWVudU9yU3VibWVudUluZGV4ID0gaW5kZXhzO1xyXG4gIH1cclxuICBnZXRQcm9qZWN0TW9kdWxlSW5kZXgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wTW9kdWxlSW5kZXg7XHJcbiAgfVxyXG4gIGdldE1lbnVPclN1Ym1lbnVJbmRleHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51T3JTdWJtZW51SW5kZXg7XHJcbiAgfVxyXG4gIHNldFJlcVJlc3BvbnNlKHJlcVJlc3BvbnNlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnJlcXVlc3RSZXNwb25jZS5uZXh0KHJlcVJlc3BvbnNlKTtcclxuICB9XHJcbiAgcmVzZXRIZWFkZXJNZW51KHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuaGVhZGVyTWVudS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2hhcmVQZGZGaWxlTmFtZShmaWxlTmFtZTogYW55KSB7XHJcbiAgICB0aGlzLnBkZkZpbGVOYW1lLm5leHQoZmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgc2hhcmVQdWJsaWNVcmxGcm9tUzModXJsOiBhbnkpIHtcclxuICAgIHRoaXMuUzNVcmwubmV4dCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgc2hhcmVHcmlkUnVubmluZ0RhdGEocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5ncmlkUnVubmluZ0RhdGEubmV4dChyZXNwb25jZSk7XHJcbiAgfVxyXG4gIHNoYXJlU2VydmVySG9zdE5hbWUoc2VydmVySG9zdG5hbWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXJ2ZXJIb3N0bmFtZS5uZXh0KHNlcnZlckhvc3RuYW1lKTtcclxuICB9XHJcbiAgZ2V0U2VydmVyRW5kUG9pbnQocmVxOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNlcnZlckVuZFBvaW50Lm5leHQocmVxKTtcclxuICB9XHJcbiAgLy9Gb3IgQXBwXHJcbiAgY29sbGVjdGlvbkRhdGEocmVzcG9uY2U6IGFueSkge1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uZGF0YS5uZXh0KHJlc3BvbmNlKTtcclxuICB9XHJcbiAgc2V0Q2hpbGRHcmlkKHJlc3BvbmNlOiBhbnkpIHtcclxuICAgIHRoaXMuY2hpbGRHcmlkLm5leHQocmVzcG9uY2UpO1xyXG4gICAgdGhpcy5jaGlsZGdyaWRmaWVsZHMgPSByZXNwb25jZTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRHcmlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRncmlkZmllbGRzO1xyXG4gIH1cclxuICBzaGFyZVJvbGVDaGFuZ2Uocm9sZTogYW55KSB7XHJcbiAgICB0aGlzLnJvbGVDaGFuZ2UubmV4dChyb2xlKTtcclxuICB9XHJcbiAgc2hhcmVEYXNoYm9yZFNlcmFjaChrZXk6IHN0cmluZykge1xyXG4gICAgdGhpcy5kYXNoYm9yZFNlcmNoS2V5Lm5leHQoa2V5KTtcclxuICB9XHJcbiAgc2hhcmVBZGRBbmRVcGRhdGVSZXNwb25jZShyZXNwb25jZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFkZEFuZFVwZGF0ZVJlc3BvbmNlLm5leHQocmVzcG9uY2UpO1xyXG4gIH1cclxuICB1cGRhdGVTZWxlY3RlZFJvd0luZGV4KGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleFNvdXJjZS5uZXh0KGluZGV4KTtcclxuICB9XHJcbiAgLy9FbmQgRm9yIEFwcFxyXG5cclxufVxyXG4iXX0=
@@ -217,6 +217,11 @@ export class EnvService {
217
217
  getVerifyType() {
218
218
  return this.storageService.getClientCodeEnviorment().verify_type;
219
219
  }
220
+ ngOnDestroy() {
221
+ if (this.serverHostnameSubscription) {
222
+ this.serverHostnameSubscription.unsubscribe();
223
+ }
224
+ }
220
225
  }
221
226
  EnvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EnvService, deps: [{ token: DOCUMENT }, { token: i1.StorageService }, { token: i2.CoreFunctionService }, { token: i3.DataShareService }], target: i0.ɵɵFactoryTarget.Injectable });
222
227
  EnvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EnvService, providedIn: 'root' });
@@ -229,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
229
234
  type: Inject,
230
235
  args: [DOCUMENT]
231
236
  }] }, { type: i1.StorageService }, { type: i2.CoreFunctionService }, { type: i3.DataShareService }]; } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2Vudi9lbnYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBVWxELE1BQU0sT0FBTyxVQUFVO0lBSXJCLFlBQzRCLFFBQWtCLEVBQ3BDLGNBQThCLEVBQzlCLG1CQUF1QyxFQUN2QyxnQkFBbUM7UUFIakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBUDdDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLG1CQUFjLEdBQVksRUFBRSxDQUFDO1FBMko3QixxQkFBZ0IsR0FBRztZQUNqQixFQUFDLGNBQWMsRUFBQyxZQUFZLEVBQUMsS0FBSyxFQUFDLGlCQUFpQixFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUM7WUFDekUsRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLEtBQUssRUFBQyxrQkFBa0IsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDO1lBQzFFLEVBQUMsY0FBYyxFQUFDLG9CQUFvQixFQUFDLEtBQUssRUFBQyx3QkFBd0Is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LEdBQWEsS0FBSyxDQUFDO1FBQzVCLElBQUcsY0FBYyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQzdDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMxRCxNQUFNLE9BQU8sR0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLElBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUM7b0JBQy9CLElBQUcsSUFBSSxLQUFLLE9BQU8sQ0FBQyxVQUFVLEVBQUM7d0JBQzdCLEtBQUssR0FBRyxJQUFJLENBQUE7cUJBQ2I7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUNuRSxDQUFDOzt3R0FqTlUsVUFBVSxrQkFLWCxRQUFROzRHQUxQLFVBQVUsY0FGVCxNQUFNOzRGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tLCBvZiwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7Ly9mcm9tUHJvbWlzZVxyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9jb21tb24uZW51bSc7XHJcbmltcG9ydCB7IEVuZFBvaW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2VuZC1wb2ludC5lbnVtJztcclxuaW1wb3J0IHsgU3RvcmFnZVRva2VuU3RhdHVzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL3N0b3JhZ2UtdG9rZW4tc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQgeyBzZXJ2ZXJIb3N0TGlzdCB9IGZyb20gJy4vc2VydmVySG9zdExpc3QnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUZ1bmN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi11dGlscy9jb3JlLWZ1bmN0aW9uL2NvcmUtZnVuY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBMQVRGT1JNX05BTUUgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGxhdGZvcm0nO1xyXG5pbXBvcnQgeyBEYXRhU2hhcmVTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YS1zaGFyZS9kYXRhLXNoYXJlLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVudlNlcnZpY2Uge1xyXG4gIHJlcXVlc3RUeXBlOiBhbnkgPSAnJztcclxuICBzZXJ2ZXJIb3N0bmFtZSA6IHN0cmluZyA9ICcnO1xyXG4gIHNlcnZlckhvc3RuYW1lU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlRnVuY3Rpb25TZXJ2aWNlOkNvcmVGdW5jdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGFTaGFyZVNlcnZpY2UgOiBEYXRhU2hhcmVTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgICB0aGlzLnNlcnZlckhvc3RuYW1lU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhU2hhcmVTZXJ2aWNlLnNlcnZlckhvc3RuYW1lLnN1YnNjcmliZShkYXRhPT57XHJcbiAgICAgICAgaWYoZGF0YSAmJiBkYXRhICE9ICcnKXtcclxuICAgICAgICAgIHRoaXMuc2VydmVySG9zdG5hbWUgPSBkYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgfVxyXG5cclxuXHJcbiAgZ2V0QmFzZVVybCgpe1xyXG4gICAgbGV0IGJhc2VVcmw6YW55O1xyXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SG9zdE5hbWVEaW5hbWljYWxseSgpO1xyXG4gICAgaWYodGhpcy5jb3JlRnVuY3Rpb25TZXJ2aWNlLmlzTm90QmxhbmsoaG9zdCkpe1xyXG4gICAgICBiYXNlVXJsID0gaG9zdDtcclxuICAgIH1lbHNle1xyXG4gICAgICAvLyBiYXNlVXJsID0gZW52aXJvbm1lbnQuc2VydmVyaG9zdFxyXG4gICAgICBpZih0aGlzLmdldEhvc3RLZXlWYWx1ZSgnc2VydmVyRW5kcG9pbnQnKSl7XHJcbiAgICAgICAgYmFzZVVybCA9IHRoaXMuZ2V0SG9zdEtleVZhbHVlKCdzZXJ2ZXJFbmRwb2ludCcpICsnL3Jlc3QvJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYodGhpcy5zZXJ2ZXJIb3N0bmFtZSl7XHJcbiAgICAgICAgICAgYmFzZVVybCA9IHRoaXMuc2VydmVySG9zdG5hbWUgKycvcmVzdC8nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyBiYXNlVXJsID0gdGhpcy5nZXRIb3N0S2V5VmFsdWUoJ3NlcnZlckVuZHBvaW50JykgKycvcmVzdC8nO1xyXG4gICAgICB0aGlzLnNldERpbmFtaWNhbGx5SG9zdCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJhc2VVcmw7XHJcbiAgfVxyXG4gIGdldEFwcE5hbWUoKXtcclxuICAgIGlmKHRoaXMuY29yZUZ1bmN0aW9uU2VydmljZS5pc05vdEJsYW5rKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2xpZW50Q29kZUVudmlvcm1lbnQoKS5hcHBOYW1lKSl7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0QXBwTmFtZSh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENsaWVudENvZGVFbnZpb3JtZW50KCkuYXBwTmFtZSk7XHJcbiAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENsaWVudENvZGVFbnZpb3JtZW50KCkuYXBwTmFtZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0QXBwSWQoKXtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENsaWVudENvZGVFbnZpb3JtZW50KCkuYXBwSWQ7XHJcbiAgfVxyXG4gIGJhc2VVcmwoYXBwbGljYXRpb25BY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QmFzZVVybCgpICsgICg8YW55PkVuZFBvaW50KVthcHBsaWNhdGlvbkFjdGlvbl07XHJcbiAgfVxyXG4gIHB1YmxpY0Jhc2VVcmwoYXBwbGljYXRpb25BY3Rpb246IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRCYXNlVXJsKCkgKyBFbmRQb2ludC5QVUJMSUMgKyAoPGFueT5FbmRQb2ludClbYXBwbGljYXRpb25BY3Rpb25dO1xyXG4gIH1cclxuICBvdHBBcGkoKXtcclxuICAgIHJldHVybiBcImh0dHBzOi8vMmZhY3Rvci5pbi9BUEkvVjEvXCIgKyBDb21tb24uQVBJX0tFWSArIFwiL1NNUy9cIlxyXG4gIH1cclxuICB2ZXJpZnlPdHBBcGkoKXtcclxuICAgIHJldHVybiBcImh0dHBzOi8vMmZhY3Rvci5pbi9BUEkvVjEvXCIgKyBDb21tb24uQVBJX0tFWSArIFwiL1NNUy9WRVJJRlkvXCJcclxuICB9XHJcbiAgZ2V0QXBpKGFwaU5hbWU6c3RyaW5nKXtcclxuICAgIGxldCBhcGk7XHJcbiAgICBpZih0aGlzLmdldFJlcXVlc3RUeXBlKCkgPT0gJ1BVQkxJQycpe1xyXG4gICAgICAgIGFwaSA9IHRoaXMucHVibGljQmFzZVVybChhcGlOYW1lKVxyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgYXBpID0gdGhpcy5iYXNlVXJsKGFwaU5hbWUpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXBpO1xyXG4gIH1cclxuICBnZXRBdXRoQXBpKGFwaU5hbWU6c3RyaW5nKXtcclxuICAgIGxldCBhcGk7XHJcbiAgICBhcGkgPSB0aGlzLmJhc2VVcmwoYXBpTmFtZSlcclxuICAgIHJldHVybiBhcGk7XHJcbiAgfVxyXG4gIHNldFJlcXVlc3RUeXBlKHR5cGU6YW55KSB7XHJcbiAgICB0aGlzLnJlcXVlc3RUeXBlID0gdHlwZTtcclxuICB9XHJcbiAgZ2V0UmVxdWVzdFR5cGUoKSB7XHJcbiAgICBpZih0aGlzLnJlcXVlc3RUeXBlID09ICcnKXtcclxuICAgICAgaWYodGhpcy5jaGVja0xvZ2VkSW4oKSl7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0VHlwZSA9IFwiUFJJVkFURVwiO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnJlcXVlc3RUeXBlID0gXCJQVUJMSUNcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdFR5cGU7XHJcbiAgfVxyXG4gIGNoZWNrTG9nZWRJbigpe1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UgIT0gbnVsbCAmJiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLkdldElkVG9rZW4oKSAhPSBudWxsKSB7XHJcbiAgICAgIGlmKHRoaXMuc3RvcmFnZVNlcnZpY2UuR2V0SWRUb2tlblN0YXR1cygpID09IFN0b3JhZ2VUb2tlblN0YXR1cy5JRF9UT0tFTl9BQ1RJVkUpe1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldERpbmFtaWNhbGx5SG9zdCgpe1xyXG4gICAgbGV0IHNldEhvc3ROYW1lID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRIb3N0TmFtZURpbmFtaWNhbGx5KCk7XHJcbiAgICBsZXQgc2VydmVySG9zdE5hbWUgPSB0aGlzLnNlcnZlckhvc3RuYW1lO1xyXG4gICAgLy8gbGV0IHRoZW1lZGF0YSA9IHRoaXMuZ2V0SG9zdEtleVZhbHVlKCd0aGVtZV9zZXR0aW5nJyk7XHJcbiAgICAvL3RoaXMuc2V0QXBwbGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBpZihzZXRIb3N0TmFtZSAmJiBzZXJ2ZXJIb3N0TmFtZSAmJiBzZXJ2ZXJIb3N0TmFtZSAhPSBzZXRIb3N0TmFtZSApIHtcclxuICAgICAgY29uc3QgaG9zdE5hbWUgPSBzZXJ2ZXJIb3N0TmFtZSArJy9yZXN0Lyc7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SG9zdE5hbWVEaW5hbWljYWxseShob3N0TmFtZSk7XHJcbiAgICAgIC8vdGhpcy5zZXRUaGVtZVNldHRpbmcodGhlbWVkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YVNoYXJlU2VydmljZS5nZXRTZXJ2ZXJFbmRQb2ludCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEhvc3RLZXlWYWx1ZShrZXlOYW1lOnN0cmluZyl7XHJcbiAgICBsZXQgaG9zdG5hbWU6YW55ID1cIlwiO1xyXG4gICAgbGV0IGtleV9OYW1lOnN0cmluZyA9ICcnO1xyXG4gICAgaWYodGhpcy5zdG9yYWdlU2VydmljZS5jaGVja1BsYXRGb3JtKCkgPT0gJ21vYmlsZScpe1xyXG4gICAgICBob3N0bmFtZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2xpZW50TmFtZSgpO1xyXG4gICAgICBrZXlfTmFtZSA9ICdjbGllbnRDb2RlJztcclxuICAgIH1lbHNle1xyXG4gICAgICBob3N0bmFtZSA9IHRoaXMuZ2V0SG9zdE5hbWUoJ2hvc3RuYW1lJyk7XHJcbiAgICAgIGtleV9OYW1lID0gJ2NsaWVudEVuZHBvaW50JztcclxuICAgIH1cclxuICAgIGxldCB2YWx1ZTphbnkgPSAnJztcclxuICAgIGlmKGhvc3RuYW1lID09ICdsb2NhbGhvc3QnKXtcclxuICAgICAgdmFsdWUgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENsaWVudENvZGVFbnZpb3JtZW50KCkuc2VydmVyaG9zdDtcclxuICAgIH1lbHNlIGlmKHNlcnZlckhvc3RMaXN0ICYmIHNlcnZlckhvc3RMaXN0Lmxlbmd0aCA+IDApe1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc2VydmVySG9zdExpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudDphbnkgPSBzZXJ2ZXJIb3N0TGlzdFtpbmRleF07XHJcbiAgICAgICAgaWYoaG9zdG5hbWUgPT0gZWxlbWVudFtrZXlfTmFtZV0pe1xyXG4gICAgICAgICAgaWYoa2V5TmFtZSA9PSBcIm9iamVjdFwiKXtcclxuICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGVsZW1lbnRba2V5TmFtZV07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0SG9zdE5hbWUoa2V5OnN0cmluZyl7XHJcbiAgICBsZXQgbXlkb2N1bWVudDphbnkgPSB0aGlzLmRvY3VtZW50O1xyXG4gICAgcmV0dXJuIG15ZG9jdW1lbnQubG9jYXRpb25ba2V5XTtcclxuICB9XHJcbiAgZ2V0U2VydmVySG9zdG5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLnNlcnZlckhvc3RuYW1lO1xyXG4gIH1cclxuXHJcbiAgc2V0R29vZ2xlTG9jYXRpb24oZ2VvbG9jYXRpb246YW55KXtcclxuICAgIChDb21tb24gYXMgYW55KS5HT09HTEVfTUFQX0lOX0ZPUk0gPSBnZW9sb2NhdGlvbjtcclxuICB9XHJcblxyXG4gIHNldEFwcGxpY2F0aW9uU2V0dGluZygpe1xyXG4gICAgbGV0IGdlb2xvY2F0aW9uID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBcHBsaWNhdGlvblZhbHVlQnlLZXkoJ2dvb2dsZV9tYXAnKTtcclxuICAgIHRoaXMuc2V0R29vZ2xlTG9jYXRpb24oZ2VvbG9jYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgdGhlbWVTZXR0aW5nTGlzdCA9IFtcclxuICAgIHsncHJvcGVydHlOYW1lJzonLS1oZWFkZXJiZycsJ2tleSc6J2hlYWRlcl9iZ19jb2xvcicsJ2RlZmF1bHQnOicjZmNmY2ZjJ30sXHJcbiAgICB7J3Byb3BlcnR5TmFtZSc6Jy0tbmF2dHh0Y29sb3InLCdrZXknOidoZWFkZXJfdHh0X2NvbG9yJywnZGVmYXVsdCc6JyMyMjInfSxcclxuICAgIHsncHJvcGVydHlOYW1lJzonLS1uYXZ0eHRob3ZlcmNvbG9yJywna2V5JzonaGVhZGVyX3R4dF9ob3Zlcl9jb2xvcicsJ2RlZmF1bHQnOicjNzdiY2U4J30sXHJcbiAgICB7J3Byb3BlcnR5TmFtZSc6Jy0taGVhZGVyaWNvbicsJ2tleSc6J2hlYWRlcl9pY29uX2NvbG9yJywnZGVmYXVsdCc6JyM1NTUnfSxcclxuICAgIHsncHJvcGVydHlOYW1lJzonLS1oZWFkZXJpY29uaG92ZXInLCdrZXknOidoZWFkZXJfaWNvbl9ob3Zlcl9jb2xvcicsJ2RlZmF1bHQnOicjNzc3J30sXHJcbiAgICB7J3Byb3BlcnR5TmFtZSc6Jy0tYnV0dG9uQ29sb3InLCdrZXknOididG5fY29sb3InLCdkZWZhdWx0JzonIzI1OTdkZSd9LFxyXG4gICAgeydwcm9wZXJ0eU5hbWUnOictLWJ1dHRvbkhvdmVyQ29sb3InLCdrZXknOididG5faG92ZXJfY29sb3InLCdkZWZhdWx0JzonIzBiNzFiMCd9LFxyXG4gICAgeydwcm9wZXJ0eU5hbWUnOictLWZvb3RlcmJnJywna2V5JzonZm9vdGVyX2JnJywnZGVmYXVsdCc6JyM3N2JjZTgnfSxcclxuICAgIHsncHJvcGVydHlOYW1lJzonLS10aGVtZWNvbG9yJywna2V5JzondGhlbWVfY29sb3InLCdkZWZhdWx0JzonI2U4ZjVmZCd9LFxyXG4gICAgeydwcm9wZXJ0eU5hbWUnOictLWFjdGl2ZWJnJywna2V5JzonYWN0aXZlX2JnX2NvbG9yJywnZGVmYXVsdCc6JyM3N2JjZTgnfSxcclxuICAgIHsncHJvcGVydHlOYW1lJzonLS1wb3B1cEhlYWRlckJnJywna2V5JzoncG9wdXBfaGVhZGVyX2JnJywnZGVmYXVsdCc6JyNDRUU3RjcnfSxcclxuICAgIHsncHJvcGVydHlOYW1lJzonLS1mb3JtTGFiZWxCZycsJ2tleSc6J2Zvcm1fbGFiZWxfYmcnLCdkZWZhdWx0JzonI0U0RjJGQSd9LFxyXG4gICAgeydwcm9wZXJ0eU5hbWUnOictLWZvbnRDb2xvcicsJ2tleSc6J3R4dENvbG9yJywnZGVmYXVsdCc6JyMwMDAnfSxcclxuICBdXHJcbiAgc2V0VGhlbWVTZXR0aW5nKHNldHRpbmdPYmo6YW55KSB7XHJcbiAgICB0aGlzLnRoZW1lU2V0dGluZ0xpc3QuZm9yRWFjaChvYmplY3QgPT4ge1xyXG4gICAgICBsZXQgcHJvcGVydHlOYW1lID0gb2JqZWN0LnByb3BlcnR5TmFtZTtcclxuICAgICAgbGV0IGtleSA9IG9iamVjdC5rZXk7XHJcbiAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSBvYmplY3QuZGVmYXVsdDtcclxuICAgICAgaWYoc2V0dGluZ09ialtrZXldICYmIHNldHRpbmdPYmpba2V5XSAhPSBcIlwiICkge1xyXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIHNldHRpbmdPYmpba2V5XSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGVja1JlZGlyZWN0aW9uVXJsKCl7XHJcbiAgICBsZXQgcmVkaXJlY3RVUkwgPSAnJztcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0QXBwbGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBpZih1cmwgJiYgdXJsWydyZWRpcmVjdF91cmwnXSl7XHJcbiAgICAgIHJlZGlyZWN0VVJMID0gdXJsWydyZWRpcmVjdF91cmwnXTtcclxuICAgIH1cclxuICAgIHJldHVybiByZWRpcmVjdFVSTDtcclxuICB9XHJcblxyXG4gIGNoZWNrQ2xpZW50RXhpc3RPck5vdChkYXRhOmFueSl7XHJcbiAgICBsZXQgdmFsdWUgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZihzZXJ2ZXJIb3N0TGlzdCAmJiBzZXJ2ZXJIb3N0TGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNlcnZlckhvc3RMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6YW55ID0gc2VydmVySG9zdExpc3RbaW5kZXhdO1xyXG4gICAgICAgIGlmKGVsZW1lbnQgJiYgZWxlbWVudC5jbGllbnRDb2RlKXtcclxuICAgICAgICAgIGlmKGRhdGEgPT09IGVsZW1lbnQuY2xpZW50Q29kZSl7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdHJ1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICBnZXRWZXJpZnlUeXBlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDbGllbnRDb2RlRW52aW9ybWVudCgpLnZlcmlmeV90eXBlO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2Vudi9lbnYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBVWxELE1BQU0sT0FBTyxVQUFVO0lBSXJCLFlBQzRCLFFBQWtCLEVBQ3BDLGNBQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxnQkFBa0M7UUFIaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBUDVDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBMko1QixxQkFBZ0IsR0FBRztZQUNqQixFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUU7WUFDaEYsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQ2pGLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSx3QkFBd0Is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SyxHQUFZLEtBQUssQ0FBQztRQUMzQixJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUQsTUFBTSxPQUFPLEdBQVEsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO29CQUNqQyxJQUFJLElBQUksS0FBSyxPQUFPLENBQUMsVUFBVSxFQUFFO3dCQUMvQixLQUFLLEdBQUcsSUFBSSxDQUFBO3FCQUNiO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDbkUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUNuQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDL0M7SUFDSCxDQUFDOzt3R0F2TlUsVUFBVSxrQkFLWCxRQUFROzRHQUxQLFVBQVUsY0FGVCxNQUFNOzRGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tLCBvZiwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7Ly9mcm9tUHJvbWlzZVxyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9jb21tb24uZW51bSc7XHJcbmltcG9ydCB7IEVuZFBvaW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2VuZC1wb2ludC5lbnVtJztcclxuaW1wb3J0IHsgU3RvcmFnZVRva2VuU3RhdHVzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL3N0b3JhZ2UtdG9rZW4tc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQgeyBzZXJ2ZXJIb3N0TGlzdCB9IGZyb20gJy4vc2VydmVySG9zdExpc3QnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUZ1bmN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi11dGlscy9jb3JlLWZ1bmN0aW9uL2NvcmUtZnVuY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBMQVRGT1JNX05BTUUgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGxhdGZvcm0nO1xyXG5pbXBvcnQgeyBEYXRhU2hhcmVTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YS1zaGFyZS9kYXRhLXNoYXJlLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVudlNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHJlcXVlc3RUeXBlOiBhbnkgPSAnJztcclxuICBzZXJ2ZXJIb3N0bmFtZTogc3RyaW5nID0gJyc7XHJcbiAgc2VydmVySG9zdG5hbWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29yZUZ1bmN0aW9uU2VydmljZTogQ29yZUZ1bmN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0YVNoYXJlU2VydmljZTogRGF0YVNoYXJlU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuc2VydmVySG9zdG5hbWVTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFTaGFyZVNlcnZpY2Uuc2VydmVySG9zdG5hbWUuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICBpZiAoZGF0YSAmJiBkYXRhICE9ICcnKSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2ZXJIb3N0bmFtZSA9IGRhdGE7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QmFzZVVybCgpIHtcclxuICAgIGxldCBiYXNlVXJsOiBhbnk7XHJcbiAgICBjb25zdCBob3N0ID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRIb3N0TmFtZURpbmFtaWNhbGx5KCk7XHJcbiAgICBpZiAodGhpcy5jb3JlRnVuY3Rpb25TZXJ2aWNlLmlzTm90QmxhbmsoaG9zdCkpIHtcclxuICAgICAgYmFzZVVybCA9IGhvc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBiYXNlVXJsID0gZW52aXJvbm1lbnQuc2VydmVyaG9zdFxyXG4gICAgICBpZiAodGhpcy5nZXRIb3N0S2V5VmFsdWUoJ3NlcnZlckVuZHBvaW50JykpIHtcclxuICAgICAgICBiYXNlVXJsID0gdGhpcy5nZXRIb3N0S2V5VmFsdWUoJ3NlcnZlckVuZHBvaW50JykgKyAnL3Jlc3QvJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2ZXJIb3N0bmFtZSkge1xyXG4gICAgICAgICAgYmFzZVVybCA9IHRoaXMuc2VydmVySG9zdG5hbWUgKyAnL3Jlc3QvJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gYmFzZVVybCA9IHRoaXMuZ2V0SG9zdEtleVZhbHVlKCdzZXJ2ZXJFbmRwb2ludCcpICsnL3Jlc3QvJztcclxuICAgICAgdGhpcy5zZXREaW5hbWljYWxseUhvc3QoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBiYXNlVXJsO1xyXG4gIH1cclxuICBnZXRBcHBOYW1lKCkge1xyXG4gICAgaWYgKHRoaXMuY29yZUZ1bmN0aW9uU2VydmljZS5pc05vdEJsYW5rKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2xpZW50Q29kZUVudmlvcm1lbnQoKS5hcHBOYW1lKSkge1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEFwcE5hbWUodGhpcy5zdG9yYWdlU2VydmljZS5nZXRDbGllbnRDb2RlRW52aW9ybWVudCgpLmFwcE5hbWUpO1xyXG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDbGllbnRDb2RlRW52aW9ybWVudCgpLmFwcE5hbWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEFwcElkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2xpZW50Q29kZUVudmlvcm1lbnQoKS5hcHBJZDtcclxuICB9XHJcbiAgYmFzZVVybChhcHBsaWNhdGlvbkFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRCYXNlVXJsKCkgKyAoPGFueT5FbmRQb2ludClbYXBwbGljYXRpb25BY3Rpb25dO1xyXG4gIH1cclxuICBwdWJsaWNCYXNlVXJsKGFwcGxpY2F0aW9uQWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEJhc2VVcmwoKSArIEVuZFBvaW50LlBVQkxJQyArICg8YW55PkVuZFBvaW50KVthcHBsaWNhdGlvbkFjdGlvbl07XHJcbiAgfVxyXG4gIG90cEFwaSgpIHtcclxuICAgIHJldHVybiBcImh0dHBzOi8vMmZhY3Rvci5pbi9BUEkvVjEvXCIgKyBDb21tb24uQVBJX0tFWSArIFwiL1NNUy9cIlxyXG4gIH1cclxuICB2ZXJpZnlPdHBBcGkoKSB7XHJcbiAgICByZXR1cm4gXCJodHRwczovLzJmYWN0b3IuaW4vQVBJL1YxL1wiICsgQ29tbW9uLkFQSV9LRVkgKyBcIi9TTVMvVkVSSUZZL1wiXHJcbiAgfVxyXG4gIGdldEFwaShhcGlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGxldCBhcGk7XHJcbiAgICBpZiAodGhpcy5nZXRSZXF1ZXN0VHlwZSgpID09ICdQVUJMSUMnKSB7XHJcbiAgICAgIGFwaSA9IHRoaXMucHVibGljQmFzZVVybChhcGlOYW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXBpID0gdGhpcy5iYXNlVXJsKGFwaU5hbWUpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXBpO1xyXG4gIH1cclxuICBnZXRBdXRoQXBpKGFwaU5hbWU6IHN0cmluZykge1xyXG4gICAgbGV0IGFwaTtcclxuICAgIGFwaSA9IHRoaXMuYmFzZVVybChhcGlOYW1lKVxyXG4gICAgcmV0dXJuIGFwaTtcclxuICB9XHJcbiAgc2V0UmVxdWVzdFR5cGUodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLnJlcXVlc3RUeXBlID0gdHlwZTtcclxuICB9XHJcbiAgZ2V0UmVxdWVzdFR5cGUoKSB7XHJcbiAgICBpZiAodGhpcy5yZXF1ZXN0VHlwZSA9PSAnJykge1xyXG4gICAgICBpZiAodGhpcy5jaGVja0xvZ2VkSW4oKSkge1xyXG4gICAgICAgIHRoaXMucmVxdWVzdFR5cGUgPSBcIlBSSVZBVEVcIjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlcXVlc3RUeXBlID0gXCJQVUJMSUNcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdFR5cGU7XHJcbiAgfVxyXG4gIGNoZWNrTG9nZWRJbigpIHtcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlICE9IG51bGwgJiYgdGhpcy5zdG9yYWdlU2VydmljZS5HZXRJZFRva2VuKCkgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZS5HZXRJZFRva2VuU3RhdHVzKCkgPT0gU3RvcmFnZVRva2VuU3RhdHVzLklEX1RPS0VOX0FDVElWRSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGluYW1pY2FsbHlIb3N0KCkge1xyXG4gICAgbGV0IHNldEhvc3ROYW1lID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRIb3N0TmFtZURpbmFtaWNhbGx5KCk7XHJcbiAgICBsZXQgc2VydmVySG9zdE5hbWUgPSB0aGlzLnNlcnZlckhvc3RuYW1lO1xyXG4gICAgLy8gbGV0IHRoZW1lZGF0YSA9IHRoaXMuZ2V0SG9zdEtleVZhbHVlKCd0aGVtZV9zZXR0aW5nJyk7XHJcbiAgICAvL3RoaXMuc2V0QXBwbGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBpZiAoc2V0SG9zdE5hbWUgJiYgc2VydmVySG9zdE5hbWUgJiYgc2VydmVySG9zdE5hbWUgIT0gc2V0SG9zdE5hbWUpIHtcclxuICAgICAgY29uc3QgaG9zdE5hbWUgPSBzZXJ2ZXJIb3N0TmFtZSArICcvcmVzdC8nO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEhvc3ROYW1lRGluYW1pY2FsbHkoaG9zdE5hbWUpO1xyXG4gICAgICAvL3RoaXMuc2V0VGhlbWVTZXR0aW5nKHRoZW1lZGF0YSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGFTaGFyZVNlcnZpY2UuZ2V0U2VydmVyRW5kUG9pbnQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRIb3N0S2V5VmFsdWUoa2V5TmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgaG9zdG5hbWU6IGFueSA9IFwiXCI7XHJcbiAgICBsZXQga2V5X05hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuY2hlY2tQbGF0Rm9ybSgpID09ICdtb2JpbGUnKSB7XHJcbiAgICAgIGhvc3RuYW1lID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDbGllbnROYW1lKCk7XHJcbiAgICAgIGtleV9OYW1lID0gJ2NsaWVudENvZGUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaG9zdG5hbWUgPSB0aGlzLmdldEhvc3ROYW1lKCdob3N0bmFtZScpO1xyXG4gICAgICBrZXlfTmFtZSA9ICdjbGllbnRFbmRwb2ludCc7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsdWU6IGFueSA9ICcnO1xyXG4gICAgaWYgKGhvc3RuYW1lID09ICdsb2NhbGhvc3QnKSB7XHJcbiAgICAgIHZhbHVlID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDbGllbnRDb2RlRW52aW9ybWVudCgpLnNlcnZlcmhvc3Q7XHJcbiAgICB9IGVsc2UgaWYgKHNlcnZlckhvc3RMaXN0ICYmIHNlcnZlckhvc3RMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNlcnZlckhvc3RMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6IGFueSA9IHNlcnZlckhvc3RMaXN0W2luZGV4XTtcclxuICAgICAgICBpZiAoaG9zdG5hbWUgPT0gZWxlbWVudFtrZXlfTmFtZV0pIHtcclxuICAgICAgICAgIGlmIChrZXlOYW1lID09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSBlbGVtZW50O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gZWxlbWVudFtrZXlOYW1lXTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICBnZXRIb3N0TmFtZShrZXk6IHN0cmluZykge1xyXG4gICAgbGV0IG15ZG9jdW1lbnQ6IGFueSA9IHRoaXMuZG9jdW1lbnQ7XHJcbiAgICByZXR1cm4gbXlkb2N1bWVudC5sb2NhdGlvbltrZXldO1xyXG4gIH1cclxuICBnZXRTZXJ2ZXJIb3N0bmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlcnZlckhvc3RuYW1lO1xyXG4gIH1cclxuXHJcbiAgc2V0R29vZ2xlTG9jYXRpb24oZ2VvbG9jYXRpb246IGFueSkge1xyXG4gICAgKENvbW1vbiBhcyBhbnkpLkdPT0dMRV9NQVBfSU5fRk9STSA9IGdlb2xvY2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0QXBwbGljYXRpb25TZXR0aW5nKCkge1xyXG4gICAgbGV0IGdlb2xvY2F0aW9uID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBcHBsaWNhdGlvblZhbHVlQnlLZXkoJ2dvb2dsZV9tYXAnKTtcclxuICAgIHRoaXMuc2V0R29vZ2xlTG9jYXRpb24oZ2VvbG9jYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgdGhlbWVTZXR0aW5nTGlzdCA9IFtcclxuICAgIHsgJ3Byb3BlcnR5TmFtZSc6ICctLWhlYWRlcmJnJywgJ2tleSc6ICdoZWFkZXJfYmdfY29sb3InLCAnZGVmYXVsdCc6ICcjZmNmY2ZjJyB9LFxyXG4gICAgeyAncHJvcGVydHlOYW1lJzogJy0tbmF2dHh0Y29sb3InLCAna2V5JzogJ2hlYWRlcl90eHRfY29sb3InLCAnZGVmYXVsdCc6ICcjMjIyJyB9LFxyXG4gICAgeyAncHJvcGVydHlOYW1lJzogJy0tbmF2dHh0aG92ZXJjb2xvcicsICdrZXknOiAnaGVhZGVyX3R4dF9ob3Zlcl9jb2xvcicsICdkZWZhdWx0JzogJyM3N2JjZTgnIH0sXHJcbiAgICB7ICdwcm9wZXJ0eU5hbWUnOiAnLS1oZWFkZXJpY29uJywgJ2tleSc6ICdoZWFkZXJfaWNvbl9jb2xvcicsICdkZWZhdWx0JzogJyM1NTUnIH0sXHJcbiAgICB7ICdwcm9wZXJ0eU5hbWUnOiAnLS1oZWFkZXJpY29uaG92ZXInLCAna2V5JzogJ2hlYWRlcl9pY29uX2hvdmVyX2NvbG9yJywgJ2RlZmF1bHQnOiAnIzc3NycgfSxcclxuICAgIHsgJ3Byb3BlcnR5TmFtZSc6ICctLWJ1dHRvbkNvbG9yJywgJ2tleSc6ICdidG5fY29sb3InLCAnZGVmYXVsdCc6ICcjMjU5N2RlJyB9LFxyXG4gICAgeyAncHJvcGVydHlOYW1lJzogJy0tYnV0dG9uSG92ZXJDb2xvcicsICdrZXknOiAnYnRuX2hvdmVyX2NvbG9yJywgJ2RlZmF1bHQnOiAnIzBiNzFiMCcgfSxcclxuICAgIHsgJ3Byb3BlcnR5TmFtZSc6ICctLWZvb3RlcmJnJywgJ2tleSc6ICdmb290ZXJfYmcnLCAnZGVmYXVsdCc6ICcjNzdiY2U4JyB9LFxyXG4gICAgeyAncHJvcGVydHlOYW1lJzogJy0tdGhlbWVjb2xvcicsICdrZXknOiAndGhlbWVfY29sb3InLCAnZGVmYXVsdCc6ICcjZThmNWZkJyB9LFxyXG4gICAgeyAncHJvcGVydHlOYW1lJzogJy0tYWN0aXZlYmcnLCAna2V5JzogJ2FjdGl2ZV9iZ19jb2xvcicsICdkZWZhdWx0JzogJyM3N2JjZTgnIH0sXHJcbiAgICB7ICdwcm9wZXJ0eU5hbWUnOiAnLS1wb3B1cEhlYWRlckJnJywgJ2tleSc6ICdwb3B1cF9oZWFkZXJfYmcnLCAnZGVmYXVsdCc6ICcjQ0VFN0Y3JyB9LFxyXG4gICAgeyAncHJvcGVydHlOYW1lJzogJy0tZm9ybUxhYmVsQmcnLCAna2V5JzogJ2Zvcm1fbGFiZWxfYmcnLCAnZGVmYXVsdCc6ICcjRTRGMkZBJyB9LFxyXG4gICAgeyAncHJvcGVydHlOYW1lJzogJy0tZm9udENvbG9yJywgJ2tleSc6ICd0eHRDb2xvcicsICdkZWZhdWx0JzogJyMwMDAnIH0sXHJcbiAgXVxyXG4gIHNldFRoZW1lU2V0dGluZyhzZXR0aW5nT2JqOiBhbnkpIHtcclxuICAgIHRoaXMudGhlbWVTZXR0aW5nTGlzdC5mb3JFYWNoKG9iamVjdCA9PiB7XHJcbiAgICAgIGxldCBwcm9wZXJ0eU5hbWUgPSBvYmplY3QucHJvcGVydHlOYW1lO1xyXG4gICAgICBsZXQga2V5ID0gb2JqZWN0LmtleTtcclxuICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IG9iamVjdC5kZWZhdWx0O1xyXG4gICAgICBpZiAoc2V0dGluZ09ialtrZXldICYmIHNldHRpbmdPYmpba2V5XSAhPSBcIlwiKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5TmFtZSwgc2V0dGluZ09ialtrZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCBkZWZhdWx0VmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hlY2tSZWRpcmVjdGlvblVybCgpIHtcclxuICAgIGxldCByZWRpcmVjdFVSTCA9ICcnO1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBcHBsaWNhdGlvblNldHRpbmcoKTtcclxuICAgIGlmICh1cmwgJiYgdXJsWydyZWRpcmVjdF91cmwnXSkge1xyXG4gICAgICByZWRpcmVjdFVSTCA9IHVybFsncmVkaXJlY3RfdXJsJ107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVkaXJlY3RVUkw7XHJcbiAgfVxyXG5cclxuICBjaGVja0NsaWVudEV4aXN0T3JOb3QoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgdmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmIChzZXJ2ZXJIb3N0TGlzdCAmJiBzZXJ2ZXJIb3N0TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzZXJ2ZXJIb3N0TGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50OiBhbnkgPSBzZXJ2ZXJIb3N0TGlzdFtpbmRleF07XHJcbiAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5jbGllbnRDb2RlKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YSA9PT0gZWxlbWVudC5jbGllbnRDb2RlKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdHJ1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICBnZXRWZXJpZnlUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2xpZW50Q29kZUVudmlvcm1lbnQoKS52ZXJpZnlfdHlwZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuc2VydmVySG9zdG5hbWVTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zZXJ2ZXJIb3N0bmFtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19