visorus-erp-core 17.0.1 → 17.1.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.
@@ -6,71 +6,62 @@ import * as i1 from "./login-modal.service";
6
6
  import * as i2 from "../../services/auth.service";
7
7
  import * as i3 from "@angular/common";
8
8
  import * as i4 from "@angular/forms";
9
- import * as i5 from "@ngx-translate/core";
10
- function LoginModalComponent_div_6_label_4_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵelementStart(0, "label", 19);
12
- i0.ɵɵtext(1);
13
- i0.ɵɵpipe(2, "translate");
9
+ import * as i5 from "primeng/dialog";
10
+ const _c0 = () => ({ width: "50vw" });
11
+ const _c1 = () => ({ "960px": "75vw", "640px": "90vw" });
12
+ function LoginModalComponent_div_3_label_4_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵelementStart(0, "label", 16);
14
+ i0.ɵɵtext(1, "Usuario o contrase\u00F1a incorrectos");
14
15
  i0.ɵɵelementEnd();
15
- } if (rf & 2) {
16
- i0.ɵɵadvance();
17
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Usuario.errorLogin"));
18
16
  } }
19
- function LoginModalComponent_div_6_Template(rf, ctx) { if (rf & 1) {
17
+ function LoginModalComponent_div_3_Template(rf, ctx) { if (rf & 1) {
20
18
  const _r1 = i0.ɵɵgetCurrentView();
21
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 10)(2, "form", 11, 0);
22
- i0.ɵɵlistener("ngSubmit", function LoginModalComponent_div_6_Template_form_ngSubmit_2_listener() { i0.ɵɵrestoreView(_r1); const datoForm_r2 = i0.ɵɵreference(3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.entrar(datoForm_r2)); });
23
- i0.ɵɵtemplate(4, LoginModalComponent_div_6_label_4_Template, 3, 3, "label", 12);
24
- i0.ɵɵelementStart(5, "div", 13)(6, "label", 14);
25
- i0.ɵɵtext(7);
26
- i0.ɵɵpipe(8, "translate");
19
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "form", 8, 0);
20
+ i0.ɵɵlistener("ngSubmit", function LoginModalComponent_div_3_Template_form_ngSubmit_2_listener() { i0.ɵɵrestoreView(_r1); const datoForm_r2 = i0.ɵɵreference(3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.entrar(datoForm_r2)); });
21
+ i0.ɵɵtemplate(4, LoginModalComponent_div_3_label_4_Template, 2, 0, "label", 9);
22
+ i0.ɵɵelementStart(5, "div", 10)(6, "label", 11);
23
+ i0.ɵɵtext(7, "Usuario");
27
24
  i0.ɵɵelementEnd();
28
- i0.ɵɵelementStart(9, "input", 15, 1);
29
- i0.ɵɵpipe(11, "translate");
30
- i0.ɵɵtwoWayListener("ngModelChange", function LoginModalComponent_div_6_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.user.username, $event) || (ctx_r2.user.username = $event); return i0.ɵɵresetView($event); });
25
+ i0.ɵɵelementStart(8, "input", 12, 1);
26
+ i0.ɵɵtwoWayListener("ngModelChange", function LoginModalComponent_div_3_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.user.username, $event) || (ctx_r2.user.username = $event); return i0.ɵɵresetView($event); });
31
27
  i0.ɵɵelementEnd()();
32
- i0.ɵɵelementStart(12, "div", 13)(13, "label", 16);
33
- i0.ɵɵtext(14);
34
- i0.ɵɵpipe(15, "translate");
28
+ i0.ɵɵelementStart(10, "div", 10)(11, "label", 13);
29
+ i0.ɵɵtext(12, "Contrase\u00F1a");
35
30
  i0.ɵɵelementEnd();
36
- i0.ɵɵelementStart(16, "input", 17);
37
- i0.ɵɵpipe(17, "translate");
38
- i0.ɵɵtwoWayListener("ngModelChange", function LoginModalComponent_div_6_Template_input_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.user.password, $event) || (ctx_r2.user.password = $event); return i0.ɵɵresetView($event); });
31
+ i0.ɵɵelementStart(13, "input", 14);
32
+ i0.ɵɵtwoWayListener("ngModelChange", function LoginModalComponent_div_3_Template_input_ngModelChange_13_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.user.password, $event) || (ctx_r2.user.password = $event); return i0.ɵɵresetView($event); });
39
33
  i0.ɵɵelementEnd()();
40
- i0.ɵɵelementStart(18, "button", 18);
41
- i0.ɵɵtext(19, "entrar");
34
+ i0.ɵɵelementStart(14, "button", 15);
35
+ i0.ɵɵtext(15, "Entrar");
42
36
  i0.ɵɵelementEnd()()()();
43
37
  } if (rf & 2) {
44
38
  const ctx_r2 = i0.ɵɵnextContext();
45
39
  i0.ɵɵadvance(4);
46
40
  i0.ɵɵproperty("ngIf", ctx_r2.error);
47
- i0.ɵɵadvance(3);
48
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 7, "Usuario.username"));
49
- i0.ɵɵadvance(2);
50
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(11, 9, "Usuario.username"));
41
+ i0.ɵɵadvance(4);
51
42
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.user.username);
52
43
  i0.ɵɵadvance(5);
53
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 11, "Usuario.password"));
54
- i0.ɵɵadvance(2);
55
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(17, 13, "Usuario.password"));
56
44
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.user.password);
57
45
  } }
58
- function LoginModalComponent_div_7_div_5_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 23)(2, "div", 24)(3, "h5");
46
+ function LoginModalComponent_div_4_div_5_Template(rf, ctx) { if (rf & 1) {
47
+ const _r4 = i0.ɵɵgetCurrentView();
48
+ i0.ɵɵelementStart(0, "div", 19);
49
+ i0.ɵɵlistener("click", function LoginModalComponent_div_4_div_5_Template_div_click_0_listener() { const empresa_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.entrarEmpresa(empresa_r5)); });
50
+ i0.ɵɵelementStart(1, "div", 20)(2, "div", 21)(3, "h5");
60
51
  i0.ɵɵtext(4);
61
52
  i0.ɵɵelementEnd()()()();
62
53
  } if (rf & 2) {
63
- const empresa_r4 = ctx.$implicit;
54
+ const empresa_r5 = ctx.$implicit;
64
55
  i0.ɵɵadvance(4);
65
- i0.ɵɵtextInterpolate1(" ", empresa_r4.nombre, " ");
56
+ i0.ɵɵtextInterpolate1(" ", empresa_r5.nombre, " ");
66
57
  } }
67
- function LoginModalComponent_div_7_Template(rf, ctx) { if (rf & 1) {
68
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 20)(2, "h4");
58
+ function LoginModalComponent_div_4_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 17)(2, "h4");
69
60
  i0.ɵɵtext(3, "Selecciona la empresa");
70
61
  i0.ɵɵelementEnd();
71
62
  i0.ɵɵelement(4, "hr");
72
63
  i0.ɵɵelementEnd();
73
- i0.ɵɵtemplate(5, LoginModalComponent_div_7_div_5_Template, 5, 1, "div", 21);
64
+ i0.ɵɵtemplate(5, LoginModalComponent_div_4_div_5_Template, 5, 1, "div", 18);
74
65
  i0.ɵɵelementEnd();
