@ksremp/ngx-ksremp-app-lib 1.0.25 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/chatbot-lex/chatbot-lex.component.mjs +609 -0
- package/esm2022/lib/components/footer/footer.component.mjs +11 -13
- package/esm2022/lib/components/header/header.component.mjs +50 -45
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +5 -1
- package/esm2022/lib/components/user-login/user-login.component.mjs +43 -3
- package/esm2022/lib/models/LibConstants.mjs +2 -8
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +10 -5
- package/esm2022/lib/pages/BasePage.mjs +4 -1
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +12 -14
- package/esm2022/lib/services/lex-chat/lex-chat.service.mjs +86 -0
- package/esm2022/public-api.mjs +4 -3
- package/fesm2022/ksremp-ngx-ksremp-app-lib.mjs +1020 -582
- package/fesm2022/ksremp-ngx-ksremp-app-lib.mjs.map +1 -1
- package/lib/components/chatbot-lex/chatbot-lex.component.d.ts +79 -0
- package/lib/components/chatbot-lex/chatbot-lex.component.d.ts.map +1 -0
- package/lib/components/footer/footer.component.d.ts +1 -3
- package/lib/components/footer/footer.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +2 -1
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/user-login/user-login.component.d.ts +4 -1
- package/lib/components/user-login/user-login.component.d.ts.map +1 -1
- package/lib/models/LibConstants.d.ts +1 -7
- package/lib/models/LibConstants.d.ts.map +1 -1
- package/lib/ngx-reusa-app-lib.module.d.ts +61 -60
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/pages/BasePage.d.ts +1 -0
- package/lib/pages/BasePage.d.ts.map +1 -1
- package/lib/pages/common/landing2/landing2.component.d.ts +1 -3
- package/lib/pages/common/landing2/landing2.component.d.ts.map +1 -1
- package/lib/services/lex-chat/lex-chat.service.d.ts +24 -0
- package/lib/services/lex-chat/lex-chat.service.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -2
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/services/chatbot/chatbot.service.mjs +0 -258
- package/esm2022/lib/services/chatbot/script.const.mjs +0 -42
- package/lib/services/chatbot/chatbot.service.d.ts +0 -61
- package/lib/services/chatbot/chatbot.service.d.ts.map +0 -1
- package/lib/services/chatbot/script.const.d.ts +0 -16
- package/lib/services/chatbot/script.const.d.ts.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { Validators } from '@angular/forms';
|
|
3
3
|
import { LibConstants } from '../../models/LibConstants';
|
|
4
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "../../services/util/util.service";
|
|
6
7
|
import * as i2 from "@ionic/angular";
|
|
@@ -234,6 +235,7 @@ export class UserLoginComponent {
|
|
|
234
235
|
this.isLexisNexisPopupEnabled = false;
|
|
235
236
|
this.mfaLoginHeader = "";
|
|
236
237
|
this.isUSPSExpired = false;
|
|
238
|
+
this.employerLogin = false;
|
|
237
239
|
this.isPhoneMfaRequiredForAccountActivation = true;
|
|
238
240
|
this.success = new EventEmitter();
|
|
239
241
|
this.error = new EventEmitter();
|
|
@@ -288,6 +290,11 @@ export class UserLoginComponent {
|
|
|
288
290
|
return this.resetForm.controls['captcha'];
|
|
289
291
|
}
|
|
290
292
|
signIn() {
|
|
293
|
+
this.employerLogin
|
|
294
|
+
? this.signInEmployer()
|
|
295
|
+
: this.signInCp();
|
|
296
|
+
}
|
|
297
|
+
signInCp() {
|
|
291
298
|
if (this.loginForm.invalid) {
|
|
292
299
|
return;
|
|
293
300
|
}
|
|
@@ -345,6 +352,37 @@ export class UserLoginComponent {
|
|
|
345
352
|
this.util.hideLoader();
|
|
346
353
|
});
|
|
347
354
|
}
|
|
355
|
+
async signInEmployer() {
|
|
356
|
+
if (this.loginForm.invalid || this.isLoginInProgress) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
this.isLoginInProgress = true;
|
|
360
|
+
const auth = {
|
|
361
|
+
userId: this.username.value,
|
|
362
|
+
password: this.password.value,
|
|
363
|
+
language: localStorage.getItem('language'),
|
|
364
|
+
};
|
|
365
|
+
try {
|
|
366
|
+
await this.util.showLoader();
|
|
367
|
+
const userModel = await firstValueFrom(this.loginService.login(auth));
|
|
368
|
+
userModel.language = auth.language;
|
|
369
|
+
await this.loginService.setUser(userModel);
|
|
370
|
+
this.userModel = userModel;
|
|
371
|
+
this.ssn = userModel?.ssn;
|
|
372
|
+
this.success.emit();
|
|
373
|
+
// this.loginSuccess();
|
|
374
|
+
}
|
|
375
|
+
catch (err) {
|
|
376
|
+
console.error(err);
|
|
377
|
+
this.util.errorHandler(err);
|
|
378
|
+
this.util.hideLoader();
|
|
379
|
+
this.error.emit(err);
|
|
380
|
+
}
|
|
381
|
+
finally {
|
|
382
|
+
this.isLoginInProgress = false;
|
|
383
|
+
this.util.hideLoader();
|
|
384
|
+
}
|
|
385
|
+
}
|
|
348
386
|
enableLexisNexis(triggerExitAPI = true) {
|
|
349
387
|
this.show2FADialog = false;
|
|
350
388
|
if (!triggerExitAPI) {
|
|
@@ -535,7 +573,7 @@ export class UserLoginComponent {
|
|
|
535
573
|
let _t;
|
|
536
574
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loginFormDirective = _t.first);
|
|
537
575
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resetFormDirective = _t.first);
|
|
538
|
-
} }, inputs: { fontSize: "fontSize", color: "color", isPhoneMfaRequiredForAccountActivation: "isPhoneMfaRequiredForAccountActivation" }, outputs: { success: "success", error: "error" }, decls: 26, vars: 35, consts: [["appendTo", "body", 3, "visible", "modal", "visibleChange"], [1, "heading"], [4, "ngIf"], [1, "ion-text-center"], ["shape", "round", "type", "submit", "color", "success", 3, "click"], ["slot", "start", "name", "close-sharp"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear", 4, "ngIf"], [3, "display", "userModel", "success", "error", "usps", 4, "ngIf"], [3, "display", "user", "returningUser", "heading", "displayChange", "success", "clear"], [3, "formGroup", 4, "ngIf"], ["appendTo", "body", "position", "top", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], ["pTemplate", "footer"], [3, "email", "onClose", "onSuccess", 4, "ngIf"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear"], [3, "display", "userModel", "success", "error", "usps"], [3, "formGroup"], ["loginFormDirective", "ngForm"], [1, "p-fluid", "p-formgrid", "p-grid"], [1, "field", "ion-text-left", 2, "width", "-webkit-fill-available"], ["for", "userProfileId"], ["id", "userProfileId", "type", "text", "pInputText", "", "maxlength", "30", "minlength", "5", 3, "formControl"], [3, "field", "form", "errDef"], ["for", "userProfilePassword"], ["inputId", "userProfilePassword", 3, "formControl", "toggleMask", "feedback"], ["class", "ion-padding-start ion-padding-end ion-text-left", "style", "margin-top: -8px;", 4, "ngIf"], [1, "p-fluid"], [1, "ion-text-right"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "click"], ["name", "power-outline", "slot", "start"], [1, "ion-padding-top"], [1, "ion-text-left"], ["tabindex", "0", "role", "button", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], ["tabindex", "0", "role", "button", "type", "submit", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], [1, "ion-padding-start", "ion-padding-end", "ion-text-left", 2, "margin-top", "-8px"], [3, "formControl"], ["resetFormDirective", "ngForm"], ["name", "arrow-back-outline", "slot", "start"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "disabled", "click"], ["name", "mail-outline", "slot", "start"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"], [3, "email", "onClose", "onSuccess"]], template: function UserLoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
576
|
+
} }, inputs: { fontSize: "fontSize", color: "color", employerLogin: "employerLogin", isPhoneMfaRequiredForAccountActivation: "isPhoneMfaRequiredForAccountActivation" }, outputs: { success: "success", error: "error" }, decls: 26, vars: 35, consts: [["appendTo", "body", 3, "visible", "modal", "visibleChange"], [1, "heading"], [4, "ngIf"], [1, "ion-text-center"], ["shape", "round", "type", "submit", "color", "success", 3, "click"], ["slot", "start", "name", "close-sharp"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear", 4, "ngIf"], [3, "display", "userModel", "success", "error", "usps", 4, "ngIf"], [3, "display", "user", "returningUser", "heading", "displayChange", "success", "clear"], [3, "formGroup", 4, "ngIf"], ["appendTo", "body", "position", "top", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], ["pTemplate", "footer"], [3, "email", "onClose", "onSuccess", 4, "ngIf"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear"], [3, "display", "userModel", "success", "error", "usps"], [3, "formGroup"], ["loginFormDirective", "ngForm"], [1, "p-fluid", "p-formgrid", "p-grid"], [1, "field", "ion-text-left", 2, "width", "-webkit-fill-available"], ["for", "userProfileId"], ["id", "userProfileId", "type", "text", "pInputText", "", "maxlength", "30", "minlength", "5", 3, "formControl"], [3, "field", "form", "errDef"], ["for", "userProfilePassword"], ["inputId", "userProfilePassword", 3, "formControl", "toggleMask", "feedback"], ["class", "ion-padding-start ion-padding-end ion-text-left", "style", "margin-top: -8px;", 4, "ngIf"], [1, "p-fluid"], [1, "ion-text-right"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "click"], ["name", "power-outline", "slot", "start"], [1, "ion-padding-top"], [1, "ion-text-left"], ["tabindex", "0", "role", "button", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], ["tabindex", "0", "role", "button", "type", "submit", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], [1, "ion-padding-start", "ion-padding-end", "ion-text-left", 2, "margin-top", "-8px"], [3, "formControl"], ["resetFormDirective", "ngForm"], ["name", "arrow-back-outline", "slot", "start"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "disabled", "click"], ["name", "mail-outline", "slot", "start"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"], [3, "email", "onClose", "onSuccess"]], template: function UserLoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
539
577
|
i0.ɵɵelementStart(0, "p-dialog", 0);
|
|
540
578
|
i0.ɵɵlistener("visibleChange", function UserLoginComponent_Template_p_dialog_visibleChange_0_listener($event) { return ctx.displayDialog = $event; });
|
|
541
579
|
i0.ɵɵelementStart(1, "h4", 1);
|
|
@@ -608,6 +646,8 @@ export class UserLoginComponent {
|
|
|
608
646
|
type: Input
|
|
609
647
|
}], color: [{
|
|
610
648
|
type: Input
|
|
649
|
+
}], employerLogin: [{
|
|
650
|
+
type: Input
|
|
611
651
|
}], isPhoneMfaRequiredForAccountActivation: [{
|
|
612
652
|
type: Input
|
|
613
653
|
}], success: [{
|
|
@@ -615,5 +655,5 @@ export class UserLoginComponent {
|
|
|
615
655
|
}], error: [{
|
|
616
656
|
type: Output
|
|
617
657
|
}] }); })();
|
|
618
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserLoginComponent, { className: "UserLoginComponent", filePath: "lib\\components\\user-login\\user-login.component.ts", lineNumber:
|
|
619
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1sb2dpbi91c2VyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBb0UsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0FyRCwyQkFBZ0MsU0FBQSxTQUFBO0lBRXBCLCtDQUErQjtJQUFBLGlCQUFLO0lBQ3hDLDBCQUFJO0lBQUEsZ0RBQWdDO0lBQUEsaUJBQUssRUFBQSxFQUFBOzs7SUFHakQsMkJBQWdDLFNBQUEsU0FBQTtJQUVwQiwrQ0FBK0I7SUFBQSxpQkFBSztJQUN4QywwQkFBSTtJQUFBLGlEQUFpQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7OztJQWN0RCxvQ0FBNE47SUFBeEwsa1BBQStCLCtKQUE0RyxlQUFBLHNCQUFjLENBQUEsSUFBMUgsMkpBQXFJLGVBQUEsMEJBQWtCLENBQUEsSUFBdko7SUFBeUosaUJBQVc7OztJQUFuTSxrREFBK0IseUNBQUEseURBQUEsbUJBQUE7Ozs7SUFDbkUsMkNBQXdMO0lBQXZFLDJMQUFXLGVBQUEscUJBQWEsQ0FBQSxJQUFDLDBLQUFVLGVBQUEsbUJBQVcsQ0FBQSxJQUFyQix3S0FBK0IsZUFB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QyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUF3QnpDLFFBQVE7a0JBQWhCLEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUs7WUFFRyxzQ0FBc0M7a0JBQTlDLEtBQUs7WUFHTixPQUFPO2tCQUROLE1BQU07WUFJUCxLQUFLO2tCQURKLE1BQU07O2tGQXBDSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcclxuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbGFpbWFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC1zZXJ2aWNlL2NsYWltYW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydFNlcnZpY2VWMiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPdnBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZwL292cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlRXhwaXJ5IH0gZnJvbSAnQG5nLWlkbGUvY29yZSc7XHJcbmltcG9ydCB7IExleGlzTmV4aXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGV4aXMtbmV4aXMvbGV4aXMubmV4aXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItbG9naW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWxvZ2luLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91c2VyLWxvZ2luLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2xvZ2luRm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyBsb2dpbkZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcclxuICBAVmlld0NoaWxkKCdyZXNldEZvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgcmVzZXRGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIHB1YmxpYyBzaG93MkZBRGlhbG9nID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dGb3Jnb3RQYXNzd29yZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93VXNlcm5hbWVFcnJvciA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjYXBzT24gPSBmYWxzZTtcclxuICBwdWJsaWMgZGlzcGxheURpYWxvZyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsb2dpbkZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIHJlc2V0Rm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0xleGlzTmV4aXNFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBpc090cE1vZGFsRW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgaXNSZXR1cm5pbmdVc2VyOiBib29sZWFuO1xyXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25QcmVmZXJlbmNlO1xyXG4gIHB1YmxpYyBzc246IHN0cmluZztcclxuICBwdWJsaWMgaXNMZXhpc05leGlzUG9wdXBFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG1mYUxvZ2luSGVhZGVyIDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgaXNVU1BTRXhwaXJlZDogYm9vbGVhbiA9ZmFsc2U7XHJcblxyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuXHJcbiAgQElucHV0KCkgZm9udFNpemU6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgaXNQaG9uZU1mYVJlcXVpcmVkRm9yQWNjb3VudEFjdGl2YXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHVibGljIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcclxuICAgIHByaXZhdGUgd2NTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLFxyXG4gICAgcHJpdmF0ZSBvdnBTZXJ2aWNlOiBPdnBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgY3M6IENsYWltYW50U2VydmljZSxcclxuICAgIHB1YmxpYyBsbjogTGV4aXNOZXhpc1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkge3RoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSl9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNPdHBNb2RhbEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1JldHVybmluZ1VzZXIgPSB0cnVlO1xyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgdGhpcy5tZmFMb2dpbkhlYWRlciA9IFwiU2UgaGEgZW52aWFkbyB1biBjw7NkaWdvIGRlIHZlcmlmaWNhY2nDs24gYWwgbsO6bWVybyBkZSB0ZWzDqWZvbm8gaW5ncmVzYWRvXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1mYUxvZ2luSGVhZGVyID0gXCJWZXJpZmljYXRpb24gY29kZSBoYXMgYmVlbiBzZW50IHRvIHRoZSBwaG9uZSBudW1iZXIgZW50ZXJlZFwiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0aWxpemVMb2dpbkZvcm0oKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLmxvZ2luRm9ybURpcmVjdGl2ZS5yZXNldEZvcm0oKTtcclxuICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgdGhpcy51c2VyTW9kZWwgPSBudWxsO1xyXG4gICAgdGhpcy5zaG93MkZBRGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVMb2dpbkZvcm0oKSB7XHJcbiAgICB0aGlzLmxvZ2luRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB1c2VybmFtZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBwYXNzd29yZDogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBjYXB0Y2hhOiBbbnVsbF0sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlc2V0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB1c2VybmFtZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBjYXB0Y2hhOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCB1c2VybmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxvZ2luRm9ybS5jb250cm9sc1sndXNlcm5hbWUnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFzc3dvcmQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNhcHRjaGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ2NhcHRjaGEnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzZXRVc2VybmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlc2V0Rm9ybS5jb250cm9sc1sndXNlcm5hbWUnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzZXRDYXB0Y2hhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzZXRGb3JtLmNvbnRyb2xzWydjYXB0Y2hhJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgc2lnbkluKCkge1xyXG4gICAgaWYgKHRoaXMubG9naW5Gb3JtLmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGF1dGg6IGFueSA9IHt9O1xyXG4gICAgYXV0aC51c2VySWQgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xyXG4gICAgYXV0aC5wYXNzd29yZCA9IHRoaXMucGFzc3dvcmQudmFsdWU7XHJcbiAgICBhdXRoLmxhbmd1YWdlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIik7XHJcbiAgICB0aGlzLnV0aWxcclxuICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5BbmRDaGVja0Zvck1GQShhdXRoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgdXNlck1vZGVsOiBVc2VyTW9kZWwgPSByZXM7XHJcbiAgICAgICAgICAgIHVzZXJNb2RlbC5sYW5ndWFnZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpOztcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAgICAgICAuc2V0VXNlcih1c2VyTW9kZWwpXHJcbiAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSB1c2VyTW9kZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNzbiA9IHVzZXJNb2RlbD8uc3NuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpblN1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIuaXMyRkFSZXF1aXJlZCArICcnID09ICd0cnVlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSBlcnI7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwudXNlcm5hbWUgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlck1vZGVsLnBhc3N3b3JkID0gdGhpcy5wYXNzd29yZC52YWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYoZXJyLmRldGFpbHMuaW5jbHVkZXMoXCJZb3VyIGlkZW50aXR5IG11c3QgYmUgdmVyaWZpZWQgYXQgVVNQUyBidXQgeW91ciB0aW1lZnJhbWUgaGFzIGV4cGlyZWQuXCIpKXtcclxuICAgICAgICAgICAgIC8vIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgIC8vIFxyXG4gICAgICAgICAgICAgLy8gdGhpcy5lcnJvci5lbWl0KGVycik7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRyaWdnZXJVU1BTRm9yRXhwaXJlZCh0aGlzLnVzZXJuYW1lLnZhbHVlKSwgMjAwMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2luc2lkZSBlbHNlJywgZXJyKTtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGVuYWJsZUxleGlzTmV4aXModHJpZ2dlckV4aXRBUEkgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSBmYWxzZTtcclxuICAgIGlmICghdHJpZ2dlckV4aXRBUEkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvKlxyXG4gICAgICB0aGlzLmxuLmlzTGV4aXNOZXhpc0lkUHJvb2ZpbmdFbmFibGVkV2l0aFVzZXJJZCh0aGlzLnVzZXJNb2RlbC51c2VybmFtZSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAvLyBJZiBsZXhpcy1uZXhpcyBpZCBwcm9vZmluZyBpcyBlbmFibGVkXHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5pc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc2hvd0Vycm9yKFwiVGhlIGNsYWltYW50IGFjY291bnQgd2l0aCB1c2VyIG5hbWVcIiArIHRoaXMudXNlck1vZGVsLnVzZXJuYW1lICsgXCIgaGFzIGJlZW4gYmxvY2tlZC4gUGxlYXNlIGNvbnRhY3QgS0RPTC5cIilcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgKi9cclxuICB9XHJcblxyXG4gIG9uTG5TdWNjZXNzKCl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHRoaXMudXRpbC5zdWNjZXNzKCdZb3VyIElEIHByb29maW5nIHdhcyBzdWNjZXNzZnVsLiBUcnkgcmUtbG9naW4gb3IgY2hhbmdlIHlvdXIgcGFzc3dvcmQgdG8gY29udGludWUhJyk7XHJcbiAgICBpZiAodGhpcy5yZXNldEZvcm0uaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnBhc3N3b3JkLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMucmVzZXRGb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxORXJyb3IoKXtcclxuICAgIHRoaXMudHJpZ2dlclVTUFMoKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVU1BTKCl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIGNvbnNvbGUubG9nKFwidXNwcyBpcyB0cmlnZ2VyZWRcIilcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VySWQnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJNb2RlbC51c2VybmFtZSkpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy91c3BzLXJlZGlyZWN0JywgXCJcIl0pLCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVU1BTRm9yRXhwaXJlZCh1c2VybmFtZSA6IFN0cmluZyl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1VTUFNFeHBpcmVkPXRydWU7ICBcclxuICAgIGNvbnNvbGUubG9nKFwidXNwcyBpcyB0cmlnZ2VyZWRcIilcclxuICAgXHJcbiAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VySWQnLCBKU09OLnN0cmluZ2lmeSh1c2VybmFtZSkpO1xyXG4gICAgLy9zZXRUaW1lb3V0KCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VzcHMtcmVkaXJlY3QnLCBcIlwiXSksIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclVTUFNGb3JFeHBpcmVkUHJvY2Vzcygpe1xyXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzVVNQU0V4cGlyZWQ9dHJ1ZTsgIFxyXG4gICAgY29uc29sZS5sb2coXCJ1c3BzIGlzIHRyaWdnZXJlZFwiKVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlcklkXCIpKTsgIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy91c3BzLXJlZGlyZWN0JywgXCJcIl0pLCAxMDAwKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gYXN5bmMgbG9naW5TdWNjZXNzKCkge1xyXG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcclxuICAgIHRoaXMudXNlck1vZGVsID0gdXNlck1vZGVsO1xyXG4gICAgaWYgKHVzZXJNb2RlbC5jaGFuZ2VQd2QpIHtcclxuICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdjaGFuZ2UtcGFzc3dvcmQnKTtcclxuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB1c2VyTW9kZWwuZW1haWxTdGF0dXMgIT0gJ1ZFUkYnICYmXHJcbiAgICAgIHVzZXJNb2RlbC5pc0VtYWlsVmVyaWZpY2F0aW9uUmVxdWlyZWRcclxuICAgICkge1xyXG4gICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB0aGlzLnNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXNlck1vZGVsLmlzMkZBUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgdGhpcy5zaG93MkZBRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzQ2FwYWNpdG9yID0gdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJyk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHVzZXJNb2RlbC5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlICYmXHJcbiAgICAgIHVzZXJNb2RlbC5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlIDwgMTAgJiZcclxuICAgICAgTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmXHJcbiAgICAgIGlzQ2FwYWNpdG9yXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdjaGFuZ2UtcGFzc3dvcmQ/Y2hhbmdlUHdkPXRydWUnKTtcclxuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9ICAgIFxyXG4gICAgaWYodXNlck1vZGVsLnNzbiE9bnVsbCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQUlDIEZMT1cgaW4gTG9naW5TZXJ2aWNlXCIpOyAgICBcclxuICAgICBjb25zdCBkYXRhPSBhd2FpdCB0aGlzLndjU2VydmljZS5nZW5lcmF0ZUV2ZW50Rm9yUmVvcGVuQWljRmxvdyh1c2VyTW9kZWwuc3NuKVxyXG4gICAgICAgLnRoZW4oYXN5bmMgPT57ICAgICAgICAgIFxyXG4gICAgICAgfVxyXG5cclxuICAgICApLmNhdGNoKGFzeW5jIGVyciA9PntcclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgIH0pICBcclxuICB9XHJcbiAvKiAgIGl0IHdhcyBjb21tZW50ZWQgICBmb3IgUEdMUC0yMjgxICAgXHJcbiBpZih1c2VyTW9kZWwuc3NuIT1udWxsKXtcclxuICAgIGNvbnNvbGUubG9nKFwib3ZlcnBheW1lbnQgTG9naW5TZXJ2aWNlXCIpOyAgICBcclxuICAgY29uc3QgZGF0YT0gYXdhaXQgdGhpcy5vdnBTZXJ2aWNlLnRyaWdnZXJSZXBheW1lbnRFdmVudCh1c2VyTW9kZWwuc3NuKVxyXG4gICAgIC50aGVuKGFzeW5jID0+eyAgICAgICAgXHJcbiAgICAgfVxyXG4gICApLmNhdGNoKGFzeW5jIGVyciA9PntcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgIH0pICBcclxufSovXHJcblxyXG4gICAgaWYgKHVzZXJNb2RlbC5jbGFpbWFudElkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyT3ZlcnBheW1lbnRFdmVudCgpLnN1YnNjcmliZShcclxuICAgICAgICAoeCkgPT4ge30sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZXJNb2RlbC5jbGFpbWFudElkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyT3ZlcnBheW1lbnRFdmVudEhpc3RvcnkoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHgpID0+IHt9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93MkZBRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0RpYWxvZygpIHtcclxuICAgIHRoaXMuZGlzcGxheURpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpbml0aWF0ZUZvcmdvdFBhc3N3b3JkKCkge1xyXG4gICAgaWYgKHRoaXMucmVzZXRGb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5wYXNzd29yZC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0VXNlcm5hbWUubWFya0FzRGlydHkoKTtcclxuICAgICAgdGhpcy5yZXNldENhcHRjaGEubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAuaW5pdGlhdGVGb3Jnb3RQYXNzd29yZFYyKHRoaXMucmVzZXRVc2VybmFtZS52YWx1ZSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpID09PSBcImVzXCIpe1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdTZSBoYSByZXN0YWJsZWNpZG8gc3UgY29udHJhc2XDsWEuIFJlY2liaXLDoSB1biBjb3JyZW8gZWxlY3Ryw7NuaWNvIGNvbiB1bmEgY29udHJhc2XDsWEgdGVtcG9yYWwgZSBpbnN0cnVjY2lvbmVzIHBhcmEgaW5pY2lhciBzZXNpw7NuLicpO1xyXG4gICAgICAgICAgICB9IGVsc2V7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLnN1Y2Nlc3MoJ1lvdXIgcGFzc3dvcmQgaGFzIGJlZW4gcmVzZXQuIFlvdSBzaG91bGQgcmVjZWl2ZSBhbiBlbWFpbCB3aXRoIGEgdGVtcG9yYXJ5IHBhc3N3b3JkIGFuZCBsb2dpbiBpbnN0cnVjdGlvbnMuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm1EaXJlY3RpdmUucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldFVzZXJuYW1lLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkID0gIXRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldEZvcm0oKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Rm9yZ290UGFzc3dvcmQgPSAhdGhpcy5zaG93Rm9yZ290UGFzc3dvcmQ7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5sb2dpblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICB0aGlzLnNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZW1haWxWZXJpZmljYXRpb25TdWNjZXNzKCkge1xyXG4gICAgdGhpcy5zaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHsgIFxyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHRoaXMuaXNVU1BTRXhwaXJlZCA9IGZhbHNlOyAgIFxyXG4gICBcclxuICB9XHJcblxyXG4gIGdldCB1c2VySWRSZXF1aXJlZCgpe1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi51c2VyLmlkLnJlcXVpcmVkJyk7XHJcbiAgfVxyXG4gIFxyXG4gIGdldCB1c2VySWRNaW5pbXVtTGVuZ3RoKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi51c2VyLmlkLm1pbmxlbmd0aCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhc3N3b3JkUmVxdWlyZWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLnBhc3N3b3JkLnJlcXVpcmVkJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FwdGNoYVJlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5jYXB0Y2hhLnJlcXVpcmVkJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyBbKHZpc2libGUpXT1cImRpc3BsYXlEaWFsb2dcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPnt7XCJjb21tb24ubWVzc2FnZVwiIHwgdHJhbnNsYXRlfX08L2g0PlxyXG4gICAge3tcImxvZ2luLmZvcmdvdC5pZC5hc3Npc3RcIiB8IHRyYW5zbGF0ZX19XHJcbiAgICA8ZGl2ICpuZ0lmPVwidXRpbC5pc1N0YXRlKCdNUycpXCI+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGk+RW1wbG95ZXJzIG1heSBjYWxsIDYwMS00OTMtOTQyNzwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5DbGFpbWFudHMgbWF5IGNhbGwgNjAxLTQ5My05NDI3LjwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInV0aWwuaXNTdGF0ZSgnTUUnKVwiPlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpPkVtcGxveWVycyBtYXkgY2FsbCAyMDctNjIxLTUxMjA8L2xpPlxyXG4gICAgICAgICAgICA8bGk+Q2xhaW1hbnRzIG1heSBjYWxsIDEtODAwLTU5My03NjYwPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIHRvZG86IGdldCBLUyBudW1iZXItLT5cclxuICAgIDxiciAvPlxyXG4gICAgPHAtZm9vdGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiZGlzcGxheURpYWxvZyA9ICFkaXNwbGF5RGlhbG9nXCIgY29sb3I9XCJzdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImNsb3NlLXNoYXJwXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIHt7XCJjb21tb24uY2xvc2VcIiB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvcC1mb290ZXI+XHJcbjwvcC1kaWFsb2c+XHJcbjxhcHAtbWZhMiAqbmdJZj1cImlzT3RwTW9kYWxFbmFibGVkXCIgWyhkaXNwbGF5KV09XCJpc090cE1vZGFsRW5hYmxlZFwiIFtyZXR1cm5pbmdVc2VyXT1cImlzUmV0dXJuaW5nVXNlclwiIFt2ZXJpZmljYXRpb25QcmVmZXJlbmNlXT1cInZlcmlmaWNhdGlvblByZWZlcmVuY2VcIiBbc3NuXT1cInNzblwiIChzdWNjZXNzKT1cImxvZ2luU3VjY2VzcygpXCIgKGNsZWFyKT1cImVuYWJsZUxleGlzTmV4aXMoKVwiPjwvYXBwLW1mYTI+XHJcbjxhcHAtbGV4aXMtbmV4aXMgKm5nSWY9XCJpc0xleGlzTmV4aXNQb3B1cEVuYWJsZWRcIiBbZGlzcGxheV09XCJpc0xleGlzTmV4aXNQb3B1cEVuYWJsZWRcIiBbdXNlck1vZGVsXSA9IFwidXNlck1vZGVsXCIgKHN1Y2Nlc3MpPVwib25MblN1Y2Nlc3MoKVwiIChlcnJvcik9XCJvbkxORXJyb3IoKVwiICh1c3BzKT1cInRyaWdnZXJVU1BTKClcIj48L2FwcC1sZXhpcy1uZXhpcz5cclxuPGFwcC1tZmEtcG9wdXAgWyhkaXNwbGF5KV09XCJzaG93MkZBRGlhbG9nXCIgW3VzZXJdPVwidXNlck1vZGVsXCIgW3JldHVybmluZ1VzZXJdPVwiaXNSZXR1cm5pbmdVc2VyXCIgW2hlYWRpbmddPVwibWZhTG9naW5IZWFkZXJcIiAoc3VjY2Vzcyk9XCJsb2dpblN1Y2Nlc3MoKVwiIChjbGVhcik9XCJlbmFibGVMZXhpc05leGlzKCRldmVudClcIj48L2FwcC1tZmEtcG9wdXA+XHJcblxyXG5cclxuPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm1cIiAjbG9naW5Gb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgKm5nSWY9XCIhc2hvd0ZvcmdvdFBhc3N3b3JkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIHAtZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVzZXJQcm9maWxlSWRcIiBbc3R5bGUuZm9udC1zaXplXT1cImZvbnRTaXplXCIgW3N0eWxlLmNvbG9yXT1cImNvbG9yXCI+e3snbG9naW4udXNlci5pZCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInVzZXJQcm9maWxlSWRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgbWF4bGVuZ3RoPVwiMzBcIiBtaW5sZW5ndGg9XCI1XCIgW2Zvcm1Db250cm9sXT1cInVzZXJuYW1lXCI+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ndXNlcm5hbWUnIFtmb3JtXT1cImxvZ2luRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB1c2VySWRSZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIG1pbmxlbmd0aDogdXNlcklkTWluaW11bUxlbmd0aFxyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVzZXJQcm9maWxlUGFzc3dvcmRcIiBbc3R5bGUuZm9udC1zaXplXT1cImZvbnRTaXplXCIgW3N0eWxlLmNvbG9yXT1cImNvbG9yXCI+e3snbG9naW4ucGFzc3dvcmQuY2FzZS5zZW5zaXRpdmUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8cC1wYXNzd29yZCBbZm9ybUNvbnRyb2xdPVwicGFzc3dvcmRcIiBpbnB1dElkPVwidXNlclByb2ZpbGVQYXNzd29yZFwiIFt0b2dnbGVNYXNrXT0ndHJ1ZScgW2ZlZWRiYWNrXT0nZmFsc2UnPjwvcC1wYXNzd29yZD5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdwYXNzd29yZCcgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHBhc3N3b3JkUmVxdWlyZWRcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy1zdGFydCBpb24tcGFkZGluZy1lbmQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwibWFyZ2luLXRvcDogLThweDtcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAgICAgICAgPGFwcC1jYXB0Y2hhIFtmb3JtQ29udHJvbF09XCJjYXB0Y2hhXCI+PC9hcHAtY2FwdGNoYT5cclxuICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J2NhcHRjaGEnIFtmb3JtXT1cImxvZ2luRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICByZXF1aXJlZDogY2FwdGNoYVJlcXVpcmVkXHJcbiAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3aGl0ZS1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBvd2VyLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snbG9naW4ubG9naW4nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwibGlua1wiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIChjbGljayk9XCJzaG93RGlhbG9nKClcIiAoa2V5ZG93bi5lbnRlcik9XCJzaG93RGlhbG9nKClcIj57eydsb2dpbi51c2VyLmlkLmZvcmdvdCcgfCB0cmFuc2xhdGV9fTwvYT5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJsaW5rXCIgKGNsaWNrKT1cInNob3dGb3Jnb3RQYXNzd29yZCA9ICFzaG93Rm9yZ290UGFzc3dvcmRcIiAoa2V5ZG93bi5lbnRlcik9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7XCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCI+e3snbG9naW4ucGFzc3dvcmQuZm9yZ290JyB8IHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxmb3JtICpuZ0lmPVwic2hvd0ZvcmdvdFBhc3N3b3JkXCIgW2Zvcm1Hcm91cF09XCJyZXNldEZvcm1cIiAjcmVzZXRGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIHAtZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVzZXJQcm9maWxlSWRcIiBbc3R5bGUuZm9udC1zaXplXT1cImZvbnRTaXplXCIgW3N0eWxlLmNvbG9yXT1cImNvbG9yXCI+e3snbG9naW4udXNlci5pZCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInVzZXJQcm9maWxlSWRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgbWF4bGVuZ3RoPVwiMzBcIiBtaW5sZW5ndGg9XCI1XCIgW2Zvcm1Db250cm9sXT1cInJlc2V0VXNlcm5hbWVcIj5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdyZXNldFVzZXJuYW1lJyBbZm9ybV09XCJyZXNldEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiB1c2VySWRSZXF1aXJlZCxcclxuICAgICAgICAgICAgbWlubGVuZ3RoOiB1c2VySWRNaW5pbXVtTGVuZ3RoXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICAgICAgPGFwcC1jYXB0Y2hhIFtmb3JtQ29udHJvbF09XCJyZXNldENhcHRjaGFcIj48L2FwcC1jYXB0Y2hhPlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3Jlc2V0Q2FwdGNoYScgW2Zvcm1dPVwicmVzZXRGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IGNhcHRjaGFSZXF1aXJlZFxyXG4gICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNob3dGb3Jnb3RQYXNzd29yZCA9ICFzaG93Rm9yZ290UGFzc3dvcmRcIiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3aGl0ZS1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWJhY2stb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eydsb2dpbi5sb2dpbicgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiaW5pdGlhdGVGb3Jnb3RQYXNzd29yZCgpXCIgY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD1cInt7cmVzZXRGb3JtLmludmFsaWR9fVwiIGNsYXNzPVwid2hpdGUtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJtYWlsLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snbG9naW4uc2VuZC5lbWFpbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICAgICBcclxuPC9mb3JtPlxyXG5cclxuPHAtZGlhbG9nIFt2aXNpYmxlXT1cImlzVVNQU0V4cGlyZWRcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNDV2dyd9XCJcclxuW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCI+XHJcbiAgICB7eyd1c3BzLmV4cGQucG9wdXAuaGVhZGluZycgfCB0cmFuc2xhdGV9fTxici8+XHJcbiAgICBcclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgIHt7J3VzcHMuZXhwZC5wb3B1cC5jYW5jZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwidHJpZ2dlclVTUFNGb3JFeHBpcmVkUHJvY2VzcygpXCI+XHJcbiAgICAgICAgICB7eyd1c3BzLmV4cGQucG9wdXAucHJvY2VzcycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kaWFsb2c+XHJcblxyXG48YXBwLWVtYWlsLXVwZGF0ZSBbZW1haWxdPVwidXNlck1vZGVsLmVtYWlsSWRcIiAqbmdJZj1cInNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZ1wiIChvbkNsb3NlKT1cImxvZ291dCgpXCIgKG9uU3VjY2Vzcyk9XCJlbWFpbFZlcmlmaWNhdGlvblN1Y2Nlc3MoKVwiPjwvYXBwLWVtYWlsLXVwZGF0ZT4iXX0=
|
|
658
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserLoginComponent, { className: "UserLoginComponent", filePath: "lib\\components\\user-login\\user-login.component.ts", lineNumber: 22 }); })();
|
|
659
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1sb2dpbi91c2VyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBb0UsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBV3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDWGxDLDJCQUFnQyxTQUFBLFNBQUE7SUFFcEIsK0NBQStCO0lBQUEsaUJBQUs7SUFDeEMsMEJBQUk7SUFBQSxnREFBZ0M7SUFBQSxpQkFBSyxFQUFBLEVBQUE7OztJQUdqRCwyQkFBZ0MsU0FBQSxTQUFBO0lBRXBCLCtDQUErQjtJQUFBLGlCQUFLO0lBQ3hDLDBCQUFJO0lBQUEsaURBQWlDO0lBQUEsaUJBQUssRUFBQSxFQUFBOzs7O0lBY3RELG9DQUE0TjtJQUF4TCxrUEFBK0IsK0pBQTRHLGVBQUEsc0JBQWMsQ0FBQSxJQUExSCwySkFBcUksZUFBQSwwQkFBa0IsQ0FBQSxJQUF2SjtJQUF5SixpQkFBVzs7O0lBQW5NLGtEQUErQix5Q0FBQSx5REFBQSxtQkFBQTs7OztJQUNuRSwyQ0FBd0w7SUFBdkUsMkxBQVcsZUFBQSxxQkFBYSxDQUFBLElB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LGVBQXdCO1lBQXhCLDZDQUF3QjtZQW1DNkksZUFBeUI7WUFBekIsMENBQXlCO1lBQTNMLDJDQUF5QixlQUFBLDRDQUFBLG9CQUFBLG9CQUFBLG9CQUFBO1lBRS9CLGVBQXlDO1lBQXpDLGlGQUF5QztZQVlFLGVBQWlDO1lBQWpDLHNEQUFpQzs7O2lGRHhHbkUsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsZ0JBQWdCO3lXQU1uQixrQkFBa0I7a0JBRHhCLFNBQVM7bUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBRzNDLGtCQUFrQjtrQkFEeEIsU0FBUzttQkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUF3QnpDLFFBQVE7a0JBQWhCLEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsc0NBQXNDO2tCQUE5QyxLQUFLO1lBR04sT0FBTztrQkFETixNQUFNO1lBSVAsS0FBSztrQkFESixNQUFNOztrRkF0Q0ksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBQbGF0Zm9ybSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xhaW1hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtc2VydmljZS9jbGFpbWFudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlZWtseUNlcnRTZXJ2aWNlVjIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93ZWVrbHktY2VydC93ZWVrbHktY2VydC12Mi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3ZwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292cC9vdnAuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZUV4cGlyeSB9IGZyb20gJ0BuZy1pZGxlL2NvcmUnO1xyXG5pbXBvcnQgeyBMZXhpc05leGlzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xleGlzLW5leGlzL2xleGlzLm5leGlzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWxvZ2luJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1sb2dpbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckxvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdsb2dpbkZvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgbG9naW5Gb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcbiAgQFZpZXdDaGlsZCgncmVzZXRGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJlc2V0Rm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBwdWJsaWMgc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93Rm9yZ290UGFzc3dvcmQgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1VzZXJuYW1lRXJyb3IgPSBmYWxzZTtcclxuICBwdWJsaWMgY2Fwc09uID0gZmFsc2U7XHJcbiAgcHVibGljIGRpc3BsYXlEaWFsb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgbG9naW5Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyByZXNldEZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGlzTG9naW5JblByb2dyZXNzID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNMZXhpc05leGlzRW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgaXNPdHBNb2RhbEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGlzUmV0dXJuaW5nVXNlcjogYm9vbGVhbjtcclxuICBwdWJsaWMgdmVyaWZpY2F0aW9uUHJlZmVyZW5jZTtcclxuICBwdWJsaWMgc3NuOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBtZmFMb2dpbkhlYWRlciA6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIGlzVVNQU0V4cGlyZWQ6IGJvb2xlYW4gPWZhbHNlO1xyXG5cclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcblxyXG4gIEBJbnB1dCgpIGZvbnRTaXplOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGVtcGxveWVyTG9naW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaXNQaG9uZU1mYVJlcXVpcmVkRm9yQWNjb3VudEFjdGl2YXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHVibGljIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgICBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcclxuICAgIHByaXZhdGUgd2NTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLFxyXG4gICAgcHJpdmF0ZSBvdnBTZXJ2aWNlOiBPdnBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgY3M6IENsYWltYW50U2VydmljZSxcclxuICAgIHB1YmxpYyBsbjogTGV4aXNOZXhpc1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkge3RoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSl9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNPdHBNb2RhbEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1JldHVybmluZ1VzZXIgPSB0cnVlO1xyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgdGhpcy5tZmFMb2dpbkhlYWRlciA9IFwiU2UgaGEgZW52aWFkbyB1biBjw7NkaWdvIGRlIHZlcmlmaWNhY2nDs24gYWwgbsO6bWVybyBkZSB0ZWzDqWZvbm8gaW5ncmVzYWRvXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1mYUxvZ2luSGVhZGVyID0gXCJWZXJpZmljYXRpb24gY29kZSBoYXMgYmVlbiBzZW50IHRvIHRoZSBwaG9uZSBudW1iZXIgZW50ZXJlZFwiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0aWxpemVMb2dpbkZvcm0oKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLmxvZ2luRm9ybURpcmVjdGl2ZS5yZXNldEZvcm0oKTtcclxuICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgdGhpcy51c2VyTW9kZWwgPSBudWxsO1xyXG4gICAgdGhpcy5zaG93MkZBRGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVMb2dpbkZvcm0oKSB7XHJcbiAgICB0aGlzLmxvZ2luRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB1c2VybmFtZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBwYXNzd29yZDogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBjYXB0Y2hhOiBbbnVsbF0sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlc2V0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB1c2VybmFtZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBjYXB0Y2hhOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCB1c2VybmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxvZ2luRm9ybS5jb250cm9sc1sndXNlcm5hbWUnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFzc3dvcmQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNhcHRjaGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ2NhcHRjaGEnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzZXRVc2VybmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlc2V0Rm9ybS5jb250cm9sc1sndXNlcm5hbWUnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzZXRDYXB0Y2hhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzZXRGb3JtLmNvbnRyb2xzWydjYXB0Y2hhJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgc2lnbkluKCk6IHZvaWQge1xyXG4gIHRoaXMuZW1wbG95ZXJMb2dpblxyXG4gICAgPyB0aGlzLnNpZ25JbkVtcGxveWVyKClcclxuICAgIDogdGhpcy5zaWduSW5DcCgpO1xyXG59XHJcblxyXG4gIHNpZ25JbkNwKCkge1xyXG4gICAgaWYgKHRoaXMubG9naW5Gb3JtLmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGF1dGg6IGFueSA9IHt9O1xyXG4gICAgYXV0aC51c2VySWQgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xyXG4gICAgYXV0aC5wYXNzd29yZCA9IHRoaXMucGFzc3dvcmQudmFsdWU7XHJcbiAgICBhdXRoLmxhbmd1YWdlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIik7XHJcbiAgICB0aGlzLnV0aWxcclxuICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5BbmRDaGVja0Zvck1GQShhdXRoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgdXNlck1vZGVsOiBVc2VyTW9kZWwgPSByZXM7XHJcbiAgICAgICAgICAgIHVzZXJNb2RlbC5sYW5ndWFnZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpOztcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAgICAgICAuc2V0VXNlcih1c2VyTW9kZWwpXHJcbiAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSB1c2VyTW9kZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNzbiA9IHVzZXJNb2RlbD8uc3NuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpblN1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIuaXMyRkFSZXF1aXJlZCArICcnID09ICd0cnVlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSBlcnI7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwudXNlcm5hbWUgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlck1vZGVsLnBhc3N3b3JkID0gdGhpcy5wYXNzd29yZC52YWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYoZXJyLmRldGFpbHMuaW5jbHVkZXMoXCJZb3VyIGlkZW50aXR5IG11c3QgYmUgdmVyaWZpZWQgYXQgVVNQUyBidXQgeW91ciB0aW1lZnJhbWUgaGFzIGV4cGlyZWQuXCIpKXtcclxuICAgICAgICAgICAgIC8vIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgIC8vIFxyXG4gICAgICAgICAgICAgLy8gdGhpcy5lcnJvci5lbWl0KGVycik7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRyaWdnZXJVU1BTRm9yRXhwaXJlZCh0aGlzLnVzZXJuYW1lLnZhbHVlKSwgMjAwMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2luc2lkZSBlbHNlJywgZXJyKTtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNpZ25JbkVtcGxveWVyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMubG9naW5Gb3JtLmludmFsaWQgfHwgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgYXV0aDogYW55ID0ge1xyXG4gICAgICB1c2VySWQ6IHRoaXMudXNlcm5hbWUudmFsdWUsXHJcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLnZhbHVlLFxyXG4gICAgICBsYW5ndWFnZTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyksXHJcbiAgICB9O1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XHJcblxyXG4gICAgICBjb25zdCB1c2VyTW9kZWwgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmxvZ2luU2VydmljZS5sb2dpbihhdXRoKSk7XHJcblxyXG4gICAgICB1c2VyTW9kZWwubGFuZ3VhZ2UgPSBhdXRoLmxhbmd1YWdlO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2Uuc2V0VXNlcih1c2VyTW9kZWwpO1xyXG5cclxuICAgICAgdGhpcy51c2VyTW9kZWwgPSB1c2VyTW9kZWw7XHJcbiAgICAgIHRoaXMuc3NuID0gdXNlck1vZGVsPy5zc247XHJcbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KCk7XHJcbiAgICAgIC8vIHRoaXMubG9naW5TdWNjZXNzKCk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZW5hYmxlTGV4aXNOZXhpcyh0cmlnZ2VyRXhpdEFQSSA9IHRydWUpIHtcclxuICAgIHRoaXMuc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xyXG4gICAgaWYgKCF0cmlnZ2VyRXhpdEFQSSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8qXHJcbiAgICAgIHRoaXMubG4uaXNMZXhpc05leGlzSWRQcm9vZmluZ0VuYWJsZWRXaXRoVXNlcklkKHRoaXMudXNlck1vZGVsLnVzZXJuYW1lKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIC8vIElmIGxleGlzLW5leGlzIGlkIHByb29maW5nIGlzIGVuYWJsZWRcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoXCJUaGUgY2xhaW1hbnQgYWNjb3VudCB3aXRoIHVzZXIgbmFtZVwiICsgdGhpcy51c2VyTW9kZWwudXNlcm5hbWUgKyBcIiBoYXMgYmVlbiBibG9ja2VkLiBQbGVhc2UgY29udGFjdCBLRE9MLlwiKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAqL1xyXG4gIH1cclxuXHJcbiAgb25MblN1Y2Nlc3MoKXtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgdGhpcy51dGlsLnN1Y2Nlc3MoJ1lvdXIgSUQgcHJvb2Zpbmcgd2FzIHN1Y2Nlc3NmdWwuIFRyeSByZS1sb2dpbiBvciBjaGFuZ2UgeW91ciBwYXNzd29yZCB0byBjb250aW51ZSEnKTtcclxuICAgIGlmICh0aGlzLnJlc2V0Rm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMucGFzc3dvcmQucmVzZXQoKTtcclxuICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgICAgdGhpcy5sb2dpbkZvcm1EaXJlY3RpdmUucmVzZXQoKTtcclxuICAgICAgdGhpcy5yZXNldEZvcm0ucmVzZXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTE5FcnJvcigpe1xyXG4gICAgdGhpcy50cmlnZ2VyVVNQUygpO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclVTUFMoKXtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgY29uc29sZS5sb2coXCJ1c3BzIGlzIHRyaWdnZXJlZFwiKVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIEpTT04uc3RyaW5naWZ5KHRoaXMudXNlck1vZGVsLnVzZXJuYW1lKSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VzcHMtcmVkaXJlY3QnLCBcIlwiXSksIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclVTUFNGb3JFeHBpcmVkKHVzZXJuYW1lIDogU3RyaW5nKXtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzVVNQU0V4cGlyZWQ9dHJ1ZTsgIFxyXG4gICAgY29uc29sZS5sb2coXCJ1c3BzIGlzIHRyaWdnZXJlZFwiKVxyXG4gICBcclxuICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIEpTT04uc3RyaW5naWZ5KHVzZXJuYW1lKSk7XHJcbiAgICAvL3NldFRpbWVvdXQoKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvdXNwcy1yZWRpcmVjdCcsIFwiXCJdKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyVVNQU0ZvckV4cGlyZWRQcm9jZXNzKCl7XHJcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xyXG4gICAgdGhpcy5pc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNVU1BTRXhwaXJlZD10cnVlOyAgXHJcbiAgICBjb25zb2xlLmxvZyhcInVzcHMgaXMgdHJpZ2dlcmVkXCIpXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlcklkJywgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VySWRcIikpOyAgXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VzcHMtcmVkaXJlY3QnLCBcIlwiXSksIDEwMDApO1xyXG4gICAgdGhpcy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiBhc3luYyBsb2dpblN1Y2Nlc3MoKSB7XHJcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5sb2dpblNlcnZpY2UuZ2V0VXNlcigpO1xyXG4gICAgdGhpcy51c2VyTW9kZWwgPSB1c2VyTW9kZWw7XHJcbiAgICBpZiAodXNlck1vZGVsLmNoYW5nZVB3ZCkge1xyXG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJ2NoYW5nZS1wYXNzd29yZCcpO1xyXG4gICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzTG9naW5JblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHVzZXJNb2RlbC5lbWFpbFN0YXR1cyAhPSAnVkVSRicgJiZcclxuICAgICAgdXNlck1vZGVsLmlzRW1haWxWZXJpZmljYXRpb25SZXF1aXJlZFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgIHRoaXMuc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1c2VyTW9kZWwuaXMyRkFSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNDYXBhY2l0b3IgPSB0aGlzLnBsYXRmb3JtLmlzKCdjYXBhY2l0b3InKTtcclxuICAgIGlmIChcclxuICAgICAgdXNlck1vZGVsLmRheXNUaWxsUGFzc3dvcmRFeHBpcmUgJiZcclxuICAgICAgdXNlck1vZGVsLmRheXNUaWxsUGFzc3dvcmRFeHBpcmUgPCAxMCAmJlxyXG4gICAgICBMaWJDb25zdGFudHMubGVnYWN5TWVudSA9PSAndHJ1ZScgJiZcclxuICAgICAgaXNDYXBhY2l0b3JcclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJ2NoYW5nZS1wYXNzd29yZD9jaGFuZ2VQd2Q9dHJ1ZScpO1xyXG4gICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzTG9naW5JblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gICAgXHJcbiAgICBpZih1c2VyTW9kZWwuc3NuIT1udWxsKXtcclxuICAgICAgY29uc29sZS5sb2coXCJBSUMgRkxPVyBpbiBMb2dpblNlcnZpY2VcIik7ICAgIFxyXG4gICAgIGNvbnN0IGRhdGE9IGF3YWl0IHRoaXMud2NTZXJ2aWNlLmdlbmVyYXRlRXZlbnRGb3JSZW9wZW5BaWNGbG93KHVzZXJNb2RlbC5zc24pXHJcbiAgICAgICAudGhlbihhc3luYyA9PnsgICAgICAgICAgXHJcbiAgICAgICB9XHJcblxyXG4gICAgICkuY2F0Y2goYXN5bmMgZXJyID0+e1xyXG4gICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgfSkgIFxyXG4gIH1cclxuIC8qICAgaXQgd2FzIGNvbW1lbnRlZCAgIGZvciBQR0xQLTIyODEgICBcclxuIGlmKHVzZXJNb2RlbC5zc24hPW51bGwpe1xyXG4gICAgY29uc29sZS5sb2coXCJvdmVycGF5bWVudCBMb2dpblNlcnZpY2VcIik7ICAgIFxyXG4gICBjb25zdCBkYXRhPSBhd2FpdCB0aGlzLm92cFNlcnZpY2UudHJpZ2dlclJlcGF5bWVudEV2ZW50KHVzZXJNb2RlbC5zc24pXHJcbiAgICAgLnRoZW4oYXN5bmMgPT57ICAgICAgICBcclxuICAgICB9XHJcbiAgICkuY2F0Y2goYXN5bmMgZXJyID0+e1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgfSkgIFxyXG59Ki9cclxuXHJcbiAgICBpZiAodXNlck1vZGVsLmNsYWltYW50SWQgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5vdnBTZXJ2aWNlLnRyaWdnZXJPdmVycGF5bWVudEV2ZW50KCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICh4KSA9PiB7fSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXNlck1vZGVsLmNsYWltYW50SWQgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5vdnBTZXJ2aWNlLnRyaWdnZXJPdmVycGF5bWVudEV2ZW50SGlzdG9yeSgpLnN1YnNjcmliZShcclxuICAgICAgICAoeCkgPT4ge30sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSBmYWxzZTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzaG93RGlhbG9nKCkge1xyXG4gICAgdGhpcy5kaXNwbGF5RGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGluaXRpYXRlRm9yZ290UGFzc3dvcmQoKSB7XHJcbiAgICBpZiAodGhpcy5yZXNldEZvcm0uaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnBhc3N3b3JkLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMucmVzZXRGb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMucmVzZXRGb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMucmVzZXRVc2VybmFtZS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB0aGlzLnJlc2V0Q2FwdGNoYS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvZ2luU2VydmljZVxyXG4gICAgICAgIC5pbml0aWF0ZUZvcmdvdFBhc3N3b3JkVjIodGhpcy5yZXNldFVzZXJuYW1lLnZhbHVlKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLnN1Y2Nlc3MoJ1NlIGhhIHJlc3RhYmxlY2lkbyBzdSBjb250cmFzZcOxYS4gUmVjaWJpcsOhIHVuIGNvcnJlbyBlbGVjdHLDs25pY28gY29uIHVuYSBjb250cmFzZcOxYSB0ZW1wb3JhbCBlIGluc3RydWNjaW9uZXMgcGFyYSBpbmljaWFyIHNlc2nDs24uJyk7XHJcbiAgICAgICAgICAgIH0gZWxzZXtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcygnWW91ciBwYXNzd29yZCBoYXMgYmVlbiByZXNldC4gWW91IHNob3VsZCByZWNlaXZlIGFuIGVtYWlsIHdpdGggYSB0ZW1wb3JhcnkgcGFzc3dvcmQgYW5kIGxvZ2luIGluc3RydWN0aW9ucy4nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0VXNlcm5hbWUubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Rm9yZ290UGFzc3dvcmQgPSAhdGhpcy5zaG93Rm9yZ290UGFzc3dvcmQ7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRGb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3Jnb3RQYXNzd29yZCA9ICF0aGlzLnNob3dGb3Jnb3RQYXNzd29yZDtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dvdXQoKTtcclxuICAgIHRoaXMuc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBlbWFpbFZlcmlmaWNhdGlvblN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLnNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkgeyAgXHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgdGhpcy5pc1VTUFNFeHBpcmVkID0gZmFsc2U7ICAgXHJcbiAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJJZFJlcXVpcmVkKCl7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLnVzZXIuaWQucmVxdWlyZWQnKTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IHVzZXJJZE1pbmltdW1MZW5ndGgoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLnVzZXIuaWQubWlubGVuZ3RoJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFzc3dvcmRSZXF1aXJlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24ucGFzc3dvcmQucmVxdWlyZWQnKTtcclxuICB9XHJcblxyXG4gIGdldCBjYXB0Y2hhUmVxdWlyZWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLmNhcHRjaGEucmVxdWlyZWQnKTtcclxuICB9XHJcbn1cclxuIiwiPHAtZGlhbG9nIFsodmlzaWJsZSldPVwiZGlzcGxheURpYWxvZ1wiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCI+XHJcbiAgICA8aDQgY2xhc3M9XCJoZWFkaW5nXCI+e3tcImNvbW1vbi5tZXNzYWdlXCIgfCB0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICB7e1wibG9naW4uZm9yZ290LmlkLmFzc2lzdFwiIHwgdHJhbnNsYXRlfX1cclxuICAgIDxkaXYgKm5nSWY9XCJ1dGlsLmlzU3RhdGUoJ01TJylcIj5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaT5FbXBsb3llcnMgbWF5IGNhbGwgNjAxLTQ5My05NDI3PC9saT5cclxuICAgICAgICAgICAgPGxpPkNsYWltYW50cyBtYXkgY2FsbCA2MDEtNDkzLTk0MjcuPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidXRpbC5pc1N0YXRlKCdNRScpXCI+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGk+RW1wbG95ZXJzIG1heSBjYWxsIDIwNy02MjEtNTEyMDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5DbGFpbWFudHMgbWF5IGNhbGwgMS04MDAtNTkzLTc2NjA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gdG9kbzogZ2V0IEtTIG51bWJlci0tPlxyXG4gICAgPGJyIC8+XHJcbiAgICA8cC1mb290ZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJkaXNwbGF5RGlhbG9nID0gIWRpc3BsYXlEaWFsb2dcIiBjb2xvcj1cInN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwiY2xvc2Utc2hhcnBcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3tcImNvbW1vbi5jbG9zZVwiIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9wLWZvb3Rlcj5cclxuPC9wLWRpYWxvZz5cclxuPGFwcC1tZmEyICpuZ0lmPVwiaXNPdHBNb2RhbEVuYWJsZWRcIiBbKGRpc3BsYXkpXT1cImlzT3RwTW9kYWxFbmFibGVkXCIgW3JldHVybmluZ1VzZXJdPVwiaXNSZXR1cm5pbmdVc2VyXCIgW3ZlcmlmaWNhdGlvblByZWZlcmVuY2VdPVwidmVyaWZpY2F0aW9uUHJlZmVyZW5jZVwiIFtzc25dPVwic3NuXCIgKHN1Y2Nlc3MpPVwibG9naW5TdWNjZXNzKClcIiAoY2xlYXIpPVwiZW5hYmxlTGV4aXNOZXhpcygpXCI+PC9hcHAtbWZhMj5cclxuPGFwcC1sZXhpcy1uZXhpcyAqbmdJZj1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFtkaXNwbGF5XT1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFt1c2VyTW9kZWxdID0gXCJ1c2VyTW9kZWxcIiAoc3VjY2Vzcyk9XCJvbkxuU3VjY2VzcygpXCIgKGVycm9yKT1cIm9uTE5FcnJvcigpXCIgKHVzcHMpPVwidHJpZ2dlclVTUFMoKVwiPjwvYXBwLWxleGlzLW5leGlzPlxyXG48YXBwLW1mYS1wb3B1cCBbKGRpc3BsYXkpXT1cInNob3cyRkFEaWFsb2dcIiBbdXNlcl09XCJ1c2VyTW9kZWxcIiBbcmV0dXJuaW5nVXNlcl09XCJpc1JldHVybmluZ1VzZXJcIiBbaGVhZGluZ109XCJtZmFMb2dpbkhlYWRlclwiIChzdWNjZXNzKT1cImxvZ2luU3VjY2VzcygpXCIgKGNsZWFyKT1cImVuYWJsZUxleGlzTmV4aXMoJGV2ZW50KVwiPjwvYXBwLW1mYS1wb3B1cD5cclxuXHJcblxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybVwiICNsb2dpbkZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIiAqbmdJZj1cIiFzaG93Rm9yZ290UGFzc3dvcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgcC1ncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlclByb2ZpbGVJZFwiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eydsb2dpbi51c2VyLmlkJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwidXNlclByb2ZpbGVJZFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBtYXhsZW5ndGg9XCIzMFwiIG1pbmxlbmd0aD1cIjVcIiBbZm9ybUNvbnRyb2xdPVwidXNlcm5hbWVcIj5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSd1c2VybmFtZScgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHVzZXJJZFJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgbWlubGVuZ3RoOiB1c2VySWRNaW5pbXVtTGVuZ3RoXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlclByb2ZpbGVQYXNzd29yZFwiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eydsb2dpbi5wYXNzd29yZC5jYXNlLnNlbnNpdGl2ZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxwLXBhc3N3b3JkIFtmb3JtQ29udHJvbF09XCJwYXNzd29yZFwiIGlucHV0SWQ9XCJ1c2VyUHJvZmlsZVBhc3N3b3JkXCIgW3RvZ2dsZU1hc2tdPSd0cnVlJyBbZmVlZGJhY2tdPSdmYWxzZSc+PC9wLXBhc3N3b3JkPlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3Bhc3N3b3JkJyBbZm9ybV09XCJsb2dpbkZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogcGFzc3dvcmRSZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXN0YXJ0IGlvbi1wYWRkaW5nLWVuZCBpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtOHB4O1wiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICA8YXBwLWNhcHRjaGEgW2Zvcm1Db250cm9sXT1cImNhcHRjaGFcIj48L2FwcC1jYXB0Y2hhPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nY2FwdGNoYScgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgIHJlcXVpcmVkOiBjYXB0Y2hhUmVxdWlyZWRcclxuICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzaWduSW4oKVwiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiBjbGFzcz1cIndoaXRlLWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicG93ZXItb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eydsb2dpbi5sb2dpbicgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJsaW5rXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7XCIgKGNsaWNrKT1cInNob3dEaWFsb2coKVwiIChrZXlkb3duLmVudGVyKT1cInNob3dEaWFsb2coKVwiPnt7J2xvZ2luLnVzZXIuaWQuZm9yZ290JyB8IHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwic2hvd0ZvcmdvdFBhc3N3b3JkID0gIXNob3dGb3Jnb3RQYXNzd29yZFwiIChrZXlkb3duLmVudGVyKT1cInNob3dGb3Jnb3RQYXNzd29yZCA9ICFzaG93Rm9yZ290UGFzc3dvcmRcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIj57eydsb2dpbi5wYXNzd29yZC5mb3Jnb3QnIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2Rpdj5cclxuPC9mb3JtPlxyXG5cclxuPGZvcm0gKm5nSWY9XCJzaG93Rm9yZ290UGFzc3dvcmRcIiBbZm9ybUdyb3VwXT1cInJlc2V0Rm9ybVwiICNyZXNldEZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgcC1ncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlclByb2ZpbGVJZFwiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eydsb2dpbi51c2VyLmlkJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwidXNlclByb2ZpbGVJZFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBtYXhsZW5ndGg9XCIzMFwiIG1pbmxlbmd0aD1cIjVcIiBbZm9ybUNvbnRyb2xdPVwicmVzZXRVc2VybmFtZVwiPlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3Jlc2V0VXNlcm5hbWUnIFtmb3JtXT1cInJlc2V0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgcmVxdWlyZWQ6IHVzZXJJZFJlcXVpcmVkLFxyXG4gICAgICAgICAgICBtaW5sZW5ndGg6IHVzZXJJZE1pbmltdW1MZW5ndGhcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgICAgICA8YXBwLWNhcHRjaGEgW2Zvcm1Db250cm9sXT1cInJlc2V0Q2FwdGNoYVwiPjwvYXBwLWNhcHRjaGE+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncmVzZXRDYXB0Y2hhJyBbZm9ybV09XCJyZXNldEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICByZXF1aXJlZDogY2FwdGNoYVJlcXVpcmVkXHJcbiAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd0ZvcmdvdFBhc3N3b3JkID0gIXNob3dGb3Jnb3RQYXNzd29yZFwiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiBjbGFzcz1cIndoaXRlLWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctYmFjay1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIHt7J2xvZ2luLmxvZ2luJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJpbml0aWF0ZUZvcmdvdFBhc3N3b3JkKClcIiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkPVwie3tyZXNldEZvcm0uaW52YWxpZH19XCIgY2xhc3M9XCJ3aGl0ZS1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cIm1haWwtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eydsb2dpbi5zZW5kLmVtYWlsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgICAgIFxyXG48L2Zvcm0+XHJcblxyXG48cC1kaWFsb2cgW3Zpc2libGVdPVwiaXNVU1BTRXhwaXJlZFwiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG5bYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIj5cclxuICAgIHt7J3VzcHMuZXhwZC5wb3B1cC5oZWFkaW5nJyB8IHRyYW5zbGF0ZX19PGJyLz5cclxuICAgIFxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAge3sndXNwcy5leHBkLnBvcHVwLmNhbmNlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJ0cmlnZ2VyVVNQU0ZvckV4cGlyZWRQcm9jZXNzKClcIj5cclxuICAgICAgICAgIHt7J3VzcHMuZXhwZC5wb3B1cC5wcm9jZXNzJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRpYWxvZz5cclxuXHJcbjxhcHAtZW1haWwtdXBkYXRlIFtlbWFpbF09XCJ1c2VyTW9kZWwuZW1haWxJZFwiICpuZ0lmPVwic2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nXCIgKG9uQ2xvc2UpPVwibG9nb3V0KClcIiAob25TdWNjZXNzKT1cImVtYWlsVmVyaWZpY2F0aW9uU3VjY2VzcygpXCI+PC9hcHAtZW1haWwtdXBkYXRlPiJdfQ==
|
|
@@ -19,13 +19,7 @@ export const LibConstants = {
|
|
|
19
19
|
oauthClientUser: window["env"]["oauthClientUser"] || "mobile",
|
|
20
20
|
oauthClientSecret: window["env"]["oauthClientSecret"] || "pin",
|
|
21
21
|
enableChatbot: window["env"]["enableChatbot"] || 'true',
|
|
22
|
-
|
|
23
|
-
koreAiJwtService: window["env"]["koreAiJwtService"] || "http://localhost:9012/jwt-service/users/sts",
|
|
24
|
-
koreAiChatbotServer: window["env"]["koreAiChatbotServer"] || "http://stchatbot.mdes.ms.gov:8081/api/",
|
|
25
|
-
koreAiClientId: window["env"]["koreAiClientId"] || "cs-fdc968c6-eb64-5c9a-a784-1d47d0a6f94b",
|
|
26
|
-
koreAiClientSecret: window["env"]["koreAiClientSecret"] || "+Y10D8ys3jO+espPHarfGP2CbtFHELYvRCZkzs/yZMk=",
|
|
27
|
-
koreAiBotId: window["env"]["koreAiBotId"] || "st-1c88bdf7-ae3c-5f33-8120-1a838c1abbb1",
|
|
28
|
-
koreAiBotName: window["env"]["koreAiBotName"] || "ReEmployMSChat",
|
|
22
|
+
chatbotLambdaUrl: window["env"]["chatbotLambdaUrl"] || "https://lcj379ydk0.execute-api.us-east-1.amazonaws.com/sit/chat",
|
|
29
23
|
blankString: '',
|
|
30
24
|
forwardSlash: '/',
|
|
31
25
|
doubleForwardSlash: '//',
|
|
@@ -129,4 +123,4 @@ export function getBaseUrl() {
|
|
|
129
123
|
LibConstants.colon +
|
|
130
124
|
LibConstants.port;
|
|
131
125
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGliQ29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9tb2RlbHMvTGliQ29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUs7SUFDaEQsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO0lBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztJQUM1QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07SUFDdEMsT0FBTyxFQUFHLGtCQUFrQjtJQUM1QixLQUFLLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVM7SUFDM0MsS0FBSyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTO0lBQzNDLFdBQVcsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksU0FBUztJQUN2RCxtQkFBbUIsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQUMsSUFBSSxTQUFTO0lBQ3ZFLFVBQVUsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUztJQUNyRCxNQUFNLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVM7SUFDN0MsY0FBYyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVM7SUFDN0QsU0FBUyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxTQUFTO0lBQ25ELElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksZ0JBQWdCO0lBQ2hELFVBQVUsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksV0FBVztJQUN2RCxhQUFhLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLGdCQUFnQjtJQUNsRSxTQUFTLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQWM7SUFDeEQsZUFBZSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQVE7SUFDOUQsaUJBQWlCLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksS0FBSztJQUMvRCxhQUFhLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLE1BQU07SUFFdkQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUF1QjtJQUM1RSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSw2Q0FBNkM7SUFDcEcsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksd0NBQXdDO0lBQ3JHLGNBQWMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSx5Q0FBeUM7SUFDNUYsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksOENBQThDO0lBQ3pHLFdBQVcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUkseUNBQXlDO0lBQ3RGLGFBQWEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksZ0JBQWdCO0lBRWpFLFdBQVcsRUFBSSxFQUFFO0lBQ2pCLFlBQVksRUFBSSxHQUFHO0lBQ25CLGtCQUFrQixFQUFJLElBQUk7SUFDMUIsS0FBSyxFQUFJLEdBQUc7SUFDWixvQkFBb0IsRUFBSTtRQUN0QixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUcsMEJBQTBCO0tBQ3JDO0lBQ0QsV0FBVyxFQUFHO1FBQ1osUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFHLGFBQWE7S0FDeEI7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsdUJBQXVCO0tBQ2pDO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTTtRQUMvQyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFDdEMsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxXQUFXO1FBQzVDLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsa0JBQWtCO0tBQzVCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFFLGFBQWE7S0FDdkI7SUFDRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFFLGtCQUFrQjtLQUM1QjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTTtRQUMvQyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFDdEMsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxXQUFXO1FBQzVDLE9BQU8sRUFBRSxtQkFBbUI7S0FDN0I7SUFDRCxZQUFZLEVBQUU7UUFDWixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUVELGtCQUFrQixFQUFFO1FBQ2xCLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTTtRQUMvQyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFDdEMsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxXQUFXO1FBQzVDLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFFRCxtQkFBbUIsRUFBRTtRQUNuQixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUscUJBQXFCO0tBRS9CO0lBQ0QsY0FBYyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLDBDQUEwQztJQUM3RixtQkFBbUIsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQUMsSUFBSSwwQ0FBMEM7SUFDeEcsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksT0FBTztJQUN0RSxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHNCQUFzQjtJQUMvRCxVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU87SUFDbEQsY0FBYyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ2hQLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRztJQUMzQyxhQUFhLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUc7SUFDckQsNkJBQTZCLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLCtCQUErQixDQUFDLElBQUksTUFBTTtJQUN4RixxQkFBcUIsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxNQUFNO0lBQ3hFLDBCQUEwQixFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLE1BQU07SUFDakYsc0NBQXNDLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLHdDQUF3QyxDQUFDLElBQUksTUFBTTtDQUM1RyxDQUFBO0FBRUQsTUFBTSxVQUFVLFVBQVU7SUFDdEIsT0FBTyxZQUFZLENBQUMsUUFBUTtRQUNyQixZQUFZLENBQUMsS0FBSztRQUNsQixZQUFZLENBQUMsa0JBQWtCO1FBQy9CLFlBQVksQ0FBQyxJQUFJO1FBQ2pCLFlBQVksQ0FBQyxLQUFLO1FBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBMaWJDb25zdGFudHMgPSB7XHJcbiAgICBwcm9kdWN0aW9uOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm9kdWN0aW9uXCJdIHx8IGZhbHNlLFxyXG4gICAgcHJvdG9jb2wgOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIsXHJcbiAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgIHBvcnQgOiB3aW5kb3dbXCJlbnZcIl1bXCJwb3J0XCJdIHx8IFwiOTAxMFwiLFxyXG4gICAgY29udGV4dCA6IFwic2VjdXJpdHktc2VydmljZVwiLFxyXG4gICAgU1RBVEUgOiB3aW5kb3dbXCJlbnZcIl1bXCJTVEFURVwiXSB8fCBcImludmFsaWRcIixcclxuICAgIHN0YXRlIDogd2luZG93W1wiZW52XCJdW1wic3RhdGVcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBiZW5lZml0c1VybCA6IHdpbmRvd1tcImVudlwiXVtcImJlbmVmaXRzVXJsXCJdIHx8IFwiaW52YWxpZFwiLFxyXG4gICAgYmVuZWZpdHNVcmxFeHRlcm5hbCA6IHdpbmRvd1tcImVudlwiXVtcImJlbmVmaXRzVXJsRXh0ZXJuYWxcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBtc3dvcmtzVXJsIDogd2luZG93W1wiZW52XCJdW1wibXN3b3Jrc1VybFwiXSB8fCBcImludmFsaWRcIixcclxuICAgIHRheFVybCA6IHdpbmRvd1tcImVudlwiXVtcInRheFVybFwiXSB8fCBcImludmFsaWRcIixcclxuICAgIHRheFVybEV4dGVybmFsIDogd2luZG93W1wiZW52XCJdW1widGF4VXJsRXh0ZXJuYWxcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBjb2dub3NVcmwgOiB3aW5kb3dbXCJlbnZcIl1bXCJjb2dub3NVcmxcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBnYUlkIDogd2luZG93W1wiZW52XCJdW1wiZ2FJZFwiXSB8fCBcIlVBLTE3ODYzNzk1MC0xXCIsXHJcbiAgICBhcHBWZXJzaW9uIDogd2luZG93W1wiZW52XCJdW1wiYXBwVmVyc2lvblwiXSB8fCBcImxvY2FsaG9zdFwiLFxyXG4gICAgc3NvQ29va2llTmFtZSA6IHdpbmRvd1tcImVudlwiXVtcInNzb0Nvb2tpZU5hbWVcIl0gfHwgXCJTU09fQ09PS0lFX0RFVlwiLFxyXG4gICAgc3NvRG9tYWluIDogd2luZG93W1wiZW52XCJdW1wic3NvRG9tYWluXCJdIHx8IFwiLm1kZXMubXMuZ292XCIsXHJcbiAgICBvYXV0aENsaWVudFVzZXIgOiB3aW5kb3dbXCJlbnZcIl1bXCJvYXV0aENsaWVudFVzZXJcIl0gfHwgXCJtb2JpbGVcIixcclxuICAgIG9hdXRoQ2xpZW50U2VjcmV0IDogd2luZG93W1wiZW52XCJdW1wib2F1dGhDbGllbnRTZWNyZXRcIl0gfHwgXCJwaW5cIixcclxuICAgIGVuYWJsZUNoYXRib3Q6IHdpbmRvd1tcImVudlwiXVtcImVuYWJsZUNoYXRib3RcIl0gfHwgJ3RydWUnLFxyXG4gICAgXHJcbiAgICBrb3JlQWlXZWJTZGtVcmw6IHdpbmRvd1tcImVudlwiXVtcImtvcmVBaVdlYlNka1VybFwiXSB8fCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MFwiLFxyXG4gICAga29yZUFpSnd0U2VydmljZTogd2luZG93W1wiZW52XCJdW1wia29yZUFpSnd0U2VydmljZVwiXSB8fCBcImh0dHA6Ly9sb2NhbGhvc3Q6OTAxMi9qd3Qtc2VydmljZS91c2Vycy9zdHNcIixcclxuICAgIGtvcmVBaUNoYXRib3RTZXJ2ZXI6IHdpbmRvd1tcImVudlwiXVtcImtvcmVBaUNoYXRib3RTZXJ2ZXJcIl0gfHwgXCJodHRwOi8vc3RjaGF0Ym90Lm1kZXMubXMuZ292OjgwODEvYXBpL1wiLFxyXG4gICAga29yZUFpQ2xpZW50SWQ6IHdpbmRvd1tcImVudlwiXVtcImtvcmVBaUNsaWVudElkXCJdIHx8IFwiY3MtZmRjOTY4YzYtZWI2NC01YzlhLWE3ODQtMWQ0N2QwYTZmOTRiXCIsXHJcbiAgICBrb3JlQWlDbGllbnRTZWNyZXQ6IHdpbmRvd1tcImVudlwiXVtcImtvcmVBaUNsaWVudFNlY3JldFwiXSB8fCBcIitZMTBEOHlzM2pPK2VzcFBIYXJmR1AyQ2J0RkhFTFl2UkNaa3pzL3laTWs9XCIsXHJcbiAgICBrb3JlQWlCb3RJZDogd2luZG93W1wiZW52XCJdW1wia29yZUFpQm90SWRcIl0gfHwgXCJzdC0xYzg4YmRmNy1hZTNjLTVmMzMtODEyMC0xYTgzOGMxYWJiYjFcIixcclxuICAgIGtvcmVBaUJvdE5hbWU6IHdpbmRvd1tcImVudlwiXVtcImtvcmVBaUJvdE5hbWVcIl0gfHwgXCJSZUVtcGxveU1TQ2hhdFwiLFxyXG4gICAgXHJcbiAgICBibGFua1N0cmluZyA6ICAnJyxcclxuICAgIGZvcndhcmRTbGFzaCA6ICAnLycsXHJcbiAgICBkb3VibGVGb3J3YXJkU2xhc2ggOiAgJy8vJyxcclxuICAgIGNvbG9uIDogIFwiOlwiLFxyXG4gICAgbm90aWZpY2F0aW9uX3NlcnZpY2UgOiAge1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MDExXCIsXHJcbiAgICAgIGhvc3QgOiB3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8ICBcImxvY2FsaG9zdFwiLFxyXG4gICAgICBjb250ZXh0IDogXCJ1c2Vybm90aWZpY2F0aW9uLXNlcnZpY2VcIlxyXG4gICAgfSxcclxuICAgIGRtc19zZXJ2aWNlIDoge1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MDE5XCIsXHJcbiAgICAgIGhvc3QgOiB3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8ICBcImxvY2FsaG9zdFwiLFxyXG4gICAgICBjb250ZXh0IDogXCJkbXMtc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgcXVlc3Rpb25uYWlyZV9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMDlcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwicXVlc3Rpb25uYWlyZS1zZXJ2aWNlXCJcclxuICAgIH0sXHJcbiAgICBjbGFpbXNfc2VydmljZSA6e1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MDE1XCIsXHJcbiAgICAgIGhvc3QgOiB3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8ICBcImxvY2FsaG9zdFwiLFxyXG4gICAgICBjb250ZXh0IDpcImNsYWltcy1zZXJ2aWNlXCJcclxuICAgIH0sXHJcbiAgICBlbXBsb3llcl9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMjFcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwiZW1wbG95ZXItc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgY2xhaW1hbnRfc2VydmljZSA6e1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MDIzXCIsXHJcbiAgICAgIGhvc3QgOiB3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8ICBcImxvY2FsaG9zdFwiLFxyXG4gICAgICBjb250ZXh0IDpcImNsYWltYW50LXNlcnZpY2VcIlxyXG4gICAgfSxcclxuICAgIGNtcF9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwNTFcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwiY21wLXNlcnZpY2VcIlxyXG4gICAgfSxcclxuICAgIHBvbGxpbmdfc2VydmljZSA6e1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MTM1XCIsXHJcbiAgICAgIGhvc3QgOiB3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8ICBcImxvY2FsaG9zdFwiLFxyXG4gICAgICBjb250ZXh0IDpcInBvbGxpbmctc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgc2VjdXJpdHlfc2VydmljZSA6e1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MDEwXCIsXHJcbiAgICAgIGhvc3QgOiB3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8ICBcImxvY2FsaG9zdFwiLFxyXG4gICAgICBjb250ZXh0IDpcInNlY3VyaXR5LXNlcnZpY2VcIlxyXG4gICAgfSxcclxuICAgIGRhc2hib2FyZF9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMTdcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwiZGFzaGJvYXJkLXNlcnZpY2VcIlxyXG4gICAgfSxcclxuICAgIGNhc2Vfc2VydmljZSA6e1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MDUyXCIsIFxyXG4gICAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgICAgY29udGV4dCA6XCJjYXNlLXNlcnZpY2VcIlxyXG4gICAgfSxcclxuXHJcbiAgICB3ZWVrbHljZXJ0X3NlcnZpY2UgOntcclxuICAgICAgcHJvdG9jb2wgOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIsXHJcbiAgICAgIHBvcnQgOiB3aW5kb3dbXCJlbnZcIl1bXCJwb3J0XCJdIHx8IFwiOTAxOFwiLFxyXG4gICAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgICAgY29udGV4dCA6XCJ3ZWVrbHljZXJ0LXNlcnZpY2VcIlxyXG4gICAgfSxcclxuXHJcbiAgICBvdmVycGF5bWVudF9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMjVcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwib3ZlcnBheW1lbnQtc2VydmljZVwiXHJcblxyXG4gICAgfSxcclxuICAgIGNhcHRjaGFTaXRlS2V5OiB3aW5kb3dbXCJlbnZcIl1bXCJjYXB0Y2hhU2l0ZUtleVwiXSB8fCBcIjZMZUw3UlVwQUFBQUFFVzNZNzdUUlBHWWVuWjVlb0x6ZVNtMkhkb1dcIixcclxuICAgIGludmlzaWJsZUNhcHRjaGFLZXkgOiB3aW5kb3dbXCJlbnZcIl1bXCJpbnZpc2libGVDYXB0Y2hhS2V5XCJdIHx8IFwiNkxlaDdCVXBBQUFBQU9EZWdXWXMxV2E2OFlVeGhLai05UXJQOHZqN1wiLFxyXG4gICAgZW5hYmxlRmluZ2VycHJpbnRpbmc6IHdpbmRvd1tcImVudlwiXVtcImVuYWJsZUZpbmdlcnByaW50aW5nXCJdIHx8ICdmYWxzZScsXHJcbiAgICBmcGpzVG9rZW46IHdpbmRvd1tcImVudlwiXVtcImZwanNUb2tlblwiXSB8fCBcIm1BREhReHcxQktXcWJOdzhqeWxXXCIsXHJcbiAgICBsZWdhY3lNZW51OiB3aW5kb3dbXCJlbnZcIl1bXCJsZWdhY3lNZW51XCJdIHx8IFwiZmFsc2VcIixcclxuICAgIG1haW50ZW5hbmNlVXJsIDogd2luZG93W1wiZW52XCJdW1wibWFpbnRlbmFuY2VVcmxcIl0gfHwgKCh3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIpICsgXCI6Ly9cIiArICh3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8IFwibG9jYWxob3N0XCIpICsgXCI6XCIgKyAod2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCAgXCI5MDExXCIpICsgXCIvXCIgKyAoXCJ1c2Vybm90aWZpY2F0aW9uLXNlcnZpY2UvbWFpbnRlbmFuY2Uvc3RhdHVzXCIpKSxcclxuICAgIGlkbGVUaW1lIDogd2luZG93W1wiZW52XCJdW1wiaWRsZVRpbWVcIl0gfHwgMTgwLFxyXG4gICAgdGltZU91dFBlcmlvZCA6IHdpbmRvd1tcImVudlwiXVtcInRpbWVPdXRQZXJpb2RcIl0gfHwgMTIwLFxyXG4gICAgbWFpbnRlbmFuY2VNb2RlRmVhdHVyZUVuYWJsZWQgOiB3aW5kb3dbXCJlbnZcIl1bXCJtYWludGVuYW5jZU1vZGVGZWF0dXJlRW5hYmxlZFwiXSB8fCBcInRydWVcIixcclxuICAgIGVuYWJsZU11bHRpTWZhT3B0aW9ucyA6IHdpbmRvd1tcImVudlwiXVtcImVuYWJsZU11bHRpTWZhT3B0aW9uc1wiXSB8fCBcInRydWVcIixcclxuICAgIGlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkIDogd2luZG93W1wiZW52XCJdW1wiaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRcIl0gfHwgXCJ0cnVlXCIsXHJcblx0ICAgIGlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5IDogd2luZG93W1wiZW52XCJdW1wiaXNTYW1lU3ltYm9sUG9saWN5Rm9yQ2xhaW1hbnRBbmRBZ2VuY3lcIl0gfHwgXCJ0cnVlXCIsXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0QmFzZVVybCgpe1xyXG4gICAgICByZXR1cm4gTGliQ29uc3RhbnRzLnByb3RvY29sICsgXHJcbiAgICAgICAgICAgICBMaWJDb25zdGFudHMuY29sb24gKyBcclxuICAgICAgICAgICAgIExpYkNvbnN0YW50cy5kb3VibGVGb3J3YXJkU2xhc2ggK1xyXG4gICAgICAgICAgICAgTGliQ29uc3RhbnRzLmhvc3QgKyBcclxuICAgICAgICAgICAgIExpYkNvbnN0YW50cy5jb2xvbiArIFxyXG4gICAgICAgICAgICAgTGliQ29uc3RhbnRzLnBvcnQ7XHJcbiAgfVxyXG5cclxuICAiXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGliQ29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9tb2RlbHMvTGliQ29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUs7SUFDaEQsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO0lBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztJQUM1QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07SUFDdEMsT0FBTyxFQUFHLGtCQUFrQjtJQUM1QixLQUFLLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVM7SUFDM0MsS0FBSyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTO0lBQzNDLFdBQVcsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksU0FBUztJQUN2RCxtQkFBbUIsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQUMsSUFBSSxTQUFTO0lBQ3ZFLFVBQVUsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUztJQUNyRCxNQUFNLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVM7SUFDN0MsY0FBYyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVM7SUFDN0QsU0FBUyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxTQUFTO0lBQ25ELElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksZ0JBQWdCO0lBQ2hELFVBQVUsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksV0FBVztJQUN2RCxhQUFhLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLGdCQUFnQjtJQUNsRSxTQUFTLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQWM7SUFDeEQsZUFBZSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQVE7SUFDOUQsaUJBQWlCLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksS0FBSztJQUMvRCxhQUFhLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLE1BQU07SUFDdkQsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksaUVBQWlFO0lBRXhILFdBQVcsRUFBSSxFQUFFO0lBQ2pCLFlBQVksRUFBSSxHQUFHO0lBQ25CLGtCQUFrQixFQUFJLElBQUk7SUFDMUIsS0FBSyxFQUFJLEdBQUc7SUFDWixvQkFBb0IsRUFBSTtRQUN0QixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUcsMEJBQTBCO0tBQ3JDO0lBQ0QsV0FBVyxFQUFHO1FBQ1osUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFHLGFBQWE7S0FDeEI7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsdUJBQXVCO0tBQ2pDO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTTtRQUMvQyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFDdEMsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxXQUFXO1FBQzVDLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsa0JBQWtCO0tBQzVCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFFLGFBQWE7S0FDdkI7SUFDRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSyxNQUFNO1FBQy9DLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTTtRQUN0QyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFLLFdBQVc7UUFDNUMsT0FBTyxFQUFFLGtCQUFrQjtLQUM1QjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTTtRQUMvQyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFDdEMsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxXQUFXO1FBQzVDLE9BQU8sRUFBRSxtQkFBbUI7S0FDN0I7SUFDRCxZQUFZLEVBQUU7UUFDWixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUVELGtCQUFrQixFQUFFO1FBQ2xCLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTTtRQUMvQyxJQUFJLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFDdEMsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxXQUFXO1FBQzVDLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFFRCxtQkFBbUIsRUFBRTtRQUNuQixRQUFRLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFLLE1BQU07UUFDL0MsSUFBSSxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNO1FBQ3RDLElBQUksRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssV0FBVztRQUM1QyxPQUFPLEVBQUUscUJBQXFCO0tBRS9CO0lBQ0QsY0FBYyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLDBDQUEwQztJQUM3RixtQkFBbUIsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQUMsSUFBSSwwQ0FBMEM7SUFDeEcsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksT0FBTztJQUN0RSxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHNCQUFzQjtJQUMvRCxVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU87SUFDbEQsY0FBYyxFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUssTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ2hQLFFBQVEsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRztJQUMzQyxhQUFhLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUc7SUFDckQsNkJBQTZCLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLCtCQUErQixDQUFDLElBQUksTUFBTTtJQUN4RixxQkFBcUIsRUFBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxNQUFNO0lBQ3hFLDBCQUEwQixFQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLE1BQU07SUFDakYsc0NBQXNDLEVBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLHdDQUF3QyxDQUFDLElBQUksTUFBTTtDQUM1RyxDQUFBO0FBRUQsTUFBTSxVQUFVLFVBQVU7SUFDdEIsT0FBTyxZQUFZLENBQUMsUUFBUTtRQUNyQixZQUFZLENBQUMsS0FBSztRQUNsQixZQUFZLENBQUMsa0JBQWtCO1FBQy9CLFlBQVksQ0FBQyxJQUFJO1FBQ2pCLFlBQVksQ0FBQyxLQUFLO1FBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBMaWJDb25zdGFudHMgPSB7XHJcbiAgICBwcm9kdWN0aW9uOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm9kdWN0aW9uXCJdIHx8IGZhbHNlLFxyXG4gICAgcHJvdG9jb2wgOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIsXHJcbiAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgIHBvcnQgOiB3aW5kb3dbXCJlbnZcIl1bXCJwb3J0XCJdIHx8IFwiOTAxMFwiLFxyXG4gICAgY29udGV4dCA6IFwic2VjdXJpdHktc2VydmljZVwiLFxyXG4gICAgU1RBVEUgOiB3aW5kb3dbXCJlbnZcIl1bXCJTVEFURVwiXSB8fCBcImludmFsaWRcIixcclxuICAgIHN0YXRlIDogd2luZG93W1wiZW52XCJdW1wic3RhdGVcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBiZW5lZml0c1VybCA6IHdpbmRvd1tcImVudlwiXVtcImJlbmVmaXRzVXJsXCJdIHx8IFwiaW52YWxpZFwiLFxyXG4gICAgYmVuZWZpdHNVcmxFeHRlcm5hbCA6IHdpbmRvd1tcImVudlwiXVtcImJlbmVmaXRzVXJsRXh0ZXJuYWxcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBtc3dvcmtzVXJsIDogd2luZG93W1wiZW52XCJdW1wibXN3b3Jrc1VybFwiXSB8fCBcImludmFsaWRcIixcclxuICAgIHRheFVybCA6IHdpbmRvd1tcImVudlwiXVtcInRheFVybFwiXSB8fCBcImludmFsaWRcIixcclxuICAgIHRheFVybEV4dGVybmFsIDogd2luZG93W1wiZW52XCJdW1widGF4VXJsRXh0ZXJuYWxcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBjb2dub3NVcmwgOiB3aW5kb3dbXCJlbnZcIl1bXCJjb2dub3NVcmxcIl0gfHwgXCJpbnZhbGlkXCIsXHJcbiAgICBnYUlkIDogd2luZG93W1wiZW52XCJdW1wiZ2FJZFwiXSB8fCBcIlVBLTE3ODYzNzk1MC0xXCIsXHJcbiAgICBhcHBWZXJzaW9uIDogd2luZG93W1wiZW52XCJdW1wiYXBwVmVyc2lvblwiXSB8fCBcImxvY2FsaG9zdFwiLFxyXG4gICAgc3NvQ29va2llTmFtZSA6IHdpbmRvd1tcImVudlwiXVtcInNzb0Nvb2tpZU5hbWVcIl0gfHwgXCJTU09fQ09PS0lFX0RFVlwiLFxyXG4gICAgc3NvRG9tYWluIDogd2luZG93W1wiZW52XCJdW1wic3NvRG9tYWluXCJdIHx8IFwiLm1kZXMubXMuZ292XCIsXHJcbiAgICBvYXV0aENsaWVudFVzZXIgOiB3aW5kb3dbXCJlbnZcIl1bXCJvYXV0aENsaWVudFVzZXJcIl0gfHwgXCJtb2JpbGVcIixcclxuICAgIG9hdXRoQ2xpZW50U2VjcmV0IDogd2luZG93W1wiZW52XCJdW1wib2F1dGhDbGllbnRTZWNyZXRcIl0gfHwgXCJwaW5cIixcclxuICAgIGVuYWJsZUNoYXRib3Q6IHdpbmRvd1tcImVudlwiXVtcImVuYWJsZUNoYXRib3RcIl0gfHwgJ3RydWUnLFxyXG4gICAgY2hhdGJvdExhbWJkYVVybDogd2luZG93W1wiZW52XCJdW1wiY2hhdGJvdExhbWJkYVVybFwiXSB8fCBcImh0dHBzOi8vbGNqMzc5eWRrMC5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9zaXQvY2hhdFwiLFxyXG5cclxuICAgIGJsYW5rU3RyaW5nIDogICcnLFxyXG4gICAgZm9yd2FyZFNsYXNoIDogICcvJyxcclxuICAgIGRvdWJsZUZvcndhcmRTbGFzaCA6ICAnLy8nLFxyXG4gICAgY29sb24gOiAgXCI6XCIsXHJcbiAgICBub3RpZmljYXRpb25fc2VydmljZSA6ICB7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMTFcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOiBcInVzZXJub3RpZmljYXRpb24tc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgZG1zX3NlcnZpY2UgOiB7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMTlcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOiBcImRtcy1zZXJ2aWNlXCJcclxuICAgIH0sXHJcbiAgICBxdWVzdGlvbm5haXJlX3NlcnZpY2UgOntcclxuICAgICAgcHJvdG9jb2wgOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIsXHJcbiAgICAgIHBvcnQgOiB3aW5kb3dbXCJlbnZcIl1bXCJwb3J0XCJdIHx8IFwiOTAwOVwiLFxyXG4gICAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgICAgY29udGV4dCA6XCJxdWVzdGlvbm5haXJlLXNlcnZpY2VcIlxyXG4gICAgfSxcclxuICAgIGNsYWltc19zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMTVcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwiY2xhaW1zLXNlcnZpY2VcIlxyXG4gICAgfSxcclxuICAgIGVtcGxveWVyX3NlcnZpY2UgOntcclxuICAgICAgcHJvdG9jb2wgOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIsXHJcbiAgICAgIHBvcnQgOiB3aW5kb3dbXCJlbnZcIl1bXCJwb3J0XCJdIHx8IFwiOTAyMVwiLFxyXG4gICAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgICAgY29udGV4dCA6XCJlbXBsb3llci1zZXJ2aWNlXCJcclxuICAgIH0sXHJcbiAgICBjbGFpbWFudF9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMjNcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwiY2xhaW1hbnQtc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgY21wX3NlcnZpY2UgOntcclxuICAgICAgcHJvdG9jb2wgOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIsXHJcbiAgICAgIHBvcnQgOiB3aW5kb3dbXCJlbnZcIl1bXCJwb3J0XCJdIHx8IFwiOTA1MVwiLFxyXG4gICAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgICAgY29udGV4dCA6XCJjbXAtc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgcG9sbGluZ19zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkxMzVcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwicG9sbGluZy1zZXJ2aWNlXCJcclxuICAgIH0sXHJcbiAgICBzZWN1cml0eV9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMTBcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwic2VjdXJpdHktc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgZGFzaGJvYXJkX3NlcnZpY2UgOntcclxuICAgICAgcHJvdG9jb2wgOiB3aW5kb3dbXCJlbnZcIl1bXCJwcm90b2NvbFwiXSB8fCAgXCJodHRwXCIsXHJcbiAgICAgIHBvcnQgOiB3aW5kb3dbXCJlbnZcIl1bXCJwb3J0XCJdIHx8IFwiOTAxN1wiLFxyXG4gICAgICBob3N0IDogd2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCAgXCJsb2NhbGhvc3RcIixcclxuICAgICAgY29udGV4dCA6XCJkYXNoYm9hcmQtc2VydmljZVwiXHJcbiAgICB9LFxyXG4gICAgY2FzZV9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwNTJcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwiY2FzZS1zZXJ2aWNlXCJcclxuICAgIH0sXHJcblxyXG4gICAgd2Vla2x5Y2VydF9zZXJ2aWNlIDp7XHJcbiAgICAgIHByb3RvY29sIDogd2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiLFxyXG4gICAgICBwb3J0IDogd2luZG93W1wiZW52XCJdW1wicG9ydFwiXSB8fCBcIjkwMThcIixcclxuICAgICAgaG9zdCA6IHdpbmRvd1tcImVudlwiXVtcImhvc3RcIl0gfHwgIFwibG9jYWxob3N0XCIsXHJcbiAgICAgIGNvbnRleHQgOlwid2Vla2x5Y2VydC1zZXJ2aWNlXCJcclxuICAgIH0sXHJcblxyXG4gICAgb3ZlcnBheW1lbnRfc2VydmljZSA6e1xyXG4gICAgICBwcm90b2NvbCA6IHdpbmRvd1tcImVudlwiXVtcInByb3RvY29sXCJdIHx8ICBcImh0dHBcIixcclxuICAgICAgcG9ydCA6IHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgXCI5MDI1XCIsXHJcbiAgICAgIGhvc3QgOiB3aW5kb3dbXCJlbnZcIl1bXCJob3N0XCJdIHx8ICBcImxvY2FsaG9zdFwiLFxyXG4gICAgICBjb250ZXh0IDpcIm92ZXJwYXltZW50LXNlcnZpY2VcIlxyXG5cclxuICAgIH0sXHJcbiAgICBjYXB0Y2hhU2l0ZUtleTogd2luZG93W1wiZW52XCJdW1wiY2FwdGNoYVNpdGVLZXlcIl0gfHwgXCI2TGVMN1JVcEFBQUFBRVczWTc3VFJQR1llblo1ZW9MemVTbTJIZG9XXCIsXHJcbiAgICBpbnZpc2libGVDYXB0Y2hhS2V5IDogd2luZG93W1wiZW52XCJdW1wiaW52aXNpYmxlQ2FwdGNoYUtleVwiXSB8fCBcIjZMZWg3QlVwQUFBQUFPRGVnV1lzMVdhNjhZVXhoS2otOVFyUDh2ajdcIixcclxuICAgIGVuYWJsZUZpbmdlcnByaW50aW5nOiB3aW5kb3dbXCJlbnZcIl1bXCJlbmFibGVGaW5nZXJwcmludGluZ1wiXSB8fCAnZmFsc2UnLFxyXG4gICAgZnBqc1Rva2VuOiB3aW5kb3dbXCJlbnZcIl1bXCJmcGpzVG9rZW5cIl0gfHwgXCJtQURIUXh3MUJLV3FiTnc4anlsV1wiLFxyXG4gICAgbGVnYWN5TWVudTogd2luZG93W1wiZW52XCJdW1wibGVnYWN5TWVudVwiXSB8fCBcImZhbHNlXCIsXHJcbiAgICBtYWludGVuYW5jZVVybCA6IHdpbmRvd1tcImVudlwiXVtcIm1haW50ZW5hbmNlVXJsXCJdIHx8ICgod2luZG93W1wiZW52XCJdW1wicHJvdG9jb2xcIl0gfHwgIFwiaHR0cFwiKSArIFwiOi8vXCIgKyAod2luZG93W1wiZW52XCJdW1wiaG9zdFwiXSB8fCBcImxvY2FsaG9zdFwiKSArIFwiOlwiICsgKHdpbmRvd1tcImVudlwiXVtcInBvcnRcIl0gfHwgIFwiOTAxMVwiKSArIFwiL1wiICsgKFwidXNlcm5vdGlmaWNhdGlvbi1zZXJ2aWNlL21haW50ZW5hbmNlL3N0YXR1c1wiKSksXHJcbiAgICBpZGxlVGltZSA6IHdpbmRvd1tcImVudlwiXVtcImlkbGVUaW1lXCJdIHx8IDE4MCxcclxuICAgIHRpbWVPdXRQZXJpb2QgOiB3aW5kb3dbXCJlbnZcIl1bXCJ0aW1lT3V0UGVyaW9kXCJdIHx8IDEyMCxcclxuICAgIG1haW50ZW5hbmNlTW9kZUZlYXR1cmVFbmFibGVkIDogd2luZG93W1wiZW52XCJdW1wibWFpbnRlbmFuY2VNb2RlRmVhdHVyZUVuYWJsZWRcIl0gfHwgXCJ0cnVlXCIsXHJcbiAgICBlbmFibGVNdWx0aU1mYU9wdGlvbnMgOiB3aW5kb3dbXCJlbnZcIl1bXCJlbmFibGVNdWx0aU1mYU9wdGlvbnNcIl0gfHwgXCJ0cnVlXCIsXHJcbiAgICBpc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZCA6IHdpbmRvd1tcImVudlwiXVtcImlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkXCJdIHx8IFwidHJ1ZVwiLFxyXG5cdCAgICBpc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeSA6IHdpbmRvd1tcImVudlwiXVtcImlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5XCJdIHx8IFwidHJ1ZVwiLFxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VVcmwoKXtcclxuICAgICAgcmV0dXJuIExpYkNvbnN0YW50cy5wcm90b2NvbCArXHJcbiAgICAgICAgICAgICBMaWJDb25zdGFudHMuY29sb24gK1xyXG4gICAgICAgICAgICAgTGliQ29uc3RhbnRzLmRvdWJsZUZvcndhcmRTbGFzaCArXHJcbiAgICAgICAgICAgICBMaWJDb25zdGFudHMuaG9zdCArXHJcbiAgICAgICAgICAgICBMaWJDb25zdGFudHMuY29sb24gK1xyXG4gICAgICAgICAgICAgTGliQ29uc3RhbnRzLnBvcnQ7XHJcbiAgfVxyXG5cclxuIl19
|