vc-create-dashboard 2.8.27 → 2.8.28

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.
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../ui-kit/dialog/dialog.service";
4
4
  import * as i2 from "@angular/common";
@@ -23,15 +23,14 @@ export class FormGroupComponent {
23
23
  this.dashboardDescription = {
24
24
  placeholder: 'Description (Max limit: 250 characters)',
25
25
  mode: 'prime',
26
- id: 'description'
26
+ id: 'description',
27
27
  };
28
28
  this.fromDatePickerConfig = {
29
- min: this.getCurrentDate()
29
+ min: this.getCurrentDate(),
30
30
  };
31
31
  this.toDatePickerConfig = {};
32
32
  }
33
- ngOnInit() {
34
- }
33
+ ngOnInit() { }
35
34
  openFromDatePicker() {
36
35
  this.fromDatePicker.api.open();
37
36
  this.datePickerOverlay = true;
@@ -84,7 +83,9 @@ export class FormGroupComponent {
84
83
  let allFieldsValid = true;
85
84
  this.dashboardNameError = '';
86
85
  this.dashboardDescriptionError = '';
87
- if (this.dashboardName === null || this.dashboardName === undefined || this.dashboardName === '') {
86
+ if (this.dashboardName === null ||
87
+ this.dashboardName === undefined ||
88
+ this.dashboardName === '') {
88
89
  this.dashboardNameError = this.fieldEmptyErrorMessage;
89
90
  allFieldsValid = false;
90
91
  }
@@ -92,19 +93,22 @@ export class FormGroupComponent {
92
93
  this.dashboardNameError = this.fieldLimitExceededErrorMessage.replace('XYZ', '30');
93
94
  allFieldsValid = false;
94
95
  }
95
- else if (this.dashboardDescriptionText === null || this.dashboardDescriptionText === undefined || this.dashboardDescriptionText === '') {
96
+ else if (this.dashboardDescriptionText === null ||
97
+ this.dashboardDescriptionText === undefined ||
98
+ this.dashboardDescriptionText === '') {
96
99
  this.dashboardDescriptionError = this.fieldEmptyErrorMessage;
97
100
  allFieldsValid = false;
98
101
  }
99
102
  else if (this.dashboardDescriptionText.length > 250) {
100
- this.dashboardDescriptionError = this.fieldLimitExceededErrorMessage.replace('XYZ', '250');
103
+ this.dashboardDescriptionError =
104
+ this.fieldLimitExceededErrorMessage.replace('XYZ', '250');
101
105
  allFieldsValid = false;
102
106
  }
103
107
  return allFieldsValid;
104
108
  }
105
109
  getCurrentDate() {
106
110
  let today = new Date();
107
- return today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear();
111
+ return (today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear());
108
112
  }
109
113
  displayCriteriaSelected(event, selection) {
110
114
  this.displayCriteria = selection;
@@ -134,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
134
138
  type: ViewChild,
135
139
  args: ['toDatePicker']
136
140
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQUkxRixxSEFBcUg7QUFPckgsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0IsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXJCL0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLckQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBSzFCLDJCQUFzQixHQUFXLG1DQUFtQyxDQUFDO1FBQ3JFLG1DQUE4QixHQUFXLGtFQUFrRSxDQUFDO1FBQzVHLHVDQUFrQyxHQUFXLHdGQUF3RixDQUFDO1FBT3RJLHlCQUFvQixHQUFpQjtZQUNuQyxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLGFBQWE7U0FDbEIsQ0FB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Q0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0EsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIElEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbi8vIGltcG9ydCB7IENvbmZpZ3VyZVdpZGdldHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybS1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgb3BlbkNhdGVnb3J5TGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9wZW5XaG9DYW5WaWV3VGhpcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNyZWF0ZURhc2hib2FyZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBAVmlld0NoaWxkKCdmcm9tRGF0ZVBpY2tlcicpIGZyb21EYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0b0RhdGVQaWNrZXInKSB0b0RhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRGcm9tRGF0ZSE6IGFueTtcclxuICBzZWxlY3RlZFRvRGF0ZSE6IGFueTtcclxuICBkYXNoYm9hcmROYW1lITogYW55O1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCE6IGFueTtcclxuICBmaWVsZEVtcHR5RXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guJztcclxuICBmaWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgbGltaXQgb2YgWFlaIGNoYXJhY3RlcnMuJztcclxuICBkYXNoYm9hcmROYW1lTm90VW5pcXVlRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnQSBkYXNoYm9hcmQgd2l0aCB0aGlzIG5hbWUgYWxyZWFkeSBleGlzdHMuIFNwZWNpZnkgYSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhlIGRhc2hib2FyZC4nO1xyXG4gIGRhc2hib2FyZE5hbWVFcnJvciEgOiBzdHJpbmc7XHJcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciEgOiBzdHJpbmc7XHJcbiAgZGlzcGxheUNyaXRlcmlhISA6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UpIHsgfVxyXG4gXHJcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24gKE1heCBsaW1pdDogMjUwIGNoYXJhY3RlcnMpJyxcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBpZDogJ2Rlc2NyaXB0aW9uJ1xyXG4gIH1cclxuXHJcbiAgZnJvbURhdGVQaWNrZXJDb25maWcgOiBJRGF0ZVBpY2tlckNvbmZpZyA9ICB7XHJcbiAgICBtaW46IHRoaXMuZ2V0Q3VycmVudERhdGUoKVxyXG4gIH1cclxuXHJcbiAgdG9EYXRlUGlja2VyQ29uZmlnIDogSURhdGVQaWNrZXJDb25maWcgPSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG9wZW5Gcm9tRGF0ZVBpY2tlcigpIHtcclxuICAgIHRoaXMuZnJvbURhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb3BlblRvRGF0ZVBpY2tlcigpIHtcclxuICAgIHRoaXMudG9EYXRlUGlja2VyLmFwaS5vcGVuKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlRnJvbURhdGVQaWNrZXIoKSB7XHJcbiAgICBsZXQgbWluVG9EYXRlID0gdGhpcy5zZWxlY3RlZEZyb21EYXRlLmNsb25lKCkuYWRkKDEsICdkYXlzJyk7XHJcbiAgICB0aGlzLnRvRGF0ZVBpY2tlckNvbmZpZyA9IHttaW4gOiBtaW5Ub0RhdGUsIG1pblRpbWUgOiBtaW5Ub0RhdGV9O1xyXG5cclxuICAgIGlmKHRoaXMuc2VsZWN0ZWRUb0RhdGUgJiYgbWluVG9EYXRlLmRpZmYodGhpcy5zZWxlY3RlZFRvRGF0ZSkgPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb0RhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsb3NlVG9EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLmNsb3NlKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBhbmltYXRlSW1hZ2UoKSB7XHJcbiAgICBjb25zdCBjaXJjbGVJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ltYWdlJylcclxuICAgIGNvbnNvbGUubG9nKGNpcmNsZUltYWdlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFdob0NhblZpZXdUaGlzKCkge1xyXG4gICAgdGhpcy5vcGVuV2hvQ2FuVmlld1RoaXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmVzcG9uc2liaWxpdHlDZW50ZXIoKSB7XHJcbiAgICB0aGlzLm9wZW5SZXNwb25zaWJpbGl0eUNlbnRlckxpc3QuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q2F0ZWdvcmllcygpIHtcclxuICAgIHRoaXMub3BlbkNhdGVnb3J5TGlzdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLm9wZW5GcmVxdWVuY3kuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlRGFzaGJvYXJkKCkge1xyXG4gICAgbGV0IGZpZWxkc1N0YXR1cyA9IHRoaXMudmVyaWZ5RmllbGRzKCk7XHJcbiAgICAvLyBpZihmaWVsZHNTdGF0dXMpIHtcclxuICAgIC8vICAgdGhpcy5jbG9zZUNyZWF0ZURhc2hib2FyZC5lbWl0KCk7XHJcbiAgICAvLyAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCwge1xyXG4gICAgLy8gICAgIGRhdGE6IHt9LFxyXG4gICAgLy8gICAgIHBvc2l0aW9uOiAnQ0VOVEVSJyxcclxuICAgIC8vICAgICBwb2ludGVyOiAnbm9uZSdcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICB2ZXJpZnlGaWVsZHMoKSB7XHJcbiAgICBsZXQgYWxsRmllbGRzVmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXNoYm9hcmROYW1lRXJyb3IgPSAnJztcclxuICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciA9ICcnO1xyXG4gICAgXHJcbiAgICBpZih0aGlzLmRhc2hib2FyZE5hbWUgPT09IG51bGwgfHwgdGhpcy5kYXNoYm9hcmROYW1lID09PSB1bmRlZmluZWQgfHwgdGhpcy5kYXNoYm9hcmROYW1lID09PSAnJykge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWVFcnJvciA9IHRoaXMuZmllbGRFbXB0eUVycm9yTWVzc2FnZTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmRhc2hib2FyZE5hbWUubGVuZ3RoID4gMzApIHtcclxuICAgICAgdGhpcy5kYXNoYm9hcmROYW1lRXJyb3IgPSB0aGlzLmZpZWxkTGltaXRFeGNlZWRlZEVycm9yTWVzc2FnZS5yZXBsYWNlKCdYWVonLCAnMzAnKTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gbnVsbCB8fCB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0ID09PSAnJykge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPSB0aGlzLmZpZWxkRW1wdHlFcnJvck1lc3NhZ2U7XHJcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYodGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQubGVuZ3RoID4gMjUwKSB7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciA9IHRoaXMuZmllbGRMaW1pdEV4Y2VlZGVkRXJyb3JNZXNzYWdlLnJlcGxhY2UoJ1hZWicsICcyNTAnKTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbGxGaWVsZHNWYWxpZDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlKCl7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIHRvZGF5LmdldERhdGUoKSArICctJyArICh0b2RheS5nZXRNb250aCgpKzEpICsgJy0nICsgdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXlDcml0ZXJpYVNlbGVjdGVkKGV2ZW50OiBib29sZWFuLCBzZWxlY3Rpb246IHN0cmluZykge1xyXG4gICAgdGhpcy5kaXNwbGF5Q3JpdGVyaWEgPSBzZWxlY3Rpb247XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+Zm9ybS1ncm91cCB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWRpYWxvZy1ib2R5LWNvbnRhaW5lclwiIChzY3JvbGwpPVwiYW5pbWF0ZUltYWdlKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aGF0LnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkRhc2hib2FyZCBOYW1lPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJBZGQgZGFzaGJvYXJkIG5hbWUgKE1heCBsaW1pdDogMzAgY2hhcmFjdGVycykuXCIgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmROYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiICpuZ0lmPVwiZGFzaGJvYXJkTmFtZT8ubGVuZ3RoID4gMFwiPnt7MzAgLSBkYXNoYm9hcmROYW1lPy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPnt7ZGFzaGJvYXJkTmFtZUVycm9yfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2Y29tcGx5LWVkaXRvciBbZWRpdG9yQ29uZmlnXT1cImRhc2hib2FyZERlc2NyaXB0aW9uXCIgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmREZXNjcmlwdGlvblRleHRcIj48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIiAqbmdJZj1cImRhc2hib2FyZERlc2NyaXB0aW9uVGV4dD8ubGVuZ3RoID4gMFwiPnt7MjUwIC0gZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPnt7ZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvcn19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3doby5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5XaG8gY2FuIHZpZXcgdGhpcyBkYXNoYm9hcmQ/PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiV2hvIGNhbiB2aWV3IHRoaXMgZGFzaGJvYXJkP1wiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0V2hvQ2FuVmlld1RoaXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5TYW1hbnRoYSBKb25lczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPkFuZ2VsIEtsZXZlbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiPisxMDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UkVTUE9OU0lCSUxJVFkgQ0VOVEVSKFMpPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1wbGFjZWhvbGRlcj1cIlNlbGVjdCB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpIHRoYXQgeW91IHdvdWxkIGxpa2UgZGlzcGxheWVkIGluIHRoZSBEYXNoYm9hcmQsIGlmIGFueS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJlc3BvbnNpYmlsaXR5Q2VudGVyKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvY2F0ZWdvcnkuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UFJPR1JBTTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIFByb2dyYW0gdGhhdCB0aGlzIHJlc3BvbnNpYmlsaXR5IHJlbGF0ZXMgdG8uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yaWVzKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SSVNLIENBVEVHT1JJRVM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSaXNrIENhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Q2F0ZWdvcmllcygpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkRJU1BMQVkgQ1JJVEVSSUE8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIChjaGVja2VkRXZlbnQpPVwiZGlzcGxheUNyaXRlcmlhU2VsZWN0ZWQoJGV2ZW50LCAnQk9USF9SQ19BTkRfQ0FURUdPUlknKVwiPlRob3NlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQgdG8gYm90aCB0aGUgc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBhbmQgdGhlIHNlbGVjdGVkIENhdGVnb3JpZXMuPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gKGNoZWNrZWRFdmVudCk9XCJkaXNwbGF5Q3JpdGVyaWFTZWxlY3RlZCgkZXZlbnQsICdSQ19PUl9DQVRFR09SWScpXCI+VGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBlaXRoZXIgdGhlIHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgb3IgdGhlIHNlbGVjdGVkIENhdGVnb3JpZXMuPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hlbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5USU1FRlJBTUU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWwtc3ViLWxhYmVsXCI+U2VsZWN0IGhvdyBsb25nIHlvdSB3b3VsZCBsaWtlIHRoZSBpbmZvcm1hdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCB0byBiZSBkaXNwbGF5ZWQgZm9yLiBJZiBubyB0aW1lZnJhbWUgaXMgc2VsZWN0ZWQsIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZCBwZXJtYW5lbnRseS48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3ZhbHVlXT1cInNlbGVjdGVkRnJvbURhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCIgW3BsYWNlaG9sZGVyXT1cIidGcm9tJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Gcm9tRGF0ZVBpY2tlcigpXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXIgI2Zyb21EYXRlUGlja2VyIFsobmdNb2RlbCldPVwic2VsZWN0ZWRGcm9tRGF0ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjbG9zZUZyb21EYXRlUGlja2VyKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcIiBbY29uZmlnXT1cImZyb21EYXRlUGlja2VyQ29uZmlnXCI+PC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKVwiICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3ZhbHVlXT1cInNlbGVjdGVkVG9EYXRlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5J1wiIFtwbGFjZWhvbGRlcl09XCInVG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblRvRGF0ZVBpY2tlcigpXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXIgI3RvRGF0ZVBpY2tlciBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVG9EYXRlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImNsb3NlVG9EYXRlUGlja2VyKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcIiAgW2NvbmZpZ109XCJ0b0RhdGVQaWNrZXJDb25maWdcIj48L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VUb0RhdGVQaWNrZXIoKVwiICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDwhLS1hY3RpdmUgY2xhc3Mgd2lsbCBhcHBlYXIgb24gb3BlbiBsaXN0LS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvc2VuZC1yZXNvbHV0aW9uLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBFbWFpbCBTdW1tYXJpZXMgPGkgY2xhc3M9XCJpY29uc1wiIFthclRvb2x0aXBdPVwiJ1RoaXMgaXMgYSB0ZXN0IHRvb2x0aXAnXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MWY7PC9pPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbC1zdWItbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSWYgeW91IHdvdWxkIGxpa2UgdG8gc2VuZCBhIHN1bW1hcnkgb2YgdGhpcyBEYXNoYm9hcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsZWFzZSBzZWxlY3QgYSBmcmVxdWVuY3koQnkgZGVmYXVsdCBWQ29tcGx5IHNlbmRzIGEgd2Vla2x5IFN1bW1hcnkpLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVtYWlsIFN1bW1hcmllc1wiIHJlYWRvbmx5IChjbGljayk9XCJzZWxlY3RGcmVxdWVuY3koKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWJsb2NrXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInZ4LWJ0biBibG9jayBwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cImNvbmZpZ3VyZURhc2hib2FyZCgpXCI+TmV4dDogQ29uZmlndXJlXHJcbiAgICAgICAgICAgIFdpZGdldHM8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQUl2QixxSEFBcUg7QUFPckgsTUFBTSxPQUFPLGtCQUFrQjtJQXdCN0IsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXZCL0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLckQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBSzFCLDJCQUFzQixHQUFXLG1DQUFtQyxDQUFDO1FBQ3JFLG1DQUE4QixHQUM1QixrRUFBa0UsQ0FBQztRQUNyRSx1Q0FBa0MsR0FDaEMsd0ZBQXdGLENBQUM7UUFPM0YseUJBQW9CLEdBQWlCO1lBQ25DLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFLE9BQU87WUFDYixFQUFFLEVBQUUsYUFBYTtTQUNsQixD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a0I7c0JBQTNCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0EsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBJRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1raXQvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAnQHZjb21wbHkvZWRpdG9yJztcclxuLy8gaW1wb3J0IHsgQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mb3JtLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1ncm91cC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgb3BlbkNhdGVnb3J5TGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9wZW5XaG9DYW5WaWV3VGhpcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNyZWF0ZURhc2hib2FyZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBAVmlld0NoaWxkKCdmcm9tRGF0ZVBpY2tlcicpIGZyb21EYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0b0RhdGVQaWNrZXInKSB0b0RhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRGcm9tRGF0ZSE6IGFueTtcclxuICBzZWxlY3RlZFRvRGF0ZSE6IGFueTtcclxuICBkYXNoYm9hcmROYW1lITogYW55O1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCE6IGFueTtcclxuICBmaWVsZEVtcHR5RXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guJztcclxuICBmaWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2U6IHN0cmluZyA9XHJcbiAgICAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIG1heGltdW0gY2hhcmFjdGVyIGxpbWl0IG9mIFhZWiBjaGFyYWN0ZXJzLic7XHJcbiAgZGFzaGJvYXJkTmFtZU5vdFVuaXF1ZUVycm9yTWVzc2FnZTogc3RyaW5nID1cclxuICAgICdBIGRhc2hib2FyZCB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cy4gU3BlY2lmeSBhIGRpZmZlcmVudCBuYW1lIGZvciB0aGUgZGFzaGJvYXJkLic7XHJcbiAgZGFzaGJvYXJkTmFtZUVycm9yITogc3RyaW5nO1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IhOiBzdHJpbmc7XHJcbiAgZGlzcGxheUNyaXRlcmlhITogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZSkge31cclxuXHJcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24gKE1heCBsaW1pdDogMjUwIGNoYXJhY3RlcnMpJyxcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBpZDogJ2Rlc2NyaXB0aW9uJyxcclxuICB9O1xyXG5cclxuICBmcm9tRGF0ZVBpY2tlckNvbmZpZzogSURhdGVQaWNrZXJDb25maWcgPSB7XHJcbiAgICBtaW46IHRoaXMuZ2V0Q3VycmVudERhdGUoKSxcclxuICB9O1xyXG5cclxuICB0b0RhdGVQaWNrZXJDb25maWc6IElEYXRlUGlja2VyQ29uZmlnID0ge307XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgb3BlbkZyb21EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuVG9EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VGcm9tRGF0ZVBpY2tlcigpIHtcclxuICAgIGxldCBtaW5Ub0RhdGUgPSB0aGlzLnNlbGVjdGVkRnJvbURhdGUuY2xvbmUoKS5hZGQoMSwgJ2RheXMnKTtcclxuICAgIHRoaXMudG9EYXRlUGlja2VyQ29uZmlnID0geyBtaW46IG1pblRvRGF0ZSwgbWluVGltZTogbWluVG9EYXRlIH07XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUb0RhdGUgJiYgbWluVG9EYXRlLmRpZmYodGhpcy5zZWxlY3RlZFRvRGF0ZSkgPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb0RhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsb3NlVG9EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLmNsb3NlKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBhbmltYXRlSW1hZ2UoKSB7XHJcbiAgICBjb25zdCBjaXJjbGVJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ltYWdlJyk7XHJcbiAgICBjb25zb2xlLmxvZyhjaXJjbGVJbWFnZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RXaG9DYW5WaWV3VGhpcygpIHtcclxuICAgIHRoaXMub3Blbldob0NhblZpZXdUaGlzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJlc3BvbnNpYmlsaXR5Q2VudGVyKCkge1xyXG4gICAgdGhpcy5vcGVuUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3JpZXMoKSB7XHJcbiAgICB0aGlzLm9wZW5DYXRlZ29yeUxpc3QuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0RnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5vcGVuRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZURhc2hib2FyZCgpIHtcclxuICAgIGxldCBmaWVsZHNTdGF0dXMgPSB0aGlzLnZlcmlmeUZpZWxkcygpO1xyXG4gICAgLy8gaWYoZmllbGRzU3RhdHVzKSB7XHJcbiAgICAvLyAgIHRoaXMuY2xvc2VDcmVhdGVEYXNoYm9hcmQuZW1pdCgpO1xyXG4gICAgLy8gICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpZ3VyZVdpZGdldHNDb21wb25lbnQsIHtcclxuICAgIC8vICAgICBkYXRhOiB7fSxcclxuICAgIC8vICAgICBwb3NpdGlvbjogJ0NFTlRFUicsXHJcbiAgICAvLyAgICAgcG9pbnRlcjogJ25vbmUnXHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgdmVyaWZ5RmllbGRzKCkge1xyXG4gICAgbGV0IGFsbEZpZWxkc1ZhbGlkID0gdHJ1ZTtcclxuICAgIHRoaXMuZGFzaGJvYXJkTmFtZUVycm9yID0gJyc7XHJcbiAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPSAnJztcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZSA9PT0gbnVsbCB8fFxyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPT09ICcnXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kYXNoYm9hcmROYW1lRXJyb3IgPSB0aGlzLmZpZWxkRW1wdHlFcnJvck1lc3NhZ2U7XHJcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGFzaGJvYXJkTmFtZS5sZW5ndGggPiAzMCkge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWVFcnJvciA9IHRoaXMuZmllbGRMaW1pdEV4Y2VlZGVkRXJyb3JNZXNzYWdlLnJlcGxhY2UoXHJcbiAgICAgICAgJ1hZWicsXHJcbiAgICAgICAgJzMwJ1xyXG4gICAgICApO1xyXG4gICAgICBhbGxGaWVsZHNWYWxpZCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQgPT09IG51bGwgfHxcclxuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gJydcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPSB0aGlzLmZpZWxkRW1wdHlFcnJvck1lc3NhZ2U7XHJcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Lmxlbmd0aCA+IDI1MCkge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPVxyXG4gICAgICAgIHRoaXMuZmllbGRMaW1pdEV4Y2VlZGVkRXJyb3JNZXNzYWdlLnJlcGxhY2UoJ1hZWicsICcyNTAnKTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbGxGaWVsZHNWYWxpZDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlKCkge1xyXG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRvZGF5LmdldERhdGUoKSArICctJyArICh0b2RheS5nZXRNb250aCgpICsgMSkgKyAnLScgKyB0b2RheS5nZXRGdWxsWWVhcigpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheUNyaXRlcmlhU2VsZWN0ZWQoZXZlbnQ6IGJvb2xlYW4sIHNlbGVjdGlvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlDcml0ZXJpYSA9IHNlbGVjdGlvbjtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8cD5mb3JtLWdyb3VwIHdvcmtzITwvcD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWJvZHktY29udGFpbmVyXCIgKHNjcm9sbCk9XCJhbmltYXRlSW1hZ2UoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3doYXQuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RGFzaGJvYXJkIE5hbWU8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1pbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkFkZCBkYXNoYm9hcmQgbmFtZSAoTWF4IGxpbWl0OiAzMCBjaGFyYWN0ZXJzKS5cIiBbKG5nTW9kZWwpXT1cImRhc2hib2FyZE5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCIgKm5nSWY9XCJkYXNoYm9hcmROYW1lPy5sZW5ndGggPiAwXCI+e3szMCAtIGRhc2hib2FyZE5hbWU/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+e3tkYXNoYm9hcmROYW1lRXJyb3J9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZjb21wbHktZWRpdG9yIFtlZGl0b3JDb25maWddPVwiZGFzaGJvYXJkRGVzY3JpcHRpb25cIiBbKG5nTW9kZWwpXT1cImRhc2hib2FyZERlc2NyaXB0aW9uVGV4dFwiPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiICpuZ0lmPVwiZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Py5sZW5ndGggPiAwXCI+e3syNTAgLSBkYXNoYm9hcmREZXNjcmlwdGlvblRleHQ/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+e3tkYXNoYm9hcmREZXNjcmlwdGlvbkVycm9yfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPldobyBjYW4gdmlldyB0aGlzIGRhc2hib2FyZD88c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJXaG8gY2FuIHZpZXcgdGhpcyBkYXNoYm9hcmQ/XCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaG9DYW5WaWV3VGhpcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlNhbWFudGhhIEpvbmVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+QW5nZWwgS2xldmVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCI+KzEwPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SRVNQT05TSUJJTElUWSBDRU5URVIoUyk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmVzcG9uc2liaWxpdHlDZW50ZXIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5QUk9HUkFNPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1wbGFjZWhvbGRlcj1cIlNlbGVjdCB0aGUgUHJvZ3JhbSB0aGF0IHRoaXMgcmVzcG9uc2liaWxpdHkgcmVsYXRlcyB0by5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhdGVnb3JpZXMoKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL2NhdGVnb3J5LnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJJU0sgQ0FURUdPUklFUzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIFJpc2sgQ2F0ZWdvcmllcyB0aGF0IHlvdSB3b3VsZCBsaWtlIGRpc3BsYXllZCBpbiB0aGUgRGFzaGJvYXJkLCBpZiBhbnkuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yaWVzKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aG8uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RElTUExBWSBDUklURVJJQTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gKGNoZWNrZWRFdmVudCk9XCJkaXNwbGF5Q3JpdGVyaWFTZWxlY3RlZCgkZXZlbnQsICdCT1RIX1JDX0FORF9DQVRFR09SWScpXCI+VGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBib3RoIHRoZSBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpIGFuZCB0aGUgc2VsZWN0ZWQgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyAoY2hlY2tlZEV2ZW50KT1cImRpc3BsYXlDcml0ZXJpYVNlbGVjdGVkKCRldmVudCwgJ1JDX09SX0NBVEVHT1JZJylcIj5UaG9zZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIGVpdGhlciB0aGUgc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBvciB0aGUgc2VsZWN0ZWQgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aGVuLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlRJTUVGUkFNRTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbC1zdWItbGFiZWxcIj5TZWxlY3QgaG93IGxvbmcgeW91IHdvdWxkIGxpa2UgdGhlIGluZm9ybWF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkIHRvIGJlIGRpc3BsYXllZCBmb3IuIElmIG5vIHRpbWVmcmFtZSBpcyBzZWxlY3RlZCwgdGhlIGluZm9ybWF0aW9uIHdpbGwgYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheWVkIHBlcm1hbmVudGx5LjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic2VsZWN0ZWRGcm9tRGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSdcIiBbcGxhY2Vob2xkZXJdPVwiJ0Zyb20nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZyb21EYXRlUGlja2VyKClcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjZnJvbURhdGVQaWNrZXIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEZyb21EYXRlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVwiIFtjb25maWddPVwiZnJvbURhdGVQaWNrZXJDb25maWdcIj48L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VGcm9tRGF0ZVBpY2tlcigpXCIgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic2VsZWN0ZWRUb0RhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCIgW3BsYWNlaG9sZGVyXT1cIidUbydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuVG9EYXRlUGlja2VyKClcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjdG9EYXRlUGlja2VyIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUb0RhdGVcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY2xvc2VUb0RhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVwiICBbY29uZmlnXT1cInRvRGF0ZVBpY2tlckNvbmZpZ1wiPjwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIChjbGljayk9XCJjbG9zZVRvRGF0ZVBpY2tlcigpXCIgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPCEtLWFjdGl2ZSBjbGFzcyB3aWxsIGFwcGVhciBvbiBvcGVuIGxpc3QtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9zZW5kLXJlc29sdXRpb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVtYWlsIFN1bW1hcmllcyA8aSBjbGFzcz1cImljb25zXCIgW2FyVG9vbHRpcF09XCInVGhpcyBpcyBhIHRlc3QgdG9vbHRpcCdcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsLXN1Yi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJZiB5b3Ugd291bGQgbGlrZSB0byBzZW5kIGEgc3VtbWFyeSBvZiB0aGlzIERhc2hib2FyZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxlYXNlIHNlbGVjdCBhIGZyZXF1ZW5jeShCeSBkZWZhdWx0IFZDb21wbHkgc2VuZHMgYSB3ZWVrbHkgU3VtbWFyeSkuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW1haWwgU3VtbWFyaWVzXCIgcmVhZG9ubHkgKGNsaWNrKT1cInNlbGVjdEZyZXF1ZW5jeSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24tYmxvY2tcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwidngtYnRuIGJsb2NrIHByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwiY29uZmlndXJlRGFzaGJvYXJkKClcIj5OZXh0OiBDb25maWd1cmVcclxuICAgICAgICAgICAgV2lkZ2V0czwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==