@resolveio/client-lib-core 15.1.10 → 15.1.11

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.
@@ -75,7 +75,7 @@ DialogLoginContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
75
75
  }
76
76
 
77
77
  .log-box {
78
- padding-top: 26px;
78
+ padding-top: 0px;
79
79
  padding-bottom: 26px;
80
80
  }
81
81
  .loginform .form-control, .register-form .form-control {
@@ -138,6 +138,53 @@ DialogLoginContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
138
138
  button.btn.sign-btn:hover {
139
139
  background: #1668e2;
140
140
  }
141
+
142
+ .login-card {
143
+ margin-bottom: 20px;
144
+ padding: 20px;
145
+ padding-top: 10px;
146
+ border-radius: 8px;
147
+ box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 6px 20px rgba(0,0,0,0.19); /* Enhanced shadow */
148
+ background-color: #FFFFFF;
149
+ }
150
+
151
+ .login-header {
152
+ font-size: 20px;
153
+ font-weight: bold;
154
+ color: #333;
155
+ margin-bottom: 15px;
156
+ text-align: center;
157
+ }
158
+
159
+ .employee-login-btn {
160
+ background-color: #0078D4; /* Microsoft Blue */
161
+ color: white;
162
+ padding: 10px 20px; /* Larger size */
163
+ font-size: 16px; /* Larger text */
164
+ border-radius: 5px; /* Rounded corners */
165
+ width: 100%; /* Full width */
166
+ box-sizing: border-box; /* Include padding and border in the element's width and height */
167
+ }
168
+
169
+ .third-party-login-btn {
170
+ background-color: #28a745; /* Bootstrap success green */
171
+ color: white;
172
+ border-radius: 5px; /* Rounded corners */
173
+ width: 100%; /* Full width */
174
+ box-sizing: border-box; /* Include padding and border in the element's width and height */
175
+ margin-top: 10px;
176
+ }
177
+
178
+ .third-party-login-section {
179
+ background-color: #F3F4F6; /* Optional: Light grey background for contrast */
180
+ border-radius: 8px; /* Optional: Rounded corners for the input form */
181
+ }
182
+
183
+ .employee-login-section, .third-party-login-section {
184
+ text-align: center;
185
+ }
186
+
187
+
141
188
  </style>
142
189
  <form [formGroup]="form" novalidate>
143
190
  <div class="modal-header">
@@ -161,22 +208,59 @@ DialogLoginContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
161
208
  </div>
162
209
  <div class="col-lg-6">
163
210
  <div class="log-box">
164
- <div class="loginform">
165
- <div class="form-group">
166
- <label>Username/Email</label>
167
- <em *ngIf="form.controls.username.hasError('required')">- Required</em>
168
- <input type="email" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="Your Username/Email" autocomplete="username">
169
- </div>
170
- <div class="form-group">
171
- <label>Password</label>
172
- <em *ngIf="form.controls.password.hasError('required')">- Required</em>
173
- <input type="password" [ngClass]="['form-control', form.controls.password.enabled ? (form.controls.password.valid ? 'is-valid' : 'is-invalid') : '']" formControlName="password" placeholder="Your Password" autocomplete="current-password">
174
- </div>
175
- <div class="form-check text-right">
176
- <label class="form-check-label"><a href="javascript:void(0)" (click)="toggleForgotPassword()"> {{!form.controls.forgotPassword.value ? 'Forgot Password?' : 'Enter Password'}} </a></label>
177
- </div>
178
- <button type="submit" class="btn loginbtn" (click)="close('ResolveIO')">{{!form.controls.forgotPassword.value ? 'Login' : 'Submit'}}</button>
179
- <button *ngIf="msAllowed" type="submit" class="btn login365btn" (click)="close('MS')">Microsoft Single-Sign-On</button>
211
+ <div class="loginform" style="margin: 0px;">
212
+ <ng-container *ngIf="!msAllowed">
213
+ <div class="login-card">
214
+ <h3 class="login-header">Employee/Customer Login</h3>
215
+ <div class="third-party-login-section">
216
+ <div class="form-group">
217
+ <label>Username/Email</label>
218
+ <em *ngIf="form.controls.username.hasError('required')">- Required</em>
219
+ <input type="email" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="Your Username/Email" autocomplete="username">
220
+ </div>
221
+ <div class="form-group">
222
+ <label>Password</label>
223
+ <em *ngIf="form.controls.password.hasError('required')">- Required</em>
224
+ <input type="password" [ngClass]="['form-control', form.controls.password.enabled ? (form.controls.password.valid ? 'is-valid' : 'is-invalid') : '']" formControlName="password" placeholder="Your Password" autocomplete="current-password">
225
+ </div>
226
+ <div class="form-check text-right">
227
+ <label class="form-check-label"><a href="javascript:void(0)" (click)="toggleForgotPassword()"> {{!form.controls.forgotPassword.value ? 'Forgot Password?' : 'Enter Password'}} </a></label>
228
+ </div>
229
+ <button type="submit" class="btn third-party-login-btn" (click)="close('ResolveIO')">{{!form.controls.forgotPassword.value ? 'Login' : 'Submit'}}</button>
230
+ </div>
231
+ </div>
232
+ </ng-container>
233
+ <ng-container *ngIf="msAllowed">
234
+ <!-- Employee Login Section -->
235
+ <div class="login-card">
236
+ <h3 class="login-header">Employee Login</h3>
237
+ <div class="employee-login-section">
238
+ <button type="submit" class="btn employee-login-btn" (click)="close('MS')">Employee Login</button>
239
+ </div>
240
+ </div>
241
+
242
+ <!-- Third Party Login Section -->
243
+ <div class="login-card">
244
+ <h3 class="login-header">Third Party Login</h3>
245
+ <div class="third-party-login-section">
246
+ <div class="form-group">
247
+ <label>Username/Email</label>
248
+ <em *ngIf="form.controls.username.hasError('required')">- Required</em>
249
+ <input type="email" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="Your Username/Email" autocomplete="username">
250
+ </div>
251
+ <div class="form-group">
252
+ <label>Password</label>
253
+ <em *ngIf="form.controls.password.hasError('required')">- Required</em>
254
+ <input type="password" [ngClass]="['form-control', form.controls.password.enabled ? (form.controls.password.valid ? 'is-valid' : 'is-invalid') : '']" formControlName="password" placeholder="Your Password" autocomplete="current-password">
255
+ </div>
256
+ <div class="form-check text-right">
257
+ <label class="form-check-label"><a href="javascript:void(0)" (click)="toggleForgotPassword()"> {{!form.controls.forgotPassword.value ? 'Forgot Password?' : 'Enter Password'}} </a></label>
258
+ </div>
259
+ <button type="submit" class="btn third-party-login-btn" (click)="close('ResolveIO')">{{!form.controls.forgotPassword.value ? 'Login' : 'Submit'}}</button>
260
+ </div>
261
+ </div>
262
+ </ng-container>
263
+
180
264
  </div>
181
265
  </div>
182
266
  </div>
@@ -190,7 +274,7 @@ DialogLoginContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
190
274
  </responsive-button-group>
191
275
  </div>
192
276
  </form>
193
- `, isInline: true, styles: ["\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.navbar-light .navbar-nav .nav-link {\n\t\t\t\tcolor:#333;\n\t\t\t}\n\t\t\ta.nav-link.loginreg {\n\t\t\t\tbackground-color: #0b4499;\n\t\t\t\tcolor: #fff !important;\n\t\t\t\tborder-radius: 40px;\n\t\t\t}\n\t\t\ta.nav-link.loginreg:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t\t.nav-link {\n\t\t\t\tcolor: #333333;\n\t\t\t\tfont-size: 150%\n\t\t\t}\n\t\t\t.nav-item a.nav-link.active {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.contactimg>img{\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.log-box {\n\t\t\t\tpadding-top: 26px;\n\t\t\t\tpadding-bottom: 26px;\n\t\t\t}\n\t\t\t.loginform .form-control, .register-form .form-control {\n\t\t\t\tcolor: #000;\n\t\t\t\theight: 52px;\n\t\t\t}\n\t\t\t.loginform {\n\t\t\t\tmargin-top: 35px;\n\t\t\t}\n\t\t\t.loginform label {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 600;\n\t\t\t}\n\n\t\t\t.loginbtn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.login365btn {\n\t\t\t\tbackground: orange;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.contactimg {\n\t\t\t\tposition: relative;\n\t\t\t}\n\t\t\t.login-logo {\n\t\t\t\tmargin-bottom: 20px;\n\t\t\t}\n\n\t\t\t.textbox {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tpadding: 40px;\n\t\t\t\ttransform: translate(0%, -50%);\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.sign-btn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 14px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\tbutton.btn.sign-btn:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t"], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.FocusDirective, selector: "[focus]", inputs: ["focus"] }] });
277
+ `, isInline: true, styles: ["\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.navbar-light .navbar-nav .nav-link {\n\t\t\t\tcolor:#333;\n\t\t\t}\n\t\t\ta.nav-link.loginreg {\n\t\t\t\tbackground-color: #0b4499;\n\t\t\t\tcolor: #fff !important;\n\t\t\t\tborder-radius: 40px;\n\t\t\t}\n\t\t\ta.nav-link.loginreg:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t\t.nav-link {\n\t\t\t\tcolor: #333333;\n\t\t\t\tfont-size: 150%\n\t\t\t}\n\t\t\t.nav-item a.nav-link.active {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.contactimg>img{\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.log-box {\n\t\t\t\tpadding-top: 0px;\n\t\t\t\tpadding-bottom: 26px;\n\t\t\t}\n\t\t\t.loginform .form-control, .register-form .form-control {\n\t\t\t\tcolor: #000;\n\t\t\t\theight: 52px;\n\t\t\t}\n\t\t\t.loginform {\n\t\t\t\tmargin-top: 35px;\n\t\t\t}\n\t\t\t.loginform label {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 600;\n\t\t\t}\n\n\t\t\t.loginbtn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.login365btn {\n\t\t\t\tbackground: orange;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.contactimg {\n\t\t\t\tposition: relative;\n\t\t\t}\n\t\t\t.login-logo {\n\t\t\t\tmargin-bottom: 20px;\n\t\t\t}\n\n\t\t\t.textbox {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tpadding: 40px;\n\t\t\t\ttransform: translate(0%, -50%);\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.sign-btn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 14px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\tbutton.btn.sign-btn:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t\t\n\t\t\t.login-card {\n\t\t\t\tmargin-bottom: 20px;\n\t\t\t\tpadding: 20px;\n\t\t\t\tpadding-top: 10px;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tbox-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 6px 20px rgba(0,0,0,0.19); /* Enhanced shadow */\n\t\t\t\tbackground-color: #FFFFFF;\n\t\t\t}\n\t\t\t\n\t\t\t.login-header {\n\t\t\t\tfont-size: 20px;\n\t\t\t\tfont-weight: bold;\n\t\t\t\tcolor: #333;\n\t\t\t\tmargin-bottom: 15px;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t\n\t\t\t.employee-login-btn {\n\t\t\t\tbackground-color: #0078D4; /* Microsoft Blue */\n\t\t\t\tcolor: white;\n\t\t\t\tpadding: 10px 20px; /* Larger size */\n\t\t\t\tfont-size: 16px; /* Larger text */\n\t\t\t\tborder-radius: 5px; /* Rounded corners */\n\t\t\t\twidth: 100%; /* Full width */\n\t\t\t\tbox-sizing: border-box; /* Include padding and border in the element's width and height */\n\t\t\t}\n\t\t\t\n\t\t\t.third-party-login-btn {\n\t\t\t\tbackground-color: #28a745; /* Bootstrap success green */\n\t\t\t\tcolor: white;\n\t\t\t\tborder-radius: 5px; /* Rounded corners */\n\t\t\t\twidth: 100%; /* Full width */\n\t\t\t\tbox-sizing: border-box; /* Include padding and border in the element's width and height */\n\t\t\t\tmargin-top: 10px;\n\t\t\t}\n\t\t\t\n\t\t\t.third-party-login-section {\n\t\t\t\tbackground-color: #F3F4F6; /* Optional: Light grey background for contrast */\n\t\t\t\tborder-radius: 8px; /* Optional: Rounded corners for the input form */\n\t\t\t}\n\t\t\t\n\t\t\t.employee-login-section, .third-party-login-section {\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t"], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.FocusDirective, selector: "[focus]", inputs: ["focus"] }] });
194
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogLoginContent, decorators: [{
195
279
  type: Component,
196
280
  args: [{
@@ -226,7 +310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
226
310
  }
227
311
 
228
312
  .log-box {
229
- padding-top: 26px;
313
+ padding-top: 0px;
230
314
  padding-bottom: 26px;
231
315
  }
232
316
  .loginform .form-control, .register-form .form-control {
@@ -289,6 +373,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
289
373
  button.btn.sign-btn:hover {
290
374
  background: #1668e2;
291
375
  }
376
+
377
+ .login-card {
378
+ margin-bottom: 20px;
379
+ padding: 20px;
380
+ padding-top: 10px;
381
+ border-radius: 8px;
382
+ box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 6px 20px rgba(0,0,0,0.19); /* Enhanced shadow */
383
+ background-color: #FFFFFF;
384
+ }
385
+
386
+ .login-header {
387
+ font-size: 20px;
388
+ font-weight: bold;
389
+ color: #333;
390
+ margin-bottom: 15px;
391
+ text-align: center;
392
+ }
393
+
394
+ .employee-login-btn {
395
+ background-color: #0078D4; /* Microsoft Blue */
396
+ color: white;
397
+ padding: 10px 20px; /* Larger size */
398
+ font-size: 16px; /* Larger text */
399
+ border-radius: 5px; /* Rounded corners */
400
+ width: 100%; /* Full width */
401
+ box-sizing: border-box; /* Include padding and border in the element's width and height */
402
+ }
403
+
404
+ .third-party-login-btn {
405
+ background-color: #28a745; /* Bootstrap success green */
406
+ color: white;
407
+ border-radius: 5px; /* Rounded corners */
408
+ width: 100%; /* Full width */
409
+ box-sizing: border-box; /* Include padding and border in the element's width and height */
410
+ margin-top: 10px;
411
+ }
412
+
413
+ .third-party-login-section {
414
+ background-color: #F3F4F6; /* Optional: Light grey background for contrast */
415
+ border-radius: 8px; /* Optional: Rounded corners for the input form */
416
+ }
417
+
418
+ .employee-login-section, .third-party-login-section {
419
+ text-align: center;
420
+ }
421
+
422
+
292
423
  </style>
293
424
  <form [formGroup]="form" novalidate>
294
425
  <div class="modal-header">
@@ -312,22 +443,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
312
443
  </div>
313
444
  <div class="col-lg-6">
314
445
  <div class="log-box">
315
- <div class="loginform">
316
- <div class="form-group">
317
- <label>Username/Email</label>
318
- <em *ngIf="form.controls.username.hasError('required')">- Required</em>
319
- <input type="email" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="Your Username/Email" autocomplete="username">
320
- </div>
321
- <div class="form-group">
322
- <label>Password</label>
323
- <em *ngIf="form.controls.password.hasError('required')">- Required</em>
324
- <input type="password" [ngClass]="['form-control', form.controls.password.enabled ? (form.controls.password.valid ? 'is-valid' : 'is-invalid') : '']" formControlName="password" placeholder="Your Password" autocomplete="current-password">
325
- </div>
326
- <div class="form-check text-right">
327
- <label class="form-check-label"><a href="javascript:void(0)" (click)="toggleForgotPassword()"> {{!form.controls.forgotPassword.value ? 'Forgot Password?' : 'Enter Password'}} </a></label>
328
- </div>
329
- <button type="submit" class="btn loginbtn" (click)="close('ResolveIO')">{{!form.controls.forgotPassword.value ? 'Login' : 'Submit'}}</button>
330
- <button *ngIf="msAllowed" type="submit" class="btn login365btn" (click)="close('MS')">Microsoft Single-Sign-On</button>
446
+ <div class="loginform" style="margin: 0px;">
447
+ <ng-container *ngIf="!msAllowed">
448
+ <div class="login-card">
449
+ <h3 class="login-header">Employee/Customer Login</h3>
450
+ <div class="third-party-login-section">
451
+ <div class="form-group">
452
+ <label>Username/Email</label>
453
+ <em *ngIf="form.controls.username.hasError('required')">- Required</em>
454
+ <input type="email" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="Your Username/Email" autocomplete="username">
455
+ </div>
456
+ <div class="form-group">
457
+ <label>Password</label>
458
+ <em *ngIf="form.controls.password.hasError('required')">- Required</em>
459
+ <input type="password" [ngClass]="['form-control', form.controls.password.enabled ? (form.controls.password.valid ? 'is-valid' : 'is-invalid') : '']" formControlName="password" placeholder="Your Password" autocomplete="current-password">
460
+ </div>
461
+ <div class="form-check text-right">
462
+ <label class="form-check-label"><a href="javascript:void(0)" (click)="toggleForgotPassword()"> {{!form.controls.forgotPassword.value ? 'Forgot Password?' : 'Enter Password'}} </a></label>
463
+ </div>
464
+ <button type="submit" class="btn third-party-login-btn" (click)="close('ResolveIO')">{{!form.controls.forgotPassword.value ? 'Login' : 'Submit'}}</button>
465
+ </div>
466
+ </div>
467
+ </ng-container>
468
+ <ng-container *ngIf="msAllowed">
469
+ <!-- Employee Login Section -->
470
+ <div class="login-card">
471
+ <h3 class="login-header">Employee Login</h3>
472
+ <div class="employee-login-section">
473
+ <button type="submit" class="btn employee-login-btn" (click)="close('MS')">Employee Login</button>
474
+ </div>
475
+ </div>
476
+
477
+ <!-- Third Party Login Section -->
478
+ <div class="login-card">
479
+ <h3 class="login-header">Third Party Login</h3>
480
+ <div class="third-party-login-section">
481
+ <div class="form-group">
482
+ <label>Username/Email</label>
483
+ <em *ngIf="form.controls.username.hasError('required')">- Required</em>
484
+ <input type="email" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="Your Username/Email" autocomplete="username">
485
+ </div>
486
+ <div class="form-group">
487
+ <label>Password</label>
488
+ <em *ngIf="form.controls.password.hasError('required')">- Required</em>
489
+ <input type="password" [ngClass]="['form-control', form.controls.password.enabled ? (form.controls.password.valid ? 'is-valid' : 'is-invalid') : '']" formControlName="password" placeholder="Your Password" autocomplete="current-password">
490
+ </div>
491
+ <div class="form-check text-right">
492
+ <label class="form-check-label"><a href="javascript:void(0)" (click)="toggleForgotPassword()"> {{!form.controls.forgotPassword.value ? 'Forgot Password?' : 'Enter Password'}} </a></label>
493
+ </div>
494
+ <button type="submit" class="btn third-party-login-btn" (click)="close('ResolveIO')">{{!form.controls.forgotPassword.value ? 'Login' : 'Submit'}}</button>
495
+ </div>
496
+ </div>
497
+ </ng-container>
498
+
331
499
  </div>
332
500
  </div>
333
501
  </div>
@@ -348,4 +516,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
348
516
  }], showLoginText: [{
349
517
  type: Input
350
518
  }] } });
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmxvZ2luLmNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmxvZ2luLmNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUF3SnBFLGtEQUFrRDtBQUNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBTTlCLFlBQW1CLFlBQTRCLEVBQVUsR0FBZ0I7UUFBdEQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUxoRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO0lBSThDLENBQUM7SUFFN0UsUUFBUTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQjtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO1lBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDckM7YUFDSTtZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSTtTQUNWLENBQUMsQ0FBQztJQUNKLENBQUM7O2dIQXJDVyxrQkFBa0I7b0dBQWxCLGtCQUFrQix3SEF0SnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtSlQ7NEZBR1csa0JBQWtCO2tCQXZKOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1KVDtpQkFDRDsrSEFHUyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBgXG5cdFx0PHN0eWxlPlxuXHRcdFx0Y29sbGFwc2UtdGFibGUge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0Lm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAuYWN0aXZlPi5uYXYtbGluaywgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93LCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5zaG93Pi5uYXYtbGluayB7XG5cdFx0XHRcdGNvbG9yOiAjMGI0NDk5O1xuXHRcdFx0fVxuXHRcdFx0Lm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuXHRcdFx0XHRjb2xvcjojMzMzO1xuXHRcdFx0fVxuXHRcdFx0YS5uYXYtbGluay5sb2dpbnJlZyB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMwYjQ0OTk7XG5cdFx0XHRcdGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDQwcHg7XG5cdFx0XHR9XG5cdFx0XHRhLm5hdi1saW5rLmxvZ2lucmVnOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogIzE2NjhlMjtcblx0XHRcdH1cblx0XHRcdC5uYXYtbGluayB7XG5cdFx0XHRcdGNvbG9yOiAjMzMzMzMzO1xuXHRcdFx0XHRmb250LXNpemU6IDE1MCVcblx0XHRcdH1cblx0XHRcdC5uYXYtaXRlbSBhLm5hdi1saW5rLmFjdGl2ZSB7XG5cdFx0XHRcdGNvbG9yOiAjMGI0NDk5O1xuXHRcdFx0fVxuXHRcdFx0LmNvbnRhY3RpbWc+aW1ne1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0LmxvZy1ib3gge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjZweDtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDI2cHg7XG5cdFx0XHR9XG5cdFx0XHQubG9naW5mb3JtIC5mb3JtLWNvbnRyb2wsIC5yZWdpc3Rlci1mb3JtIC5mb3JtLWNvbnRyb2wge1xuXHRcdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdFx0aGVpZ2h0OiA1MnB4O1xuXHRcdFx0fVxuXHRcdFx0LmxvZ2luZm9ybSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDM1cHg7XG5cdFx0XHR9XG5cdFx0XHQubG9naW5mb3JtIGxhYmVsIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0fVxuXG5cdFx0XHQubG9naW5idG4ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMGI0NDk5O1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLXRvcDogNDRweDtcblx0XHRcdFx0aGVpZ2h0OiA1MnB4O1xuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRcdFx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0LmxvZ2luMzY1YnRuIHtcblx0XHRcdFx0YmFja2dyb3VuZDogb3JhbmdlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLXRvcDogNDRweDtcblx0XHRcdFx0aGVpZ2h0OiA1MnB4O1xuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRcdFx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0LmNvbnRhY3RpbWcge1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR9XG5cdFx0XHQubG9naW4tbG9nbyB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHR9XG5cblx0XHRcdC50ZXh0Ym94IHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdHBhZGRpbmc6IDQwcHg7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAtNTAlKTtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXHRcdFx0LnNpZ24tYnRuIHtcblx0XHRcdFx0YmFja2dyb3VuZDogIzBiNDQ5OTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDE0cHg7XG5cdFx0XHRcdGhlaWdodDogNTJweDtcblx0XHRcdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRcdGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGJ1dHRvbi5idG4uc2lnbi1idG46aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMTY2OGUyO1xuXHRcdFx0fVxuXHRcdDwvc3R5bGU+XG5cdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgbm92YWxpZGF0ZT5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0XHRcdFx0PGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj48Yj5Mb2dpbjwvYj48L2g0PlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5cblx0XHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiAqbmdJZj1cImZvcm1cIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVyXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBiZy13aGl0ZVwiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFjdGltZ1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGltZyBzcmM9XCIvYXNzZXRzL2ltYWdlcy9sb2dpbnNpZ251cC9mb3JtaW1nLmpwZ1wiIGFsdD1cImltYWdlc1wiIGNsYXNzPVwiaW1nLWZsdWlkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dGJveFwiICpuZ0lmPVwic2hvd0xvZ2luVGV4dFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9naW4tbG9nb1wiPjxpbWcgc3JjPVwiL2Fzc2V0cy9pbWFnZXMvbG9naW5zaWdudXAvbG9naW4tbG9nby5wbmdcIiBhbHQ9XCJpbWFnZXNcIj48L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0VGhlIEFsbC1pbi1PbmUgU29sdXRpb24gZm9yIFRyYWNraW5nIEludmVudG9yeSwgT3JkZXJpbmcsIFBPcywgTWFuYWdlbWVudCwgYW5kIE11Y2ggTW9yZSFcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImxvZy1ib3hcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJsb2dpbmZvcm1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8bGFiZWw+VXNlcm5hbWUvRW1haWw8L2xhYmVsPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxlbSAqbmdJZj1cImZvcm0uY29udHJvbHMudXNlcm5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj4tIFJlcXVpcmVkPC9lbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cImVtYWlsXCIgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCBmb3JtLmNvbnRyb2xzLnVzZXJuYW1lLnZhbGlkID8gJ2lzLXZhbGlkJyA6ICdpcy1pbnZhbGlkJ11cIiBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiIFthdXRvZm9jdXNdPVwidHJ1ZVwiIFtmb2N1c109XCJ0cnVlXCIgYXJpYS1kZXNjcmliZWRieT1cImVtYWlsSGVscFwiIHBsYWNlaG9sZGVyPVwiWW91ciBVc2VybmFtZS9FbWFpbFwiIGF1dG9jb21wbGV0ZT1cInVzZXJuYW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbD5QYXNzd29yZDwvbGFiZWw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGVtICpuZ0lmPVwiZm9ybS5jb250cm9scy5wYXNzd29yZC5oYXNFcnJvcigncmVxdWlyZWQnKVwiPi0gUmVxdWlyZWQ8L2VtPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIGZvcm0uY29udHJvbHMucGFzc3dvcmQuZW5hYmxlZCA/IChmb3JtLmNvbnRyb2xzLnBhc3N3b3JkLnZhbGlkID8gJ2lzLXZhbGlkJyA6ICdpcy1pbnZhbGlkJykgOiAnJ11cIiBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHBsYWNlaG9sZGVyPVwiWW91ciBQYXNzd29yZFwiIGF1dG9jb21wbGV0ZT1cImN1cnJlbnQtcGFzc3dvcmRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHRleHQtcmlnaHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+PGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJ0b2dnbGVGb3Jnb3RQYXNzd29yZCgpXCI+IHt7IWZvcm0uY29udHJvbHMuZm9yZ290UGFzc3dvcmQudmFsdWUgPyAnRm9yZ290IFBhc3N3b3JkPycgOiAnRW50ZXIgUGFzc3dvcmQnfX0gPC9hPjwvbGFiZWw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBsb2dpbmJ0blwiIChjbGljayk9XCJjbG9zZSgnUmVzb2x2ZUlPJylcIj57eyFmb3JtLmNvbnRyb2xzLmZvcmdvdFBhc3N3b3JkLnZhbHVlID8gJ0xvZ2luJyA6ICdTdWJtaXQnfX08L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvbiAqbmdJZj1cIm1zQWxsb3dlZFwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBsb2dpbjM2NWJ0blwiIChjbGljayk9XCJjbG9zZSgnTVMnKVwiPk1pY3Jvc29mdCBTaW5nbGUtU2lnbi1PbjwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG5cdFx0XHRcdDxyZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cblx0XHRcdFx0PC9yZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZm9ybT5cblx0YFxufSlcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRGlhbG9nTG9naW5Db250ZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QElucHV0KCkgbXNBbGxvd2VkID0gZmFsc2U7XG5cdEBJbnB1dCgpIHNob3dMb2dpblRleHQgPSB0cnVlO1xuXG5cdGZvcm06IEZvcm1Hcm91cDtcblxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgX2FjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG5cdG5nT25Jbml0KCkge1x0XHRcdFxuXHRcdHRoaXMuZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcblx0XHRcdHVzZXJuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG5cdFx0XHRwYXNzd29yZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuXHRcdFx0Zm9yZ290UGFzc3dvcmQ6IFtmYWxzZV0sXG5cdFx0fSk7XG5cdH1cblxuXHR0b2dnbGVGb3Jnb3RQYXNzd29yZCgpIHtcblx0XHR0aGlzLmZvcm0uY29udHJvbHMuZm9yZ290UGFzc3dvcmQuc2V0VmFsdWUoIXRoaXMuZm9ybS5jb250cm9scy5mb3Jnb3RQYXNzd29yZC52YWx1ZSk7XG5cblx0XHRpZiAoIXRoaXMuZm9ybS5jb250cm9scy5mb3Jnb3RQYXNzd29yZC52YWx1ZSkge1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZC5lbmFibGUoKTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMucGFzc3dvcmQuc2V0VmFsdWUoJycpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkLmNsZWFyVmFsaWRhdG9ycygpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkLmRpc2FibGUoKTtcblx0XHR9XG5cblx0XHR0aGlzLmZvcm0uY29udHJvbHMucGFzc3dvcmQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXHR9XG5cblx0Y2xvc2UodHlwZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fYWN0aXZlTW9kYWwuY2xvc2Uoe1xuXHRcdFx0Zm9ybTogdGhpcy5mb3JtLFxuXHRcdFx0dHlwZTogdHlwZVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
519
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmxvZ2luLmNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmxvZ2luLmNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUE0T3BFLGtEQUFrRDtBQUNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBTTlCLFlBQW1CLFlBQTRCLEVBQVUsR0FBZ0I7UUFBdEQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUxoRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO0lBSThDLENBQUM7SUFFN0UsUUFBUTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQjtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO1lBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDckM7YUFDSTtZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSTtTQUNWLENBQUMsQ0FBQztJQUNKLENBQUM7O2dIQXJDVyxrQkFBa0I7b0dBQWxCLGtCQUFrQix3SEExT3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF1T1Q7NEZBR1csa0JBQWtCO2tCQTNPOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVPVDtpQkFDRDsrSEFHUyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBgXG5cdFx0PHN0eWxlPlxuXHRcdFx0Y29sbGFwc2UtdGFibGUge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0Lm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAuYWN0aXZlPi5uYXYtbGluaywgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93LCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5zaG93Pi5uYXYtbGluayB7XG5cdFx0XHRcdGNvbG9yOiAjMGI0NDk5O1xuXHRcdFx0fVxuXHRcdFx0Lm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuXHRcdFx0XHRjb2xvcjojMzMzO1xuXHRcdFx0fVxuXHRcdFx0YS5uYXYtbGluay5sb2dpbnJlZyB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMwYjQ0OTk7XG5cdFx0XHRcdGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDQwcHg7XG5cdFx0XHR9XG5cdFx0XHRhLm5hdi1saW5rLmxvZ2lucmVnOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogIzE2NjhlMjtcblx0XHRcdH1cblx0XHRcdC5uYXYtbGluayB7XG5cdFx0XHRcdGNvbG9yOiAjMzMzMzMzO1xuXHRcdFx0XHRmb250LXNpemU6IDE1MCVcblx0XHRcdH1cblx0XHRcdC5uYXYtaXRlbSBhLm5hdi1saW5rLmFjdGl2ZSB7XG5cdFx0XHRcdGNvbG9yOiAjMGI0NDk5O1xuXHRcdFx0fVxuXHRcdFx0LmNvbnRhY3RpbWc+aW1ne1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0LmxvZy1ib3gge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMHB4O1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMjZweDtcblx0XHRcdH1cblx0XHRcdC5sb2dpbmZvcm0gLmZvcm0tY29udHJvbCwgLnJlZ2lzdGVyLWZvcm0gLmZvcm0tY29udHJvbCB7XG5cdFx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0XHRoZWlnaHQ6IDUycHg7XG5cdFx0XHR9XG5cdFx0XHQubG9naW5mb3JtIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMzVweDtcblx0XHRcdH1cblx0XHRcdC5sb2dpbmZvcm0gbGFiZWwge1xuXHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHR9XG5cblx0XHRcdC5sb2dpbmJ0biB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMwYjQ0OTk7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA0NHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDUycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0XHRjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHQubG9naW4zNjVidG4ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBvcmFuZ2U7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA0NHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDUycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0XHRjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHQuY29udGFjdGltZyB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdH1cblx0XHRcdC5sb2dpbi1sb2dvIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdH1cblxuXHRcdFx0LnRleHRib3gge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0cGFkZGluZzogNDBweDtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIC01MCUpO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0XHQuc2lnbi1idG4ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMGI0NDk5O1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTRweDtcblx0XHRcdFx0aGVpZ2h0OiA1MnB4O1xuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRcdFx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0YnV0dG9uLmJ0bi5zaWduLWJ0bjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMxNjY4ZTI7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5sb2dpbi1jYXJkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdFx0cGFkZGluZzogMjBweDtcblx0XHRcdFx0cGFkZGluZy10b3A6IDEwcHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDhweDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCA2cHggMjBweCByZ2JhKDAsMCwwLDAuMTkpOyAvKiBFbmhhbmNlZCBzaGFkb3cgKi9cblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmxvZ2luLWhlYWRlciB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5lbXBsb3llZS1sb2dpbi1idG4ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OEQ0OyAvKiBNaWNyb3NvZnQgQmx1ZSAqL1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMjBweDsgLyogTGFyZ2VyIHNpemUgKi9cblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4OyAvKiBMYXJnZXIgdGV4dCAqL1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7IC8qIFJvdW5kZWQgY29ybmVycyAqL1xuXHRcdFx0XHR3aWR0aDogMTAwJTsgLyogRnVsbCB3aWR0aCAqL1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBJbmNsdWRlIHBhZGRpbmcgYW5kIGJvcmRlciBpbiB0aGUgZWxlbWVudCdzIHdpZHRoIGFuZCBoZWlnaHQgKi9cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnRoaXJkLXBhcnR5LWxvZ2luLWJ0biB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMyOGE3NDU7IC8qIEJvb3RzdHJhcCBzdWNjZXNzIGdyZWVuICovXG5cdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4OyAvKiBSb3VuZGVkIGNvcm5lcnMgKi9cblx0XHRcdFx0d2lkdGg6IDEwMCU7IC8qIEZ1bGwgd2lkdGggKi9cblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDsgLyogSW5jbHVkZSBwYWRkaW5nIGFuZCBib3JkZXIgaW4gdGhlIGVsZW1lbnQncyB3aWR0aCBhbmQgaGVpZ2h0ICovXG5cdFx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC50aGlyZC1wYXJ0eS1sb2dpbi1zZWN0aW9uIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0YzRjRGNjsgLyogT3B0aW9uYWw6IExpZ2h0IGdyZXkgYmFja2dyb3VuZCBmb3IgY29udHJhc3QgKi9cblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogOHB4OyAvKiBPcHRpb25hbDogUm91bmRlZCBjb3JuZXJzIGZvciB0aGUgaW5wdXQgZm9ybSAqL1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuZW1wbG95ZWUtbG9naW4tc2VjdGlvbiwgLnRoaXJkLXBhcnR5LWxvZ2luLXNlY3Rpb24ge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdFxuXHRcdDwvc3R5bGU+XG5cdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgbm92YWxpZGF0ZT5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0XHRcdFx0PGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj48Yj5Mb2dpbjwvYj48L2g0PlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5cblx0XHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiAqbmdJZj1cImZvcm1cIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVyXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBiZy13aGl0ZVwiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFjdGltZ1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGltZyBzcmM9XCIvYXNzZXRzL2ltYWdlcy9sb2dpbnNpZ251cC9mb3JtaW1nLmpwZ1wiIGFsdD1cImltYWdlc1wiIGNsYXNzPVwiaW1nLWZsdWlkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dGJveFwiICpuZ0lmPVwic2hvd0xvZ2luVGV4dFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9naW4tbG9nb1wiPjxpbWcgc3JjPVwiL2Fzc2V0cy9pbWFnZXMvbG9naW5zaWdudXAvbG9naW4tbG9nby5wbmdcIiBhbHQ9XCJpbWFnZXNcIj48L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0VGhlIEFsbC1pbi1PbmUgU29sdXRpb24gZm9yIFRyYWNraW5nIEludmVudG9yeSwgT3JkZXJpbmcsIFBPcywgTWFuYWdlbWVudCwgYW5kIE11Y2ggTW9yZSFcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImxvZy1ib3hcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJsb2dpbmZvcm1cIiBzdHlsZT1cIm1hcmdpbjogMHB4O1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIW1zQWxsb3dlZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJsb2dpbi1jYXJkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aDMgY2xhc3M9XCJsb2dpbi1oZWFkZXJcIj5FbXBsb3llZS9DdXN0b21lciBMb2dpbjwvaDM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGhpcmQtcGFydHktbG9naW4tc2VjdGlvblwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbD5Vc2VybmFtZS9FbWFpbDwvbGFiZWw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGVtICpuZ0lmPVwiZm9ybS5jb250cm9scy51c2VybmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPi0gUmVxdWlyZWQ8L2VtPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwiZW1haWxcIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIGZvcm0uY29udHJvbHMudXNlcm5hbWUudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnXVwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCIgW2F1dG9mb2N1c109XCJ0cnVlXCIgW2ZvY3VzXT1cInRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiZW1haWxIZWxwXCIgcGxhY2Vob2xkZXI9XCJZb3VyIFVzZXJuYW1lL0VtYWlsXCIgYXV0b2NvbXBsZXRlPVwidXNlcm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGxhYmVsPlBhc3N3b3JkPC9sYWJlbD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZW0gKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnBhc3N3b3JkLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+LSBSZXF1aXJlZDwvZW0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgZm9ybS5jb250cm9scy5wYXNzd29yZC5lbmFibGVkID8gKGZvcm0uY29udHJvbHMucGFzc3dvcmQudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnKSA6ICcnXVwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgcGxhY2Vob2xkZXI9XCJZb3VyIFBhc3N3b3JkXCIgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgdGV4dC1yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj48YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cInRvZ2dsZUZvcmdvdFBhc3N3b3JkKClcIj4ge3shZm9ybS5jb250cm9scy5mb3Jnb3RQYXNzd29yZC52YWx1ZSA/ICdGb3Jnb3QgUGFzc3dvcmQ/JyA6ICdFbnRlciBQYXNzd29yZCd9fSA8L2E+PC9sYWJlbD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIHRoaXJkLXBhcnR5LWxvZ2luLWJ0blwiIChjbGljayk9XCJjbG9zZSgnUmVzb2x2ZUlPJylcIj57eyFmb3JtLmNvbnRyb2xzLmZvcmdvdFBhc3N3b3JkLnZhbHVlID8gJ0xvZ2luJyA6ICdTdWJtaXQnfX08L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIm1zQWxsb3dlZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gRW1wbG95ZWUgTG9naW4gU2VjdGlvbiAtLT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9naW4tY2FyZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGgzIGNsYXNzPVwibG9naW4taGVhZGVyXCI+RW1wbG95ZWUgTG9naW48L2gzPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImVtcGxveWVlLWxvZ2luLXNlY3Rpb25cIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gZW1wbG95ZWUtbG9naW4tYnRuXCIgKGNsaWNrKT1cImNsb3NlKCdNUycpXCI+RW1wbG95ZWUgTG9naW48L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSBUaGlyZCBQYXJ0eSBMb2dpbiBTZWN0aW9uIC0tPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJsb2dpbi1jYXJkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aDMgY2xhc3M9XCJsb2dpbi1oZWFkZXJcIj5UaGlyZCBQYXJ0eSBMb2dpbjwvaDM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGhpcmQtcGFydHktbG9naW4tc2VjdGlvblwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbD5Vc2VybmFtZS9FbWFpbDwvbGFiZWw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGVtICpuZ0lmPVwiZm9ybS5jb250cm9scy51c2VybmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPi0gUmVxdWlyZWQ8L2VtPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwiZW1haWxcIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIGZvcm0uY29udHJvbHMudXNlcm5hbWUudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnXVwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCIgW2F1dG9mb2N1c109XCJ0cnVlXCIgW2ZvY3VzXT1cInRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiZW1haWxIZWxwXCIgcGxhY2Vob2xkZXI9XCJZb3VyIFVzZXJuYW1lL0VtYWlsXCIgYXV0b2NvbXBsZXRlPVwidXNlcm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGxhYmVsPlBhc3N3b3JkPC9sYWJlbD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZW0gKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnBhc3N3b3JkLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+LSBSZXF1aXJlZDwvZW0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgZm9ybS5jb250cm9scy5wYXNzd29yZC5lbmFibGVkID8gKGZvcm0uY29udHJvbHMucGFzc3dvcmQudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnKSA6ICcnXVwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgcGxhY2Vob2xkZXI9XCJZb3VyIFBhc3N3b3JkXCIgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgdGV4dC1yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj48YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cInRvZ2dsZUZvcmdvdFBhc3N3b3JkKClcIj4ge3shZm9ybS5jb250cm9scy5mb3Jnb3RQYXNzd29yZC52YWx1ZSA/ICdGb3Jnb3QgUGFzc3dvcmQ/JyA6ICdFbnRlciBQYXNzd29yZCd9fSA8L2E+PC9sYWJlbD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIHRoaXJkLXBhcnR5LWxvZ2luLWJ0blwiIChjbGljayk9XCJjbG9zZSgnUmVzb2x2ZUlPJylcIj57eyFmb3JtLmNvbnRyb2xzLmZvcmdvdFBhc3N3b3JkLnZhbHVlID8gJ0xvZ2luJyA6ICdTdWJtaXQnfX08L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG5cdFx0XHRcdDxyZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cblx0XHRcdFx0PC9yZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZm9ybT5cblx0YFxufSlcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRGlhbG9nTG9naW5Db250ZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QElucHV0KCkgbXNBbGxvd2VkID0gZmFsc2U7XG5cdEBJbnB1dCgpIHNob3dMb2dpblRleHQgPSB0cnVlO1xuXG5cdGZvcm06IEZvcm1Hcm91cDtcblxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgX2FjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG5cdG5nT25Jbml0KCkge1x0XHRcdFxuXHRcdHRoaXMuZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcblx0XHRcdHVzZXJuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG5cdFx0XHRwYXNzd29yZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuXHRcdFx0Zm9yZ290UGFzc3dvcmQ6IFtmYWxzZV0sXG5cdFx0fSk7XG5cdH1cblxuXHR0b2dnbGVGb3Jnb3RQYXNzd29yZCgpIHtcblx0XHR0aGlzLmZvcm0uY29udHJvbHMuZm9yZ290UGFzc3dvcmQuc2V0VmFsdWUoIXRoaXMuZm9ybS5jb250cm9scy5mb3Jnb3RQYXNzd29yZC52YWx1ZSk7XG5cblx0XHRpZiAoIXRoaXMuZm9ybS5jb250cm9scy5mb3Jnb3RQYXNzd29yZC52YWx1ZSkge1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZC5lbmFibGUoKTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMucGFzc3dvcmQuc2V0VmFsdWUoJycpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkLmNsZWFyVmFsaWRhdG9ycygpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkLmRpc2FibGUoKTtcblx0XHR9XG5cblx0XHR0aGlzLmZvcm0uY29udHJvbHMucGFzc3dvcmQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXHR9XG5cblx0Y2xvc2UodHlwZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fYWN0aXZlTW9kYWwuY2xvc2Uoe1xuXHRcdFx0Zm9ybTogdGhpcy5mb3JtLFxuXHRcdFx0dHlwZTogdHlwZVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=