@csmart/ngc-smart-core 0.7.76 → 0.7.80

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.
@@ -79,6 +79,55 @@ var SmartAuthService = /** @class */ (function () {
79
79
  }
80
80
  })));
81
81
  };
82
+ /**
83
+ * @private
84
+ * @param {?} app
85
+ * @param {?} hash
86
+ * @return {?}
87
+ */
88
+ SmartAuthService.prototype.getTeamUrl = /**
89
+ * @private
90
+ * @param {?} app
91
+ * @param {?} hash
92
+ * @return {?}
93
+ */
94
+ function (app, hash) {
95
+ /** @type {?} */
96
+ var webIndex = window.location.href.indexOf('web-');
97
+ /** @type {?} */
98
+ var uptoweb = (window.location.href.substring(0, webIndex) + 'web-');
99
+ /** @type {?} */
100
+ var afterweb = window.location.href.replace(uptoweb, '');
101
+ webIndex = afterweb.indexOf('-', 0);
102
+ /** @type {?} */
103
+ var lastPart = (afterweb.substring(webIndex));
104
+ lastPart = lastPart.replace(window.location.pathname, '');
105
+ return uptoweb + app + lastPart + hash;
106
+ };
107
+ /**
108
+ * @param {?} loginStaff
109
+ * @return {?}
110
+ */
111
+ SmartAuthService.prototype.redirectToTeam = /**
112
+ * @param {?} loginStaff
113
+ * @return {?}
114
+ */
115
+ function (loginStaff) {
116
+ if (loginStaff.roles.findIndex((/**
117
+ * @param {?} role
118
+ * @return {?}
119
+ */
120
+ function (role) { return role.roleId === 'EUUSPC'; })) > -1) {
121
+ window.location.href = this.getTeamUrl('investigation', '/assignment');
122
+ }
123
+ if (loginStaff.roles.findIndex((/**
124
+ * @param {?} role
125
+ * @return {?}
126
+ */
127
+ function (role) { return role.roleId.substring(0, 3) === 'RSC'; })) > -1) {
128
+ window.location.href = this.getTeamUrl('rsc', '/offender-list');
129
+ }
130
+ };
82
131
  /**
83
132
  * @param {?} selectedOffender
84
133
  * @return {?}
@@ -650,4 +699,4 @@ if (false) {
650
699
  */
651
700
  SmartAuthService.prototype.smartDataServiceUrl;
652
701
  }