75
66
  } if (rf & 2) {
76
67
  const ctx_r2 = i0.ɵɵnextContext();
@@ -86,9 +77,14 @@ export class LoginModalComponent {
86
77
  this.error = false;
87
78
  this.empresas = [];
88
79
  this.loginModalService.modal.subscribe(resp => {
89
- $('#modalLogin').modal('show');
90
- this.user = { username: undefined, password: undefined };
91
- this.empresas = [];
80
+ if (resp) {
81
+ this.modal = true;
82
+ this.user = { username: undefined, password: undefined };
83
+ this.empresas = [];
84
+ }
85
+ else {
86
+ this.modal = false;
87
+ }
92
88
  });
93
89
  }
94
90
  entrar(form) {
@@ -118,7 +114,7 @@ export class LoginModalComponent {
118
114
  auth.usuarioDetalles = resp;
119
115
  this.authService.startAuth(auth);
120
116
  this.error = false;
121
- $('#modalLogin').modal('hide');
117
+ this.modal = false;
122
118
  });
123
119
  }, (_error) => {
124
120
  this.error = true;
@@ -127,26 +123,31 @@ export class LoginModalComponent {
127
123
  }
128
124
  entrarEmpresa(_empresa) {
129
125
  this.authService.setEmpresa(_empresa).subscribe((resp) => {
130
- $('#modalLogin').modal('hide');
126
+ this.modal = false;
131
127
  });
132
128
  }
133
129
  /** @nocollapse */ static { this.ɵfac = function LoginModalComponent_Factory(t) { return new (t || LoginModalComponent)(i0.ɵɵdirectiveInject(i1.LoginModalService), i0.ɵɵdirectiveInject(i2.AuthService)); }; }
134
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: LoginModalComponent, selectors: [["app-login-modal"]], decls: 8, vars: 2, consts: [["datoForm", "ngForm"], ["username", "ngModel"], ["id", "modalLogin", "tabindex", "-1", "role", "dialog", "aria-labelledby", "exampleModalCenterTitle", "aria-hidden", "true", 1, "modal", "fade"], ["role", "document", 1, "modal-dialog", "modal-dialog-centered"], [1, "modal-content"], [1, "modal-body"], [1, "row", "justify-content-center"], ["src", "assets/img/logo_visorus_loading.png", "alt", ""], ["class", "row", 4, "ngIf"], [1, "row"], [1, "col-lg-12", "col-md-12", "col-sm-12"], [3, "ngSubmit"], ["class", "error", 4, "ngIf"], [1, "form-group", "mb-3"], ["for", "exampleInputEmail1"], ["type", "text", "id", "exampleInputEmail1", "aria-describedby", "emailHelp", "name", "username", "required", "", 1, "form-control", 3, "ngModelChange", "placeholder", "ngModel"], ["for", "exampleInputPassword1"], ["type", "password", "id", "exampleInputPassword1", "name", "password", "required", "", 1, "form-control", 3, "ngModelChange", "placeholder", "ngModel"], ["type", "submit", "translate", "", 1, "btn", "btn-primary_low", "btn-lg", "btn-block", "my-5", "text-light"], [1, "error"], [1, "col-xl-12", "col-lg-12", "col-sm-12"], ["class", "col-xl-6 col-lg-6 col-sm-12 mb-2", "style", "cursor: pointer", 4, "ngFor", "ngForOf"], [1, "col-xl-6", "col-lg-6", "col-sm-12", "mb-2", 2, "cursor", "pointer"], [1, "card"], [1, "card-body"]], template: function LoginModalComponent_Template(rf, ctx) { if (rf & 1) {
135
- i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5)(4, "div", 6);
136
- i0.ɵɵelement(5, "img", 7);
130
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: LoginModalComponent, selectors: [["app-login-modal"]], decls: 5, vars: 10, consts: [["datoForm", "ngForm"], ["username", "ngModel"], [3, "visibleChange", "visible", "modal", "closable", "breakpoints"], [1, "row", "justify-content-center"], ["src", "assets/img/logo_visorus_loading.png", "alt", ""], ["class", "row", 4, "ngIf"], [1, "row"], [1, "col-lg-12", "col-md-12", "col-sm-12"], [3, "ngSubmit"], ["class", "error", 4, "ngIf"], [1, "form-group", "mb-3"], ["for", "exampleInputEmail1"], ["type", "text", "id", "exampleInputEmail1", "aria-describedby", "emailHelp", "placeholder", "Usuario", "name", "username", "required", "", 1, "form-control", 3, "ngModelChange", "ngModel"], ["for", "exampleInputPassword1"], ["type", "password", "id", "exampleInputPassword1", "placeholder", "Contrase\u00F1a", "name", "password", "required", "", 1, "form-control", 3, "ngModelChange", "ngModel"], ["type", "submit", 1, "btn", "btn-primary_low", "btn-lg", "btn-block", "my-5", "text-light"], [1, "error"], [1, "col-xl-12", "col-lg-12", "col-sm-12"], ["class", "col-xl-6 col-lg-6 col-sm-12 mb-2", "style", "cursor: pointer", 3, "click", 4, "ngFor", "ngForOf"], [1, "col-xl-6", "col-lg-6", "col-sm-12", "mb-2", 2, "cursor", "pointer", 3, "click"], [1, "card"], [1, "card-body"]], template: function LoginModalComponent_Template(rf, ctx) { if (rf & 1) {
131
+ i0.ɵɵelementStart(0, "p-dialog", 2);
132
+ i0.ɵɵtwoWayListener("visibleChange", function LoginModalComponent_Template_p_dialog_visibleChange_0_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.modal, $event) || (ctx.modal = $event); return $event; });
133
+ i0.ɵɵelementStart(1, "div", 3);
134
+ i0.ɵɵelement(2, "img", 4);
135
+ i0.ɵɵelementEnd();
136
+ i0.ɵɵtemplate(3, LoginModalComponent_div_3_Template, 16, 3, "div", 5)(4, LoginModalComponent_div_4_Template, 6, 1, "div", 5);
137
137
  i0.ɵɵelementEnd();
138
- i0.ɵɵtemplate(6, LoginModalComponent_div_6_Template, 20, 15, "div", 8)(7, LoginModalComponent_div_7_Template, 6, 1, "div", 8);
139
- i0.ɵɵelementEnd()()()();
140
138
  } if (rf & 2) {
141
- i0.ɵɵadvance(6);
139
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(8, _c0));
140
+ i0.ɵɵtwoWayProperty("visible", ctx.modal);
141
+ i0.ɵɵproperty("modal", true)("closable", false)("breakpoints", i0.ɵɵpureFunction0(9, _c1));
142
+ i0.ɵɵadvance(3);
142
143
  i0.ɵɵproperty("ngIf", ctx.empresas.length == 0);
143
144
  i0.ɵɵadvance();
144
145
  i0.ɵɵproperty("ngIf", ctx.empresas.length);
145
- } }, dependencies: [i3.NgForOf, i3.NgIf, i4.ɵNgNoValidate, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.RequiredValidator, i4.NgModel, i4.NgForm, i5.TranslateDirective, i5.TranslatePipe], styles: [".modal[_ngcontent-%COMP%]{z-index:2050!important}.btn-primary_low[_ngcontent-%COMP%]{background:#133659!important}.ng-valid[_ngcontent-%COMP%]:not(form){border-left:1px solid #ced4da!important}.ng-invalid[_ngcontent-%COMP%]:not(form){border-left:1px solid #ced4da!important}.card[_ngcontent-%COMP%]{background:#26baed;color:#fff}.card-body[_ngcontent-%COMP%]{padding:10px}"] }); }
146
+ } }, dependencies: [i3.NgForOf, i3.NgIf, i4.ɵNgNoValidate, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.RequiredValidator, i4.NgModel, i4.NgForm, i5.Dialog], styles: ["[_nghost-%COMP%] .p-dialog{z-index:2050!important}.btn-primary_low[_ngcontent-%COMP%]{background:#133659!important}.ng-valid[_ngcontent-%COMP%]:not(form){border-left:1px solid #ced4da!important}.ng-invalid[_ngcontent-%COMP%]:not(form){border-left:1px solid #ced4da!important}.card[_ngcontent-%COMP%]{background:#26baed;color:#fff}.card-body[_ngcontent-%COMP%]{padding:10px}"] }); }
146
147
  }
147
148
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoginModalComponent, [{
148
149
  type: Component,
149
- args: [{ selector: 'app-login-modal', template: "<div class=\"modal fade\" id=\"modalLogin\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalCenterTitle\" aria-hidden=\"true\">\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body\">\n <div class=\"row justify-content-center\">\n <img src=\"assets/img/logo_visorus_loading.png\" alt=\"\">\n </div>\n <div class=\"row\" *ngIf=\"empresas.length == 0\">\n <div class=\"col-lg-12 col-md-12 col-sm-12\" >\n <form #datoForm=\"ngForm\" (ngSubmit)=\"entrar(datoForm)\" > \n <label class=\"error\" *ngIf=\"error\">{{'Usuario.errorLogin' | translate}}</label>\n <div class=\"form-group mb-3\">\n <label for=\"exampleInputEmail1\" >{{ 'Usuario.username' | translate }}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleInputEmail1\" aria-describedby=\"emailHelp\" #username=\"ngModel\"\n placeholder=\"{{ 'Usuario.username' | translate }}\" name=\"username\" [(ngModel)]=\"user.username\" required>\n </div>\n <div class=\"form-group mb-3\">\n <label for=\"exampleInputPassword1\">{{ 'Usuario.password' | translate }}</label>\n <input type=\"password\" class=\"form-control\" id=\"exampleInputPassword1\" placeholder=\"{{ 'Usuario.password' | translate }}\"\n name=\"password\" [(ngModel)]=\"user.password\" required>\n </div>\n \n <button type=\"submit\" class=\"btn btn-primary_low btn-lg btn-block my-5 text-light\" translate>entrar</button>\n </form>\n </div>\n </div> \n <div class=\"row\" *ngIf=\"empresas.length\">\n <div class=\"col-xl-12 col-lg-12 col-sm-12\">\n <h4>Selecciona la empresa</h4>\n <hr>\n </div>\n <div class=\"col-xl-6 col-lg-6 col-sm-12 mb-2\" *ngFor=\"let empresa of empresas\" style=\"cursor: pointer\">\n <div class=\"card\">\n <div class=\"card-body\">\n <h5>\n {{empresa.nombre}}\n </h5>\n </div>\n </div>\n </div>\n </div> \n \n </div>\n </div>\n </div>\n</div>", styles: [".modal{z-index:2050!important}.btn-primary_low{background:#133659!important}.ng-valid:not(form){border-left:1px solid #ced4da!important}.ng-invalid:not(form){border-left:1px solid #ced4da!important}.card{background:#26baed;color:#fff}.card-body{padding:10px}\n"] }]
150
+ args: [{ selector: 'app-login-modal', template: "<p-dialog [(visible)]=\"modal\" [modal]=\"true\" [closable]=\"false\" [style]=\"{width: '50vw'}\"\n [breakpoints]=\"{'960px': '75vw', '640px': '90vw'}\">\n <div class=\"row justify-content-center\">\n <img src=\"assets/img/logo_visorus_loading.png\" alt=\"\">\n </div>\n <div class=\"row\" *ngIf=\"empresas.length == 0\">\n <div class=\"col-lg-12 col-md-12 col-sm-12\">\n <form #datoForm=\"ngForm\" (ngSubmit)=\"entrar(datoForm)\">\n <label class=\"error\" *ngIf=\"error\">Usuario o contrase\u00F1a incorrectos</label>\n <div class=\"form-group mb-3\">\n <label for=\"exampleInputEmail1\">Usuario</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleInputEmail1\" aria-describedby=\"emailHelp\"\n #username=\"ngModel\" placeholder=\"Usuario\" name=\"username\" [(ngModel)]=\"user.username\" required>\n </div>\n <div class=\"form-group mb-3\">\n <label for=\"exampleInputPassword1\">Contrase\u00F1a</label>\n <input type=\"password\" class=\"form-control\" id=\"exampleInputPassword1\" placeholder=\"Contrase\u00F1a\"\n name=\"password\" [(ngModel)]=\"user.password\" required>\n </div>\n\n <button type=\"submit\" class=\"btn btn-primary_low btn-lg btn-block my-5 text-light\">Entrar</button>\n </form>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"empresas.length\">\n <div class=\"col-xl-12 col-lg-12 col-sm-12\">\n <h4>Selecciona la empresa</h4>\n <hr>\n </div>\n <div class=\"col-xl-6 col-lg-6 col-sm-12 mb-2\" *ngFor=\"let empresa of empresas\" style=\"cursor: pointer\"\n (click)=\"entrarEmpresa(empresa)\">\n <div class=\"card\">\n <div class=\"card-body\">\n <h5>\n {{empresa.nombre}}\n </h5>\n </div>\n </div>\n </div>\n </div>\n</p-dialog>", styles: [":host ::ng-deep .p-dialog{z-index:2050!important}.btn-primary_low{background:#133659!important}.ng-valid:not(form){border-left:1px solid #ced4da!important}.ng-invalid:not(form){border-left:1px solid #ced4da!important}.card{background:#26baed;color:#fff}.card-body{padding:10px}\n"] }]
150
151
  }], () => [{ type: i1.LoginModalService }, { type: i2.AuthService }], null); })();