653
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1hdXRoL3NtYXJ0LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbEQsT0FBTyxFQUdMLHNCQUFzQixHQUd2QixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQUsxRDtJQU9FLDBCQUNVLElBQWdCLEVBQ2hCLFlBQXlCLEVBQ3pCLFVBQXNCLEVBQ1UsbUJBQW1CO1FBSG5ELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBQTtJQUMxRCxDQUFDOzs7O0lBRUcsd0NBQWE7OztJQUFwQjtRQUFBLGlCQXVEQztRQXREQyxJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFF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Q0FBQzs7Z0JBN2NGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBcEJRLFVBQVU7Z0JBR1YsV0FBVztnQkFVWCxVQUFVO2dEQWdCZCxNQUFNLFNBQUMsc0JBQXNCOzs7MkJBOUJsQztDQWllQyxBQTljRCxJQThjQztTQTNjWSxnQkFBZ0I7OztJQUMzQixzQ0FBdUI7O0lBQ3ZCLDRDQUFtQzs7Ozs7SUFHakMsZ0NBQXdCOzs7OztJQUN4Qix3Q0FBaUM7Ozs7O0lBQ2pDLHNDQUE4Qjs7Ozs7SUFDOUIsK0NBQTJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1zYWxTZXJ2aWNlIH0gZnJvbSAnQGF6dXJlL21zYWwtYW5ndWxhcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHtcclxuICBMb2dpblN0YWZmLFxyXG4gIFNlbGVjdGVkT2ZmZW5kZXIsXHJcbiAgU01BUlRfREFUQV9TRVJWSUNFX1VSTCxcclxuICBSb2xlLFxyXG4gIFBlcm1pc3Npb24sXHJcbn0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcgfSBmcm9tICcuL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcbmltcG9ydCB7IG51bGxTYWZlSXNFcXVpdmFsZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL291dHB1dC9vdXRwdXRfYXN0JztcclxuLy8gaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSAncXVlcnlzdHJpbmcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QXV0aFNlcnZpY2Uge1xyXG4gIGxvZ2luU3RhZmY6IExvZ2luU3RhZmY7XHJcbiAgc2VsZWN0ZWRPZmZlbmRlcjogU2VsZWN0ZWRPZmZlbmRlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhuU2VydmljZTogTXNhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHhkbVNlcnZpY2U6IFhkbVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFNNQVJUX0RBVEFfU0VSVklDRV9VUkwpIHByaXZhdGUgc21hcnREYXRhU2VydmljZVVybCxcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBnZXRMb2dpblN0YWZmKCk6IE9ic2VydmFibGU8TG9naW5TdGFmZj4ge1xyXG4gICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnU21hcnRBdXRoU2VydmljZSAtIGdldExvZ2luU3RhZmYoKScpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0Rldk1vZGUgJiYgdGhpcy5sb2dpblN0YWZmKSB7XHJcbiAgICAgIGlmICh0aGlzLmxvZ2luU3RhZmYuc3RhZmZJZCkge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAnIyMjIyMgZ2V0TG9naW5TdGFmZigpOiBnZXQgaW50ZXJuYWwgaW5zdGFuY2UgaW4gc2VydmljZScsXHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TdGFmZixcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih0aGlzLmxvZ2luU3RhZmYpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMubG9naW5TdGFmZi51c2VyTmFtZSkge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAnIyMjIyMgZ2V0TG9naW5TdGFmZigpOiBnZXQgdXNpbmcgcHJlc2V0IHVzZXIgbmFtZScsXHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TdGFmZixcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0YWZmKHRoaXMubG9naW5TdGFmZi51c2VyTmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKHRoaXMueGRtU2VydmljZS5nZXRMb2dpblN0YWZmKCkpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoc3RvcmVkUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHN0b3JlZFJlc3VsdCAmJiBzdG9yZWRSZXN1bHQuc3RhZmZJZCkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0TG9naW5TdGFmZigpOiBnZXQgZnJvbSBzZXNzaW9uLicsXHJcbiAgICAgICAgICAgICAgc3RvcmVkUmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5sb2dpblN0YWZmID0gc3RvcmVkUmVzdWx0O1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHN0b3JlZFJlc3VsdCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzdG9yZWRSZXN1bHQgJiYgc3RvcmVkUmVzdWx0LnVzZXJOYW1lKSB7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICcjIyMjIyBnZXRMb2dpblN0YWZmKCk6IGdldCB1c2luZyBwcmVzZXQgdXNlciBuYW1lJyxcclxuICAgICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZihzdG9yZWRSZXN1bHQudXNlck5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB1c2VyTmFtZSA9IHRoaXMuYXV0aG5TZXJ2aWNlLmdldEFjY291bnQoKS51c2VyTmFtZTtcclxuICAgICAgICAgIGNvbnN0IHN0YWZmTmFtZSA9IHVzZXJOYW1lLnN1YnN0cmluZygwLCB1c2VyTmFtZS5pbmRleE9mKCdAJykpO1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgbG9naW5Mb2dpblN0YWZmKCk6IGdldCB1c2luZyBsb2dpbiBzdGFmZiBuYW1lICcsXHJcbiAgICAgICAgICAgICAgc3RhZmZOYW1lLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhZmYoc3RhZmZOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRTZWxlY3RlZE9mZmVuZGVyKHNlbGVjdGVkT2ZmZW5kZXI6IFNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgIGlmIChzZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgIC8vIGlmICghc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKSB7XHJcbiAgICAgIGNvbnN0IHJlbGF0aW9uID0gYXdhaXQgdGhpcy5nZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oXHJcbiAgICAgICAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICBzZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSByZWxhdGlvbjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSAnTk9BU1NJR04nO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICAgIHRoaXMueGRtU2VydmljZS5zZXRTZWxlY3RlZE9mZmVuZGVyKHNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gc2VsZWN0ZWRPZmZlbmRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dvdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnhkbVNlcnZpY2UuY2xlYXJBbGwoKTtcclxuICAgIHRoaXMuYXV0aG5TZXJ2aWNlLmxvZ291dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldFBlcm1pc3Npb24oXHJcbiAgICBhcHBNb2R1bGVJZDogc3RyaW5nLFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICB0aGlzLmxvZ2luU3RhZmYgPSBhd2FpdCB0aGlzLnhkbVNlcnZpY2UuZ2V0TG9naW5TdGFmZigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSB0aGlzLmxvZ2luU3RhZmYucGVybWlzc2lvbnM7XHJcbiAgICBjb25zdCByZXNvdXJjZSA9IHJvdXRlLnVybFswXS5wYXRoO1xyXG5cclxuICAgIGlmICghdGhpcy5zZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IGF3YWl0IHRoaXMueGRtU2VydmljZS5nZXRTZWxlY3RlZE9mZmVuZGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPZmZlbmRlcikge1xyXG4gICAgICAvLyBpZiAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKSB7XHJcbiAgICAgIGNvbnN0IHJlbGF0aW9uID0gYXdhaXQgdGhpcy5nZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oXHJcbiAgICAgICAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQsXHJcbiAgICAgICkudG9Qcm9taXNlKCk7XHJcbiAgICAgIGlmIChyZWxhdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gcmVsYXRpb247XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSAnTk9BU1NJR04nO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMueGRtU2VydmljZS5zZXRTZWxlY3RlZE9mZmVuZGVyKHRoaXMuc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gdGhpcy5zZWxlY3RlZE9mZmVuZGVyXHJcbiAgICAgIC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2NsYXNzXj1cInNhYy1cIl0nKTtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvXnNhYy0oXFxTKyktKFxcUyspJC9pO1xyXG5cclxuICAgIEFycmF5LmZyb20oZWxlbWVudHMpLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgbGV0IGhpZGU7XHJcbiAgICAgIGxldCBkaXNhYmxlO1xyXG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGMubWF0Y2gocGF0dGVybik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0cyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICBjb25zdCByb2xlSWQgPSByZXN1bHRzWzFdID8gcmVzdWx0c1sxXS50b1VwcGVyQ2FzZSgpIDogbnVsbDtcclxuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gcmVzdWx0c1syXTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdHNbMF0pO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0c1sxXSk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXN1bHRzWzJdKTtcclxuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKGZ1bmN0aW9uKHApIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICBwLmFwcE1vZHVsZUlkID09PSBhcHBNb2R1bGVJZCAmJlxyXG4gICAgICAgICAgICAgIHAucmVzb3VyY2UgPT09IHJlc291cmNlICYmXHJcbiAgICAgICAgICAgICAgcC5yb2xlSWQgPT09IHJvbGVJZCAmJlxyXG4gICAgICAgICAgICAgIHAuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9PT0gYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICAvKlxyXG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIHNldFBlcm1pc3Npb24oKSByZXNvdXJjZTogJywgcmVzb3VyY2UpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIHNldFBlcm1pc3Npb24oKSBhcHBNb2R1bGVJZDogJywgYXBwTW9kdWxlSWQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIHNldFBlcm1pc3Npb24oKSByb2xlSWQ6ICcsIHJvbGVJZCk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIHNldFBlcm1pc3Npb24oKSBhc3NpZ25tZW50IHJlbGF0aW9uOiAnLFxyXG4gICAgICAgICAgICBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgICovXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgTWF0Y2hlZCBwZXJtaXNzaW9uOiAnLCBwZXJtaXNzaW9uKTtcclxuXHJcbiAgICAgICAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICBpZiAocmlnaHQgPT09ICdyZWFkJykge1xyXG4gICAgICAgICAgICAgIGlmICghcGVybWlzc2lvbi5yZWFkRmxhZykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBoaWRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2NyZWF0ZScgJiYgIXBlcm1pc3Npb24uY3JlYXRlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICd1cGRhdGUnICYmICFwZXJtaXNzaW9uLnVwZGF0ZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnZGVsZXRlJyAmJiAhcGVybWlzc2lvbi5kZWxldGVGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2Fzc2lnbicgJiYgIXBlcm1pc3Npb24uYXNzaWduRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdjbG9zZScgJiYgIXBlcm1pc3Npb24uY2xvc2VGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2V4cHVuZ2UnICYmICFwZXJtaXNzaW9uLmV4cHVuZ2VGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ3Jlb3BlbicgJiYgIXBlcm1pc3Npb24ucmVvcGVuRmxhZylcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdCVVRUT04nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaGlkZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgaGlkZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdCVVRUT04nKSB7XHJcbiAgICAgICAgICAgICAgICBoaWRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRpc2FibGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChyaWdodCA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0JVVFRPTicpIHtcclxuICAgICAgICAgICAgICBpZiAoaGlkZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXNhYmxlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIGRpc2FibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgY29uc29sZS5sb2coJ2hpZGU6ICcsIGhpZGUpO1xyXG4gICAgICBjb25zb2xlLmxvZygnZGlzYWJsZTogJywgZGlzYWJsZSk7XHJcbiAgICAgIGlmIChoaWRlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5oaWRlSHRtbEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGlzYWJsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUh0bWxFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja1Blcm1pc3Npb24oYWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnKSB7XHJcbiAgICBjb25zdCBzZWxEYXRhID0gYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS5kYXRhO1xyXG4gICAgdGhpcy5sb2dpblN0YWZmID0gc2VsRGF0YS5sb2dpblN0YWZmO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gc2VsRGF0YS5zZWxlY3RlZE9mZmVuZGVyO1xyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zO1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPSBhY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLnVybFswXS5wYXRoO1xyXG4gICAgY29uc3Qgcm9sZUlkID0gYWNjZXNzQ29udHJvbENvbmZpZy5yb2xlSWRcclxuICAgICAgPyBhY2Nlc3NDb250cm9sQ29uZmlnLnJvbGVJZC50b1VwcGVyQ2FzZSgpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IGFjY2Vzc1R5cGUgPSBhY2Nlc3NDb250cm9sQ29uZmlnLmFjY2Vzc1R5cGU7XHJcbiAgICBjb25zdCBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gIXRoaXMuc2VsZWN0ZWRPZmZlbmRlclxyXG4gICAgICAuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICA/ICdOL0EnXHJcbiAgICAgIDogdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ7XHJcbiAgICBjb25zdCBwZXJtaXNzaW9uID0gcGVybWlzc2lvbnMuZmluZCgocCkgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHAuYXBwTW9kdWxlSWQgPT09IGFjY2Vzc0NvbnRyb2xDb25maWcuYXBwTW9kdWxlSWRcclxuICAgICAgICAmJiBwLnJlc291cmNlID09PSByZXNvdXJjZVxyXG4gICAgICAgICYmICghcm9sZUlkIHx8IHAucm9sZUlkID09PSByb2xlSWQpXHJcbiAgICAgICAgLy8gJiYgcC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID09PSBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uLnJlYWRGbGFnKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2NyZWF0ZScgJiYgIXBlcm1pc3Npb24uY3JlYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3VwZGF0ZScgJiYgIXBlcm1pc3Npb24udXBkYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Fzc2lnbicgJiYgIXBlcm1pc3Npb24uYXNzaWduRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Nsb3NlJyAmJiAhcGVybWlzc2lvbi5jbG9zZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3Jlb3BlbicgJiYgIXBlcm1pc3Npb24ucmVvcGVuRmxhZylcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuQXBwRmVhdHVyZUFjdGl2YXRlKGxvZ2luU3RhZmY6IExvZ2luU3RhZmYsIGZlYXR1cmU6IHN0cmluZywgYXBwTW9kdWxlSWQgPSBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzRXh0ZXJuYWxVc2VyUm9sZShsb2dpblN0YWZmLnJvbGVzKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmhhc0FwcEZlYXR1cmVQZXJtaXNzaW9uKFxyXG4gICAgICBsb2dpblN0YWZmLnBlcm1pc3Npb25zLFxyXG4gICAgICBmZWF0dXJlLFxyXG4gICAgICBhcHBNb2R1bGVJZCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzRXh0ZXJuYWxVc2VyUm9sZShyb2xlczogUm9sZVtdKSB7XHJcbiAgICBpZiAocm9sZXMgJiYgcm9sZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gcm9sZXMuZmluZEluZGV4KHRoaXMuaXNFeHRlcm5hbFJvbGUpID4gLTE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzSW50YWtlUm9sZShyb2xlczogUm9sZVtdKSB7XHJcbiAgICBpZiAocm9sZXMgJiYgcm9sZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gcm9sZXMuZmluZEluZGV4KHRoaXMuaXNJbnRha2VSb2xlKSA+IC0xO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBcHBGZWF0dXJlUGVybWlzc2lvbihcclxuICAgIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW10sIGZlYXR1cmU6IHN0cmluZywgYXBwTW9kdWxlSWQ6IHN0cmluZykge1xyXG4gICAgaWYgKHBlcm1pc3Npb25zICYmIHBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKGFwcE1vZHVsZUlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zLmZpbmRJbmRleCgocCkgPT5cclxuICAgICAgICAgIHAucmVzb3VyY2UgPT09IGZlYXR1cmUgJiYgcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQpID4gLTE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICggcGVybWlzc2lvbnMuZmluZEluZGV4KChwKSA9PiBwLnJlc291cmNlID09PSBmZWF0dXJlKSA+IC0xKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeHRlcm5hbFJvbGUocm9sZTogUm9sZSkge1xyXG4gICAgc3dpdGNoIChyb2xlLnJvbGVJZCkge1xyXG4gICAgICBjYXNlICdFVURUTCc6XHJcbiAgICAgIGNhc2UgJ0VVRFVTTSc6XHJcbiAgICAgIGNhc2UgJ0VVSkRHJzpcclxuICAgICAgY2FzZSAnRVVNUEQnOlxyXG4gICAgICBjYXNlICdFVVNPVFYnOlxyXG4gICAgICBjYXNlICdFVVVTQTInOlxyXG4gICAgICBjYXNlICdFVVVTQU8nOlxyXG4gICAgICBjYXNlICdFVVVTUEMnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbnRha2VSb2xlKHJvbGU6IFJvbGUpIHtcclxuICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcclxuICAgICAgY2FzZSAnT1BBJzpcclxuICAgICAgY2FzZSAnT1BTJzpcclxuICAgICAgY2FzZSAnU09QUyc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNhYmxlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coZWxlbWVudCk7XHJcbiAgICBzd2l0Y2ggKGVsZW1lbnQubm9kZU5hbWUpIHtcclxuICAgICAgY2FzZSAnQSc6XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAnc3R5bGUnLFxyXG4gICAgICAgICAgJ3BvaW50ZXItZXZlbnRzOiBub25lO2N1cnNvcjogbm90LWFsbG93ZWQ7JyxcclxuICAgICAgICApO1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsICctMScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICdoaWRkZW4nKTtcclxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lOycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGFmZih1c2VyTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZpbmR2U3RhZmZzKGlucHV0OiB7d2hlcmU6IHt1c2VyTmFtZTogXCIke3VzZXJOYW1lfVwiLCBhY3RpdmVGbGFnOiB0cnVlfX0pIHtcclxuICAgICAgICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgIGRhdGEge1xyXG4gICAgICAgICAgICAgICAgICBzdGFmZklkXHJcbiAgICAgICAgICAgICAgICAgIHVzZXJOYW1lXHJcbiAgICAgICAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICBwaG9uZVxyXG4gICAgICAgICAgICAgICAgICBlbWFpbFxyXG4gICAgICAgICAgICAgICAgICByb2xlcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZUlkXHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zIHtcclxuICAgICAgICAgICAgICAgICAgICByb2xlSWRcclxuICAgICAgICAgICAgICAgICAgICBhcHBNb2R1bGVJZFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlXHJcbiAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgICAgICAgIHJlYWRGbGFnXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRmxhZ1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUZsYWdcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGVGbGFnXHJcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduRmxhZ1xyXG4gICAgICAgICAgICAgICAgICAgIHJlb3BlbkZsYWdcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZUZsYWdcclxuICAgICAgICAgICAgICAgICAgICBleHB1bmdlRmxhZ1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEZsYWdcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgZ2V0U3RhZmYoKSBmcm9tIHNlcnZpY2UgJywgcmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5maW5kdlN0YWZmcy5kYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZzLmRhdGFbMF07XHJcbiAgICAgICAgICAgIHRoaXMueGRtU2VydmljZS5zZXRMb2dpblN0YWZmKGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYgPSBkYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhyb3dFcnJvcignTm8gYWNjZXNzIHJpZ2h0LicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgJyArIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oXHJcbiAgICBzdGFmZklkOiBudW1iZXIsXHJcbiAgICBvZmZlbmRlcklkOiBudW1iZXIsXHJcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZmluZHZTdGFmZk9mZmVuZGVyUmVsYXRpb25zKGlucHV0OiB7d2hlcmU6IHtzdGFmZklkOiAke3N0YWZmSWR9LCBvZmZlbmRlcklkOiAke29mZmVuZGVySWR9fX0pIHtcclxuICAgICAgICAgICAgICAgIGRhdGEge1xyXG4gICAgICAgICAgICAgICAgICBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9YDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4odGhpcy5zbWFydERhdGFTZXJ2aWNlVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICcjIyMjIyBnZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oKSBmcm9tIHNlcnZpY2UgJyxcclxuICAgICAgICAgICAgICByZXN1bHQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEuZmluZHZTdGFmZk9mZmVuZGVyUmVsYXRpb25zLmRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzdWx0LmRhdGEuZmluZHZTdGFmZk9mZmVuZGVyUmVsYXRpb25zLmRhdGFbMF07XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgLy8gcmV0dXJuIHRocm93RXJyb3IoJ05vIGFjY2VzcyByaWdodC4nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yICcgKyBlcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
702
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1hdXRoL3NtYXJ0LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbEQsT0FBTyxFQUdMLHNCQUFzQixHQUd2QixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQUsxRDtJQU9FLDBCQUNVLElBQWdCLEVBQ2hCLFlBQXlCLEVBQ3pCLFVBQXNCLEVBQ1UsbUJBQW1CO1FBSG5ELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBQTtJQUN6RCxDQUFDOzs7O0lBRUUsd0NBQWE7OztJQUFwQjtRQUFBLGlCQXVEQztRQXREQyxJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUMzQixJQUFJLFNBQVMsRUFBRTtvQkFDYixPQUFPLENBQUMsR0FBRyxDQUNULHlEQUF5RCxFQUN6RCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO2lCQUNIO2dCQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM1QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUNuQyxJQUFJLFNBQVMsRUFBRTtvQkFDYixPQUFPLENBQUMsR0FBRyxDQUNULG1EQUFtRCxFQUNuRCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO2lCQUNIO2dCQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUMvQyxTQUFTOzs7O1FBQUMsVUFBQyxZQUFZO1lBQ3JCLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hDLElBQUksU0FBUyxFQUFFO29CQUNiLE9BQU8sQ0FBQyxHQUFHLENBQ1QsMENBQTBDLEVBQzFDLFlBQVksQ0FDYixDQUFDO2lCQUNIO2dCQUNELEtBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDO2dCQUMvQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN6QjtpQkFBTSxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFO2dCQUNoRCxJQUFJLFNBQVMsRUFBRTtvQkFDYixPQUFPLENBQUMsR0FBRyxDQUNULG1EQUFtRCxFQUNuRCxLQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO2lCQUNIO2dCQUNELE9BQU8sS0FBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0M7aUJBQU07O29CQUNDLFFBQVEsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVE7O29CQUNsRCxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxzREFBc0QsRUFDdEQsU0FBUyxDQUNWLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxLQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Ozs7Ozs7SUFFTyxxQ0FBVTs7Ozs7O0lBQWxCLFVBQW1CLEdBQVcsRUFBRSxJQUFZOztZQUN0QyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzs7WUFDN0MsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUM7O1lBQ2hFLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUMxRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7O1lBQ2hDLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsT0FBTyxPQUFPLEdBQUcsR0FBRyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekMsQ0FBQzs7Ozs7SUFFTSx5Q0FBYzs7OztJQUFyQixVQUFzQixVQUFzQjtRQUMxQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQXhCLENBQXdCLEVBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNyRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUN4RTtRQUNELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFyQyxDQUFxQyxFQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDbEYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7Ozs7O0lBRVksOENBQW1COzs7O0lBQWhDLFVBQWlDLGdCQUFrQzs7Ozs7OzZCQUM3RCxnQkFBZ0IsRUFBaEIsd0JBQWdCOzt3QkFFRCxxQkFBTSxJQUFJLENBQUMsd0JBQXdCLENBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUN2QixnQkFBZ0IsQ0FBQyxVQUFVLENBQzVCLENBQUMsU0FBUyxFQUFFLEVBQUE7O3dCQUhQLFFBQVEsR0FBRyxTQUdKO3dCQUNiLElBQUksUUFBUSxFQUFFOzRCQUNaLGdCQUFnQixDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQzt5QkFDdkQ7NkJBQU07NEJBQ0wsZ0JBQWdCLENBQUMseUJBQXlCLEdBQUcsVUFBVSxDQUFDO3lCQUN6RDs7O3dCQUdILElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt3QkFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDOzs7OztLQUMxQzs7OztJQUVNLGlDQUFNOzs7SUFBYjtRQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7Ozs7SUFFWSx3Q0FBYTs7Ozs7SUFBMUIsVUFDRSxXQUFtQixFQUNuQixLQUE2Qjs7Ozs7Ozs2QkFFekIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFoQix3QkFBZ0I7d0JBQ2xCLEtBQUEsSUFBSSxDQUFBO3dCQUFjLHFCQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUE7O3dCQUF2RCxHQUFLLFVBQVUsR0FBRyxTQUFxQyxDQUFDOzs7d0JBRXBELFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVc7d0JBQ3pDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7NkJBRTlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUF0Qix3QkFBc0I7d0JBQ3hCLEtBQUEsSUFBSSxDQUFBO3dCQUFvQixxQkFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUE7O3dCQUFuRSxHQUFLLGdCQUFnQixHQUFHLFNBQTJDLENBQUM7Ozs2QkFHbEUsSUFBSSxDQUFDLGdCQUFnQixFQUFyQix3QkFBcUI7O3dCQUVOLHFCQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQ2pDLENBQUMsU0FBUyxFQUFFLEVBQUE7O3dCQUhQLFFBQVEsR0FBRyxTQUdKO3dCQUNiLElBQUksUUFBUSxFQUFFOzRCQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsR0FBRyxRQUFRLENBQUM7eUJBQzVEOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsR0FBRyxVQUFVLENBQUM7eUJBQzlEO3dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Ozt3QkFJdkQseUJBQXlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjs2QkFDcEQseUJBQXlCO3dCQUV0QixRQUFRLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDO3dCQUN2RCxPQUFPLEdBQUcsb0JBQW9CO3dCQUVwQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU87Ozs7d0JBQUMsVUFBQyxPQUFPOztnQ0FDL0IsSUFBSTs7Z0NBQ0osT0FBTzs0QkFDWCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7NEJBQUMsVUFBQyxDQUFDOztvQ0FDcEIsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2dDQUNoQyx3QkFBd0I7Z0NBQ3hCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzt3Q0FDM0IsUUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJOzt3Q0FDckQsS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7Ozs7O3dDQUlsQixVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUk7Ozs7b0NBQUMsVUFBVSxDQUFDO3dDQUM3QyxPQUFPLENBQ0wsQ0FBQyxDQUFDLFdBQVcsS0FBSyxXQUFXOzRDQUM3QixDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVE7NENBQ3ZCLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBTTs0Q0FDbkIsQ0FBQyxDQUFDLHlCQUF5QixLQUFLLHlCQUF5QixDQUMxRCxDQUFDO29DQUNKLENBQUMsRUFBQztvQ0FDRjs7Ozs7Ozs7c0NBUUU7b0NBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxVQUFVLENBQUMsQ0FBQztvQ0FFdEQsSUFBSSxVQUFVLEVBQUU7d0NBQ2QsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFOzRDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtnREFDeEIsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO29EQUNsQixJQUFJLEdBQUcsSUFBSSxDQUFDO2lEQUNiOzZDQUNGO2lEQUFNO2dEQUNMLElBQUksR0FBRyxLQUFLLENBQUM7NkNBQ2Q7eUNBQ0Y7NkNBQU0sSUFDTCxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRDQUM5QyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRDQUM5QyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRDQUM5QyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRDQUM5QyxDQUFDLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDOzRDQUM1QyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDOzRDQUNoRCxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQzlDOzRDQUNBLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0RBQ2pDLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtvREFDbEIsSUFBSSxHQUFHLElBQUksQ0FBQztpREFDYjs2Q0FDRjtpREFBTTtnREFDTCxJQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUU7b0RBQ3JCLE9BQU8sR0FBRyxJQUFJLENBQUM7aURBQ2hCOzZDQUNGO3lDQUNGOzZDQUFNOzRDQUNMLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0RBQ2pDLElBQUksR0FBRyxLQUFLLENBQUM7NkNBQ2Q7aURBQU07Z0RBQ0wsT0FBTyxHQUFHLEtBQUssQ0FBQzs2Q0FDakI7eUNBQ0Y7cUNBQ0Y7eUNBQU07d0NBQ0wsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFOzRDQUNwQixJQUFJLElBQUksS0FBSyxLQUFLLEVBQUU7Z0RBQ2xCLElBQUksR0FBRyxJQUFJLENBQUM7NkNBQ2I7eUNBQ0Y7NkNBQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTs0Q0FDeEMsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO2dEQUNsQixJQUFJLEdBQUcsSUFBSSxDQUFDOzZDQUNiO3lDQUNGOzZDQUFNLElBQUksT0FBTyxLQUFLLEtBQUssRUFBRTs0Q0FDNUIsT0FBTyxHQUFHLElBQUksQ0FBQzt5Q0FDaEI7cUNBQ0Y7aUNBQ0Y7NEJBQ0gsQ0FBQyxFQUFDLENBQUM7NEJBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7NEJBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDOzRCQUNsQyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0NBQ2pCLEtBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7NkJBQy9CO2lDQUFNLElBQUksT0FBTyxLQUFLLElBQUksRUFBRTtnQ0FDM0IsS0FBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDOzZCQUNsQzt3QkFDSCxDQUFDLEVBQUMsQ0FBQzs7Ozs7S0FDSjs7Ozs7SUFFTSwwQ0FBZTs7OztJQUF0QixVQUF1QixtQkFBNkM7O1lBQzVELE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSTtRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzs7WUFFM0MsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVzs7WUFDekMsUUFBUSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTs7WUFDaEQsTUFBTSxHQUFHLG1CQUFtQixDQUFDLE1BQU07WUFDdkMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDMUMsQ0FBQyxDQUFDLElBQUk7O1lBQ0YsVUFBVSxHQUFHLG1CQUFtQixDQUFDLFVBQVU7O1lBQzNDLHlCQUF5QixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQjthQUNyRCx5QkFBeUI7WUFDMUIsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5Qjs7WUFDN0MsVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQyxDQUFDO1lBQ3BDLE9BQU8sQ0FDTCxDQUFDLENBQUMsV0FBVyxLQUFLLG1CQUFtQixDQUFDLFdBQVc7bUJBQzlDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUTttQkFDdkIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQztZQUNuQywrREFBK0Q7YUFDaEUsQ0FBQztRQUNKLENBQUMsRUFBQztRQUVGLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxVQUFVLEtBQUssTUFBTSxFQUFFO2dCQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDeEIsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtpQkFBTSxJQUNMLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQ25ELENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQ25ELENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQ25ELENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQ25ELENBQUMsVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2pELENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQ3JELENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFDbkQ7Z0JBQ0EsT0FBTyxLQUFLLENBQUM7YUFDZDtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7YUFBTTtZQUNMLElBQUksVUFBVSxLQUFLLE1BQU0sRUFBRTtnQkFDekIsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7Ozs7O0lBRU0sZ0RBQXFCOzs7Ozs7SUFBNUIsVUFBNkIsVUFBc0IsRUFBRSxPQUFlLEVBQUUsV0FBa0I7UUFBbEIsNEJBQUEsRUFBQSxrQkFBa0I7UUFDdEYsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUNqQyxVQUFVLENBQUMsV0FBVyxFQUN0QixPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDOzs7OztJQUVNLDhDQUFtQjs7OztJQUExQixVQUEyQixLQUFhO1FBQ3RDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRU0sd0NBQWE7Ozs7SUFBcEIsVUFBcUIsS0FBYTtRQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7Ozs7OztJQUVPLGtEQUF1Qjs7Ozs7OztJQUEvQixVQUNFLFdBQXlCLEVBQUUsT0FBZSxFQUFFLFdBQW1CO1FBQy9ELElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksV0FBVyxFQUFFO2dCQUNmLE9BQU8sV0FBVyxDQUFDLFNBQVM7Ozs7Z0JBQUMsVUFBQyxDQUFDO29CQUM3QixPQUFBLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVztnQkFBdkQsQ0FBdUQsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUzs7OztnQkFBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUF0QixDQUFzQixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwRTtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7Ozs7SUFFTyx5Q0FBYzs7Ozs7SUFBdEIsVUFBdUIsSUFBVTtRQUMvQixRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbkIsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUM7WUFDZDtnQkFDRSxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNILENBQUM7Ozs7OztJQUVPLHVDQUFZOzs7OztJQUFwQixVQUFxQixJQUFVO1FBQzdCLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDSCxDQUFDOzs7Ozs7SUFFTyw2Q0FBa0I7Ozs7O0lBQTFCLFVBQTJCLE9BQWdCO1FBQ3pDLHdCQUF3QjtRQUN4QixRQUFRLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDeEIsS0FBSyxHQUFHO2dCQUNOLE9BQU8sQ0FBQyxZQUFZLENBQ2xCLE9BQU8sRUFDUCwyQ0FBMkMsQ0FDNUMsQ0FBQztnQkFDRixPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUNSO2dCQUNFLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNO1NBQ1Q7SUFDSCxDQUFDOzs7Ozs7SUFFTywwQ0FBZTs7Ozs7SUFBdkIsVUFBd0IsT0FBZ0I7UUFDdEMsNENBQTRDO1FBQzVDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDbEQsQ0FBQzs7Ozs7O0lBRU8sbUNBQVE7Ozs7O0lBQWhCLFVBQWlCLFFBQWdCO1FBQWpDLGlCQWdFQzs7WUEvRE8sV0FBVyxHQUFHLDRFQUUrQixRQUFRLHFpQ0FvQ2pEO1FBRVYsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDM0QsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHOzs7O1FBQUMsVUFBQyxNQUFNO1lBQ1QsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN2RDtZQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O29CQUNyQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDNUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLEtBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDO2dCQUNaLHlDQUF5QzthQUMxQztRQUNILENBQUMsRUFBQyxFQUNGLFVBQVU7Ozs7UUFBQyxVQUFDLEtBQUs7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsRUFBQyxDQUNILENBQUM7SUFDTixDQUFDOzs7Ozs7O0lBRU8sbURBQXdCOzs7Ozs7SUFBaEMsVUFDRSxPQUFlLEVBQ2YsVUFBa0I7O1lBRVosV0FBVyxHQUFHLHlGQUU2QyxPQUFPLHNCQUFpQixVQUFVLGtJQUt6RjtRQUVWLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzNELElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRzs7OztRQUFDLFVBQUMsTUFBTTtZQUNULElBQUksU0FBUyxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQ1QsZ0RBQWdELEVBQ2hELE1BQU0sQ0FDUCxDQUFDO2FBQ0g7WUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O29CQUNyRCxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQztnQkFDWix5Q0FBeUM7YUFDMUM7UUFDSCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsVUFBQyxLQUFLO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7Z0JBaGVGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBcEJRLFVBQVU7Z0JBR1YsV0FBVztnQkFVWCxVQUFVO2dEQWdCZCxNQUFNLFNBQUMsc0JBQXNCOzs7MkJBOUJsQztDQW9mQyxBQWplRCxJQWllQztTQTlkWSxnQkFBZ0I7OztJQUMzQixzQ0FBdUI7O0lBQ3ZCLDRDQUFtQzs7Ozs7SUFHakMsZ0NBQXdCOzs7OztJQUN4Qix3Q0FBaUM7Ozs7O0lBQ2pDLHNDQUE4Qjs7Ozs7SUFDOUIsK0NBQTJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1zYWxTZXJ2aWNlIH0gZnJvbSAnQGF6dXJlL21zYWwtYW5ndWxhcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHtcclxuICBMb2dpblN0YWZmLFxyXG4gIFNlbGVjdGVkT2ZmZW5kZXIsXHJcbiAgU01BUlRfREFUQV9TRVJWSUNFX1VSTCxcclxuICBSb2xlLFxyXG4gIFBlcm1pc3Npb24sXHJcbn0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcgfSBmcm9tICcuL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcbmltcG9ydCB7IG51bGxTYWZlSXNFcXVpdmFsZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL291dHB1dC9vdXRwdXRfYXN0JztcclxuLy8gaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSAncXVlcnlzdHJpbmcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QXV0aFNlcnZpY2Uge1xyXG4gIGxvZ2luU3RhZmY6IExvZ2luU3RhZmY7XHJcbiAgc2VsZWN0ZWRPZmZlbmRlcjogU2VsZWN0ZWRPZmZlbmRlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhuU2VydmljZTogTXNhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHhkbVNlcnZpY2U6IFhkbVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFNNQVJUX0RBVEFfU0VSVklDRV9VUkwpIHByaXZhdGUgc21hcnREYXRhU2VydmljZVVybCxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0TG9naW5TdGFmZigpOiBPYnNlcnZhYmxlPExvZ2luU3RhZmY+IHtcclxuICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NtYXJ0QXV0aFNlcnZpY2UgLSBnZXRMb2dpblN0YWZmKCknKTtcclxuICAgIH1cclxuICAgIGlmICghaXNEZXZNb2RlICYmIHRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICBpZiAodGhpcy5sb2dpblN0YWZmLnN0YWZmSWQpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGludGVybmFsIGluc3RhbmNlIGluIHNlcnZpY2UnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5sb2dpblN0YWZmKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIHByZXNldCB1c2VyIG5hbWUnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZih0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnhkbVNlcnZpY2UuZ2V0TG9naW5TdGFmZigpKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHN0b3JlZFJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChzdG9yZWRSZXN1bHQgJiYgc3RvcmVkUmVzdWx0LnN0YWZmSWQpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGZyb20gc2Vzc2lvbi4nLFxyXG4gICAgICAgICAgICAgIHN0b3JlZFJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubG9naW5TdGFmZiA9IHN0b3JlZFJlc3VsdDtcclxuICAgICAgICAgIHJldHVybiBvZihzdG9yZWRSZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc3RvcmVkUmVzdWx0ICYmIHN0b3JlZFJlc3VsdC51c2VyTmFtZSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0TG9naW5TdGFmZigpOiBnZXQgdXNpbmcgcHJlc2V0IHVzZXIgbmFtZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dpblN0YWZmLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhZmYoc3RvcmVkUmVzdWx0LnVzZXJOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdXNlck5hbWUgPSB0aGlzLmF1dGhuU2VydmljZS5nZXRBY2NvdW50KCkudXNlck5hbWU7XHJcbiAgICAgICAgICBjb25zdCBzdGFmZk5hbWUgPSB1c2VyTmFtZS5zdWJzdHJpbmcoMCwgdXNlck5hbWUuaW5kZXhPZignQCcpKTtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGxvZ2luTG9naW5TdGFmZigpOiBnZXQgdXNpbmcgbG9naW4gc3RhZmYgbmFtZSAnLFxyXG4gICAgICAgICAgICAgIHN0YWZmTmFtZSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWZmKHN0YWZmTmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRlYW1VcmwoYXBwOiBzdHJpbmcsIGhhc2g6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgd2ViSW5kZXggPSB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCd3ZWItJyk7XHJcbiAgICBjb25zdCB1cHRvd2ViID0gKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnN1YnN0cmluZygwLCB3ZWJJbmRleCkgKyAnd2ViLScpO1xyXG4gICAgY29uc3QgYWZ0ZXJ3ZWIgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKHVwdG93ZWIsICcnKTtcclxuICAgIHdlYkluZGV4ID0gYWZ0ZXJ3ZWIuaW5kZXhPZignLScsIDApO1xyXG4gICAgbGV0IGxhc3RQYXJ0ID0gKGFmdGVyd2ViLnN1YnN0cmluZyh3ZWJJbmRleCkpO1xyXG4gICAgbGFzdFBhcnQgPSBsYXN0UGFydC5yZXBsYWNlKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgJycpO1xyXG4gICAgcmV0dXJuIHVwdG93ZWIgKyBhcHAgKyBsYXN0UGFydCArIGhhc2g7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVkaXJlY3RUb1RlYW0obG9naW5TdGFmZjogTG9naW5TdGFmZikge1xyXG4gICAgaWYgKGxvZ2luU3RhZmYucm9sZXMuZmluZEluZGV4KHJvbGUgPT4gcm9sZS5yb2xlSWQgPT09ICdFVVVTUEMnKSA+IC0xKSB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nZXRUZWFtVXJsKCdpbnZlc3RpZ2F0aW9uJywgJy9hc3NpZ25tZW50Jyk7XHJcbiAgICB9XHJcbiAgICBpZiAobG9naW5TdGFmZi5yb2xlcy5maW5kSW5kZXgocm9sZSA9PiByb2xlLnJvbGVJZC5zdWJzdHJpbmcoMCwgMykgPT09ICdSU0MnKSA+IC0xKSB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nZXRUZWFtVXJsKCdyc2MnLCAnL29mZmVuZGVyLWxpc3QnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRTZWxlY3RlZE9mZmVuZGVyKHNlbGVjdGVkT2ZmZW5kZXI6IFNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgIGlmIChzZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgIC8vIGlmICghc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKSB7XHJcbiAgICAgIGNvbnN0IHJlbGF0aW9uID0gYXdhaXQgdGhpcy5nZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oXHJcbiAgICAgICAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICBzZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSByZWxhdGlvbjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSAnTk9BU1NJR04nO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICAgIHRoaXMueGRtU2VydmljZS5zZXRTZWxlY3RlZE9mZmVuZGVyKHNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gc2VsZWN0ZWRPZmZlbmRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dvdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnhkbVNlcnZpY2UuY2xlYXJBbGwoKTtcclxuICAgIHRoaXMuYXV0aG5TZXJ2aWNlLmxvZ291dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldFBlcm1pc3Npb24oXHJcbiAgICBhcHBNb2R1bGVJZDogc3RyaW5nLFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICB0aGlzLmxvZ2luU3RhZmYgPSBhd2FpdCB0aGlzLnhkbVNlcnZpY2UuZ2V0TG9naW5TdGFmZigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSB0aGlzLmxvZ2luU3RhZmYucGVybWlzc2lvbnM7XHJcbiAgICBjb25zdCByZXNvdXJjZSA9IHJvdXRlLnVybFswXS5wYXRoO1xyXG5cclxuICAgIGlmICghdGhpcy5zZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IGF3YWl0IHRoaXMueGRtU2VydmljZS5nZXRTZWxlY3RlZE9mZmVuZGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPZmZlbmRlcikge1xyXG4gICAgICAvLyBpZiAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKSB7XHJcbiAgICAgIGNvbnN0IHJlbGF0aW9uID0gYXdhaXQgdGhpcy5nZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oXHJcbiAgICAgICAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQsXHJcbiAgICAgICkudG9Qcm9taXNlKCk7XHJcbiAgICAgIGlmIChyZWxhdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gcmVsYXRpb247XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSAnTk9BU1NJR04nO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMueGRtU2VydmljZS5zZXRTZWxlY3RlZE9mZmVuZGVyKHRoaXMuc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gdGhpcy5zZWxlY3RlZE9mZmVuZGVyXHJcbiAgICAgIC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2NsYXNzXj1cInNhYy1cIl0nKTtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvXnNhYy0oXFxTKyktKFxcUyspJC9pO1xyXG5cclxuICAgIEFycmF5LmZyb20oZWxlbWVudHMpLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgbGV0IGhpZGU7XHJcbiAgICAgIGxldCBkaXNhYmxlO1xyXG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGMubWF0Y2gocGF0dGVybik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0cyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICBjb25zdCByb2xlSWQgPSByZXN1bHRzWzFdID8gcmVzdWx0c1sxXS50b1VwcGVyQ2FzZSgpIDogbnVsbDtcclxuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gcmVzdWx0c1syXTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdHNbMF0pO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0c1sxXSk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXN1bHRzWzJdKTtcclxuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKGZ1bmN0aW9uIChwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQgJiZcclxuICAgICAgICAgICAgICBwLnJlc291cmNlID09PSByZXNvdXJjZSAmJlxyXG4gICAgICAgICAgICAgIHAucm9sZUlkID09PSByb2xlSWQgJiZcclxuICAgICAgICAgICAgICBwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcmVzb3VyY2U6ICcsIHJlc291cmNlKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXBwTW9kdWxlSWQ6ICcsIGFwcE1vZHVsZUlkKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcm9sZUlkOiAnLCByb2xlSWQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXNzaWdubWVudCByZWxhdGlvbjogJyxcclxuICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIE1hdGNoZWQgcGVybWlzc2lvbjogJywgcGVybWlzc2lvbik7XHJcblxyXG4gICAgICAgICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgICAgICAgaWYgKHJpZ2h0ID09PSAncmVhZCcpIHtcclxuICAgICAgICAgICAgICBpZiAoIXBlcm1pc3Npb24ucmVhZEZsYWcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdjcmVhdGUnICYmICFwZXJtaXNzaW9uLmNyZWF0ZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAndXBkYXRlJyAmJiAhcGVybWlzc2lvbi51cGRhdGVGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdhc3NpZ24nICYmICFwZXJtaXNzaW9uLmFzc2lnbkZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnY2xvc2UnICYmICFwZXJtaXNzaW9uLmNsb3NlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdyZW9wZW4nICYmICFwZXJtaXNzaW9uLnJlb3BlbkZsYWcpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocmlnaHQgPT09ICdyZWFkJykge1xyXG4gICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdCVVRUT04nKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICBkaXNhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdoaWRlOiAnLCBoaWRlKTtcclxuICAgICAgY29uc29sZS5sb2coJ2Rpc2FibGU6ICcsIGRpc2FibGUpO1xyXG4gICAgICBpZiAoaGlkZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuaGlkZUh0bWxFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGRpc2FibGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVIdG1sRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tQZXJtaXNzaW9uKGFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZykge1xyXG4gICAgY29uc3Qgc2VsRGF0YSA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YTtcclxuICAgIHRoaXMubG9naW5TdGFmZiA9IHNlbERhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbERhdGEuc2VsZWN0ZWRPZmZlbmRlcjtcclxuXHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHRoaXMubG9naW5TdGFmZi5wZXJtaXNzaW9ucztcclxuICAgIGNvbnN0IHJlc291cmNlID0gYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS51cmxbMF0ucGF0aDtcclxuICAgIGNvbnN0IHJvbGVJZCA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm9sZUlkXHJcbiAgICAgID8gYWNjZXNzQ29udHJvbENvbmZpZy5yb2xlSWQudG9VcHBlckNhc2UoKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhY2Nlc3NUeXBlID0gYWNjZXNzQ29udHJvbENvbmZpZy5hY2Nlc3NUeXBlO1xyXG4gICAgY29uc3QgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9ICF0aGlzLnNlbGVjdGVkT2ZmZW5kZXJcclxuICAgICAgLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWRcclxuICAgICAgPyAnTi9BJ1xyXG4gICAgICA6IHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG4gICAgY29uc3QgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zLmZpbmQoKHApID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBwLmFwcE1vZHVsZUlkID09PSBhY2Nlc3NDb250cm9sQ29uZmlnLmFwcE1vZHVsZUlkXHJcbiAgICAgICAgJiYgcC5yZXNvdXJjZSA9PT0gcmVzb3VyY2VcclxuICAgICAgICAmJiAoIXJvbGVJZCB8fCBwLnJvbGVJZCA9PT0gcm9sZUlkKVxyXG4gICAgICAgIC8vICYmIHAuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9PT0gYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgaWYgKGFjY2Vzc1R5cGUgPT09ICdyZWFkJykge1xyXG4gICAgICAgIGlmICghcGVybWlzc2lvbi5yZWFkRmxhZykge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdjcmVhdGUnICYmICFwZXJtaXNzaW9uLmNyZWF0ZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICd1cGRhdGUnICYmICFwZXJtaXNzaW9uLnVwZGF0ZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdkZWxldGUnICYmICFwZXJtaXNzaW9uLmRlbGV0ZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdhc3NpZ24nICYmICFwZXJtaXNzaW9uLmFzc2lnbkZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdjbG9zZScgJiYgIXBlcm1pc3Npb24uY2xvc2VGbGFnKSB8fFxyXG4gICAgICAgIChhY2Nlc3NUeXBlID09PSAnZXhwdW5nZScgJiYgIXBlcm1pc3Npb24uZXhwdW5nZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdyZW9wZW4nICYmICFwZXJtaXNzaW9uLnJlb3BlbkZsYWcpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGFjY2Vzc1R5cGUgPT09ICdyZWFkJykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbkFwcEZlYXR1cmVBY3RpdmF0ZShsb2dpblN0YWZmOiBMb2dpblN0YWZmLCBmZWF0dXJlOiBzdHJpbmcsIGFwcE1vZHVsZUlkID0gbnVsbCkge1xyXG4gICAgaWYgKCF0aGlzLmhhc0V4dGVybmFsVXNlclJvbGUobG9naW5TdGFmZi5yb2xlcykpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5oYXNBcHBGZWF0dXJlUGVybWlzc2lvbihcclxuICAgICAgbG9naW5TdGFmZi5wZXJtaXNzaW9ucyxcclxuICAgICAgZmVhdHVyZSxcclxuICAgICAgYXBwTW9kdWxlSWQsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0V4dGVybmFsVXNlclJvbGUocm9sZXM6IFJvbGVbXSkge1xyXG4gICAgaWYgKHJvbGVzICYmIHJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHJvbGVzLmZpbmRJbmRleCh0aGlzLmlzRXh0ZXJuYWxSb2xlKSA+IC0xO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0ludGFrZVJvbGUocm9sZXM6IFJvbGVbXSkge1xyXG4gICAgaWYgKHJvbGVzICYmIHJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHJvbGVzLmZpbmRJbmRleCh0aGlzLmlzSW50YWtlUm9sZSkgPiAtMTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzQXBwRmVhdHVyZVBlcm1pc3Npb24oXHJcbiAgICBwZXJtaXNzaW9uczogUGVybWlzc2lvbltdLCBmZWF0dXJlOiBzdHJpbmcsIGFwcE1vZHVsZUlkOiBzdHJpbmcpIHtcclxuICAgIGlmIChwZXJtaXNzaW9ucyAmJiBwZXJtaXNzaW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChhcHBNb2R1bGVJZCkge1xyXG4gICAgICAgIHJldHVybiBwZXJtaXNzaW9ucy5maW5kSW5kZXgoKHApID0+XHJcbiAgICAgICAgICBwLnJlc291cmNlID09PSBmZWF0dXJlICYmIHAuYXBwTW9kdWxlSWQgPT09IGFwcE1vZHVsZUlkKSA+IC0xO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAocGVybWlzc2lvbnMuZmluZEluZGV4KChwKSA9PiBwLnJlc291cmNlID09PSBmZWF0dXJlKSA+IC0xKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeHRlcm5hbFJvbGUocm9sZTogUm9sZSkge1xyXG4gICAgc3dpdGNoIChyb2xlLnJvbGVJZCkge1xyXG4gICAgICBjYXNlICdFVURUTCc6XHJcbiAgICAgIGNhc2UgJ0VVRFVTTSc6XHJcbiAgICAgIGNhc2UgJ0VVSkRHJzpcclxuICAgICAgY2FzZSAnRVVNUEQnOlxyXG4gICAgICBjYXNlICdFVVNPVFYnOlxyXG4gICAgICBjYXNlICdFVVVTQTInOlxyXG4gICAgICBjYXNlICdFVVVTQU8nOlxyXG4gICAgICBjYXNlICdFVVVTUEMnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbnRha2VSb2xlKHJvbGU6IFJvbGUpIHtcclxuICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcclxuICAgICAgY2FzZSAnT1BBJzpcclxuICAgICAgY2FzZSAnT1BTJzpcclxuICAgICAgY2FzZSAnU09QUyc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNhYmxlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coZWxlbWVudCk7XHJcbiAgICBzd2l0Y2ggKGVsZW1lbnQubm9kZU5hbWUpIHtcclxuICAgICAgY2FzZSAnQSc6XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAnc3R5bGUnLFxyXG4gICAgICAgICAgJ3BvaW50ZXItZXZlbnRzOiBub25lO2N1cnNvcjogbm90LWFsbG93ZWQ7JyxcclxuICAgICAgICApO1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsICctMScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICdoaWRkZW4nKTtcclxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lOycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGFmZih1c2VyTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZpbmR2U3RhZmZzKGlucHV0OiB7d2hlcmU6IHt1c2VyTmFtZTogXCIke3VzZXJOYW1lfVwiLCBhY3RpdmVGbGFnOiB0cnVlfX0pIHtcclxuICAgICAgICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgIGRhdGEge1xyXG4gICAgICAgICAgICAgICAgICBzdGFmZklkXHJcbiAgICAgICAgICAgICAgICAgIHVzZXJOYW1lXHJcbiAgICAgICAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICAgICAgICBwaG9uZVxyXG4gICAgICAgICAgICAgICAgICBlbWFpbFxyXG4gICAgICAgICAgICAgICAgICByb2xlcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZUlkXHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zIHtcclxuICAgICAgICAgICAgICAgICAgICByb2xlSWRcclxuICAgICAgICAgICAgICAgICAgICBhcHBNb2R1bGVJZFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlXHJcbiAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgICAgICAgIHJlYWRGbGFnXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRmxhZ1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUZsYWdcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGVGbGFnXHJcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduRmxhZ1xyXG4gICAgICAgICAgICAgICAgICAgIHJlb3BlbkZsYWdcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZUZsYWdcclxuICAgICAgICAgICAgICAgICAgICBleHB1bmdlRmxhZ1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEZsYWdcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgZ2V0U3RhZmYoKSBmcm9tIHNlcnZpY2UgJywgcmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5maW5kdlN0YWZmcy5kYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZzLmRhdGFbMF07XHJcbiAgICAgICAgICAgIHRoaXMueGRtU2VydmljZS5zZXRMb2dpblN0YWZmKGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYgPSBkYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhyb3dFcnJvcignTm8gYWNjZXNzIHJpZ2h0LicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgJyArIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oXHJcbiAgICBzdGFmZklkOiBudW1iZXIsXHJcbiAgICBvZmZlbmRlcklkOiBudW1iZXIsXHJcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZmluZHZTdGFmZk9mZmVuZGVyUmVsYXRpb25zKGlucHV0OiB7d2hlcmU6IHtzdGFmZklkOiAke3N0YWZmSWR9LCBvZmZlbmRlcklkOiAke29mZmVuZGVySWR9fX0pIHtcclxuICAgICAgICAgICAgICAgIGRhdGEge1xyXG4gICAgICAgICAgICAgICAgICBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9YDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4odGhpcy5zbWFydERhdGFTZXJ2aWNlVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICcjIyMjIyBnZXRTdGFmZk9mZmVuZGVyUmVsYXRpb24oKSBmcm9tIHNlcnZpY2UgJyxcclxuICAgICAgICAgICAgICByZXN1bHQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEuZmluZHZTdGFmZk9mZmVuZGVyUmVsYXRpb25zLmRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzdWx0LmRhdGEuZmluZHZTdGFmZk9mZmVuZGVyUmVsYXRpb25zLmRhdGFbMF07XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgLy8gcmV0dXJuIHRocm93RXJyb3IoJ05vIGFjY2VzcyByaWdodC4nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yICcgKyBlcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -49,4 +49,4 @@ if (false) {
49
49
  */
50
50
  SmartStaffOffenderOptionsResolverService.prototype.offenderService;
51
51
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFckM7SUFJSSxrREFBb0IsZUFBaUQ7UUFBakQsb0JBQWUsR0FBZixlQUFlLENBQWtDO0lBQUcsQ0FBQzs7OztJQUN6RSwwREFBTzs7O0lBQVA7UUFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUU7YUFDbkQsSUFBSSxDQUNILEdBQUc7Ozs7UUFBQyxVQUFDLEVBQVE7Z0JBQU4sY0FBSTtZQUNULE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O2dCQVpKLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBTlEsZ0NBQWdDOzs7bURBRnpDO0NBbUJHLEFBYkgsSUFhRztTQVZVLHdDQUF3Qzs7Ozs7O0lBQ3JDLG1FQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNSZXNvbHZlclNlcnZpY2UgaW1wbGVtZW50cyBSZXNvbHZlPE9ic2VydmFibGU8YW55Pj4ge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvZmZlbmRlclNlcnZpY2U6IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlKSB7fVxyXG4gICAgcmVzb2x2ZSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLmdldE9mZmVuZGVyTGlzdE9wdGlvbnMoKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFckM7SUFJSSxrREFBb0IsZUFBaUQ7UUFBakQsb0JBQWUsR0FBZixlQUFlLENBQWtDO0lBQUcsQ0FBQzs7OztJQUN6RSwwREFBTzs7O0lBQVA7UUFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUU7YUFDbkQsSUFBSSxDQUNILEdBQUc7Ozs7UUFBQyxVQUFDLEVBQVE7Z0JBQU4sY0FBSTtZQUNULE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O2dCQVpKLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBTlEsZ0NBQWdDOzs7bURBRnpDO0NBbUJHLEFBYkgsSUFhRztTQVZVLHdDQUF3Qzs7Ozs7O0lBQ3JDLG1FQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc29sdmUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2V9IGZyb20gJy4vc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNSZXNvbHZlclNlcnZpY2UgaW1wbGVtZW50cyBSZXNvbHZlPE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgb2ZmZW5kZXJTZXJ2aWNlOiBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zU2VydmljZSkge31cbiAgICByZXNvbHZlKCkge1xuICAgICAgcmV0dXJuIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLmdldE9mZmVuZGVyTGlzdE9wdGlvbnMoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuIl19
@@ -126,7 +126,7 @@ var SmartStaffOffenderOptionsComponent = /** @class */ (function () {
126
126
  SmartStaffOffenderOptionsComponent.decorators = [
127
127
  { type: Component, args: [{
128
128
  selector: 'lib-smart-staff-offender-options',
129
- template: "<form class=\"main-form\" [formGroup]=\"frmGroup\">\r\n <mat-card role=\"group\">\r\n <mat-card-content>\r\n <div formGroupName=\"offenderListOptions\">\r\n <div style=\"float:left;\">\r\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\">\r\n <mat-checkbox *ngIf=\"i%2!=0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\r\n {{offenderListOption.name}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n <div>\r\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\" >\r\n <mat-checkbox *ngIf=\"i%2==0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\r\n {{offenderListOption.name}}\r\n </mat-checkbox> \r\n </div>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n <div align=\"center\">\r\n <button mat-raised-button color=\"accent\" (click)=\"onSave()\">Save</button>\r\n </div>\r\n </mat-card>\r\n </form>\r\n ",
129
+ template: "<form class=\"main-form\" [formGroup]=\"frmGroup\">\n <mat-card role=\"group\">\n <mat-card-content>\n <div formGroupName=\"offenderListOptions\">\n <div style=\"float:left;\">\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\">\n <mat-checkbox *ngIf=\"i%2!=0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\n {{offenderListOption.name}}\n </mat-checkbox>\n </div>\n </div>\n <div>\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\" >\n <mat-checkbox *ngIf=\"i%2==0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\n {{offenderListOption.name}}\n </mat-checkbox> \n </div>\n </div>\n </div>\n </mat-card-content>\n <div align=\"center\">\n <button mat-raised-button color=\"accent\" (click)=\"onSave()\">Save</button>\n </div>\n </mat-card>\n </form>\n ",
130
130
  styles: [""]
131
131
  }] }
132
132
  ];
@@ -162,4 +162,4 @@ if (false) {
162
162
  */
163
163
  SmartStaffOffenderOptionsComponent.prototype.xdmService;
164
164
  }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY3NtYXJ0L25nYy1zbWFydC1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxHQUlaLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RDtJQVNFLDRDQUNVLEtBQXFCLEVBQ3JCLGVBQWlELEVBQ2pELFVBQXNCO1FBRnRCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQztRQUNqRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTGhDLHdCQUFtQixHQUFlLEVBQUUsQ0FBQztJQU1qQyxDQUFDOzs7O0lBRUwscURBQVE7OztJQUFSO1FBQUEsaUJBUUM7O1lBUE8sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsK0JBQStCLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLElBQUk7WUFDdEYsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVPLHFEQUFROzs7OztJQUFoQixVQUFpQixJQUFJO1FBQ25CLElBQUksSUFBSSxFQUFFOztnQkFDRix1QkFBcUIsR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztZQUN2RSxJQUFJLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsT0FBTztnQkFDbEIsdUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RSxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBRUgsQ0FBQzs7Ozs7SUFDTyx1REFBVTs7OztJQUFsQjs7WUFDUSxxQkFBcUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUMzQyxDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU87Ozs7O1FBQUUsVUFBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxFQUFDLENBQUM7UUFFSCxPQUFPLElBQUksU0FBUyxDQUFDO1lBQ25CLG1CQUFtQixFQUFFLHFCQUFxQjtTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsbURBQU07OztJQUFOO1FBQUEsaUJBdUJDOztZQXRCTyxJQUFJLEdBQUc7WUFDWCxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTztTQUNwQzs7WUFFSyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUs7O1lBQ3ZFLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxHQUFHO1lBQ2QsSUFBSSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO2FBQ2xEO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLFFBQVE7WUFDNUUsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNwQixLQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsS0FBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDdkQsS0FBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztnQkF0RUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLHVqQ0FBNEQ7O2lCQUU3RDs7OztnQkFQUSxjQUFjO2dCQVRkLGdDQUFnQztnQkFVaEMsVUFBVTs7SUEwRW5CLHlDQUFDO0NBQUEsQUF4RUQsSUF3RUM7U0FuRVksa0NBQWtDOzs7SUFDN0Msd0RBQXVCOztJQUN2QixpRUFBcUM7O0lBQ3JDLHNEQUFvQjs7Ozs7SUFFbEIsbURBQTZCOzs7OztJQUM3Qiw2REFBeUQ7Ozs7O0lBQ3pELHdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7ICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXAsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgVmFsaWRhdG9ycyxcclxuICBWYWxpZGF0b3JGbixcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2dpblN0YWZmIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFhkbVNlcnZpY2V9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2dpblN0YWZmOiBMb2dpblN0YWZmO1xyXG4gIG9mZmVuZGVyTGlzdE9wdGlvbnM6IEFycmF5PGFueT4gPSBbXTtcclxuICBmcm1Hcm91cDogRm9ybUdyb3VwO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIG9mZmVuZGVyU2VydmljZTogU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHhkbVNlcnZpY2U6IFhkbVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IHJvdXREYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xyXG4gICAgdGhpcy5sb2dpblN0YWZmID0gcm91dERhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMub2ZmZW5kZXJMaXN0T3B0aW9ucyA9IHJvdXREYXRhLnNlbGVjdGVkT2ZmZW5kZXJSZXNvbHZlclNlcnZpY2U7XHJcbiAgICB0aGlzLmZybUdyb3VwID0gdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICB0aGlzLm9mZmVuZGVyU2VydmljZS5nZXRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnModGhpcy5sb2dpblN0YWZmLnN0YWZmSWQpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5maWxsRm9ybShkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxsRm9ybShkYXRhKSB7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBjb25zdCBvZmZlbmRlckxpc3RPcHRpb25zRmcgPSAgdGhpcy5mcm1Hcm91cC5nZXQoJ29mZmVuZGVyTGlzdE9wdGlvbnMnKTtcclxuICAgICAgZGF0YS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbnNGZy5nZXQoZWxlbWVudC5vZmZlbmRlckxpc3RPcHRpb25JZCkuc2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgY29uc3Qgb2ZmZW5kZXJMaXN0T3B0aW9uc0ZnID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm9mZmVuZGVyTGlzdE9wdGlvbnMuZm9yRWFjaCggKGR0LCBpKSA9PiB7XHJcbiAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbnNGZy5hZGRDb250cm9sKGR0Lm9mZmVuZGVyTGlzdE9wdGlvbklkLCBuZXcgRm9ybUNvbnRyb2woZmFsc2UpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKHtcclxuICAgICAgb2ZmZW5kZXJMaXN0T3B0aW9uczogb2ZmZW5kZXJMaXN0T3B0aW9uc0ZnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNhdmUoKSB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBvcHRpb25zOiBbXSxcclxuICAgICAgc3RhZmZJZDogdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMubG9naW5TdGFmZi5zdGFmZklkXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9mZmVuZGVyTGlzdE9wdGlvbnNWYWwgPSB0aGlzLmZybUdyb3VwLmdldCgnb2ZmZW5kZXJMaXN0T3B0aW9ucycpLnZhbHVlO1xyXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9mZmVuZGVyTGlzdE9wdGlvbnNWYWwpO1xyXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChvZmZlbmRlckxpc3RPcHRpb25zVmFsW2tleV0pIHtcclxuICAgICAgICBkYXRhLm9wdGlvbnMucHVzaCh7J29mZmVuZGVyTGlzdE9wdGlvbklkJzoga2V5fSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLnNhdmVTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnNEYXRhKGRhdGEpLnN1YnNjcmliZShydHJEYXRlYT0+e1xyXG4gICAgICBpZiAocnRyRGF0ZWEubWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLnNob3dNZXNzYWdlKHJ0ckRhdGVhLm1lc3NhZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLnNob3dNZXNzYWdlKCdTYXZlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICB0aGlzLnhkbVNlcnZpY2UucmVmcmVzaExvZ2luU3RhZmZPcHRpb25zKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY3NtYXJ0L25nYy1zbWFydC1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxHQUlaLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RDtJQVNFLDRDQUNVLEtBQXFCLEVBQ3JCLGVBQWlELEVBQ2pELFVBQXNCO1FBRnRCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQztRQUNqRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTGhDLHdCQUFtQixHQUFlLEVBQUUsQ0FBQztJQU1qQyxDQUFDOzs7O0lBRUwscURBQVE7OztJQUFSO1FBQUEsaUJBUUM7O1lBUE8sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsK0JBQStCLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLElBQUk7WUFDdEYsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVPLHFEQUFROzs7OztJQUFoQixVQUFpQixJQUFJO1FBQ25CLElBQUksSUFBSSxFQUFFOztnQkFDRix1QkFBcUIsR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztZQUN2RSxJQUFJLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsT0FBTztnQkFDbEIsdUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RSxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBRUgsQ0FBQzs7Ozs7SUFDTyx1REFBVTs7OztJQUFsQjs7WUFDUSxxQkFBcUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUMzQyxDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU87Ozs7O1FBQUUsVUFBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxFQUFDLENBQUM7UUFFSCxPQUFPLElBQUksU0FBUyxDQUFDO1lBQ25CLG1CQUFtQixFQUFFLHFCQUFxQjtTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsbURBQU07OztJQUFOO1FBQUEsaUJBdUJDOztZQXRCTyxJQUFJLEdBQUc7WUFDWCxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTztTQUNwQzs7WUFFSyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUs7O1lBQ3ZFLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxHQUFHO1lBQ2QsSUFBSSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO2FBQ2xEO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLFFBQVE7WUFDNUUsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNwQixLQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsS0FBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDdkQsS0FBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztnQkF0RUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLHFnQ0FBNEQ7O2lCQUU3RDs7OztnQkFQUSxjQUFjO2dCQVRkLGdDQUFnQztnQkFVaEMsVUFBVTs7SUEwRW5CLHlDQUFDO0NBQUEsQUF4RUQsSUF3RUM7U0FuRVksa0NBQWtDOzs7SUFDN0Msd0RBQXVCOztJQUN2QixpRUFBcUM7O0lBQ3JDLHNEQUFvQjs7Ozs7SUFFbEIsbURBQTZCOzs7OztJQUM3Qiw2REFBeUQ7Ozs7O0lBQ3pELHdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zU2VydmljZX0gZnJvbSAnLi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgIEZvcm1CdWlsZGVyLFxuICBGb3JtR3JvdXAsXG4gIEZvcm1Db250cm9sLFxuICBWYWxpZGF0b3JzLFxuICBWYWxpZGF0b3JGbixcbiAgQWJzdHJhY3RDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2dpblN0YWZmIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgWGRtU2VydmljZX0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS94ZG0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcbiAgb2ZmZW5kZXJMaXN0T3B0aW9uczogQXJyYXk8YW55PiA9IFtdO1xuICBmcm1Hcm91cDogRm9ybUdyb3VwO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIG9mZmVuZGVyU2VydmljZTogU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB4ZG1TZXJ2aWNlOiBYZG1TZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgcm91dERhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XG4gICAgdGhpcy5sb2dpblN0YWZmID0gcm91dERhdGEubG9naW5TdGFmZjtcbiAgICB0aGlzLm9mZmVuZGVyTGlzdE9wdGlvbnMgPSByb3V0RGF0YS5zZWxlY3RlZE9mZmVuZGVyUmVzb2x2ZXJTZXJ2aWNlO1xuICAgIHRoaXMuZnJtR3JvdXAgPSB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB0aGlzLm9mZmVuZGVyU2VydmljZS5nZXRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnModGhpcy5sb2dpblN0YWZmLnN0YWZmSWQpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuZmlsbEZvcm0oZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbGxGb3JtKGRhdGEpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc3Qgb2ZmZW5kZXJMaXN0T3B0aW9uc0ZnID0gIHRoaXMuZnJtR3JvdXAuZ2V0KCdvZmZlbmRlckxpc3RPcHRpb25zJyk7XG4gICAgICBkYXRhLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbnNGZy5nZXQoZWxlbWVudC5vZmZlbmRlckxpc3RPcHRpb25JZCkuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgfVxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgY29uc3Qgb2ZmZW5kZXJMaXN0T3B0aW9uc0ZnID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9mZmVuZGVyTGlzdE9wdGlvbnMuZm9yRWFjaCggKGR0LCBpKSA9PiB7XG4gICAgICBvZmZlbmRlckxpc3RPcHRpb25zRmcuYWRkQ29udHJvbChkdC5vZmZlbmRlckxpc3RPcHRpb25JZCwgbmV3IEZvcm1Db250cm9sKGZhbHNlKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBvZmZlbmRlckxpc3RPcHRpb25zOiBvZmZlbmRlckxpc3RPcHRpb25zRmcsXG4gICAgfSk7XG4gIH1cblxuICBvblNhdmUoKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgc3RhZmZJZDogdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLmxvZ2luU3RhZmYuc3RhZmZJZFxuICAgIH07XG5cbiAgICBjb25zdCBvZmZlbmRlckxpc3RPcHRpb25zVmFsID0gdGhpcy5mcm1Hcm91cC5nZXQoJ29mZmVuZGVyTGlzdE9wdGlvbnMnKS52YWx1ZTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2ZmZW5kZXJMaXN0T3B0aW9uc1ZhbCk7XG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAob2ZmZW5kZXJMaXN0T3B0aW9uc1ZhbFtrZXldKSB7XG4gICAgICAgIGRhdGEub3B0aW9ucy5wdXNoKHsnb2ZmZW5kZXJMaXN0T3B0aW9uSWQnOiBrZXl9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMub2ZmZW5kZXJTZXJ2aWNlLnNhdmVTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnNEYXRhKGRhdGEpLnN1YnNjcmliZShydHJEYXRlYT0+e1xuICAgICAgaWYgKHJ0ckRhdGVhLm1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5vZmZlbmRlclNlcnZpY2Uuc2hvd01lc3NhZ2UocnRyRGF0ZWEubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9mZmVuZGVyU2VydmljZS5zaG93TWVzc2FnZSgnU2F2ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgIHRoaXMueGRtU2VydmljZS5yZWZyZXNoTG9naW5TdGFmZk9wdGlvbnMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
@@ -229,4 +229,4 @@ if (false) {
229
229
  */
230
230
  SmartStaffOffenderOptionsService.prototype.matSnackBar;
231
231
  }
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFDTCxzQkFBc0IsR0FDdkIsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QztJQUVFLDBDQUMwQyxhQUFhLEVBQzdDLElBQWdCLEVBQVUsV0FBd0I7UUFEbEIsa0JBQWEsR0FBYixhQUFhLENBQUE7UUFDN0MsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ3hELENBQUM7Ozs7O0lBRUUsc0RBQVc7Ozs7SUFBbEIsVUFBbUIsT0FBTztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ25DLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7O0lBRU8sNkRBQWtCOzs7OztJQUExQixVQUEyQixVQUFnQjtRQUEzQyxpQkFtQkM7UUFsQkMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxZQUFZLEtBQUssRUFBRTtZQUMvQixVQUFVLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsR0FBRztnQkFDcEIsS0FBSSxDQUFDLGtC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QUMsR0FBRztnQkFDZixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDaEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEQ7cUJBQU07b0JBQ0wsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ25CLE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7cUJBQ3hDO3lCQUFNO3dCQUNMLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7cUJBQ3RDO2lCQUNGO1lBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRCxNQUFNLElBQUksSUFBSSxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7Z0JBcElGLFVBQVU7Ozs7Z0RBR04sTUFBTSxTQUFDLHNCQUFzQjtnQkFYekIsVUFBVTtnQkFHVixXQUFXOztJQTJJcEIsdUNBQUM7Q0FBQSxBQXRJRCxJQXNJQztTQXJJWSxnQ0FBZ0M7Ozs7OztJQUV6Qyx5REFBcUQ7Ozs7O0lBQ3JELGdEQUF3Qjs7Ozs7SUFBRSx1REFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcclxuaW1wb3J0IHtcclxuICBTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMLFxyXG59IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KFNNQVJUX0RBVEFfU0VSVklDRV9VUkwpIHByaXZhdGUgc2VydmljZUFwaVVybCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBtYXRTbmFja0JhcjogTWF0U25hY2tCYXJcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgc2hvd01lc3NhZ2UobWVzc2FnZSkge1xyXG4gICAgdGhpcy5tYXRTbmFja0Jhci5vcGVuKG1lc3NhZ2UsIG51bGwsIHtcclxuICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydEVtcHR5VG9OdWxsKGpzb25PYmplY3Q6IEpTT04pIHtcclxuICAgIGlmICghanNvbk9iamVjdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGpzb25PYmplY3QgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICBqc29uT2JqZWN0LmZvckVhY2gob2JqID0+IHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRFbXB0eVRvTnVsbChvYmopO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoanNvbk9iamVjdCk7XHJcbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgaWYgKHR5cGVvZiBqc29uT2JqZWN0W2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RW1wdHlUb051bGwoanNvbk9iamVjdFtrZXldKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YganNvbk9iamVjdFtrZXldID09PSAnc3RyaW5nJyAmJiBqc29uT2JqZWN0W2tleV0udHJpbSgpID09PSAnJykge1xyXG4gICAgICAgIGpzb25PYmplY3Rba2V5XSA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRHcmFwaFF1ZXJ5RGF0YShxdWVyeU5hbWU6IHN0cmluZywgcXVlcnlTdHJpbmc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4odGhpcy5zZXJ2aWNlQXBpVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZGF0YVtxdWVyeU5hbWVdO1xyXG4gICAgICAgIH0pKTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0T2ZmZW5kZXJMaXN0T3B0aW9ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcXVlcnlOYW1lID0gJ2ZpbmRPZmZlbmRlckxpc3RPcHRpb25zJztcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYHtcclxuICAgICAgJHtxdWVyeU5hbWV9IHtcclxuICAgICAgICBkYXRhIHtcclxuICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICBzZXJ2aWNlQXBpRmllbGROYW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1lc3NhZ2VcclxuICAgICAgfVxyXG4gICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0R3JhcGhRdWVyeURhdGEocXVlcnlOYW1lLCBxdWVyeVN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RhZmZPZmZlbmRlckxpc3RPcHRpb25zKFxyXG4gICAgc3RhZmZJZDogbnVtYmVyLFxyXG4gICk6IE9ic2VydmFibGU8QXJyYXk8YW55Pj4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBge2ZpbmRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnMoaW5wdXQ6e1xyXG4gICAgICB3aGVyZTp7XHJcbiAgICAgICAgc3RhZmZJZDogJHtzdGFmZklkfVxyXG4gICAgICB9XHJcbiAgICB9KXtcclxuICAgICAgZGF0YXtcclxuICAgICAgICBvZmZlbmRlckxpc3RPcHRpb25JZFxyXG4gICAgICB9XHJcbiAgfSB9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55Pih0aGlzLnNlcnZpY2VBcGlVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBkYXRhLmZpbmRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnMuZGF0YTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHNhdmVTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnNEYXRhKGRhdGFUb1NhdmU6IGFueSkgeyAvL306IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgLy8gdGhpcy5jb252ZXJ0RW1wdHlUb051bGwoZGF0YVRvU2F2ZSk7XHJcbiAgICBjb25zdCBxdWVyeU5hbWUgPSAndXBzZXJ0U3RhZmZPZmZlbmRlckxpc3RPcHRpb24nO1xyXG4gICAgY29uc3QgcXVlcnkgPSBgbXV0YXRpb24gIHtcclxuICAgICAgICAgICAgdXBzZXJ0U3RhZmZPZmZlbmRlckxpc3RPcHRpb24oaW5wdXQ6ICR7dGhpcy5jb252ZXJ0VG9TdHJpbmcoZGF0YVRvU2F2ZSl9KSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9YDtcclxuXHJcbjtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55Pih0aGlzLnNlcnZpY2VBcGlVcmwsIHsgcXVlcnkgfSk7XHJcbiAgICAvKi5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFbcXVlcnlOYW1lXTtcclxuICAgICAgfSkpOyovXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGNvbnZlcnRUb1N0cmluZyhvYmopOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG5cclxuICAgIGlmICghb2JqKSB7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgIHJlc3VsdCArPSAnIFsnO1xyXG4gICAgICBvYmouZm9yRWFjaChlT2JqID0+IHtcclxuICAgICAgICByZXN1bHQgKz0gdGhpcy5jb252ZXJ0VG9TdHJpbmcoZU9iaik7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXN1bHQgKz0gJ10sJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdCArPSAneyc7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xyXG4gICAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICByZXN1bHQgKz0ga2V5ICsgJzonICsgdGhpcy5jb252ZXJ0VG9TdHJpbmcob2JqW2tleV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaXNOYU4ob2JqW2tleV0pKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCArPSBrZXkgKyAnOlwiJyArIG9ialtrZXldICsgJ1wiLCc7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgKz0ga2V5ICsgJzonICsgb2JqW2tleV0gKyAnLCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZygwLCByZXN1bHQubGVuZ3RoIC0gMSk7XHJcbiAgICAgIHJlc3VsdCArPSAnfSwnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFDTCxzQkFBc0IsR0FDdkIsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QztJQUVFLDBDQUMwQyxhQUFhLEVBQzdDLElBQWdCLEVBQVUsV0FBd0I7UUFEbEIsa0JBQWEsR0FBYixhQUFhLENBQUE7UUFDN0MsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ3hELENBQUM7Ozs7O0lBRUUsc0RBQVc7Ozs7SUFBbEIsVUFBbUIsT0FBTztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ25DLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7O0lBRU8sNkRBQWtCOzs7OztJQUExQixVQUEyQixVQUFnQjtRQUEzQyxpQkFtQkM7UUFsQkMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxZQUFZLEtBQUssRUFBRTtZQUMvQixVQUFVLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsR0FBRztnQkFDcEIsS0FBSSxDQUFDLGtC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QUMsR0FBRztnQkFDZixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDaEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEQ7cUJBQU07b0JBQ0wsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ25CLE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7cUJBQ3hDO3lCQUFNO3dCQUNMLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7cUJBQ3RDO2lCQUNGO1lBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRCxNQUFNLElBQUksSUFBSSxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7Z0JBcElGLFVBQVU7Ozs7Z0RBR04sTUFBTSxTQUFDLHNCQUFzQjtnQkFYekIsVUFBVTtnQkFHVixXQUFXOztJQTJJcEIsdUNBQUM7Q0FBQSxBQXRJRCxJQXNJQztTQXJJWSxnQ0FBZ0M7Ozs7OztJQUV6Qyx5REFBcUQ7Ozs7O0lBQ3JELGdEQUF3Qjs7Ozs7SUFBRSx1REFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQge1xuICBTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMLFxufSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFNNQVJUX0RBVEFfU0VSVklDRV9VUkwpIHByaXZhdGUgc2VydmljZUFwaVVybCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgbWF0U25hY2tCYXI6IE1hdFNuYWNrQmFyXG4gICkgeyB9XG5cbiAgcHVibGljIHNob3dNZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICB0aGlzLm1hdFNuYWNrQmFyLm9wZW4obWVzc2FnZSwgbnVsbCwge1xuICAgICAgZHVyYXRpb246IDIwMDAsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRFbXB0eVRvTnVsbChqc29uT2JqZWN0OiBKU09OKSB7XG4gICAgaWYgKCFqc29uT2JqZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGpzb25PYmplY3QgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAganNvbk9iamVjdC5mb3JFYWNoKG9iaiA9PiB7XG4gICAgICAgIHRoaXMuY29udmVydEVtcHR5VG9OdWxsKG9iaik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoanNvbk9iamVjdCk7XG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGpzb25PYmplY3Rba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhpcy5jb252ZXJ0RW1wdHlUb051bGwoanNvbk9iamVjdFtrZXldKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGpzb25PYmplY3Rba2V5XSA9PT0gJ3N0cmluZycgJiYganNvbk9iamVjdFtrZXldLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAganNvbk9iamVjdFtrZXldID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0R3JhcGhRdWVyeURhdGEocXVlcnlOYW1lOiBzdHJpbmcsIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueT4odGhpcy5zZXJ2aWNlQXBpVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YVtxdWVyeU5hbWVdO1xuICAgICAgICB9KSk7XG4gIH1cbiAgXG4gIGdldE9mZmVuZGVyTGlzdE9wdGlvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBxdWVyeU5hbWUgPSAnZmluZE9mZmVuZGVyTGlzdE9wdGlvbnMnO1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYHtcbiAgICAgICR7cXVlcnlOYW1lfSB7XG4gICAgICAgIGRhdGEge1xuICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXG4gICAgICAgICAgbmFtZVxuICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlXG4gICAgICB9XG4gICAgfWA7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRHcmFwaFF1ZXJ5RGF0YShxdWVyeU5hbWUsIHF1ZXJ5U3RyaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnMoXG4gICAgc3RhZmZJZDogbnVtYmVyLFxuICApOiBPYnNlcnZhYmxlPEFycmF5PGFueT4+IHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGB7ZmluZFN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9ucyhpbnB1dDp7XG4gICAgICB3aGVyZTp7XG4gICAgICAgIHN0YWZmSWQ6ICR7c3RhZmZJZH1cbiAgICAgIH1cbiAgICB9KXtcbiAgICAgIGRhdGF7XG4gICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXG4gICAgICB9XG4gIH0gfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55Pih0aGlzLnNlcnZpY2VBcGlVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiBkYXRhLmZpbmRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbnMuZGF0YTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgc2F2ZVN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9uc0RhdGEoZGF0YVRvU2F2ZTogYW55KSB7IC8vfTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIC8vIHRoaXMuY29udmVydEVtcHR5VG9OdWxsKGRhdGFUb1NhdmUpO1xuICAgIGNvbnN0IHF1ZXJ5TmFtZSA9ICd1cHNlcnRTdGFmZk9mZmVuZGVyTGlzdE9wdGlvbic7XG4gICAgY29uc3QgcXVlcnkgPSBgbXV0YXRpb24gIHtcbiAgICAgICAgICAgIHVwc2VydFN0YWZmT2ZmZW5kZXJMaXN0T3B0aW9uKGlucHV0OiAke3RoaXMuY29udmVydFRvU3RyaW5nKGRhdGFUb1NhdmUpfSkge1xuICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgIH1cbiAgICAgICAgfWA7XG5cbjtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc2VydmljZUFwaVVybCwgeyBxdWVyeSB9KTtcbiAgICAvKi5waXBlKFxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xuICAgICAgICByZXR1cm4gZGF0YVtxdWVyeU5hbWVdO1xuICAgICAgfSkpOyovXG5cblxuICB9XG5cbiAgY29udmVydFRvU3RyaW5nKG9iaik6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuXG4gICAgaWYgKCFvYmopIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICByZXN1bHQgKz0gJyBbJztcbiAgICAgIG9iai5mb3JFYWNoKGVPYmogPT4ge1xuICAgICAgICByZXN1bHQgKz0gdGhpcy5jb252ZXJ0VG9TdHJpbmcoZU9iaik7XG4gICAgICB9KTtcbiAgICAgIHJlc3VsdCArPSAnXSwnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgKz0gJ3snO1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHJlc3VsdCArPSBrZXkgKyAnOicgKyB0aGlzLmNvbnZlcnRUb1N0cmluZyhvYmpba2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGlzTmFOKG9ialtrZXldKSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGtleSArICc6XCInICsgb2JqW2tleV0gKyAnXCIsJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGtleSArICc6JyArIG9ialtrZXldICsgJywnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIHJlc3VsdC5sZW5ndGggLSAxKTtcbiAgICAgIHJlc3VsdCArPSAnfSwnO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbn1cbiJdfQ==
@@ -958,15 +958,15 @@ class SmartStaffOffenderOptionsService {
958
958
  /** @type {?} */
959
959
  const queryName = 'findOffenderListOptions';
960
960
  /** @type {?} */
961
- const queryString = `{
962
- ${queryName} {
963
- data {
964
- offenderListOptionId
965
- name
966
- serviceApiFieldName
967
- }
968
- message
969
- }
961
+ const queryString = `{
962
+ ${queryName} {
963
+ data {
964
+ offenderListOptionId
965
+ name
966
+ serviceApiFieldName
967
+ }
968
+ message
969
+ }
970
970
  }`;
971
971
  return this.getGraphQueryData(queryName, queryString);
972
972
  }
@@ -976,14 +976,14 @@ class SmartStaffOffenderOptionsService {
976
976
  */
977
977
  getStaffOffenderListOptions(staffId) {
978
978
  /** @type {?} */
979
- const queryString = `{findStaffOffenderListOptions(input:{
980
- where:{
981
- staffId: ${staffId}
982
- }
983
- }){
984
- data{
985
- offenderListOptionId
986
- }
979
+ const queryString = `{findStaffOffenderListOptions(input:{
980
+ where:{
981
+ staffId: ${staffId}
982
+ }
983
+ }){
984
+ data{
985
+ offenderListOptionId
986
+ }
987
987
  } }`;
988
988
  return this.http
989
989
  .post(this.serviceApiUrl, { query: queryString })
@@ -1001,10 +1001,10 @@ class SmartStaffOffenderOptionsService {
1001
1001
  */
1002
1002
  saveStaffOffenderListOptionsData(dataToSave) {
1003
1003
  /** @type {?} */
1004
- const query = `mutation {
1005
- upsertStaffOffenderListOption(input: ${this.convertToString(dataToSave)}) {
1006
- message
1007
- }
1004
+ const query = `mutation {
1005
+ upsertStaffOffenderListOption(input: ${this.convertToString(dataToSave)}) {
1006
+ message
1007
+ }
1008
1008
  }`;
1009
1009
  return this.http
1010
1010
  .post(this.serviceApiUrl, { query });
@@ -1183,7 +1183,7 @@ class SmartStaffOffenderOptionsComponent {
1183
1183
  SmartStaffOffenderOptionsComponent.decorators = [
1184
1184
  { type: Component, args: [{
1185
1185
  selector: 'lib-smart-staff-offender-options',
1186
- template: "<form class=\"main-form\" [formGroup]=\"frmGroup\">\r\n <mat-card role=\"group\">\r\n <mat-card-content>\r\n <div formGroupName=\"offenderListOptions\">\r\n <div style=\"float:left;\">\r\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\">\r\n <mat-checkbox *ngIf=\"i%2!=0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\r\n {{offenderListOption.name}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n <div>\r\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\" >\r\n <mat-checkbox *ngIf=\"i%2==0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\r\n {{offenderListOption.name}}\r\n </mat-checkbox> \r\n </div>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n <div align=\"center\">\r\n <button mat-raised-button color=\"accent\" (click)=\"onSave()\">Save</button>\r\n </div>\r\n </mat-card>\r\n </form>\r\n ",
1186
+ template: "<form class=\"main-form\" [formGroup]=\"frmGroup\">\n <mat-card role=\"group\">\n <mat-card-content>\n <div formGroupName=\"offenderListOptions\">\n <div style=\"float:left;\">\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\">\n <mat-checkbox *ngIf=\"i%2!=0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\n {{offenderListOption.name}}\n </mat-checkbox>\n </div>\n </div>\n <div>\n <div *ngFor=\"let offenderListOption of offenderListOptions; let i = index\" >\n <mat-checkbox *ngIf=\"i%2==0\" color=\"primary\" formControlName=\"{{offenderListOption.offenderListOptionId}}\">\n {{offenderListOption.name}}\n </mat-checkbox> \n </div>\n </div>\n </div>\n </mat-card-content>\n <div align=\"center\">\n <button mat-raised-button color=\"accent\" (click)=\"onSave()\">Save</button>\n </div>\n </mat-card>\n </form>\n ",
1187
1187
  styles: [""]
1188
1188
  }] }
1189
1189
  ];
@@ -1264,6 +1264,45 @@ class SmartAuthService {
1264
1264
  }
1265
1265
  })));
1266
1266
  }
1267
+ /**
1268
+ * @private
1269
+ * @param {?} app
1270
+ * @param {?} hash
1271
+ * @return {?}
1272
+ */
1273
+ getTeamUrl(app, hash) {
1274
+ /** @type {?} */
1275
+ let webIndex = window.location.href.indexOf('web-');
1276
+ /** @type {?} */
1277
+ const uptoweb = (window.location.href.substring(0, webIndex) + 'web-');
1278
+ /** @type {?} */
1279
+ const afterweb = window.location.href.replace(uptoweb, '');
1280
+ webIndex = afterweb.indexOf('-', 0);
1281
+ /** @type {?} */
1282
+ let lastPart = (afterweb.substring(webIndex));
1283
+ lastPart = lastPart.replace(window.location.pathname, '');
1284
+ return uptoweb + app + lastPart + hash;
1285
+ }
1286
+ /**
1287
+ * @param {?} loginStaff
1288
+ * @return {?}
1289
+ */
1290
+ redirectToTeam(loginStaff) {
1291
+ if (loginStaff.roles.findIndex((/**
1292
+ * @param {?} role
1293
+ * @return {?}
1294
+ */
1295
+ role => role.roleId === 'EUUSPC')) > -1) {
1296
+ window.location.href = this.getTeamUrl('investigation', '/assignment');
1297
+ }
1298
+ if (loginStaff.roles.findIndex((/**
1299
+ * @param {?} role
1300
+ * @return {?}
1301
+ */
1302
+ role => role.roleId.substring(0, 3) === 'RSC')) > -1) {
1303
+ window.location.href = this.getTeamUrl('rsc', '/offender-list');
1304
+ }
1305
+ }
1267
1306
  /**
1268
1307
  * @param {?} selectedOffender
1269
1308
  * @return {?}