151
152
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoginModalComponent, { className: "LoginModalComponent" }); })();
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luLW1vZGFsL2xvZ2luLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi1tb2RhbC9sb2dpbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7SUNReEMsaUNBQW1DO0lBQUEsWUFBb0M7O0lBQUEsaUJBQVE7O0lBQTVDLGNBQW9DO0lBQXBDLGdFQUFvQzs7OztJQUQzRSxBQURILEFBREgsOEJBQThDLGNBQ0Msa0JBQ2U7SUFBL0IsME5BQVksMEJBQWdCLEtBQUM7SUFDbEQsK0VBQW1DO0lBRS9CLEFBREYsK0JBQTZCLGdCQUNNO0lBQUEsWUFBb0M7O0lBQUEsaUJBQVE7SUFDN0Usb0NBQ3dHOztJQUFyQyw2U0FBMkI7SUFDaEcsQUFGRSxpQkFDd0csRUFDcEc7SUFFSixBQURGLGdDQUE2QixpQkFDUTtJQUFBLGFBQW9DOztJQUFBLGlCQUFRO0lBQy9FLGtDQUN1RDs7SUFBdEMsOFNBQTJCO0lBQzlDLEFBRkUsaUJBQ3VELEVBQ25EO0lBRU4sbUNBQTZGO0lBQUEsdUJBQU07SUFHL0csQUFERyxBQURPLEFBRHFHLGlCQUFTLEVBQ3ZHLEVBQ1IsRUFDSDs7O0lBZjBCLGVBQVc7SUFBWCxtQ0FBVztJQUVJLGVBQW9DO0lBQXBDLDhEQUFvQztJQUVyRSxlQUFrRDtJQUFsRCxrRkFBa0Q7SUFBaUIs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QjtZQUFyQiwwQ0FBcUI7OztpRkRoQmxDLG1CQUFtQjtjQUwvQixTQUFTOzJCQUNFLGlCQUFpQjs7a0ZBSWhCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dpbk1vZGFsU2VydmljZSB9IGZyb20gJy4vbG9naW4tbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5kZWNsYXJlIHZhciBqUXVlcnk6IGFueTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1sb2dpbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ2luLW1vZGFsLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk1vZGFsQ29tcG9uZW50ICB7XG4gIG1vZGFsID0gZmFsc2U7XG4gIHVzZXI6IGFueSA9IHsgdXNlcm5hbWUgOiB1bmRlZmluZWQgLCBwYXNzd29yZCA6IHVuZGVmaW5lZH07IFxuICBlcnJvciA9IGZhbHNlO1xuIFxuICBlbXByZXNhcyA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9naW5Nb2RhbFNlcnZpY2UgOiBMb2dpbk1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlIDogQXV0aFNlcnZpY2VcbiAgICApIHsgXG4gICAgdGhpcy5sb2dpbk1vZGFsU2VydmljZS5tb2RhbC5zdWJzY3JpYmUoIHJlc3AgPT4ge1xuICAgICAgJCgnI21vZGFsTG9naW4nKS5tb2RhbCgnc2hvdycpO1xuICAgICAgdGhpcy51c2VyID0geyB1c2VybmFtZSA6IHVuZGVmaW5lZCAsIHBhc3N3b3JkIDogdW5kZWZpbmVkfTsgXG4gICAgICB0aGlzLmVtcHJlc2FzID0gW107XG4gICAgfSApO1xuICB9XG5cbiAgZW50cmFyKGZvcm0pe1xuICAgIGlmKGZvcm0udmFsaWQpe1xuICAgICB0aGlzLnVzZXIua2V5PVwiXCI7XG4gICAgICAgbGV0IHBhc3N3b3JkID0gdGhpcy51c2VyLnBhc3N3b3JkLnNwbGl0KCdfJyk7XG4gICAgICAgIGlmKHBhc3N3b3JkLmxlbmd0aCA+IDEpe1xuICAgICAgICAgIHRoaXMudXNlci5rZXk9IHBhc3N3b3JkWzBdO1xuICAgICAgICAgIHRoaXMudXNlci5wYXNzd29yZCA9ICcnO1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCBwYXNzd29yZC5sZW5ndGg7IGluZGV4KyspIHsgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMudXNlci5wYXNzd29yZCArPSAgcGFzc3dvcmRbaW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgdGhpcy5hdXRoU2VydmljZS5zZXRsb2dpbih0aGlzLnVzZXIsIHRoaXMudXNlci5rZXkgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgIChyZXNwIDogYW55KT0+e1xuICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzdWFyaW8nLEpTT04uc3RyaW5naWZ5KHJlc3ApKTsgXG4gICAgICAgICAgICAgICBsZXQgdXN1YXJpbyA9IHJlc3A7XG4gICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldERldGFsc1VzZXIoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgKHJlc3AgOiBhbnkpPT57XG4gICAgICAgICAgICAgICAgICAgICBpZighcmVzcC5lbXByZXNhKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1wcmVzYXMgPSByZXNwLmVtcHJlc2FzO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5lbXByZXNhcy5sZW5ndGggPT0gMSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cmFyRW1wcmVzYSh0aGlzLmVtcHJlc2FzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgIGxldCBhdXRoIDogYW55ID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgIGF1dGgubG9naW49IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgIGF1dGgudXN1YXJpbz0gdXN1YXJpbztcbiAgICAgICAgICAgICAgICAgICAgICAgYXV0aC51c3VhcmlvRGV0YWxsZXMgPSByZXNwO1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5zdGFydEF1dGgoYXV0aCk7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICQoJyNtb2RhbExvZ2luJykubW9kYWwoJ2hpZGUnKTtcbiAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgXG4gICAgICAgICAgIH0sIChfZXJyb3IgOiBhbnkpPT57XG4gICAgICAgICAgICAgdGhpcy5lcnJvcj0gdHJ1ZTtcbiAgICAgICAgICAgfVxuICAgICAgICk7XG4gICAgfVxufVxuXG5cbmVudHJhckVtcHJlc2EoX2VtcHJlc2Epe1xuICB0aGlzLmF1dGhTZXJ2aWNlLnNldEVtcHJlc2EoX2VtcHJlc2EpLnN1YnNjcmliZShcbiAgICAocmVzcCA6IGFueSk9PntcbiAgICAgICQoJyNtb2RhbExvZ2luJykubW9kYWwoJ2hpZGUnKTtcbiAgICB9XG4gICk7XG59XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGVcIiBpZD1cIm1vZGFsTG9naW5cIiB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbGFiZWxsZWRieT1cImV4YW1wbGVNb2RhbENlbnRlclRpdGxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtZGlhbG9nLWNlbnRlcmVkXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1nL2xvZ29fdmlzb3J1c19sb2FkaW5nLnBuZ1wiIGFsdD1cIlwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZW1wcmVzYXMubGVuZ3RoID09IDBcIj5cbiAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBjb2wtbWQtMTIgY29sLXNtLTEyXCIgPlxuICAgICAgICAgICAgICA8Zm9ybSAjZGF0b0Zvcm09XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwiZW50cmFyKGRhdG9Gb3JtKVwiID4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImVycm9yXCIgKm5nSWY9XCJlcnJvclwiPnt7J1VzdWFyaW8uZXJyb3JMb2dpbicgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUlucHV0RW1haWwxXCIgPnt7ICdVc3VhcmlvLnVzZXJuYW1lJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImV4YW1wbGVJbnB1dEVtYWlsMVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJlbWFpbEhlbHBcIiAjdXNlcm5hbWU9XCJuZ01vZGVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdVc3VhcmlvLnVzZXJuYW1lJyB8IHRyYW5zbGF0ZSB9fVwiIG5hbWU9XCJ1c2VybmFtZVwiIFsobmdNb2RlbCldPVwidXNlci51c2VybmFtZVwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlSW5wdXRQYXNzd29yZDFcIj57eyAnVXN1YXJpby5wYXNzd29yZCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZXhhbXBsZUlucHV0UGFzc3dvcmQxXCIgcGxhY2Vob2xkZXI9XCJ7eyAnVXN1YXJpby5wYXNzd29yZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIiBbKG5nTW9kZWwpXT1cInVzZXIucGFzc3dvcmRcIiAgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlfbG93IGJ0bi1sZyBidG4tYmxvY2sgbXktNSB0ZXh0LWxpZ2h0XCIgdHJhbnNsYXRlPmVudHJhcjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+ICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZW1wcmVzYXMubGVuZ3RoXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0xMiBjb2wtbGctMTIgY29sLXNtLTEyXCI+XG4gICAgICAgICAgICA8aDQ+U2VsZWNjaW9uYSBsYSBlbXByZXNhPC9oND5cbiAgICAgICAgICAgIDxocj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtNiBjb2wtbGctNiBjb2wtc20tMTIgbWItMlwiICpuZ0Zvcj1cImxldCBlbXByZXNhIG9mIGVtcHJlc2FzXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgPGg1PlxuICAgICAgICAgICAgICAgICAgICAgIHt7ZW1wcmVzYS5ub21icmV9fVxuICAgICAgICAgICAgICAgICAgIDwvaDU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+ICBcbiAgICAgICAgXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luLW1vZGFsL2xvZ2luLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi1tb2RhbC9sb2dpbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztJQ01sRCxpQ0FBbUM7SUFBQSxxREFBZ0M7SUFBQSxpQkFBUTs7OztJQUQ3RSxBQURGLEFBREYsOEJBQThDLGFBQ0QsaUJBQ2M7SUFBOUIsME5BQVksMEJBQWdCLEtBQUM7SUFDcEQsOEVBQW1DO0lBRWpDLEFBREYsK0JBQTZCLGdCQUNLO0lBQUEsdUJBQU87SUFBQSxpQkFBUTtJQUMvQyxvQ0FDaUc7SUFBckMsNlNBQTJCO0lBQ3pGLEFBRkUsaUJBQ2lHLEVBQzdGO0lBRUosQUFERixnQ0FBNkIsaUJBQ1E7SUFBQSxnQ0FBVTtJQUFBLGlCQUFRO0lBQ3JELGtDQUN1RDtJQUFyQyw4U0FBMkI7SUFDL0MsQUFGRSxpQkFDdUQsRUFDbkQ7SUFFTixtQ0FBbUY7SUFBQSx1QkFBTTtJQUcvRixBQURFLEFBREUsQUFEMkYsaUJBQVMsRUFDN0YsRUFDSCxFQUNGOzs7SUFmc0IsZUFBVztJQUFYLG1DQUFXO0lBSTZCLGVBQTJCO0lBQTNCLG9EQUEyQjtJQUtyRSxlQUEyQjtJQUEzQixvREFBMkI7Ozs7SUFZbkQsK0JBQ21DO0lBQWpDLGdOQUFTLGdDQUFz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QixtQkFBbUI7Y0FML0IsU0FBUzsyQkFDRSxpQkFBaUI7O2tGQUloQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9naW5Nb2RhbFNlcnZpY2UgfSBmcm9tICcuL2xvZ2luLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9naW4tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Nb2RhbENvbXBvbmVudCB7XG4gIG1vZGFsID0gZmFsc2U7XG4gIHVzZXI6IGFueSA9IHsgdXNlcm5hbWU6IHVuZGVmaW5lZCwgcGFzc3dvcmQ6IHVuZGVmaW5lZCB9O1xuICBlcnJvciA9IGZhbHNlO1xuXG4gIGVtcHJlc2FzID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2dpbk1vZGFsU2VydmljZTogTG9naW5Nb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5sb2dpbk1vZGFsU2VydmljZS5tb2RhbC5zdWJzY3JpYmUocmVzcCA9PiB7XG4gICAgICBpZiAocmVzcCkge1xuICAgICAgICB0aGlzLm1vZGFsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51c2VyID0geyB1c2VybmFtZTogdW5kZWZpbmVkLCBwYXNzd29yZDogdW5kZWZpbmVkIH07XG4gICAgICAgIHRoaXMuZW1wcmVzYXMgPSBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9kYWwgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGVudHJhcihmb3JtKSB7XG4gICAgaWYgKGZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMudXNlci5rZXkgPSBcIlwiO1xuICAgICAgbGV0IHBhc3N3b3JkID0gdGhpcy51c2VyLnBhc3N3b3JkLnNwbGl0KCdfJyk7XG4gICAgICBpZiAocGFzc3dvcmQubGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLnVzZXIua2V5ID0gcGFzc3dvcmRbMF07XG4gICAgICAgIHRoaXMudXNlci5wYXNzd29yZCA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgcGFzc3dvcmQubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgdGhpcy51c2VyLnBhc3N3b3JkICs9IHBhc3N3b3JkW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnNldGxvZ2luKHRoaXMudXNlciwgdGhpcy51c2VyLmtleSkuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcDogYW55KSA9PiB7XG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzdWFyaW8nLCBKU09OLnN0cmluZ2lmeShyZXNwKSk7XG4gICAgICAgICAgbGV0IHVzdWFyaW8gPSByZXNwO1xuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0RGV0YWxzVXNlcigpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFyZXNwLmVtcHJlc2EpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtcHJlc2FzID0gcmVzcC5lbXByZXNhcztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lbXByZXNhcy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyYXJFbXByZXNhKHRoaXMuZW1wcmVzYXNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsZXQgYXV0aDogYW55ID0ge307XG4gICAgICAgICAgICAgIGF1dGgubG9naW4gPSB0cnVlO1xuICAgICAgICAgICAgICBhdXRoLnVzdWFyaW8gPSB1c3VhcmlvO1xuICAgICAgICAgICAgICBhdXRoLnVzdWFyaW9EZXRhbGxlcyA9IHJlc3A7XG4gICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2Uuc3RhcnRBdXRoKGF1dGgpO1xuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMubW9kYWwgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgIH0sIChfZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG5cbiAgZW50cmFyRW1wcmVzYShfZW1wcmVzYSkge1xuICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0RW1wcmVzYShfZW1wcmVzYSkuc3Vic2NyaWJlKFxuICAgICAgKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGFsID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG5cbn1cbiIsIjxwLWRpYWxvZyBbKHZpc2libGUpXT1cIm1vZGFsXCIgW21vZGFsXT1cInRydWVcIiBbY2xvc2FibGVdPVwiZmFsc2VcIiBbc3R5bGVdPVwie3dpZHRoOiAnNTB2dyd9XCJcbiAgW2JyZWFrcG9pbnRzXT1cInsnOTYwcHgnOiAnNzV2dycsICc2NDBweCc6ICc5MHZ3J31cIj5cbiAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgPGltZyBzcmM9XCJhc3NldHMvaW1nL2xvZ29fdmlzb3J1c19sb2FkaW5nLnBuZ1wiIGFsdD1cIlwiPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZW1wcmVzYXMubGVuZ3RoID09IDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGNvbC1tZC0xMiBjb2wtc20tMTJcIj5cbiAgICAgIDxmb3JtICNkYXRvRm9ybT1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJlbnRyYXIoZGF0b0Zvcm0pXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImVycm9yXCIgKm5nSWY9XCJlcnJvclwiPlVzdWFyaW8gbyBjb250cmFzZcOxYSBpbmNvcnJlY3RvczwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTNcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUlucHV0RW1haWwxXCI+VXN1YXJpbzwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImV4YW1wbGVJbnB1dEVtYWlsMVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJlbWFpbEhlbHBcIlxuICAgICAgICAgICAgI3VzZXJuYW1lPVwibmdNb2RlbFwiIHBsYWNlaG9sZGVyPVwiVXN1YXJpb1wiIG5hbWU9XCJ1c2VybmFtZVwiIFsobmdNb2RlbCldPVwidXNlci51c2VybmFtZVwiIHJlcXVpcmVkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItM1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlSW5wdXRQYXNzd29yZDFcIj5Db250cmFzZcOxYTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJleGFtcGxlSW5wdXRQYXNzd29yZDFcIiBwbGFjZWhvbGRlcj1cIkNvbnRyYXNlw7FhXCJcbiAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiIFsobmdNb2RlbCldPVwidXNlci5wYXNzd29yZFwiIHJlcXVpcmVkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeV9sb3cgYnRuLWxnIGJ0bi1ibG9jayBteS01IHRleHQtbGlnaHRcIj5FbnRyYXI8L2J1dHRvbj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImVtcHJlc2FzLmxlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMTIgY29sLWxnLTEyIGNvbC1zbS0xMlwiPlxuICAgICAgPGg0PlNlbGVjY2lvbmEgbGEgZW1wcmVzYTwvaDQ+XG4gICAgICA8aHI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14bC02IGNvbC1sZy02IGNvbC1zbS0xMiBtYi0yXCIgKm5nRm9yPVwibGV0IGVtcHJlc2Egb2YgZW1wcmVzYXNcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAoY2xpY2spPVwiZW50cmFyRW1wcmVzYShlbXByZXNhKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgIDxoNT5cbiAgICAgICAgICAgIHt7ZW1wcmVzYS5ub21icmV9fVxuICAgICAgICAgIDwvaDU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9wLWRpYWxvZz4iXX0=
@@ -18,4 +18,4 @@ export class LoginModalService {
18
18
  }], null, { modal: [{
19
19
  type: Output
20
20
  }] }); })();
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tbW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi1tb2RhbC9sb2dpbi1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLGlCQUFpQjtJQUZqQztRQUlhLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFFO0tBS3hDO0lBSEUsU0FBUztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7cUdBTlksaUJBQWlCO3NHQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCLG1CQURqQixNQUFNOztpRkFDTixpQkFBaUI7Y0FGaEMsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCO2dCQUVZLEtBQUs7a0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pIGV4cG9ydCBjbGFzcyBMb2dpbk1vZGFsU2VydmljZSB7XG5cbiAgIEBPdXRwdXQoKSBtb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXIoKSA7XG5cbiAgIHNob3dNb2RhbCgpe1xuICAgICAgIHRoaXMubW9kYWwuZW1pdCh0cnVlKTtcbiAgIH1cbn0iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tbW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi1tb2RhbC9sb2dpbi1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLGlCQUFpQjtJQUZqQztRQUljLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBS3hDO0lBSEcsU0FBUztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7cUdBTlcsaUJBQWlCO3NHQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCLG1CQURqQixNQUFNOztpRkFDTixpQkFBaUI7Y0FGaEMsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCO2dCQUVhLEtBQUs7a0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pIGV4cG9ydCBjbGFzcyBMb2dpbk1vZGFsU2VydmljZSB7XG5cbiAgICBAT3V0cHV0KCkgbW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBzaG93TW9kYWwoKSB7XG4gICAgICAgIHRoaXMubW9kYWwuZW1pdCh0cnVlKTtcbiAgICB9XG59Il19
@@ -187,6 +187,27 @@ export class AuthService {
187
187
  this.url_host = config.url;
188
188
  return this.httpClient.get(this.url_host + '/usuario/obtieneUsuarioActual', httpOptions);
189
189
  }
190
+ obtieneUsuarioConfiguracion() {
191
+ let usuario;
192
+ let token_type = '';
193
+ let access_token = '';
194
+ usuario = JSON.parse(localStorage.getItem("usuario"));
195
+ if (usuario) {
196
+ token_type = usuario.token_type,
197
+ access_token = usuario.access_token;
198
+ }
199
+ let httpOptions = {
200
+ headers: new HttpHeaders({
201
+ 'Accept-type': 'application/json',
202
+ 'Authorization': token_type + ' ' + access_token
203
+ })
204
+ };
205
+ let config = JSON.parse(localStorage.getItem("config"));
206
+ if (config)
207
+ if (config.url)
208
+ this.url_host = config.url;
209
+ return this.httpClient.get(this.url_host + '/usuario/obtieneUsuarioConfiguracion', httpOptions);
210
+ }
190
211
  /** @nocollapse */ static { this.ɵfac = function AuthService_Factory(t) { return new (t || AuthService)(i0.ɵɵinject(i1.HttpClient)); }; }
191
212
  /** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: AuthService, factory: AuthService.ɵfac, providedIn: 'root' }); }
192
213
  }
@@ -200,4 +221,4 @@ export class AuthService {
200
221
  }], seleccionEmpresa: [{
201
222
  type: Output
202
223
  }] }); })();
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS3RDLE1BQU0sT0FBTyxXQUFXO0lBTXBCLFlBQ1ksVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxsQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUosVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUk1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRztRQUNkLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksTUFBTTtZQUNOLElBQUksTUFBTSxDQUFDLEdBQUc7Z0JBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FB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LENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFFbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLCtCQUErQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzdGLENBQUM7K0ZBOU1RLFdBQVc7c0dBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlIsTUFBTTs7aUZBRVQsV0FBVztjQUh2QixVQUFVO2VBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7MkNBS2EsS0FBSztrQkFBZCxNQUFNO1lBQ0csZ0JBQWdCO2tCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IFVzdWFyaW8gfSBmcm9tICcuLi9tb2RlbHMvVXN1YXJpbyc7XG5pbXBvcnQgeyBBdXRoIH0gZnJvbSAnLi4vbW9kZWxzL2F1dGgnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgICB1c3VhcmlvOiBVc3VhcmlvO1xuICAgIHVybF9ob3N0ID0gJyc7XG4gICAgYXV0aDogQXV0aDtcbiAgICBAT3V0cHV0KCkgbG9naW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlbGVjY2lvbkVtcHJlc2EgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudFxuICAgICkge1xuICAgICAgICB0aGlzLmF1dGggPSBuZXcgQXV0aCgpO1xuICAgIH1cblxuICAgIHNldGxvZ2luKHVzZXIsIGtleSkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZycsICdlcycpO1xuICAgICAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvbmZpZ1wiKSk7XG4gICAgICAgIGlmIChjb25maWcpXG4gICAgICAgICAgICBpZiAoY29uZmlnLnVybClcbiAgICAgICAgICAgICAgICB0aGlzLnVybF9ob3N0ID0gY29uZmlnLnVybDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMudXJsX2hvc3QgKyAnL2xvZ2luJyArIChrZXkgPyAnLycgKyBrZXkgOiAnJyksIHVzZXIpO1xuICAgIH1cbiAgICBzdGFydEF1dGgodXNlcikge1xuICAgICAgICB0aGlzLmF1dGggPSB1c2VyO1xuICAgICAgICB0aGlzLmxvZ2luLmVtaXQodGhpcy5hdXRoKTtcbiAgICB9XG4gICAgaXNMb2dpbigpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c3VhcmlvJykgIT09IG51bGw7XG4gICAgfVxuXG4gICAgcXVpdGFyVXN1YXJpbygpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3VzdWFyaW8nKTtcbiAgICAgICAgdGhpcy5hdXRoLmxvZ2luID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9naW4uZW1pdCh0aGlzLmF1dGgpO1xuICAgIH1cblxuXG4gICAgdmVyaWZpY2FMb2dpbigpIHtcbiAgICAgICAgdGhpcy51c3VhcmlvID0gdGhpcy5nZXRVc2VyKCk7XG4gICAgICAgIGlmICh0aGlzLnVzdWFyaW8uYWNjZXNzX3Rva2VuKSB7XG4gICAgICAgICAgICB0aGlzLmdldERldGFsc1VzZXIoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGgudXN1YXJpb0RldGFsbGVzID0gcmVzcDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoLmxvZ2luID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbi5lbWl0KHRoaXMuYXV0aCk7XG4gICAgICAgICAgICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWl0YXJVc3VhcmlvKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aC51c3VhcmlvRGV0YWxsZXMgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5hdXRoLmxvZ2luID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxvZ2luLmVtaXQodGhpcy5hdXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgbG9naW5PdXQoKSB7XG5cbiAgICAgICAgdGhpcy5xdWl0YXJFbXByZXNhQWRtaW5pc3RyYXRpdmEoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3VzdWFyaW8nKTtcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndXN1YXJpbycpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5nJywgJ2VzJyk7XG4gICAgICAgIHRoaXMuYXV0aC5sb2dpbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvZ2luLmVtaXQodGhpcy5hdXRoKTtcbiAgICB9XG5cbiAgICBnZXRVc2VyKCkge1xuICAgICAgICB0aGlzLnVzdWFyaW8gPSBuZXcgVXN1YXJpbygpO1xuICAgICAgICBpZiAodGhpcy5pc0xvZ2luKCkpIHtcbiAgICAgICAgICAgIGxldCB1cyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c3VhcmlvJyk7XG4gICAgICAgICAgICBpZiAodXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzdWFyaW8gPSBKU09OLnBhcnNlKHVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXN1YXJpbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzdWFyaW87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRMYW5nKCkge1xuICAgICAgICBsZXQgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5nJyk7XG4gICAgICAgIHJldHVybiBsYW5nID8gbGFuZyA6ICdlcyc7XG4gICAgfVxuXG4gICAgc2VsZWN0RW1wcmVzYShlKSB7XG4gICAgICAgIHRoaXMuc2VsZWNjaW9uRW1wcmVzYS5lbWl0KGUpO1xuICAgIH1cblxuICAgIHF1aXRhckVtcHJlc2FBZG1pbmlzdHJhdGl2YSgpIHtcbiAgICAgICAgbGV0IHVzdWFyaW86IFVzdWFyaW87XG4gICAgICAgIGxldCB0b2tlbl90eXBlID0gJyc7XG4gICAgICAgIGxldCBhY2Nlc3NfdG9rZW4gPSAnJztcbiAgICAgICAgdXN1YXJpbyA9IDxVc3VhcmlvPkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c3VhcmlvXCIpKTtcbiAgICAgICAgaWYgKHVzdWFyaW8pIHtcbiAgICAgICAgICAgIHRva2VuX3R5cGUgPSB1c3VhcmlvLnRva2VuX3R5cGUsXG4gICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuID0gdXN1YXJpby5hY2Nlc3NfdG9rZW5cbiAgICAgICAgfVxuICAgICAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdBY2NlcHQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuX3R5cGUgKyAnICcgKyBhY2Nlc3NfdG9rZW5cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29uZmlnXCIpKTtcbiAgICAgICAgaWYgKGNvbmZpZylcbiAgICAgICAgICAgIGlmIChjb25maWcudXJsKVxuICAgICAgICAgICAgICAgIHRoaXMudXJsX2hvc3QgPSBjb25maWcudXJsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLnVybF9ob3N0ICsgJy91c3VhcmlvL3NldEVtcHJlc2EnLCB7IGlkOiAwIH0sIGh0dHBPcHRpb25zKTtcbiAgICB9XG4gICAgc2V0RW1wcmVzYShlbXByZXNhKSB7XG4gICAgICAgIC8vICBzZXRFbXByZXNhQWRtaW5pc3RyYXRpdmFcbiAgICAgICAgbGV0IHVzdWFyaW86IFVzdWFyaW87XG4gICAgICAgIGxldCB0b2tlbl90eXBlID0gJyc7XG4gICAgICAgIGxldCBhY2Nlc3NfdG9rZW4gPSAnJztcbiAgICAgICAgdXN1YXJpbyA9IDxVc3VhcmlvPkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c3VhcmlvXCIpKTtcbiAgICAgICAgaWYgKHVzdWFyaW8pIHtcbiAgICAgICAgICAgIHRva2VuX3R5cGUgPSB1c3VhcmlvLnRva2VuX3R5cGUsXG4gICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuID0gdXN1YXJpby5hY2Nlc3NfdG9rZW5cbiAgICAgICAgfVxuICAgICAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdBY2NlcHQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuX3R5cGUgKyAnICcgKyBhY2Nlc3NfdG9rZW5cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29uZmlnXCIpKTtcbiAgICAgICAgaWYgKGNvbmZpZylcbiAgICAgICAgICAgIGlmIChjb25maWcudXJsKVxuICAgICAgICAgICAgICAgIHRoaXMudXJsX2hvc3QgPSBjb25maWcudXJsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLnVybF9ob3N0ICsgJy91c3VhcmlvL3NldEVtcHJlc2EnLCBlbXByZXNhLCBodHRwT3B0aW9ucyk7XG4gICAgfVxuICAgIHNldE1vZHVsbyhtb2R1bG8pIHtcbiAgICAgICAgLy8gIHNldEVtcHJlc2FBZG1pbmlzdHJhdGl2YVxuICAgICAgICBsZXQgdXN1YXJpbzogVXN1YXJpbztcbiAgICAgICAgbGV0IHRva2VuX3R5cGUgPSAnJztcbiAgICAgICAgbGV0IGFjY2Vzc190b2tlbiA9ICcnO1xuICAgICAgICB1c3VhcmlvID0gPFVzdWFyaW8+SlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzdWFyaW9cIikpO1xuICAgICAgICBpZiAodXN1YXJpbykge1xuICAgICAgICAgICAgdG9rZW5fdHlwZSA9IHVzdWFyaW8udG9rZW5fdHlwZSxcbiAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4gPSB1c3VhcmlvLmFjY2Vzc190b2tlblxuICAgICAgICB9XG4gICAgICAgIGxldCBodHRwT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogdG9rZW5fdHlwZSArICcgJyArIGFjY2Vzc190b2tlblxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb25maWdcIikpO1xuICAgICAgICBpZiAoY29uZmlnKVxuICAgICAgICAgICAgaWYgKGNvbmZpZy51cmwpXG4gICAgICAgICAgICAgICAgdGhpcy51cmxfaG9zdCA9IGNvbmZpZy51cmw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMudXJsX2hvc3QgKyAnL3VzdWFyaW8vc2V0TW9kdWxvJywgbW9kdWxvLCBodHRwT3B0aW9ucyk7XG4gICAgfVxuICAgIHF1aXRhck1vZHVsbygpIHtcbiAgICAgICAgLy8gIHNldEVtcHJlc2FBZG1pbmlzdHJhdGl2YVxuICAgICAgICBsZXQgdXN1YXJpbzogVXN1YXJpbztcbiAgICAgICAgbGV0IHRva2VuX3R5cGUgPSAnJztcbiAgICAgICAgbGV0IGFjY2Vzc190b2tlbiA9ICcnO1xuICAgICAgICB1c3VhcmlvID0gPFVzdWFyaW8+SlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzdWFyaW9cIikpO1xuICAgICAgICBpZiAodXN1YXJpbykge1xuICAgICAgICAgICAgdG9rZW5fdHlwZSA9IHVzdWFyaW8udG9rZW5fdHlwZSxcbiAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4gPSB1c3VhcmlvLmFjY2Vzc190b2tlblxuICAgICAgICB9XG4gICAgICAgIGxldCBodHRwT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogdG9rZW5fdHlwZSArICcgJyArIGFjY2Vzc190b2tlblxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb25maWdcIikpO1xuICAgICAgICBpZiAoY29uZmlnKVxuICAgICAgICAgICAgaWYgKGNvbmZpZy51cmwpXG4gICAgICAgICAgICAgICAgdGhpcy51cmxfaG9zdCA9IGNvbmZpZy51cmw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMudXJsX2hvc3QgKyAnL3VzdWFyaW8vc2V0TW9kdWxvJywgeyBpZDogMCB9LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgZ2V0RGV0YWxzVXNlcigpIHtcbiAgICAgICAgbGV0IHVzdWFyaW86IFVzdWFyaW87XG4gICAgICAgIGxldCB0b2tlbl90eXBlID0gJyc7XG4gICAgICAgIGxldCBhY2Nlc3NfdG9rZW4gPSAnJztcbiAgICAgICAgdXN1YXJpbyA9IDxVc3VhcmlvPkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c3VhcmlvXCIpKTtcbiAgICAgICAgaWYgKHVzdWFyaW8pIHtcbiAgICAgICAgICAgIHRva2VuX3R5cGUgPSB1c3VhcmlvLnRva2VuX3R5cGUsXG4gICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuID0gdXN1YXJpby5hY2Nlc3NfdG9rZW5cbiAgICAgICAgfVxuICAgICAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdBY2NlcHQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuX3R5cGUgKyAnICcgKyBhY2Nlc3NfdG9rZW5cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29uZmlnXCIpKTtcbiAgICAgICAgaWYgKGNvbmZpZylcbiAgICAgICAgICAgIGlmIChjb25maWcudXJsKVxuICAgICAgICAgICAgICAgIHRoaXMudXJsX2hvc3QgPSBjb25maWcudXJsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMudXJsX2hvc3QgKyAnL3VzdWFyaW8vb2J0aWVuZVVzdWFyaW9BY3R1YWwnLCBodHRwT3B0aW9ucyk7XG4gICAgfVxufVxuIl19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS3RDLE1BQU0sT0FBTyxXQUFXO0lBTXBCLFlBQ1ksVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxsQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRUosVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUk1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRztRQUNkLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksTUFBTTtZQUNOLElBQUksTUFBTSxDQUFDLEdBQUc7Z0JBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FB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RSxNQUFNO2FBQ3JCOzJDQUthLEtBQUs7a0JBQWQsTUFBTTtZQUNHLGdCQUFnQjtrQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBVc3VhcmlvIH0gZnJvbSAnLi4vbW9kZWxzL1VzdWFyaW8nO1xuaW1wb3J0IHsgQXV0aCB9IGZyb20gJy4uL21vZGVscy9hdXRoJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gICAgdXN1YXJpbzogVXN1YXJpbztcbiAgICB1cmxfaG9zdCA9ICcnO1xuICAgIGF1dGg6IEF1dGg7XG4gICAgQE91dHB1dCgpIGxvZ2luID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY2Npb25FbXByZXNhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcbiAgICApIHtcbiAgICAgICAgdGhpcy5hdXRoID0gbmV3IEF1dGgoKTtcbiAgICB9XG5cbiAgICBzZXRsb2dpbih1c2VyLCBrZXkpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmcnLCAnZXMnKTtcbiAgICAgICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb25maWdcIikpO1xuICAgICAgICBpZiAoY29uZmlnKVxuICAgICAgICAgICAgaWYgKGNvbmZpZy51cmwpXG4gICAgICAgICAgICAgICAgdGhpcy51cmxfaG9zdCA9IGNvbmZpZy51cmw7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLnVybF9ob3N0ICsgJy9sb2dpbicgKyAoa2V5ID8gJy8nICsga2V5IDogJycpLCB1c2VyKTtcbiAgICB9XG4gICAgc3RhcnRBdXRoKHVzZXIpIHtcbiAgICAgICAgdGhpcy5hdXRoID0gdXNlcjtcbiAgICAgICAgdGhpcy5sb2dpbi5lbWl0KHRoaXMuYXV0aCk7XG4gICAgfVxuICAgIGlzTG9naW4oKSB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXN1YXJpbycpICE9PSBudWxsO1xuICAgIH1cblxuICAgIHF1aXRhclVzdWFyaW8oKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd1c3VhcmlvJyk7XG4gICAgICAgIHRoaXMuYXV0aC5sb2dpbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvZ2luLmVtaXQodGhpcy5hdXRoKTtcbiAgICB9XG5cblxuICAgIHZlcmlmaWNhTG9naW4oKSB7XG4gICAgICAgIHRoaXMudXN1YXJpbyA9IHRoaXMuZ2V0VXNlcigpO1xuICAgICAgICBpZiAodGhpcy51c3VhcmlvLmFjY2Vzc190b2tlbikge1xuICAgICAgICAgICAgdGhpcy5nZXREZXRhbHNVc2VyKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoLnVzdWFyaW9EZXRhbGxlcyA9IHJlc3A7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aC5sb2dpbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW4uZW1pdCh0aGlzLmF1dGgpO1xuICAgICAgICAgICAgICAgIH0sIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVpdGFyVXN1YXJpbygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmF1dGgudXN1YXJpb0RldGFsbGVzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuYXV0aC5sb2dpbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5sb2dpbi5lbWl0KHRoaXMuYXV0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGxvZ2luT3V0KCkge1xuXG4gICAgICAgIHRoaXMucXVpdGFyRW1wcmVzYUFkbWluaXN0cmF0aXZhKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd1c3VhcmlvJyk7XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3VzdWFyaW8nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZycsICdlcycpO1xuICAgICAgICB0aGlzLmF1dGgubG9naW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2dpbi5lbWl0KHRoaXMuYXV0aCk7XG4gICAgfVxuXG4gICAgZ2V0VXNlcigpIHtcbiAgICAgICAgdGhpcy51c3VhcmlvID0gbmV3IFVzdWFyaW8oKTtcbiAgICAgICAgaWYgKHRoaXMuaXNMb2dpbigpKSB7XG4gICAgICAgICAgICBsZXQgdXMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXN1YXJpbycpO1xuICAgICAgICAgICAgaWYgKHVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c3VhcmlvID0gSlNPTi5wYXJzZSh1cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzdWFyaW87XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c3VhcmlvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TGFuZygpIHtcbiAgICAgICAgbGV0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZycpO1xuICAgICAgICByZXR1cm4gbGFuZyA/IGxhbmcgOiAnZXMnO1xuICAgIH1cblxuICAgIHNlbGVjdEVtcHJlc2EoZSkge1xuICAgICAgICB0aGlzLnNlbGVjY2lvbkVtcHJlc2EuZW1pdChlKTtcbiAgICB9XG5cbiAgICBxdWl0YXJFbXByZXNhQWRtaW5pc3RyYXRpdmEoKSB7XG4gICAgICAgIGxldCB1c3VhcmlvOiBVc3VhcmlvO1xuICAgICAgICBsZXQgdG9rZW5fdHlwZSA9ICcnO1xuICAgICAgICBsZXQgYWNjZXNzX3Rva2VuID0gJyc7XG4gICAgICAgIHVzdWFyaW8gPSA8VXN1YXJpbz5KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXN1YXJpb1wiKSk7XG4gICAgICAgIGlmICh1c3VhcmlvKSB7XG4gICAgICAgICAgICB0b2tlbl90eXBlID0gdXN1YXJpby50b2tlbl90eXBlLFxuICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbiA9IHVzdWFyaW8uYWNjZXNzX3Rva2VuXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGh0dHBPcHRpb25zID0ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQWNjZXB0LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiB0b2tlbl90eXBlICsgJyAnICsgYWNjZXNzX3Rva2VuXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvbmZpZ1wiKSk7XG4gICAgICAgIGlmIChjb25maWcpXG4gICAgICAgICAgICBpZiAoY29uZmlnLnVybClcbiAgICAgICAgICAgICAgICB0aGlzLnVybF9ob3N0ID0gY29uZmlnLnVybDtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy51cmxfaG9zdCArICcvdXN1YXJpby9zZXRFbXByZXNhJywgeyBpZDogMCB9LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuICAgIHNldEVtcHJlc2EoZW1wcmVzYSkge1xuICAgICAgICAvLyAgc2V0RW1wcmVzYUFkbWluaXN0cmF0aXZhXG4gICAgICAgIGxldCB1c3VhcmlvOiBVc3VhcmlvO1xuICAgICAgICBsZXQgdG9rZW5fdHlwZSA9ICcnO1xuICAgICAgICBsZXQgYWNjZXNzX3Rva2VuID0gJyc7XG4gICAgICAgIHVzdWFyaW8gPSA8VXN1YXJpbz5KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXN1YXJpb1wiKSk7XG4gICAgICAgIGlmICh1c3VhcmlvKSB7XG4gICAgICAgICAgICB0b2tlbl90eXBlID0gdXN1YXJpby50b2tlbl90eXBlLFxuICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbiA9IHVzdWFyaW8uYWNjZXNzX3Rva2VuXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGh0dHBPcHRpb25zID0ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQWNjZXB0LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiB0b2tlbl90eXBlICsgJyAnICsgYWNjZXNzX3Rva2VuXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvbmZpZ1wiKSk7XG4gICAgICAgIGlmIChjb25maWcpXG4gICAgICAgICAgICBpZiAoY29uZmlnLnVybClcbiAgICAgICAgICAgICAgICB0aGlzLnVybF9ob3N0ID0gY29uZmlnLnVybDtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy51cmxfaG9zdCArICcvdXN1YXJpby9zZXRFbXByZXNhJywgZW1wcmVzYSwgaHR0cE9wdGlvbnMpO1xuICAgIH1cbiAgICBzZXRNb2R1bG8obW9kdWxvKSB7XG4gICAgICAgIC8vICBzZXRFbXByZXNhQWRtaW5pc3RyYXRpdmFcbiAgICAgICAgbGV0IHVzdWFyaW86IFVzdWFyaW87XG4gICAgICAgIGxldCB0b2tlbl90eXBlID0gJyc7XG4gICAgICAgIGxldCBhY2Nlc3NfdG9rZW4gPSAnJztcbiAgICAgICAgdXN1YXJpbyA9IDxVc3VhcmlvPkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c3VhcmlvXCIpKTtcbiAgICAgICAgaWYgKHVzdWFyaW8pIHtcbiAgICAgICAgICAgIHRva2VuX3R5cGUgPSB1c3VhcmlvLnRva2VuX3R5cGUsXG4gICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuID0gdXN1YXJpby5hY2Nlc3NfdG9rZW5cbiAgICAgICAgfVxuICAgICAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdBY2NlcHQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuX3R5cGUgKyAnICcgKyBhY2Nlc3NfdG9rZW5cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29uZmlnXCIpKTtcbiAgICAgICAgaWYgKGNvbmZpZylcbiAgICAgICAgICAgIGlmIChjb25maWcudXJsKVxuICAgICAgICAgICAgICAgIHRoaXMudXJsX2hvc3QgPSBjb25maWcudXJsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLnVybF9ob3N0ICsgJy91c3VhcmlvL3NldE1vZHVsbycsIG1vZHVsbywgaHR0cE9wdGlvbnMpO1xuICAgIH1cbiAgICBxdWl0YXJNb2R1bG8oKSB7XG4gICAgICAgIC8vICBzZXRFbXByZXNhQWRtaW5pc3RyYXRpdmFcbiAgICAgICAgbGV0IHVzdWFyaW86IFVzdWFyaW87XG4gICAgICAgIGxldCB0b2tlbl90eXBlID0gJyc7XG4gICAgICAgIGxldCBhY2Nlc3NfdG9rZW4gPSAnJztcbiAgICAgICAgdXN1YXJpbyA9IDxVc3VhcmlvPkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c3VhcmlvXCIpKTtcbiAgICAgICAgaWYgKHVzdWFyaW8pIHtcbiAgICAgICAgICAgIHRva2VuX3R5cGUgPSB1c3VhcmlvLnRva2VuX3R5cGUsXG4gICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuID0gdXN1YXJpby5hY2Nlc3NfdG9rZW5cbiAgICAgICAgfVxuICAgICAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdBY2NlcHQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuX3R5cGUgKyAnICcgKyBhY2Nlc3NfdG9rZW5cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29uZmlnXCIpKTtcbiAgICAgICAgaWYgKGNvbmZpZylcbiAgICAgICAgICAgIGlmIChjb25maWcudXJsKVxuICAgICAgICAgICAgICAgIHRoaXMudXJsX2hvc3QgPSBjb25maWcudXJsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLnVybF9ob3N0ICsgJy91c3VhcmlvL3NldE1vZHVsbycsIHsgaWQ6IDAgfSwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGdldERldGFsc1VzZXIoKSB7XG4gICAgICAgIGxldCB1c3VhcmlvOiBVc3VhcmlvO1xuICAgICAgICBsZXQgdG9rZW5fdHlwZSA9ICcnO1xuICAgICAgICBsZXQgYWNjZXNzX3Rva2VuID0gJyc7XG4gICAgICAgIHVzdWFyaW8gPSA8VXN1YXJpbz5KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXN1YXJpb1wiKSk7XG4gICAgICAgIGlmICh1c3VhcmlvKSB7XG4gICAgICAgICAgICB0b2tlbl90eXBlID0gdXN1YXJpby50b2tlbl90eXBlLFxuICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbiA9IHVzdWFyaW8uYWNjZXNzX3Rva2VuXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGh0dHBPcHRpb25zID0ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQWNjZXB0LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiB0b2tlbl90eXBlICsgJyAnICsgYWNjZXNzX3Rva2VuXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvbmZpZ1wiKSk7XG4gICAgICAgIGlmIChjb25maWcpXG4gICAgICAgICAgICBpZiAoY29uZmlnLnVybClcbiAgICAgICAgICAgICAgICB0aGlzLnVybF9ob3N0ID0gY29uZmlnLnVybDtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLnVybF9ob3N0ICsgJy91c3VhcmlvL29idGllbmVVc3VhcmlvQWN0dWFsJywgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIG9idGllbmVVc3VhcmlvQ29uZmlndXJhY2lvbigpIHtcbiAgICAgICAgbGV0IHVzdWFyaW86IFVzdWFyaW87XG4gICAgICAgIGxldCB0b2tlbl90eXBlID0gJyc7XG4gICAgICAgIGxldCBhY2Nlc3NfdG9rZW4gPSAnJztcbiAgICAgICAgdXN1YXJpbyA9IDxVc3VhcmlvPkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c3VhcmlvXCIpKTtcbiAgICAgICAgaWYgKHVzdWFyaW8pIHtcbiAgICAgICAgICAgIHRva2VuX3R5cGUgPSB1c3VhcmlvLnRva2VuX3R5cGUsXG4gICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuID0gdXN1YXJpby5hY2Nlc3NfdG9rZW5cbiAgICAgICAgfVxuICAgICAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdBY2NlcHQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuX3R5cGUgKyAnICcgKyBhY2Nlc3NfdG9rZW5cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29uZmlnXCIpKTtcbiAgICAgICAgaWYgKGNvbmZpZylcbiAgICAgICAgICAgIGlmIChjb25maWcudXJsKVxuICAgICAgICAgICAgICAgIHRoaXMudXJsX2hvc3QgPSBjb25maWcudXJsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMudXJsX2hvc3QgKyAnL3VzdWFyaW8vb2J0aWVuZVVzdWFyaW9Db25maWd1cmFjaW9uJywgaHR0cE9wdGlvbnMpO1xuICAgIH1cbn1cbiJdfQ==