ca-components 1.6.693 → 1.7.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.
@@ -18,10 +18,12 @@ import * as i2 from "@angular/common";
18
18
  export class CaCustomDatetimePickersComponent {
19
19
  set inputConfig(config) {
20
20
  this._inputConfig = config;
21
- if (this._inputConfig.name === InputConfigNameStringEnum.DATE_PICKER_BANK_CARD)
21
+ if (this._inputConfig.name ===
22
+ InputConfigNameStringEnum.DATE_PICKER_BANK_CARD)
22
23
  this.listPreview = CalendarListPreviewStringEnum.MONTH_LIST;
23
24
  if (this._inputConfig.minutesGapFive)
24
- this.timeMinutes = CustomDatetimePickersConstants.timeMinutesGapFive;
25
+ this.timeMinutes =
26
+ CustomDatetimePickersConstants.timeMinutesGapFive;
25
27
  else
26
28
  this.timeMinutes = CustomDatetimePickersConstants.timeMinutes;
27
29
  }
@@ -50,14 +52,17 @@ export class CaCustomDatetimePickersComponent {
50
52
  set calendarType(calendarType) {
51
53
  this.calendarMainType = calendarType;
52
54
  if (calendarType === CalendarTypeStringEnum.TIME)
53
- this.outputType = CustomDatetimePickersConstants.defaultOutputTypeTime;
55
+ this.outputType =
56
+ CustomDatetimePickersConstants.defaultOutputTypeTime;
54
57
  else
55
- this.outputType = CustomDatetimePickersConstants.defaultOutputTypeDate;
58
+ this.outputType =
59
+ CustomDatetimePickersConstants.defaultOutputTypeDate;
56
60
  }
57
61
  set placeholder(placeholder) {
58
62
  this.selectedDateTime = placeholder;
59
63
  }
60
64
  ngOnInit() {
65
+ console.log(this.dateTime, ' this. dadateTime');
61
66
  this.initDateChangedListener();
62
67
  }
63
68
  ngAfterViewInit() {
@@ -75,7 +80,9 @@ export class CaCustomDatetimePickersComponent {
75
80
  });
76
81
  }
77
82
  setTimeValue() {
78
- const dateInputArray = moment(this.dateTime).format('H/mm/A').split('/');
83
+ const dateInputArray = moment(this.dateTime)
84
+ .format('H/mm/A')
85
+ .split('/');
79
86
  setTimeout(() => {
80
87
  this.scrollTypes.hourScroll = this.hourTimes.indexOf(parseInt(dateInputArray[0]));
81
88
  this.scrollTypes.minutesScroll = this.timeMinutes.indexOf(dateInputArray[1]);
@@ -140,12 +147,12 @@ export class CaCustomDatetimePickersComponent {
140
147
  this.scrollTypes[type] = scrollIndex;
141
148
  }
142
149
  else if (index !== null) {
143
- event.target.parentNode.scrollTop =
144
- scrollIndex * 22;
150
+ (event.target.parentNode).scrollTop = scrollIndex * 22;
145
151
  this.scrollTypes[type] = scrollIndex;
146
152
  }
147
153
  else {
148
- event.target.scrollTop = (scrollIndex + 1) * 22;
154
+ event.target.scrollTop =
155
+ (scrollIndex + 1) * 22;
149
156
  this.scrollTypes[type] = scrollIndex + 1;
150
157
  }
151
158
  this.checkForScrolledType(type);
@@ -219,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
219
226
  }], placeholder: [{
220
227
  type: Input
221
228
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsU0FBUztBQUNULE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUs1QixhQUFhO0FBQ2IsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sNEdBQTRHLENBQUM7QUFFM0ssWUFBWTtBQUNaLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBTXJHLFFBQVE7QUFDUixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQWF4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WUksWUFBWTtzQkFBckIsTUFBTTtnQkFHUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsNkNBQTZDO2dCQUUvQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0ssYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNELFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFtQ25CLFlBQVk7c0JBRGYsS0FBSztnQkFTRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIE9uRGVzdHJveSxcbiAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIG1vbWVudFxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vLyBzZXJ2aWNlc1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhbGVuZGFyLWRhdGV0aW1lLXBpY2tlci5zZXJ2aWNlJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzLmNvbXBvbmVudCc7XG5cbi8vIGNvbnN0YW50c1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMvY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29uc3RhbnRzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NhLWlucHV0L2NvbmZpZy9jYS1pbnB1dC5jb25maWcnO1xuaW1wb3J0IHsgU2Nyb2xsVHlwZSB9IGZyb20gJy4vbW9kZWxzL3Njcm9sbC10eXBlLm1vZGVsJztcblxuLy8gZW51bXNcbmltcG9ydCB7IElucHV0Q29uZmlnTmFtZVN0cmluZ0VudW0gfSBmcm9tICcuLi9jYS1pbnB1dC9lbnVtcy9pbnB1dC1jb25maWctbmFtZS1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhclR5cGVTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci10eXBlLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci1saXN0LXByZXZpZXctc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY3JvbGxUeXBlU3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMvY2FsZW5kYXItc2Nyb2xsLXR5cGUtc3RyaW5nLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjYS1jdXN0b20tZGF0ZXRpbWUtcGlja2VycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZGF0ZVRpbWUhOiBEYXRlO1xuICBAVmlld0NoaWxkKCdyZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcmVmITogVmlld0NvbnRhaW5lclJlZjtcbiAgcHVibGljIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICBASW5wdXQoKSBzZXQgaW5wdXRDb25maWcoY29uZmlnOiBJQ2FJbnB1dCkge1xuICAgIHRoaXMuX2lucHV0Q29uZmlnID0gY29uZmlnO1xuICAgIGlmIChcbiAgICAgIHRoaXMuX2lucHV0Q29uZmlnLm5hbWUgPT09IElucHV0Q29uZmlnTmFtZVN0cmluZ0VudW0uREFURV9QSUNLRVJfQkFOS19DQVJEXG4gICAgKVxuICAgICAgdGhpcy5saXN0UHJldmlldyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLk1PTlRIX0xJU1Q7XG5cbiAgICBpZiAodGhpcy5faW5wdXRDb25maWcubWludXRlc0dhcEZpdmUpXG4gICAgICB0aGlzLnRpbWVNaW51dGVzID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVNaW51dGVzR2FwRml2ZTtcbiAgICBlbHNlIHRoaXMudGltZU1pbnV0ZXMgPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMudGltZU1pbnV0ZXM7XG4gIH1cblxuICBAT3V0cHV0KCkgY2xvc2VQb3BvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZChDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0RhdGVDYWxlbmRhcnNDb21wb25lbnQpXG4gIGRhdGVDYWxlbmRhciE6IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzRGF0ZUNhbGVuZGFyc0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncG1BbVNjcm9sbCcpIHBtQW1TY3JvbGwhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtaW51dGVzU2Nyb2xsJykgbWludXRlc1Njcm9sbCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2hvdXJTY3JvbGwnKSBob3VyU2Nyb2xsITogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgc2VsZWN0ZWREYXRlVGltZSE6IHN0cmluZztcbiAgcHVibGljIGNhbGVuZGFyTWFpblR5cGUhOiBzdHJpbmc7XG4gIHB1YmxpYyBvdXRwdXRUeXBlITogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgcHVibGljIGN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gIHB1YmxpYyBjdXJyZW50TW9udGg6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcbiAgcHVibGljIGN1cnJlbnREYXk6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpO1xuICBwdWJsaWMgbGlzdFByZXZpZXc6IHN0cmluZyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLkZVTExfTElTVDtcbiAgcHVibGljIHRpbWVNaW51dGVzITogc3RyaW5nW107XG4gIHB1YmxpYyBtb250aEFycmF5OiBudW1iZXJbXSA9IG5ldyBBcnJheSgxMilcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKF8sIGluZHgpID0+IGluZHggKyAxKTtcbiAgcHVibGljIG1vbnRoRGF5TGlzdDogbnVtYmVyW10gPSBuZXcgQXJyYXkoMzEpXG4gICAgLmZpbGwoMClcbiAgICAubWFwKChfLCBpbmR4KSA9PiBpbmR4ICsgMSk7XG4gIHB1YmxpYyB5ZWFyc0xpc3Q6IChzdHJpbmcgfCBudW1iZXIpW10gPSBuZXcgQXJyYXkoMTAwKVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgoXywgaWR4KSA9PiAoaWR4IDwgMTAgPyAnMCcgKyBpZHggOiBpZHgpKTtcbiAgcHVibGljIHNjcm9sbFRpbWVyITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudW1iZXI7XG4gIHB1YmxpYyBob3ZlcmVkSXRlbSE6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBpc0lucHV0Rm9jdXMhOiBib29sZWFuO1xuICBwdWJsaWMgbW9udGhOYW1lczogc3RyaW5nW10gPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMubW9udGhOYW1lcztcbiAgcHVibGljIGhvdXJUaW1lczogbnVtYmVyW10gPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuaG91clRpbWVzO1xuICBwdWJsaWMgc2Nyb2xsVHlwZXM6IFNjcm9sbFR5cGUgPVxuICAgIEN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbnN0YW50cy5kZWZhdWx0U2Nyb2xsVHlwZXM7XG4gIHB1YmxpYyBzZWxlY3RlZFRpbWU6IHN0cmluZyA9XG4gICAgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLmRlZmF1bHRTZWxlY3RlZFRpbWU7XG4gIHB1YmxpYyB0aW1lT2ZEYXk6IHN0cmluZ1tdID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVPZkRheTtcblxuICBwdWJsaWMgcHJldmlvdXNSYW5nZVNpZGUhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhckRhdGVUaW1lUGlja2VyU2VydmljZSkgeyB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFyVHlwZShjYWxlbmRhclR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuY2FsZW5kYXJNYWluVHlwZSA9IGNhbGVuZGFyVHlwZTtcbiAgICBpZiAoY2FsZW5kYXJUeXBlID09PSBDYWxlbmRhclR5cGVTdHJpbmdFbnVtLlRJTUUpXG4gICAgICB0aGlzLm91dHB1dFR5cGUgPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuZGVmYXVsdE91dHB1dFR5cGVUaW1lO1xuICAgIGVsc2UgdGhpcy5vdXRwdXRUeXBlID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLmRlZmF1bHRPdXRwdXRUeXBlRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGVUaW1lID0gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXREYXRlQ2hhbmdlZExpc3RlbmVyKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaW1lVmFsdWUoKTtcbiAgICB0aGlzLmNoYW5nZU9wZW5lZCgpO1xuICB9XG5cbiAgcHVibGljIGluaXREYXRlQ2hhbmdlZExpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmRhdGVDaGFuZ2VkLnN1YnNjcmliZSgoZGF0ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FsZW5kYXJNYWluVHlwZSAhPT0gQ2FsZW5kYXJUeXBlU3RyaW5nRW51bS5USU1FKSB7XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVswXSA9IGRhdGVbMF07XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVsyXSA9IGRhdGVbMV07XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVs0XSA9IGRhdGVbMl07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFRpbWVWYWx1ZSgpIHtcbiAgICBjb25zdCBkYXRlSW5wdXRBcnJheSA9IG1vbWVudCh0aGlzLmRhdGVUaW1lKS5mb3JtYXQoJ0gvbW0vQScpLnNwbGl0KCcvJyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSB0aGlzLmhvdXJUaW1lcy5pbmRleE9mKFxuICAgICAgICBwYXJzZUludChkYXRlSW5wdXRBcnJheVswXSlcbiAgICAgICk7XG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGwgPSB0aGlzLnRpbWVNaW51dGVzLmluZGV4T2YoXG4gICAgICAgIGRhdGVJbnB1dEFycmF5WzFdXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPSBkYXRlSW5wdXRBcnJheVsyXSA9PT0gJ0FNJyA/IDAgOiAxO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldExpc3RQcmV2aWV3KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RQcmV2aWV3ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRJbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbnB1dEZvY3VzID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0lucHV0Rm9jdXMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VPcGVuZWQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5pc0lucHV0Rm9jdXMgPSBlO1xuICAgIC8vIGlmIChlKSB7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXJNYWluVHlwZSA9PT0gQ2FsZW5kYXJUeXBlU3RyaW5nRW51bS5USU1FKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ob3VyU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgKiAyMjtcbiAgICAgICAgdGhpcy5taW51dGVzU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGwgKiAyMjtcbiAgICAgICAgdGhpcy5wbUFtU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgKiAyMjtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdGVzdCA9IGAke3RoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKSArIDFcbiAgICAgICAgfS8ke3RoaXMuZGF0ZVRpbWUuZ2V0RGF0ZSgpfS8ke3RoaXMuZGF0ZVRpbWUuZ2V0RnVsbFllYXIoKX1gO1xuXG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxUb0RhdGUubmV4dChcbiAgICAgICAgYCR7dGhpcy5kYXRlVGltZS5nZXRNb250aCgpICsgMVxuICAgICAgICB9LyR7dGhpcy5kYXRlVGltZS5nZXREYXRlKCl9LyR7dGhpcy5kYXRlVGltZS5nZXRGdWxsWWVhcigpfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFRpbWUoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXRUeXBlWzBdID0gdGhpcy5ob3VyVGltZXNbdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsXTtcbiAgICB0aGlzLm91dHB1dFR5cGVbMl0gPSB0aGlzLnRpbWVNaW51dGVzW3RoaXMuc2Nyb2xsVHlwZXMubWludXRlc1Njcm9sbF07XG4gICAgdGhpcy5vdXRwdXRUeXBlWzRdID0gdGhpcy50aW1lT2ZEYXlbdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsXTtcblxuICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuXG4gICAgbGV0IGN1cnJlbnREYXRlID0gbW9tZW50KCkuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG5cbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5uZXh0KFxuICAgICAgbmV3IERhdGUoY3VycmVudERhdGUgKyAnICcgKyB0aGlzLnNlbGVjdGVkRGF0ZVRpbWUpXG4gICAgKTtcblxuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREZWZhdWx0VGltZSgpOiB2b2lkIHtcbiAgICBsZXQgY3VycmVudERhdGUgPSBtb21lbnQoKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5uZXh0KG5ldyBEYXRlKGN1cnJlbnREYXRlICsgJyAwODowMCcpKTtcblxuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvcHVwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVTdHJpbmdGcm9tT3V0cHV0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3V0cHV0VHlwZS5qb2luKCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbChcbiAgICBldmVudDogRXZlbnQsXG4gICAgdHlwZToga2V5b2YgU2Nyb2xsVHlwZSxcbiAgICBpbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc2Nyb2xGcm9tVG9wID0gTWF0aC5mbG9vcigoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3ApO1xuICAgIGNvbnN0IHNjcm9sbEluZGV4ID0gaW5kZXggPT09IG51bGwgPyBNYXRoLmZsb29yKHNjcm9sRnJvbVRvcCAvIDIyKSA6IGluZGV4O1xuICAgIGNvbnN0IHNjcm9sbFJlbWFpbmluZyA9IHNjcm9sRnJvbVRvcCAlIDIyO1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxUaW1lcik7XG4gICAgdGhpcy5zY3JvbGxUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNjcm9sbFJlbWFpbmluZyA8IDExICYmIGluZGV4ID09PSBudWxsKSB7XG4gICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcCA9IHNjcm9sbEluZGV4ICogMjI7XG4gICAgICAgIHRoaXMuc2Nyb2xsVHlwZXNbdHlwZV0gPSBzY3JvbGxJbmRleDtcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgKDxIVE1MRWxlbWVudD4oPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkucGFyZW50Tm9kZSkuc2Nyb2xsVG9wID1cbiAgICAgICAgICBzY3JvbGxJbmRleCAqIDIyO1xuICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3AgPSAoc2Nyb2xsSW5kZXggKyAxKSAqIDIyO1xuICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXggKyAxO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrRm9yU2Nyb2xsZWRUeXBlKHR5cGUpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tGb3JTY3JvbGxlZFR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09IENhbGVuZGFyU2Nyb2xsVHlwZVN0cmluZ0VudW0uSE9VUlNfU0NST0xMKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUeXBlc1t0eXBlXSA+PSAxMikge1xuICAgICAgICB0aGlzLnBtQW1TY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAyMjtcbiAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucG1BbVNjcm9sbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMucG1BbVNjcm9sbCA9IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09IENhbGVuZGFyU2Nyb2xsVHlwZVN0cmluZ0VudW0uUE1fQU1fU0NST0xMKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUeXBlc1t0eXBlXSA9PT0gMCkge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsID49IDEyKSB7XG4gICAgICAgICAgdGhpcy5ob3VyU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICAgICh0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgLSAxMikgKiAyMjtcbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsIC0gMTJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsIDwgMTIpIHtcbiAgICAgICAgICB0aGlzLmhvdXJTY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPVxuICAgICAgICAgICAgKHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCArIDEyKSAqIDIyO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgKyAxMlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IGAke3RoaXMuaG91clRpbWVzW3RoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbF19OiR7dGhpcy50aW1lTWludXRlc1t0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGxdXG4gICAgICB9ICR7dGhpcy50aW1lT2ZEYXlbdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsXX1gO1xuICB9XG5cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxpc3RQcmV2aWV3ID0gQ2FsZW5kYXJMaXN0UHJldmlld1N0cmluZ0VudW0uRlVMTF9MSVNUO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGVtcF9pbnBfaG9sZGVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcnNfaG9sZGVyIGRhcmtfcGlja2VyXCI+XG4gICAgICAgICAgICBAaWYgKGNhbGVuZGFyTWFpblR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlX3BpY2tlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlzdFByZXZpZXddPVwibGlzdFByZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGVUaW1lXT1cImRhdGVUaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc01vbnRoQW5kWWVhck9ubHldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyQmFua0NhcmQnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNldExpc3RQcmV2aWV3VmFsdWUpPVwic2V0TGlzdFByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1kYXRlLWNhbGVuZGFycz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2FsZW5kYXJNYWluVHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVfcGlja2VyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lX3BpY2tlcl9oZWFkIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkX3RpbWUgdGEtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRUaW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbF9ub3cgdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RGVmYXVsdFRpbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZV9waWNrZXJfYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9ib2R5X2hlYWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaG92ZXJlZEl0ZW0gPT09ICdtaW51dGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW51dGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ3RpbWVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTS9QTVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3VyU2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW91dCk9XCJob3ZlcmVkSXRlbSA9IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cImhvdmVyZWRJdGVtID0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfcGlja2Vyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgb2YgaG91clRpbWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5ob3VyU2Nyb2xsID09PSBpbmR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcsIGluZHgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBob3VyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI21pbnV0ZXNTY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAnbWludXRlcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudCwgJ21pbnV0ZXNTY3JvbGwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX3BpY2tlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW51dGVzIG9mIHRpbWVNaW51dGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5taW51dGVzU2Nyb2xsID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pbnV0ZXNTY3JvbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtaW51dGVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BtQW1TY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAndGltZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNjcm9sbF9waWNrZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBvZiB0aW1lT2ZEYXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5keCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGluZHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlX2l0ZW0gdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPT09IGluZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJywgaW5keClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdoZW4gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmUgbGluZV8yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2J1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcHVwKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHNldF9idXR0b24gdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBR25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsU0FBUztBQUNULE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUs1QixhQUFhO0FBQ2IsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sNEdBQTRHLENBQUM7QUFFM0ssWUFBWTtBQUNaLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBTXJHLFFBQVE7QUFDUixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQWF4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LFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUUvQixXQUFXO3NCQUF2QixLQUFLO2dCQWNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR1AsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLDZDQUE2QztnQkFFL0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDRCxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBbUNuQixZQUFZO3NCQURmLEtBQUs7Z0JBWUYsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIG1vbWVudFxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vLyBzZXJ2aWNlc1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhbGVuZGFyLWRhdGV0aW1lLXBpY2tlci5zZXJ2aWNlJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzLmNvbXBvbmVudCc7XG5cbi8vIGNvbnN0YW50c1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMvY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29uc3RhbnRzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NhLWlucHV0L2NvbmZpZy9jYS1pbnB1dC5jb25maWcnO1xuaW1wb3J0IHsgU2Nyb2xsVHlwZSB9IGZyb20gJy4vbW9kZWxzL3Njcm9sbC10eXBlLm1vZGVsJztcblxuLy8gZW51bXNcbmltcG9ydCB7IElucHV0Q29uZmlnTmFtZVN0cmluZ0VudW0gfSBmcm9tICcuLi9jYS1pbnB1dC9lbnVtcy9pbnB1dC1jb25maWctbmFtZS1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhclR5cGVTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci10eXBlLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci1saXN0LXByZXZpZXctc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY3JvbGxUeXBlU3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMvY2FsZW5kYXItc2Nyb2xsLXR5cGUtc3RyaW5nLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzRGF0ZUNhbGVuZGFyc0NvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgICBASW5wdXQoKSBkYXRlVGltZSE6IERhdGU7XG4gICAgQFZpZXdDaGlsZCgncmVmJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHJlZiE6IFZpZXdDb250YWluZXJSZWY7XG4gICAgcHVibGljIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICAgIEBJbnB1dCgpIHNldCBpbnB1dENvbmZpZyhjb25maWc6IElDYUlucHV0KSB7XG4gICAgICAgIHRoaXMuX2lucHV0Q29uZmlnID0gY29uZmlnO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9pbnB1dENvbmZpZy5uYW1lID09PVxuICAgICAgICAgICAgSW5wdXRDb25maWdOYW1lU3RyaW5nRW51bS5EQVRFX1BJQ0tFUl9CQU5LX0NBUkRcbiAgICAgICAgKVxuICAgICAgICAgICAgdGhpcy5saXN0UHJldmlldyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLk1PTlRIX0xJU1Q7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnLm1pbnV0ZXNHYXBGaXZlKVxuICAgICAgICAgICAgdGhpcy50aW1lTWludXRlcyA9XG4gICAgICAgICAgICAgICAgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVNaW51dGVzR2FwRml2ZTtcbiAgICAgICAgZWxzZSB0aGlzLnRpbWVNaW51dGVzID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVNaW51dGVzO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBjbG9zZVBvcG92ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50KVxuICAgIGRhdGVDYWxlbmRhciE6IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzRGF0ZUNhbGVuZGFyc0NvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdwbUFtU2Nyb2xsJykgcG1BbVNjcm9sbCE6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnbWludXRlc1Njcm9sbCcpIG1pbnV0ZXNTY3JvbGwhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2hvdXJTY3JvbGwnKSBob3VyU2Nyb2xsITogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBzZWxlY3RlZERhdGVUaW1lITogc3RyaW5nO1xuICAgIHB1YmxpYyBjYWxlbmRhck1haW5UeXBlITogc3RyaW5nO1xuICAgIHB1YmxpYyBvdXRwdXRUeXBlITogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgICBwdWJsaWMgY3VycmVudFllYXI6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgICBwdWJsaWMgY3VycmVudE1vbnRoOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldE1vbnRoKCk7XG4gICAgcHVibGljIGN1cnJlbnREYXk6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpO1xuICAgIHB1YmxpYyBsaXN0UHJldmlldzogc3RyaW5nID0gQ2FsZW5kYXJMaXN0UHJldmlld1N0cmluZ0VudW0uRlVMTF9MSVNUO1xuICAgIHB1YmxpYyB0aW1lTWludXRlcyE6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBtb250aEFycmF5OiBudW1iZXJbXSA9IG5ldyBBcnJheSgxMilcbiAgICAgICAgLmZpbGwoMClcbiAgICAgICAgLm1hcCgoXywgaW5keCkgPT4gaW5keCArIDEpO1xuICAgIHB1YmxpYyBtb250aERheUxpc3Q6IG51bWJlcltdID0gbmV3IEFycmF5KDMxKVxuICAgICAgICAuZmlsbCgwKVxuICAgICAgICAubWFwKChfLCBpbmR4KSA9PiBpbmR4ICsgMSk7XG4gICAgcHVibGljIHllYXJzTGlzdDogKHN0cmluZyB8IG51bWJlcilbXSA9IG5ldyBBcnJheSgxMDApXG4gICAgICAgIC5maWxsKDApXG4gICAgICAgIC5tYXAoKF8sIGlkeCkgPT4gKGlkeCA8IDEwID8gJzAnICsgaWR4IDogaWR4KSk7XG4gICAgcHVibGljIHNjcm9sbFRpbWVyITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudW1iZXI7XG4gICAgcHVibGljIGhvdmVyZWRJdGVtITogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgaXNJbnB1dEZvY3VzITogYm9vbGVhbjtcbiAgICBwdWJsaWMgbW9udGhOYW1lczogc3RyaW5nW10gPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMubW9udGhOYW1lcztcbiAgICBwdWJsaWMgaG91clRpbWVzOiBudW1iZXJbXSA9IEN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbnN0YW50cy5ob3VyVGltZXM7XG4gICAgcHVibGljIHNjcm9sbFR5cGVzOiBTY3JvbGxUeXBlID1cbiAgICAgICAgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLmRlZmF1bHRTY3JvbGxUeXBlcztcbiAgICBwdWJsaWMgc2VsZWN0ZWRUaW1lOiBzdHJpbmcgPVxuICAgICAgICBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuZGVmYXVsdFNlbGVjdGVkVGltZTtcbiAgICBwdWJsaWMgdGltZU9mRGF5OiBzdHJpbmdbXSA9IEN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbnN0YW50cy50aW1lT2ZEYXk7XG5cbiAgICBwdWJsaWMgcHJldmlvdXNSYW5nZVNpZGUhOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyRGF0ZVRpbWVQaWNrZXJTZXJ2aWNlKSB7fVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgY2FsZW5kYXJUeXBlKGNhbGVuZGFyVHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJNYWluVHlwZSA9IGNhbGVuZGFyVHlwZTtcbiAgICAgICAgaWYgKGNhbGVuZGFyVHlwZSA9PT0gQ2FsZW5kYXJUeXBlU3RyaW5nRW51bS5USU1FKVxuICAgICAgICAgICAgdGhpcy5vdXRwdXRUeXBlID1cbiAgICAgICAgICAgICAgICBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuZGVmYXVsdE91dHB1dFR5cGVUaW1lO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLm91dHB1dFR5cGUgPVxuICAgICAgICAgICAgICAgIEN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbnN0YW50cy5kZWZhdWx0T3V0cHV0VHlwZURhdGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVRpbWUgPSBwbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5kYXRlVGltZSwgJyB0aGlzLiBkYWRhdGVUaW1lJyk7XG4gICAgICAgIHRoaXMuaW5pdERhdGVDaGFuZ2VkTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VGltZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlT3BlbmVkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXREYXRlQ2hhbmdlZExpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNhbGVuZGFyTWFpblR5cGUgIT09IENhbGVuZGFyVHlwZVN0cmluZ0VudW0uVElNRSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3V0cHV0VHlwZVswXSA9IGRhdGVbMF07XG4gICAgICAgICAgICAgICAgdGhpcy5vdXRwdXRUeXBlWzJdID0gZGF0ZVsxXTtcbiAgICAgICAgICAgICAgICB0aGlzLm91dHB1dFR5cGVbNF0gPSBkYXRlWzJdO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VGltZVZhbHVlKCkge1xuICAgICAgICBjb25zdCBkYXRlSW5wdXRBcnJheSA9IG1vbWVudCh0aGlzLmRhdGVUaW1lKVxuICAgICAgICAgICAgLmZvcm1hdCgnSC9tbS9BJylcbiAgICAgICAgICAgIC5zcGxpdCgnLycpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCA9IHRoaXMuaG91clRpbWVzLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoZGF0ZUlucHV0QXJyYXlbMF0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5taW51dGVzU2Nyb2xsID0gdGhpcy50aW1lTWludXRlcy5pbmRleE9mKFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dEFycmF5WzFdXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPSBkYXRlSW5wdXRBcnJheVsyXSA9PT0gJ0FNJyA/IDAgOiAxO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TGlzdFByZXZpZXcodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpc3RQcmV2aWV3ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlucHV0SW5Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNJbnB1dEZvY3VzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5pc0lucHV0Rm9jdXMgPSBlO1xuICAgICAgICAvLyBpZiAoZSkge1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhck1haW5UeXBlID09PSBDYWxlbmRhclR5cGVTdHJpbmdFbnVtLlRJTUUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaG91clNjcm9sbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCAqIDIyO1xuICAgICAgICAgICAgICAgIHRoaXMubWludXRlc1Njcm9sbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMubWludXRlc1Njcm9sbCAqIDIyO1xuICAgICAgICAgICAgICAgIHRoaXMucG1BbVNjcm9sbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMucG1BbVNjcm9sbCAqIDIyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgdGVzdCA9IGAke1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKSArIDFcbiAgICAgICAgICAgIH0vJHt0aGlzLmRhdGVUaW1lLmdldERhdGUoKX0vJHt0aGlzLmRhdGVUaW1lLmdldEZ1bGxZZWFyKCl9YDtcblxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2Uuc2Nyb2xsVG9EYXRlLm5leHQoXG4gICAgICAgICAgICAgICAgYCR7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKSArIDFcbiAgICAgICAgICAgICAgICB9LyR7dGhpcy5kYXRlVGltZS5nZXREYXRlKCl9LyR7dGhpcy5kYXRlVGltZS5nZXRGdWxsWWVhcigpfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VGltZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdXRwdXRUeXBlWzBdID0gdGhpcy5ob3VyVGltZXNbdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsXTtcbiAgICAgICAgdGhpcy5vdXRwdXRUeXBlWzJdID0gdGhpcy50aW1lTWludXRlc1t0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGxdO1xuICAgICAgICB0aGlzLm91dHB1dFR5cGVbNF0gPSB0aGlzLnRpbWVPZkRheVt0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGxdO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuXG4gICAgICAgIGxldCBjdXJyZW50RGF0ZSA9IG1vbWVudCgpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuXG4gICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmRhdGVDaGFuZ2VkLm5leHQoXG4gICAgICAgICAgICBuZXcgRGF0ZShjdXJyZW50RGF0ZSArICcgJyArIHRoaXMuc2VsZWN0ZWREYXRlVGltZSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNsb3NlUG9wb3Zlci5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERlZmF1bHRUaW1lKCk6IHZvaWQge1xuICAgICAgICBsZXQgY3VycmVudERhdGUgPSBtb21lbnQoKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuZGF0ZUNoYW5nZWQubmV4dChuZXcgRGF0ZShjdXJyZW50RGF0ZSArICcgMDg6MDAnKSk7XG5cbiAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZVBvcHVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlUG9wb3Zlci5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVN0cmluZ0Zyb21PdXRwdXQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3V0cHV0VHlwZS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TY3JvbGwoXG4gICAgICAgIGV2ZW50OiBFdmVudCxcbiAgICAgICAgdHlwZToga2V5b2YgU2Nyb2xsVHlwZSxcbiAgICAgICAgaW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjcm9sRnJvbVRvcCA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3BcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsSW5kZXggPVxuICAgICAgICAgICAgaW5kZXggPT09IG51bGwgPyBNYXRoLmZsb29yKHNjcm9sRnJvbVRvcCAvIDIyKSA6IGluZGV4O1xuICAgICAgICBjb25zdCBzY3JvbGxSZW1haW5pbmcgPSBzY3JvbEZyb21Ub3AgJSAyMjtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnNjcm9sbFRpbWVyKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbFJlbWFpbmluZyA8IDExICYmIGluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsVG9wID0gc2Nyb2xsSW5kZXggKiAyMjtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgKDxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAgICAgICAgICg8SFRNTEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5wYXJlbnROb2RlXG4gICAgICAgICAgICAgICAgKSkuc2Nyb2xsVG9wID0gc2Nyb2xsSW5kZXggKiAyMjtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcCA9XG4gICAgICAgICAgICAgICAgICAgIChzY3JvbGxJbmRleCArIDEpICogMjI7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUeXBlc1t0eXBlXSA9IHNjcm9sbEluZGV4ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jaGVja0ZvclNjcm9sbGVkVHlwZSh0eXBlKTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tGb3JTY3JvbGxlZFR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlID09PSBDYWxlbmRhclNjcm9sbFR5cGVTdHJpbmdFbnVtLkhPVVJTX1NDUk9MTCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsVHlwZXNbdHlwZV0gPj0gMTIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBtQW1TY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAyMjtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPSAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBtQW1TY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMucG1BbVNjcm9sbCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gQ2FsZW5kYXJTY3JvbGxUeXBlU3RyaW5nRW51bS5QTV9BTV9TQ1JPTEwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCA+PSAxMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdXJTY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCAtIDEyKSAqIDIyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsIC0gMTJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPCAxMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdXJTY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCArIDEyKSAqIDIyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsICsgMTJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkVGltZSA9IGAke3RoaXMuaG91clRpbWVzW3RoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbF19OiR7XG4gICAgICAgICAgICB0aGlzLnRpbWVNaW51dGVzW3RoaXMuc2Nyb2xsVHlwZXMubWludXRlc1Njcm9sbF1cbiAgICAgICAgfSAke3RoaXMudGltZU9mRGF5W3RoaXMuc2Nyb2xsVHlwZXMucG1BbVNjcm9sbF19YDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5saXN0UHJldmlldyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLkZVTExfTElTVDtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGVtcF9pbnBfaG9sZGVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcnNfaG9sZGVyIGRhcmtfcGlja2VyXCI+XG4gICAgICAgICAgICBAaWYgKGNhbGVuZGFyTWFpblR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlX3BpY2tlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlzdFByZXZpZXddPVwibGlzdFByZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGVUaW1lXT1cImRhdGVUaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc01vbnRoQW5kWWVhck9ubHldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyQmFua0NhcmQnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNldExpc3RQcmV2aWV3VmFsdWUpPVwic2V0TGlzdFByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1kYXRlLWNhbGVuZGFycz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2FsZW5kYXJNYWluVHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVfcGlja2VyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lX3BpY2tlcl9oZWFkIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkX3RpbWUgdGEtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRUaW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbF9ub3cgdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RGVmYXVsdFRpbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZV9waWNrZXJfYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9ib2R5X2hlYWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaG92ZXJlZEl0ZW0gPT09ICdtaW51dGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW51dGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ3RpbWVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTS9QTVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3VyU2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW91dCk9XCJob3ZlcmVkSXRlbSA9IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cImhvdmVyZWRJdGVtID0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfcGlja2Vyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgb2YgaG91clRpbWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5ob3VyU2Nyb2xsID09PSBpbmR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcsIGluZHgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBob3VyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI21pbnV0ZXNTY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAnbWludXRlcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudCwgJ21pbnV0ZXNTY3JvbGwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX3BpY2tlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW51dGVzIG9mIHRpbWVNaW51dGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5taW51dGVzU2Nyb2xsID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pbnV0ZXNTY3JvbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtaW51dGVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BtQW1TY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAndGltZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNjcm9sbF9waWNrZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBvZiB0aW1lT2ZEYXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5keCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGluZHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlX2l0ZW0gdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPT09IGluZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJywgaW5keClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdoZW4gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmUgbGluZV8yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2J1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcHVwKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHNldF9idXR0b24gdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -56,7 +56,8 @@ export class CaCustomDateTimePickerCalendarDatesMainComponent {
56
56
  .pipe(takeUntil(this.destroy$))
57
57
  .subscribe((res) => {
58
58
  if (res.type !== CalendarStringEnum.MAIN &&
59
- this.calendarService.selectedScroll !== CalendarStringEnum.MAIN) {
59
+ this.calendarService.selectedScroll !==
60
+ CalendarStringEnum.MAIN) {
60
61
  const sizeTimes = CalendarMainStringEnum.FULL_SIZE / res.cycleSize;
61
62
  const newScrollSize = Math.ceil(sizeTimes * res.scrollOffset);
62
63
  this.scrollStrategy.scrollToOffset(newScrollSize, CalendarStringEnum.AUTO);
@@ -93,7 +94,8 @@ export class CaCustomDateTimePickerCalendarDatesMainComponent {
93
94
  onMonthChange(data) {
94
95
  if (this.months[data.indx]) {
95
96
  this.selectedYear = this.months[data.indx].getFullYear();
96
- this.selectedMonth = this.monthNames[this.months[data.indx].getMonth()];
97
+ this.selectedMonth =
98
+ this.monthNames[this.months[data.indx].getMonth()];
97
99
  this.activeMonth = data.indx;
98
100
  this.calendarService.index$.next(data);
99
101
  }
@@ -173,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
173
175
  }], setAutoIndex: [{
174
176
  type: Output
175
177
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRhdGVzLW1haW4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRhdGVzLW1haW4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLFVBQVU7QUFDVixPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixHQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLFNBQVM7QUFDVCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFLNUIsYUFBYTtBQUNi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O2dCQUNuQixJQUFJLEVBQUU7b0JBQ0osVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdEQUFnRCxDQUFDO2lCQUNuRTthQUNGO1NBQ0YsMEJDbEVILDRxUkE4TEEseUREeklJLFlBQVksNEhBQ1osV0FBVyw4QkFDWCxlQUFlLDBaQUNmLDRDQUE0Qzs7NEZBWW5DLGdEQUFnRDtrQkF4QjVELFNBQVM7K0JBQ0UscURBQXFELGNBTW5ELElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZiw0Q0FBNEM7cUJBQzdDLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsVUFBVSxFQUFFLE9BQU87NEJBQ25CLElBQUksRUFBRTtnQ0FDSixVQUFVLENBQUMsR0FBRyxFQUFFLGlEQUFpRCxDQUFDOzZCQUNuRTt5QkFDRjtxQkFDRjtrR0FLUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR08sV0FBVztzQkFBdkIsS0FBSztnQkFRRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBPbkRlc3Ryb3ksXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7XG4gIFNjcm9sbGluZ01vZHVsZSxcbiAgVklSVFVBTF9TQ1JPTExfU1RSQVRFR1ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG4vLyBtb21lbnRcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuLy8gc2VydmljZXNcbmltcG9ydCB7IENhbGVuZGFyRGF0ZVRpbWVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXItZGF0ZXRpbWUtcGlja2VyLnNlcnZpY2UnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0NhbGVuZGFyRGF5c0NvbXBvbmVudCB9IGZyb20gJy4uL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRheXMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQnO1xuXG4vLyBzdHJhdGVneVxuaW1wb3J0IHtcbiAgQ2FsZW5kYXJTdHJhdGVneSxcbiAgU1RBUlRJTkdfWUVBUixcbn0gZnJvbSAnLi4vLi4vc3RyYXRlZ3kvY2FsZW5kYXItc3RyYXRlZ3knO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgQ2FsZW5kYXJNYWluU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uL2VudW1zL2NhbGVuZGFyLW1haW4tc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgQ2FsZW5kYXJTdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vZW51bXMvY2FsZW5kYXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgQ2FsZW5kYXJMaXN0UHJldmlld1N0cmluZ0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcy9jYWxlbmRhci1saXN0LXByZXZpZXctc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uc3RhbnRzL2N1c3RvbS1kYXRldGltZS1waWNrZXJzLmNvbnN0YW50cyc7XG5cbmZ1bmN0aW9uIGZhY3RvcnkoZGlyOiBDYUN1c3RvbURhdGVUaW1lUGlja2VyQ2FsZW5kYXJEYXRlc01haW5Db21wb25lbnQpIHtcbiAgcmV0dXJuIGRpci5zY3JvbGxTdHJhdGVneTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLS1jYWxlbmRhci1kYXRlcy1tYWluJyxcbiAgdGVtcGxhdGVVcmw6XG4gICAgJy4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRhdGVzLW1haW4uY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgICBDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0NhbGVuZGFyRGF5c0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVklSVFVBTF9TQ1JPTExfU1RSQVRFR1ksXG4gICAgICB1c2VGYWN0b3J5OiBmYWN0b3J5LFxuICAgICAgZGVwczogW1xuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJDYWxlbmRhckRhdGVzTWFpbkNvbXBvbmVudCksXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJDYWxlbmRhckRhdGVzTWFpbkNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIG1vbnRocyE6IERhdGVbXTtcbiAgQElucHV0KCkgZGF0ZVRpbWUhOiBEYXRlO1xuICBASW5wdXQoKSBjdXJyZW50SW5kZXghOiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1cnJlbnRZZWFySW5kZXghOiBudW1iZXI7XG4gIEBJbnB1dCgpIGFjdGl2ZUluZGV4ITogbnVtYmVyO1xuICBASW5wdXQoKSBtb250aFllYXJzSW5keCE6IHN0cmluZ1tdO1xuXG4gIHB1YmxpYyBfbGlzdFByZXZpZXchOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldCBsaXN0UHJldmlldyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbGlzdFByZXZpZXcgPSB2YWx1ZTtcbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnVwZGF0ZVNjcm9sbEhlaWdodHMoXG4gICAgICB2YWx1ZSA9PT0gQ2FsZW5kYXJMaXN0UHJldmlld1N0cmluZ0VudW0uTU9OVEhfTElTVFxuICAgICAgICA/IENhbGVuZGFyTWFpblN0cmluZ0VudW0uQ1lDTEVfSEVJR0hUX0JZX01PTlRIU1xuICAgICAgICA6IENhbGVuZGFyTWFpblN0cmluZ0VudW0uQ1lDTEVfSEVJR0hUXG4gICAgKTtcbiAgfVxuICBASW5wdXQoKSBpc01vbnRoQW5kWWVhck9ubHkhOiBib29sZWFuO1xuICBAT3V0cHV0KCkgc2V0TGlzdFByZXZpZXdUb0Z1bGw6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2V0QXV0b0luZGV4OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgc2Nyb2xsU3RyYXRlZ3k6IENhbGVuZGFyU3RyYXRlZ3kgPSBuZXcgQ2FsZW5kYXJTdHJhdGVneShcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZSxcbiAgICBDYWxlbmRhck1haW5TdHJpbmdFbnVtLkNZQ0xFX0hFSUdIVCxcbiAgICBDYWxlbmRhck1haW5TdHJpbmdFbnVtLkZVTExfU0laRSxcbiAgICBDYWxlbmRhclN0cmluZ0VudW0uTUFJTlxuICApO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBtb250aE5hbWVzID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLm1vbnRoTmFtZXM7XG5cbiAgcHVibGljIHNlbGVjdGVkWWVhciE6IG51bWJlcjtcbiAgcHVibGljIHNlbGVjdGVkWWVhckZyb21JbnB1dCE6IG51bWJlcjtcbiAgcHVibGljIHNlbE1vbnRoITogbnVtYmVyO1xuICBwdWJsaWMgc2VsZWN0ZWRNb250aCE6IHN0cmluZztcbiAgcHJpdmF0ZSBhY3RpdmVNb250aCA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyRGF0ZVRpbWVQaWNrZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFNjcm9sbExpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIGluaXRTY3JvbGxMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxNb250aCA9IHRoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKTtcbiAgICB0aGlzLnNlbGVjdGVkWWVhckZyb21JbnB1dCA9IHRoaXMuZGF0ZVRpbWUuZ2V0RnVsbFllYXIoKTtcbiAgICAvL3RoaXMuc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID0gdGhpcy5tb250aHMuZ2V0RnVsbFllYXIoKTtcblxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnNjcm9sbFRvQXV0b0luZGV4XG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChpbmR4KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChpbmR4LCBDYWxlbmRhclN0cmluZ0VudW0uQVVUTyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxlZEluZGV4Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJlcy50eXBlICE9PSBDYWxlbmRhclN0cmluZ0VudW0uTUFJTiAmJlxuICAgICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnNlbGVjdGVkU2Nyb2xsICE9PSBDYWxlbmRhclN0cmluZ0VudW0uTUFJTlxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBzaXplVGltZXMgPSBDYWxlbmRhck1haW5TdHJpbmdFbnVtLkZVTExfU0laRSAvIHJlcy5jeWNsZVNpemU7XG4gICAgICAgICAgY29uc3QgbmV3U2Nyb2xsU2l6ZSA9IE1hdGguY2VpbChzaXplVGltZXMgKiByZXMuc2Nyb2xsT2Zmc2V0KTtcbiAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNjcm9sbFRvT2Zmc2V0KFxuICAgICAgICAgICAgbmV3U2Nyb2xsU2l6ZSxcbiAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxUb0RhdGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICBjb25zdCBpbmR4ID0gdGhpcy5maW5kSW5kZXhJbk1vbnRoKHJlcyk7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgoaW5keCwgQ2FsZW5kYXJTdHJpbmdFbnVtLkFVVE8pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgoXG4gICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4LFxuICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDIwMCk7XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLmlzTW9udGhBbmRZZWFyT25seSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kudXBkYXRlU2Nyb2xsSGVpZ2h0cyhcbiAgICAgICAgICBDYWxlbmRhck1haW5TdHJpbmdFbnVtLkNZQ0xFX0hFSUdIVF9CWV9NT05USFNcbiAgICAgICAgKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgoXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRZZWFySW5kZXgsXG4gICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kSW5kZXhJbk1vbnRoKGRhdGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgY29uc3QgaW5kZXhNb250aCA9IChzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSAtIFNUQVJUSU5HX1lFQVIpICogMTI7XG4gICAgY29uc3QgaW5keCA9IGluZGV4TW9udGggKyBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKTtcbiAgICByZXR1cm4gaW5keDtcbiAgfVxuXG4gIHB1YmxpYyBvbk1vbnRoQ2hhbmdlKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vbnRoc1tkYXRhLmluZHhdKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkWWVhciA9IHRoaXMubW9udGhzW2RhdGEuaW5keF0uZ2V0RnVsbFllYXIoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aCA9IHRoaXMubW9udGhOYW1lc1t0aGlzLm1vbnRoc1tkYXRhLmluZHhdLmdldE1vbnRoKCldO1xuICAgICAgdGhpcy5hY3RpdmVNb250aCA9IGRhdGEuaW5keDtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmluZGV4JC5uZXh0KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRNb250aChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLm1vbnRoTmFtZXNbaW5kZXhdO1xuICB9XG5cbiAgcHVibGljIG1vdXNlT3ZlclNldEl0ZW0oKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2Uuc2Nyb2xsZWRTY3JvbGxJdGVtID0gQ2FsZW5kYXJTdHJpbmdFbnVtLk1BSU47XG4gIH1cblxuICBwdWJsaWMgc2V0Q2FsZW5kYXJMaXN0UHJldmlldyhudW06IG51bWJlciwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsTW9udGggPSBudW07XG5cbiAgICBpZiAodGhpcy5pc01vbnRoQW5kWWVhck9ubHkpIHtcbiAgICAgIHRoaXMuc2V0QXV0b0luZGV4LmVtaXQobnVtKTtcblxuICAgICAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IHRoaXMubW9udGhzW2luZGV4XTtcbiAgICAgIGNvbnN0IG5ld19kYXRlID0gbW9tZW50KFxuICAgICAgICBuZXcgRGF0ZShzZWxlY3RlZE1vbnRoLmdldEZ1bGxZZWFyKCksIG51bSArIDEsIDApXG4gICAgICApLmZvcm1hdCgpO1xuICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuZGF0ZUNoYW5nZWQubmV4dChuZXdfZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0TGlzdFByZXZpZXdUb0Z1bGwuZW1pdChudW0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REYXkoZGF0YTogeyBkYXk6IG51bWJlcjsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IHRoaXMubW9udGhzW2RhdGEuaW5kZXhdO1xuICAgIGNvbnN0IG5ld19kYXRlID0gbW9tZW50KFxuICAgICAgbmV3IERhdGUoc2VsZWN0ZWRNb250aC5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZE1vbnRoLmdldE1vbnRoKCksIGRhdGEuZGF5KVxuICAgICkuZm9ybWF0KCk7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuZGF0ZUNoYW5nZWQubmV4dChuZXdfZGF0ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxkaXYgKG1vdXNlb3Zlcik9XCJtb3VzZU92ZXJTZXRJdGVtKClcIj5cbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgICNtb250aHNTY3JvbGxSZWZcbiAgICAgICAgKHNjcm9sbGVkSW5kZXhDaGFuZ2UpPVwib25Nb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDIwMHB4OyB3aWR0aDogMTAwJTsgbWFyZ2luOiAwXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpjZGtWaXJ0dWFsRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IG1vbnRoIG9mIG1vbnRocztcbiAgICAgICAgICAgICAgICBsZXQgaW5keCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlQ2FjaGVTaXplOiAxMFxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FsZW5kYXJfaW5kaWNhdG9yIHRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZ1bGxfY2FsZW5kYXJdPVwiX2xpc3RQcmV2aWV3ID09PSAnZnVsbF9saXN0J1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmN1cnJlbnRfeWVhcl09XCJcbiAgICAgICAgICAgICAgICAgICAgaXNNb250aEFuZFllYXJPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT0gbW9udGguZ2V0RnVsbFllYXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09IG1vbnRoLmdldEZ1bGxZZWFyKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsTW9udGggPT09IG1vbnRoLmdldE1vbnRoKClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoX2xpc3RQcmV2aWV3ID09PSAnZnVsbF9saXN0Jykge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRNb250aChtb250aC5nZXRNb250aCgpKSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHt7IG1vbnRoLmdldEZ1bGxZZWFyKCkgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChfbGlzdFByZXZpZXcgPT09ICdmdWxsX2xpc3QnKSB7XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2VyLWNhbGVuZGFyLWRheXNcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3REYXkpPVwic2VsZWN0RGF5KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV4XT1cImluZHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21vbnRoXT1cIm1vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZE1vbnRoXT1cIm1vbnRoLmdldE1vbnRoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3llYXJdPVwic2VsZWN0ZWRZZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRlVGltZV09XCJkYXRlVGltZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlTW9udGhdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PSBtb250aC5nZXRGdWxsWWVhcigpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsTW9udGggPT09IG1vbnRoLmdldE1vbnRoKClcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2VyLWNhbGVuZGFyLWRheXM+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKF9saXN0UHJldmlldyA9PT0gJ21vbnRoX2xpc3QnKSB7XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jdXJyZW50X3llYXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PSBtb250aC5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDAsIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGguZ2V0RnVsbFllYXIoKSAmJiAwID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKQU5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldygxLCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgMSA9PT0gc2VsTW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRkVCXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldENhbGVuZGFyTGlzdFByZXZpZXcoMiwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDIgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDMsIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGguZ2V0RnVsbFllYXIoKSAmJiAzID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUFJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldyg0LCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgNCA9PT0gc2VsTW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFZXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldENhbGVuZGFyTGlzdFByZXZpZXcoNSwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDUgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpVTlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDYsIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGguZ2V0RnVsbFllYXIoKSAmJiA2ID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKVUxcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldyg3LCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgNyA9PT0gc2VsTW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVVHXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldENhbGVuZGFyTGlzdFByZXZpZXcoOCwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDggPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFUFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDksIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGguZ2V0RnVsbFllYXIoKSAmJiA5ID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ1RcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldygxMCwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDEwID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1ZcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldygxMSwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDExID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUNcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG48L2Rpdj5cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRhdGVzLW1haW4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRhdGVzLW1haW4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFVBQVUsR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLFVBQVU7QUFDVixPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixHQUMxQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLFNBQVM7QUFDVCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFLNUIsYUFBYTtBQUNi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QUUsT0FBTztnQkFDbkIsSUFBSSxFQUFFO29CQUNGLFVBQVUsQ0FDTixHQUFHLEVBQUUsQ0FBQyxnREFBZ0QsQ0FDekQ7aUJBQ0o7YUFDSjtTQUNKLDBCQ3BFTCw0cVJBOExBLHlERHpJUSxZQUFZLDRIQUNaLFdBQVcsOEJBQ1gsZUFBZSwwWkFDZiw0Q0FBNEM7OzRGQWN2QyxnREFBZ0Q7a0JBMUI1RCxTQUFTOytCQUNJLHFEQUFxRCxjQU1uRCxJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsNENBQTRDO3FCQUMvQyxhQUNVO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFVBQVUsRUFBRSxPQUFPOzRCQUNuQixJQUFJLEVBQUU7Z0NBQ0YsVUFBVSxDQUNOLEdBQUcsRUFBRSxpREFBaUQsQ0FDekQ7NkJBQ0o7eUJBQ0o7cUJBQ0o7a0dBS1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBUUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgT25EZXN0cm95LFxuICAgIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7XG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgIFZJUlRVQUxfU0NST0xMX1NUUkFURUdZLFxufSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuLy8gbW9tZW50XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbi8vIHNlcnZpY2VzXG5pbXBvcnQgeyBDYWxlbmRhckRhdGVUaW1lUGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhbGVuZGFyLWRhdGV0aW1lLXBpY2tlci5zZXJ2aWNlJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNDYWxlbmRhckRheXNDb21wb25lbnQgfSBmcm9tICcuLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1jYWxlbmRhci1kYXlzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRheXMuY29tcG9uZW50JztcblxuLy8gc3RyYXRlZ3lcbmltcG9ydCB7XG4gICAgQ2FsZW5kYXJTdHJhdGVneSxcbiAgICBTVEFSVElOR19ZRUFSLFxufSBmcm9tICcuLi8uLi9zdHJhdGVneS9jYWxlbmRhci1zdHJhdGVneSc7XG5cbi8vIGVudW1zXG5pbXBvcnQgeyBDYWxlbmRhck1haW5TdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vZW51bXMvY2FsZW5kYXItbWFpbi1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcy9jYWxlbmRhci1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhckxpc3RQcmV2aWV3U3RyaW5nRW51bSB9IGZyb20gJy4uLy4uL2VudW1zL2NhbGVuZGFyLWxpc3QtcHJldmlldy1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMgfSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMvY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29uc3RhbnRzJztcblxuZnVuY3Rpb24gZmFjdG9yeShkaXI6IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJDYWxlbmRhckRhdGVzTWFpbkNvbXBvbmVudCkge1xuICAgIHJldHVybiBkaXIuc2Nyb2xsU3RyYXRlZ3k7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLS1jYWxlbmRhci1kYXRlcy1tYWluJyxcbiAgICB0ZW1wbGF0ZVVybDpcbiAgICAgICAgJy4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF0ZXMtbWFpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbXG4gICAgICAgICcuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRhdGVzLW1haW4uY29tcG9uZW50LnNjc3MnLFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgICAgICAgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNDYWxlbmRhckRheXNDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVklSVFVBTF9TQ1JPTExfU1RSQVRFR1ksXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBmYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW1xuICAgICAgICAgICAgICAgIGZvcndhcmRSZWYoXG4gICAgICAgICAgICAgICAgICAgICgpID0+IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJDYWxlbmRhckRhdGVzTWFpbkNvbXBvbmVudFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJDYWxlbmRhckRhdGVzTWFpbkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICBASW5wdXQoKSBtb250aHMhOiBEYXRlW107XG4gICAgQElucHV0KCkgZGF0ZVRpbWUhOiBEYXRlO1xuICAgIEBJbnB1dCgpIGN1cnJlbnRJbmRleCE6IG51bWJlcjtcbiAgICBASW5wdXQoKSBjdXJyZW50WWVhckluZGV4ITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGFjdGl2ZUluZGV4ITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1vbnRoWWVhcnNJbmR4ITogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgX2xpc3RQcmV2aWV3ITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNldCBsaXN0UHJldmlldyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xpc3RQcmV2aWV3ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kudXBkYXRlU2Nyb2xsSGVpZ2h0cyhcbiAgICAgICAgICAgIHZhbHVlID09PSBDYWxlbmRhckxpc3RQcmV2aWV3U3RyaW5nRW51bS5NT05USF9MSVNUXG4gICAgICAgICAgICAgICAgPyBDYWxlbmRhck1haW5TdHJpbmdFbnVtLkNZQ0xFX0hFSUdIVF9CWV9NT05USFNcbiAgICAgICAgICAgICAgICA6IENhbGVuZGFyTWFpblN0cmluZ0VudW0uQ1lDTEVfSEVJR0hUXG4gICAgICAgICk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGlzTW9udGhBbmRZZWFyT25seSE6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHNldExpc3RQcmV2aWV3VG9GdWxsOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2V0QXV0b0luZGV4OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBzY3JvbGxTdHJhdGVneTogQ2FsZW5kYXJTdHJhdGVneSA9IG5ldyBDYWxlbmRhclN0cmF0ZWd5KFxuICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZSxcbiAgICAgICAgQ2FsZW5kYXJNYWluU3RyaW5nRW51bS5DWUNMRV9IRUlHSFQsXG4gICAgICAgIENhbGVuZGFyTWFpblN0cmluZ0VudW0uRlVMTF9TSVpFLFxuICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uTUFJTlxuICAgICk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBtb250aE5hbWVzID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLm1vbnRoTmFtZXM7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRZZWFyITogbnVtYmVyO1xuICAgIHB1YmxpYyBzZWxlY3RlZFllYXJGcm9tSW5wdXQhOiBudW1iZXI7XG4gICAgcHVibGljIHNlbE1vbnRoITogbnVtYmVyO1xuICAgIHB1YmxpYyBzZWxlY3RlZE1vbnRoITogc3RyaW5nO1xuICAgIHByaXZhdGUgYWN0aXZlTW9udGggPSAwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyRGF0ZVRpbWVQaWNrZXJTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdFNjcm9sbExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0U2Nyb2xsTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbE1vbnRoID0gdGhpcy5kYXRlVGltZS5nZXRNb250aCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhckZyb21JbnB1dCA9IHRoaXMuZGF0ZVRpbWUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgLy90aGlzLnNlbGVjdGVkWWVhckZyb21JbnB1dCA9IHRoaXMubW9udGhzLmdldEZ1bGxZZWFyKCk7XG5cbiAgICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2Uuc2Nyb2xsVG9BdXRvSW5kZXhcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGluZHgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5keCxcbiAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxlZEluZGV4Q2hhbmdlXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHJlcy50eXBlICE9PSBDYWxlbmRhclN0cmluZ0VudW0uTUFJTiAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zZWxlY3RlZFNjcm9sbCAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5NQUlOXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVUaW1lcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhck1haW5TdHJpbmdFbnVtLkZVTExfU0laRSAvIHJlcy5jeWNsZVNpemU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Njcm9sbFNpemUgPSBNYXRoLmNlaWwoXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplVGltZXMgKiByZXMuc2Nyb2xsT2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9PZmZzZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdTY3JvbGxTaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXJTdHJpbmdFbnVtLkFVVE9cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxUb0RhdGVcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmR4ID0gdGhpcy5maW5kSW5kZXhJbk1vbnRoKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5pc01vbnRoQW5kWWVhck9ubHkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kudXBkYXRlU2Nyb2xsSGVpZ2h0cyhcbiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXJNYWluU3RyaW5nRW51bS5DWUNMRV9IRUlHSFRfQllfTU9OVEhTXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRZZWFySW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZpbmRJbmRleEluTW9udGgoZGF0ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICAgIGNvbnN0IGluZGV4TW9udGggPSAoc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkgLSBTVEFSVElOR19ZRUFSKSAqIDEyO1xuICAgICAgICBjb25zdCBpbmR4ID0gaW5kZXhNb250aCArIHNlbGVjdGVkRGF0ZS5nZXRNb250aCgpO1xuICAgICAgICByZXR1cm4gaW5keDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Nb250aENoYW5nZShkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9udGhzW2RhdGEuaW5keF0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyID0gdGhpcy5tb250aHNbZGF0YS5pbmR4XS5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoID1cbiAgICAgICAgICAgICAgICB0aGlzLm1vbnRoTmFtZXNbdGhpcy5tb250aHNbZGF0YS5pbmR4XS5nZXRNb250aCgpXTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBkYXRhLmluZHg7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5pbmRleCQubmV4dChkYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNb250aChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbnN0YW50cy5tb250aE5hbWVzW2luZGV4XTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91c2VPdmVyU2V0SXRlbSgpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2Uuc2Nyb2xsZWRTY3JvbGxJdGVtID0gQ2FsZW5kYXJTdHJpbmdFbnVtLk1BSU47XG4gICAgfVxuXG4gICAgcHVibGljIHNldENhbGVuZGFyTGlzdFByZXZpZXcobnVtOiBudW1iZXIsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxNb250aCA9IG51bTtcblxuICAgICAgICBpZiAodGhpcy5pc01vbnRoQW5kWWVhck9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QXV0b0luZGV4LmVtaXQobnVtKTtcblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IHRoaXMubW9udGhzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IG5ld19kYXRlID0gbW9tZW50KFxuICAgICAgICAgICAgICAgIG5ldyBEYXRlKHNlbGVjdGVkTW9udGguZ2V0RnVsbFllYXIoKSwgbnVtICsgMSwgMClcbiAgICAgICAgICAgICkuZm9ybWF0KCk7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5uZXh0KG5ld19kYXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TGlzdFByZXZpZXdUb0Z1bGwuZW1pdChudW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdERheShkYXRhOiB7IGRheTogbnVtYmVyOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IHRoaXMubW9udGhzW2RhdGEuaW5kZXhdO1xuICAgICAgICBjb25zdCBuZXdfZGF0ZSA9IG1vbWVudChcbiAgICAgICAgICAgIG5ldyBEYXRlKFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkTW9udGguZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE1vbnRoLmdldE1vbnRoKCksXG4gICAgICAgICAgICAgICAgZGF0YS5kYXlcbiAgICAgICAgICAgIClcbiAgICAgICAgKS5mb3JtYXQoKTtcbiAgICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuZGF0ZUNoYW5nZWQubmV4dChuZXdfZGF0ZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiAobW91c2VvdmVyKT1cIm1vdXNlT3ZlclNldEl0ZW0oKVwiPlxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICAgICAgI21vbnRoc1Njcm9sbFJlZlxuICAgICAgICAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJvbk1vbnRoQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBzdHlsZT1cImhlaWdodDogMjAwcHg7IHdpZHRoOiAxMDAlOyBtYXJnaW46IDBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgbW9udGggb2YgbW9udGhzO1xuICAgICAgICAgICAgICAgIGxldCBpbmR4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGVDYWNoZVNpemU6IDEwXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhcl9pbmRpY2F0b3IgdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZnVsbF9jYWxlbmRhcl09XCJfbGlzdFByZXZpZXcgPT09ICdmdWxsX2xpc3QnXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY3VycmVudF95ZWFyXT1cIlxuICAgICAgICAgICAgICAgICAgICBpc01vbnRoQW5kWWVhck9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PSBtb250aC5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT0gbW9udGguZ2V0RnVsbFllYXIoKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxNb250aCA9PT0gbW9udGguZ2V0TW9udGgoKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChfbGlzdFByZXZpZXcgPT09ICdmdWxsX2xpc3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldE1vbnRoKG1vbnRoLmdldE1vbnRoKCkpIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAge3sgbW9udGguZ2V0RnVsbFllYXIoKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKF9saXN0UHJldmlldyA9PT0gJ2Z1bGxfbGlzdCcpIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXItY2FsZW5kYXItZGF5c1xuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdERheSk9XCJzZWxlY3REYXkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5keFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9udGhdPVwibW9udGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTW9udGhdPVwibW9udGguZ2V0TW9udGgoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbeWVhcl09XCJzZWxlY3RlZFllYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGVUaW1lXT1cImRhdGVUaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVNb250aF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09IG1vbnRoLmdldEZ1bGxZZWFyKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxNb250aCA9PT0gbW9udGguZ2V0TW9udGgoKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXItY2FsZW5kYXItZGF5cz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoX2xpc3RQcmV2aWV3ID09PSAnbW9udGhfbGlzdCcpIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmN1cnJlbnRfeWVhcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09IG1vbnRoLmdldEZ1bGxZZWFyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldENhbGVuZGFyTGlzdFByZXZpZXcoMCwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDAgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpBTlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDEsIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGguZ2V0RnVsbFllYXIoKSAmJiAxID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRUJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldygyLCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgMiA9PT0gc2VsTW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFSXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldENhbGVuZGFyTGlzdFByZXZpZXcoMywgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDMgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQUlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDQsIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGguZ2V0RnVsbFllYXIoKSAmJiA0ID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVlcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldyg1LCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgNSA9PT0gc2VsTW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSlVOXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldENhbGVuZGFyTGlzdFByZXZpZXcoNiwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDYgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpVTFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDcsIGluZHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFllYXJGcm9tSW5wdXQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGguZ2V0RnVsbFllYXIoKSAmJiA3ID09PSBzZWxNb250aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVUdcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGhfbGlzdF9pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Q2FsZW5kYXJMaXN0UHJldmlldyg4LCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgOCA9PT0gc2VsTW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VQXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoX2xpc3RfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldENhbGVuZGFyTGlzdFByZXZpZXcoOSwgaW5keClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGggdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aC5nZXRGdWxsWWVhcigpICYmIDkgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DVFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDEwLCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgMTAgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PVlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aF9saXN0X2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDYWxlbmRhckxpc3RQcmV2aWV3KDExLCBpbmR4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudF9tb250aCB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLmdldEZ1bGxZZWFyKCkgJiYgMTEgPT09IHNlbE1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFQ1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvZGl2PlxuIl19
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
57
57
  }], month: [{
58
58
  type: Input
59
59
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRheXMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRheXMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVM3QyxNQUFNLE9BQU8sNENBQTRDO0lBaUJ2RCxJQUNJLEtBQUssQ0FBQyxLQUFXO1FBQ25CLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQ3BDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkMsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwQyxJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1YsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFELENBQUM7SUFDSixDQUFDO0lBRUQ7UUEzQlUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLGlCQUFZLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxlQUFVLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUcxQyxTQUFJLEdBQW1DLEVBQUUsQ0FBQztRQUMxQyxnQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQyxDQUFDO0lBa0JqQixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFvQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsRCxDQUFDOytHQS9DVSw0Q0FBNEM7bUdBQTVDLDRDQUE0Qyx3UkNYekQsd3pCQXVCQSx5RERkWSxZQUFZLDRIQUFFLFdBQVc7OzRGQUV4Qiw0Q0FBNEM7a0JBUHhELFNBQVM7K0JBQ0UsNkNBQTZDLGNBRzNDLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7d0RBRzNCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFZSCxLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2VyLWNhbGVuZGFyLWRheXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRheXMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0NhbGVuZGFyRGF5c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGVUaW1lITogRGF0ZTtcbiAgQElucHV0KCkgeWVhciE6IG51bWJlcjtcbiAgQElucHV0KCkgc2VsZWN0ZWRNb250aCE6IHN0cmluZztcbiAgQElucHV0KCkgaW5kZXghOiBudW1iZXI7XG4gIEBJbnB1dCgpIGFjdGl2ZU1vbnRoITogYm9vbGVhbjtcbiAgQE91dHB1dCgpIHNlbGVjdERheSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHVibGljIGN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gIHB1YmxpYyBjdXJyZW50TW9udGg6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcbiAgcHVibGljIGN1cnJlbnREYXk6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpO1xuICBwdWJsaWMgc2VsZWN0ZWRNb250aEZyb21JbnB1dCE6IG51bWJlcjtcbiAgcHVibGljIHNlbGVjdGVkWWVhckZyb21JbnB1dCE6IG51bWJlcjtcbiAgcHVibGljIGRheXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyPiA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWREYXk6IG51bWJlciA9IC0xO1xuICBwdWJsaWMgc2VsTW9udGg6IG51bWJlciA9IC0xO1xuICBwdWJsaWMgc2VsZWN0ZWRZZWFyOiBudW1iZXIgPSAtMTtcblxuICBASW5wdXQoKVxuICBzZXQgbW9udGgobW9udGg6IERhdGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9udGhGcm9tSW5wdXQgPSBwYXJzZUludChcbiAgICAgICgnMCcgKyBtb250aC5nZXRNb250aCgpICsgMSkuc2xpY2UoLTIpXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkWWVhckZyb21JbnB1dCA9IG1vbnRoLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgZmlsbGVyQ291bnQgPSBtb250aC5nZXREYXkoKTtcbiAgICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUobW9udGguZ2V0RnVsbFllYXIoKSwgbW9udGguZ2V0TW9udGgoKSArIDEsIDApO1xuICAgIGNvbnN0IGRheXNDb3VudCA9IGxhc3REYXkuZ2V0RGF0ZSgpO1xuXG4gICAgdGhpcy5kYXlzID0gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogZmlsbGVyQ291bnQgfSkubWFwKCgpID0+ICcnKSxcbiAgICAgIC4uLkFycmF5LmZyb20oeyBsZW5ndGg6IGRheXNDb3VudCB9KS5tYXAoKF8sIGkpID0+IGkgKyAxKSxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNlbGVjdGVkRGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIGNob29zZURheShkYXk6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0RGF5LmVtaXQoeyBpbmRleDogdGhpcy5pbmRleCwgZGF5IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZERhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERheSA9IHBhcnNlSW50KCgnMCcgKyB0aGlzLmRhdGVUaW1lLmdldERhdGUoKSkuc2xpY2UoLTIpKTtcbiAgICB0aGlzLnNlbE1vbnRoID0gcGFyc2VJbnQoKCcwJyArIHRoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKSArIDEpLnNsaWNlKC0yKSk7XG4gICAgdGhpcy5zZWxlY3RlZFllYXIgPSB0aGlzLmRhdGVUaW1lLmdldEZ1bGxZZWFyKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNhbGVuZGFyX2RheXNcIj5cbiAgICBAZm9yIChkYXkgb2YgZGF5czsgbGV0IGluZHggPSAkaW5kZXg7IHRyYWNrIGluZHgpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKGNsaWNrKT1cImRheSAmJiBjaG9vc2VEYXkoZGF5KVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3NlbGVjdGVkX2RheSB0YS1mb250LWJvbGQnOlxuICAgICAgICAgICAgICAgICAgICBkYXkgPT09IHNlbGVjdGVkRGF5ICYmXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTW9udGhGcm9tSW5wdXQgPT09IHNlbE1vbnRoICYmXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkWWVhckZyb21JbnB1dCA9PT0gc2VsZWN0ZWRZZWFyLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbY2xhc3MuZW1wdHlfZGF5XT1cIiFkYXlcIlxuICAgICAgICAgICAgW2NsYXNzLmRheV9pbl9jdXJyZW50X21vbnRoXT1cImFjdGl2ZU1vbnRoXCJcbiAgICAgICAgICAgIFtjbGFzcy5jdXJyZW50X2RheV09XCJcbiAgICAgICAgICAgICAgICBkYXkgPT09IGN1cnJlbnREYXkgJiZcbiAgICAgICAgICAgICAgICB5ZWFyID09PSBjdXJyZW50WWVhciAmJlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkTW9udGggPT09IGN1cnJlbnRNb250aC50b1N0cmluZygpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhcl9kYXkgdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBkYXkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRheXMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWRheXMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItZGF5cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVM3QyxNQUFNLE9BQU8sNENBQTRDO0lBaUJyRCxJQUNJLEtBQUssQ0FBQyxLQUFXO1FBQ2pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQ2xDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDekMsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwQyxJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVELENBQUM7SUFDTixDQUFDO0lBRUQ7UUEzQlUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLGlCQUFZLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxlQUFVLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUcxQyxTQUFJLEdBQW1DLEVBQUUsQ0FBQztRQUMxQyxnQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQyxDQUFDO0lBa0JsQixDQUFDO0lBRWhCLFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFvQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQ3BCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEQsQ0FBQzsrR0FqRFEsNENBQTRDO21HQUE1Qyw0Q0FBNEMsd1JDWHpELHd6QkF1QkEseUREZGMsWUFBWSw0SEFBRSxXQUFXOzs0RkFFMUIsNENBQTRDO2tCQVB4RCxTQUFTOytCQUNJLDZDQUE2QyxjQUczQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO3dEQUczQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBWUgsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2VyLWNhbGVuZGFyLWRheXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1jYWxlbmRhci1kYXlzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1jYWxlbmRhci1kYXlzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzQ2FsZW5kYXJEYXlzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBkYXRlVGltZSE6IERhdGU7XG4gICAgQElucHV0KCkgeWVhciE6IG51bWJlcjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZE1vbnRoITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGluZGV4ITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGFjdGl2ZU1vbnRoITogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgc2VsZWN0RGF5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHB1YmxpYyBjdXJyZW50WWVhcjogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuICAgIHB1YmxpYyBjdXJyZW50TW9udGg6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcbiAgICBwdWJsaWMgY3VycmVudERheTogbnVtYmVyID0gbmV3IERhdGUoKS5nZXREYXRlKCk7XG4gICAgcHVibGljIHNlbGVjdGVkTW9udGhGcm9tSW5wdXQhOiBudW1iZXI7XG4gICAgcHVibGljIHNlbGVjdGVkWWVhckZyb21JbnB1dCE6IG51bWJlcjtcbiAgICBwdWJsaWMgZGF5czogUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXI+ID0gW107XG4gICAgcHVibGljIHNlbGVjdGVkRGF5OiBudW1iZXIgPSAtMTtcbiAgICBwdWJsaWMgc2VsTW9udGg6IG51bWJlciA9IC0xO1xuICAgIHB1YmxpYyBzZWxlY3RlZFllYXI6IG51bWJlciA9IC0xO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9udGgobW9udGg6IERhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoRnJvbUlucHV0ID0gcGFyc2VJbnQoXG4gICAgICAgICAgICAoJzAnICsgbW9udGguZ2V0TW9udGgoKSArIDEpLnNsaWNlKC0yKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhckZyb21JbnB1dCA9IG1vbnRoLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGNvbnN0IGZpbGxlckNvdW50ID0gbW9udGguZ2V0RGF5KCk7XG4gICAgICAgIGNvbnN0IGxhc3REYXkgPSBuZXcgRGF0ZShtb250aC5nZXRGdWxsWWVhcigpLCBtb250aC5nZXRNb250aCgpICsgMSwgMCk7XG4gICAgICAgIGNvbnN0IGRheXNDb3VudCA9IGxhc3REYXkuZ2V0RGF0ZSgpO1xuXG4gICAgICAgIHRoaXMuZGF5cyA9IFtcbiAgICAgICAgICAgIC4uLkFycmF5LmZyb20oeyBsZW5ndGg6IGZpbGxlckNvdW50IH0pLm1hcCgoKSA9PiAnJyksXG4gICAgICAgICAgICAuLi5BcnJheS5mcm9tKHsgbGVuZ3RoOiBkYXlzQ291bnQgfSkubWFwKChfLCBpKSA9PiBpICsgMSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWREYXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNob29zZURheShkYXk6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdERheS5lbWl0KHsgaW5kZXg6IHRoaXMuaW5kZXgsIGRheSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNlbGVjdGVkRGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERheSA9IHBhcnNlSW50KCgnMCcgKyB0aGlzLmRhdGVUaW1lLmdldERhdGUoKSkuc2xpY2UoLTIpKTtcbiAgICAgICAgdGhpcy5zZWxNb250aCA9IHBhcnNlSW50KFxuICAgICAgICAgICAgKCcwJyArIHRoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKSArIDEpLnNsaWNlKC0yKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhciA9IHRoaXMuZGF0ZVRpbWUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FsZW5kYXJfZGF5c1wiPlxuICAgIEBmb3IgKGRheSBvZiBkYXlzOyBsZXQgaW5keCA9ICRpbmRleDsgdHJhY2sgaW5keCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiZGF5ICYmIGNob29zZURheShkYXkpXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnc2VsZWN0ZWRfZGF5IHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgIGRheSA9PT0gc2VsZWN0ZWREYXkgJiZcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRNb250aEZyb21JbnB1dCA9PT0gc2VsTW9udGggJiZcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRZZWFyRnJvbUlucHV0ID09PSBzZWxlY3RlZFllYXIsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtjbGFzcy5lbXB0eV9kYXldPVwiIWRheVwiXG4gICAgICAgICAgICBbY2xhc3MuZGF5X2luX2N1cnJlbnRfbW9udGhdPVwiYWN0aXZlTW9udGhcIlxuICAgICAgICAgICAgW2NsYXNzLmN1cnJlbnRfZGF5XT1cIlxuICAgICAgICAgICAgICAgIGRheSA9PT0gY3VycmVudERheSAmJlxuICAgICAgICAgICAgICAgIHllYXIgPT09IGN1cnJlbnRZZWFyICYmXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRNb250aCA9PT0gY3VycmVudE1vbnRoLnRvU3RyaW5nKClcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyX2RheSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IGRheSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, forwardRef, Input, } from '@angular/core';
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { Subject, takeUntil } from 'rxjs';
@@ -62,7 +62,8 @@ export class CaCustomDateTimePickersCalendarLeftComponent {
62
62
  .pipe(takeUntil(this.destroy$))
63
63
  .subscribe((res) => {
64
64
  if (res.type != CalendarStringEnum.LEFT &&
65
- this.calendarService.selectedScroll != CalendarStringEnum.LEFT) {
65
+ this.calendarService.selectedScroll !=
66
+ CalendarStringEnum.LEFT) {
66
67
  const sizeTimes = CalendarLeftStringEnum.FULL_SIZE / res.cycleSize;
67
68
  const newScrollSize = sizeTimes * res.scrollOffset;
68
69
  this.scrollStrategy.scrollToOffset(newScrollSize, CalendarStringEnum.AUTO);
@@ -114,7 +115,9 @@ export class CaCustomDateTimePickersCalendarLeftComponent {
114
115
  {
115
116
  provide: VIRTUAL_SCROLL_STRATEGY,
116
117
  useFactory: factory,
117
- deps: [forwardRef(() => CaCustomDateTimePickersCalendarLeftComponent)],
118
+ deps: [
119
+ forwardRef(() => CaCustomDateTimePickersCalendarLeftComponent),
120
+ ],
118
121
  },
119
122
  ], ngImport: i0, template: "<div (mouseover)=\"mouseOverSetItem()\">\n <cdk-virtual-scroll-viewport\n #leftSideRef\n (scrolledIndexChange)=\"onScrollChanged($event)\"\n style=\"height: 290px; width: 100%; margin: 0\"\n >\n <ng-container\n *cdkVirtualFor=\"\n let month of months;\n let indx = index;\n templateCacheSize: 10\n \"\n >\n <div\n (click)=\"selectMonth(indx)\"\n class=\"month-year-item ta-font-medium\"\n [ngClass]=\"{\n 'current_month_year ta-font-bold': isMonthAndYearOnly\n ? indx === _currentYearIndex\n : indx === _activeIndex,\n }\"\n [innerHTML]=\"month | calendarmonths: listPreview\"\n ></div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "pipe", type: CalendarMonthsPipe, name: "calendarmonths" }] }); }
120
123
  }
@@ -124,7 +127,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
124
127
  {
125
128
  provide: VIRTUAL_SCROLL_STRATEGY,
126
129
  useFactory: factory,
127
- deps: [forwardRef(() => CaCustomDateTimePickersCalendarLeftComponent)],
130
+ deps: [
131
+ forwardRef(() => CaCustomDateTimePickersCalendarLeftComponent),
132
+ ],
128
133
  },
129
134
  ], template: "<div (mouseover)=\"mouseOverSetItem()\">\n <cdk-virtual-scroll-viewport\n #leftSideRef\n (scrolledIndexChange)=\"onScrollChanged($event)\"\n style=\"height: 290px; width: 100%; margin: 0\"\n >\n <ng-container\n *cdkVirtualFor=\"\n let month of months;\n let indx = index;\n templateCacheSize: 10\n \"\n >\n <div\n (click)=\"selectMonth(indx)\"\n class=\"month-year-item ta-font-medium\"\n [ngClass]=\"{\n 'current_month_year ta-font-bold': isMonthAndYearOnly\n ? indx === _currentYearIndex\n : indx === _activeIndex,\n }\"\n [innerHTML]=\"month | calendarmonths: listPreview\"\n ></div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</div>\n" }]
130
135
  }], ctorParameters: () => [{ type: i1.CalendarDateTimePickerService }], propDecorators: { months: [{
@@ -140,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
140
145
  }], activeIndex: [{
141
146
  type: Input
142
147
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWxlZnQvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWxlZnQvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsxQyxVQUFVO0FBQ1YsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsR0FDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxRQUFRO0FBQ1IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsV0FBVztBQUNYLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxHQUNkLE1B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QUFDLEdBQUcsRUFBRSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7YUFDdkU7U0FDRiwwQkNuREgsaTZCQTBCQSx5RERrQlksWUFBWSw0SEFBRSxXQUFXLDhCQUFFLGVBQWUscVpBQUUsa0JBQWtCOzs0RkFTN0QsNENBQTRDO2tCQWR4RCxTQUFTOytCQUNFLDhDQUE4QyxjQUc1QyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxhQUM5RDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxVQUFVLEVBQUUsT0FBTzs0QkFDbkIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSw2Q0FBNkMsQ0FBQyxDQUFDO3lCQUN2RTtxQkFDRjtrR0FJUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR08sV0FBVztzQkFBdkIsS0FBSztnQkFVTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBWU8sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbi8vIHNlcnZpY2VzXG5pbXBvcnQgeyBDYWxlbmRhckRhdGVUaW1lUGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhbGVuZGFyLWRhdGV0aW1lLXBpY2tlci5zZXJ2aWNlJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHtcbiAgU2Nyb2xsaW5nTW9kdWxlLFxuICBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoc1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jYWxlbmRhci1tb250aHMucGlwZSc7XG5cbi8vIHN0cmF0ZWd5XG5pbXBvcnQge1xuICBDYWxlbmRhclN0cmF0ZWd5LFxuICBTVEFSVElOR19ZRUFSLFxufSBmcm9tICcuLi8uLi9zdHJhdGVneS9jYWxlbmRhci1zdHJhdGVneSc7XG5cbi8vIGVudW1zXG5pbXBvcnQgeyBDYWxlbmRhckxlZnRTdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vZW51bXMvY2FsZW5kYXItbGVmdC1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhckxpc3RQcmV2aWV3U3RyaW5nRW51bSB9IGZyb20gJy4uLy4uL2VudW1zL2NhbGVuZGFyLWxpc3QtcHJldmlldy1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcy9jYWxlbmRhci1zdHJpbmcuZW51bSc7XG5cbmZ1bmN0aW9uIGZhY3RvcnkoZGlyOiBDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0NhbGVuZGFyTGVmdENvbXBvbmVudCkge1xuICByZXR1cm4gZGlyLnNjcm9sbFN0cmF0ZWd5O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1jYWxlbmRhci1sZWZ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2Nyb2xsaW5nTW9kdWxlLCBDYWxlbmRhck1vbnRoc1BpcGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSxcbiAgICAgIHVzZUZhY3Rvcnk6IGZhY3RvcnksXG4gICAgICBkZXBzOiBbZm9yd2FyZFJlZigoKSA9PiBDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0NhbGVuZGFyTGVmdENvbXBvbmVudCldLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzQ2FsZW5kYXJMZWZ0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBtb250aHMhOiBEYXRlW107XG4gIEBJbnB1dCgpIGN1cnJlbnRJbmRleCE6IG51bWJlcjtcbiAgQElucHV0KCkgaXNNb250aEFuZFllYXJPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIF9saXN0UHJldmlldyE6IHN0cmluZztcbiAgQElucHV0KCkgc2V0IGxpc3RQcmV2aWV3KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9saXN0UHJldmlldyA9IHZhbHVlO1xuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kudXBkYXRlU2Nyb2xsSGVpZ2h0cyhcbiAgICAgIHZhbHVlID09PSBDYWxlbmRhckxpc3RQcmV2aWV3U3RyaW5nRW51bS5NT05USF9MSVNUXG4gICAgICAgID8gQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5DWUNMRV9IRUlHSFRfQllfTU9OVEhTXG4gICAgICAgIDogQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5DWUNMRV9IRUlHSFRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIF9jdXJyZW50WWVhckluZGV4OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBzZXQgY3VycmVudFllYXJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fY3VycmVudFllYXJJbmRleCA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmlzTW9udGhBbmRZZWFyT25seSAmJiB0aGlzLl9jdXJyZW50WWVhckluZGV4KVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICB0aGlzLl9jdXJyZW50WWVhckluZGV4LFxuICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICk7XG4gICAgICB9LCAyMDApO1xuICB9XG5cbiAgcHVibGljIF9hY3RpdmVJbmRleDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgc2V0IGFjdGl2ZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hY3RpdmVJbmRleCA9IHZhbHVlO1xuICAgIGlmICghdGhpcy5pc01vbnRoQW5kWWVhck9ubHkgJiYgdGhpcy5fYWN0aXZlSW5kZXgpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgIHRoaXMuX2FjdGl2ZUluZGV4LFxuICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICk7XG4gICAgICB9LCAyMDApO1xuICB9XG4gIHB1YmxpYyBpc0hvdmVyZWQhOiBib29sZWFuO1xuICBwcml2YXRlIGlzRmlyc3RDYWxsOiBib29sZWFuID0gdHJ1ZTtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UpIHsgfVxuXG4gIHNjcm9sbFN0cmF0ZWd5OiBDYWxlbmRhclN0cmF0ZWd5ID0gbmV3IENhbGVuZGFyU3RyYXRlZ3koXG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UsXG4gICAgQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5DWUNMRV9IRUlHSFQsXG4gICAgQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5GVUxMX1NJWkUsXG4gICAgQ2FsZW5kYXJTdHJpbmdFbnVtLkxFRlRcbiAgKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRTY3JvbGxMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0U2Nyb2xsTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnNjcm9sbFRvQXV0b0luZGV4XG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChpbmR4KSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChpbmR4LCBDYWxlbmRhclN0cmluZ0VudW0uQVVUTyk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnNjcm9sbGVkSW5kZXhDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzLnR5cGUgIT0gQ2FsZW5kYXJTdHJpbmdFbnVtLkxFRlQgJiZcbiAgICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zZWxlY3RlZFNjcm9sbCAhPSBDYWxlbmRhclN0cmluZ0VudW0uTEVGVFxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBzaXplVGltZXMgPSBDYWxlbmRhckxlZnRTdHJpbmdFbnVtLkZVTExfU0laRSAvIHJlcy5jeWNsZVNpemU7XG4gICAgICAgICAgY29uc3QgbmV3U2Nyb2xsU2l6ZSA9IHNpemVUaW1lcyAqIHJlcy5zY3JvbGxPZmZzZXQ7XG4gICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb09mZnNldChcbiAgICAgICAgICAgIG5ld1Njcm9sbFNpemUsXG4gICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2Uuc2Nyb2xsVG9EYXRlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgY29uc3QgaW5keCA9IHRoaXMuZmluZEluZGV4SW5Nb250aChyZXMpO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KGluZHgsIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgsXG4gICAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaXNNb250aEFuZFllYXJPbmx5KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNGaXJzdENhbGwpIHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnVwZGF0ZVNjcm9sbEhlaWdodHMoXG4gICAgICAgICAgICBDYWxlbmRhckxlZnRTdHJpbmdFbnVtLkNZQ0xFX0hFSUdIVF9CWV9NT05USFNcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudFllYXJJbmRleCxcbiAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuaXNGaXJzdENhbGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmluZEluZGV4SW5Nb250aChkYXRlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGNvbnN0IGluZGV4TW9udGggPSAoc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkgLSBTVEFSVElOR19ZRUFSKSAqIDEyO1xuICAgIGNvbnN0IGluZHggPSBpbmRleE1vbnRoICsgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCk7XG4gICAgcmV0dXJuIGluZHg7XG4gIH1cblxuICBwdWJsaWMgb25TY3JvbGxDaGFuZ2VkKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmluZGV4JC5uZXh0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdE1vbnRoKGluZHg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChpbmR4LCBDYWxlbmRhclN0cmluZ0VudW0uQVVUTyk7XG4gIH1cblxuICBwdWJsaWMgbW91c2VPdmVyU2V0SXRlbSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxlZFNjcm9sbEl0ZW0gPSBDYWxlbmRhclN0cmluZ0VudW0uTEVGVDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdiAobW91c2VvdmVyKT1cIm1vdXNlT3ZlclNldEl0ZW0oKVwiPlxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICAgICAgI2xlZnRTaWRlUmVmXG4gICAgICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIm9uU2Nyb2xsQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDI5MHB4OyB3aWR0aDogMTAwJTsgbWFyZ2luOiAwXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpjZGtWaXJ0dWFsRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IG1vbnRoIG9mIG1vbnRocztcbiAgICAgICAgICAgICAgICBsZXQgaW5keCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlQ2FjaGVTaXplOiAxMFxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb250aChpbmR4KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aC15ZWFyLWl0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRfbW9udGhfeWVhciB0YS1mb250LWJvbGQnOiBpc01vbnRoQW5kWWVhck9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaW5keCA9PT0gX2N1cnJlbnRZZWFySW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaW5keCA9PT0gX2FjdGl2ZUluZGV4LFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibW9udGggfCBjYWxlbmRhcm1vbnRoczogbGlzdFByZXZpZXdcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvZGl2PlxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWxlZnQvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWxlZnQvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLMUMsVUFBVTtBQUNWLE9BQU8sRUFDSCxlQUFlLEVBQ2YsdUJBQXVCLEdBQzFCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsUUFBUTtBQUNSLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLFdBQVc7QUFDWCxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FDaEIs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RixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNENBQTRDLENBQUM7aUJBQ2pFO2FBQ0o7U0FDSiwwQkMvQ0wsaTZCQTBCQSx5RERZYyxZQUFZLDRIQUFFLFdBQVcsOEJBQUUsZUFBZSxxWkFBRSxrQkFBa0I7OzRGQVcvRCw0Q0FBNEM7a0JBaEJ4RCxTQUFTOytCQUNJLDhDQUE4QyxjQUc1QyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxhQUM5RDt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxVQUFVLEVBQUUsT0FBTzs0QkFDbkIsSUFBSSxFQUFFO2dDQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNkNBQTZDLENBQUM7NkJBQ2pFO3lCQUNKO3FCQUNKO2tHQUtRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHTyxXQUFXO3NCQUF2QixLQUFLO2dCQVVPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFZTyxXQUFXO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbi8vIHNlcnZpY2VzXG5pbXBvcnQgeyBDYWxlbmRhckRhdGVUaW1lUGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhbGVuZGFyLWRhdGV0aW1lLXBpY2tlci5zZXJ2aWNlJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHtcbiAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgVklSVFVBTF9TQ1JPTExfU1RSQVRFR1ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aHNQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY2FsZW5kYXItbW9udGhzLnBpcGUnO1xuXG4vLyBzdHJhdGVneVxuaW1wb3J0IHtcbiAgICBDYWxlbmRhclN0cmF0ZWd5LFxuICAgIFNUQVJUSU5HX1lFQVIsXG59IGZyb20gJy4uLy4uL3N0cmF0ZWd5L2NhbGVuZGFyLXN0cmF0ZWd5JztcblxuLy8gZW51bXNcbmltcG9ydCB7IENhbGVuZGFyTGVmdFN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcy9jYWxlbmRhci1sZWZ0LXN0cmluZy5lbnVtJztcbmltcG9ydCB7IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vZW51bXMvY2FsZW5kYXItbGlzdC1wcmV2aWV3LXN0cmluZy5lbnVtJztcbmltcG9ydCB7IENhbGVuZGFyU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uL2VudW1zL2NhbGVuZGFyLXN0cmluZy5lbnVtJztcblxuZnVuY3Rpb24gZmFjdG9yeShkaXI6IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzQ2FsZW5kYXJMZWZ0Q29tcG9uZW50KSB7XG4gICAgcmV0dXJuIGRpci5zY3JvbGxTdHJhdGVneTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMtY2FsZW5kYXItbGVmdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWxlZnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWNhbGVuZGFyLWxlZnQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTY3JvbGxpbmdNb2R1bGUsIENhbGVuZGFyTW9udGhzUGlwZV0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFZJUlRVQUxfU0NST0xMX1NUUkFURUdZLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogZmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtcbiAgICAgICAgICAgICAgICBmb3J3YXJkUmVmKCgpID0+IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzQ2FsZW5kYXJMZWZ0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNDYWxlbmRhckxlZnRDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgQElucHV0KCkgbW9udGhzITogRGF0ZVtdO1xuICAgIEBJbnB1dCgpIGN1cnJlbnRJbmRleCE6IG51bWJlcjtcbiAgICBASW5wdXQoKSBpc01vbnRoQW5kWWVhck9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBfbGlzdFByZXZpZXchOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2V0IGxpc3RQcmV2aWV3KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGlzdFByZXZpZXcgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS51cGRhdGVTY3JvbGxIZWlnaHRzKFxuICAgICAgICAgICAgdmFsdWUgPT09IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLk1PTlRIX0xJU1RcbiAgICAgICAgICAgICAgICA/IENhbGVuZGFyTGVmdFN0cmluZ0VudW0uQ1lDTEVfSEVJR0hUX0JZX01PTlRIU1xuICAgICAgICAgICAgICAgIDogQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5DWUNMRV9IRUlHSFRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2N1cnJlbnRZZWFySW5kZXg6IG51bWJlciA9IDA7XG4gICAgQElucHV0KCkgc2V0IGN1cnJlbnRZZWFySW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9jdXJyZW50WWVhckluZGV4ID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmlzTW9udGhBbmRZZWFyT25seSAmJiB0aGlzLl9jdXJyZW50WWVhckluZGV4KVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50WWVhckluZGV4LFxuICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBfYWN0aXZlSW5kZXg6IG51bWJlciA9IDA7XG4gICAgQElucHV0KCkgc2V0IGFjdGl2ZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9udGhBbmRZZWFyT25seSAmJiB0aGlzLl9hY3RpdmVJbmRleClcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgfVxuICAgIHB1YmxpYyBpc0hvdmVyZWQhOiBib29sZWFuO1xuICAgIHByaXZhdGUgaXNGaXJzdENhbGw6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UpIHt9XG5cbiAgICBzY3JvbGxTdHJhdGVneTogQ2FsZW5kYXJTdHJhdGVneSA9IG5ldyBDYWxlbmRhclN0cmF0ZWd5KFxuICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZSxcbiAgICAgICAgQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5DWUNMRV9IRUlHSFQsXG4gICAgICAgIENhbGVuZGFyTGVmdFN0cmluZ0VudW0uRlVMTF9TSVpFLFxuICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uTEVGVFxuICAgICk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0U2Nyb2xsTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRTY3JvbGxMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnNjcm9sbFRvQXV0b0luZGV4XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpbmR4KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgICAgICAgICAgICBpbmR4LFxuICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxlZEluZGV4Q2hhbmdlXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHJlcy50eXBlICE9IENhbGVuZGFyU3RyaW5nRW51bS5MRUZUICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnNlbGVjdGVkU2Nyb2xsICE9XG4gICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uTEVGVFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplVGltZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5GVUxMX1NJWkUgLyByZXMuY3ljbGVTaXplO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTY3JvbGxTaXplID0gc2l6ZVRpbWVzICogcmVzLnNjcm9sbE9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb09mZnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Njcm9sbFNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnNjcm9sbFRvRGF0ZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZHggPSB0aGlzLmZpbmRJbmRleEluTW9udGgocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsVG9JbmRleChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhclN0cmluZ0VudW0uQVVUT1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTW9udGhBbmRZZWFyT25seSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGaXJzdENhbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS51cGRhdGVTY3JvbGxIZWlnaHRzKFxuICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXJMZWZ0U3RyaW5nRW51bS5DWUNMRV9IRUlHSFRfQllfTU9OVEhTXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudFllYXJJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpcnN0Q2FsbCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZEluZGV4SW5Nb250aChkYXRlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICAgICAgY29uc3QgaW5kZXhNb250aCA9IChzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSAtIFNUQVJUSU5HX1lFQVIpICogMTI7XG4gICAgICAgIGNvbnN0IGluZHggPSBpbmRleE1vbnRoICsgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCk7XG4gICAgICAgIHJldHVybiBpbmR4O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNjcm9sbENoYW5nZWQoZGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmluZGV4JC5uZXh0KGRhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RNb250aChpbmR4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zY3JvbGxUb0luZGV4KGluZHgsIENhbGVuZGFyU3RyaW5nRW51bS5BVVRPKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91c2VPdmVyU2V0SXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2Uuc2Nyb2xsZWRTY3JvbGxJdGVtID0gQ2FsZW5kYXJTdHJpbmdFbnVtLkxFRlQ7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufSIsIjxkaXYgKG1vdXNlb3Zlcik9XCJtb3VzZU92ZXJTZXRJdGVtKClcIj5cbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgICNsZWZ0U2lkZVJlZlxuICAgICAgICAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJvblNjcm9sbENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAyOTBweDsgd2lkdGg6IDEwMCU7IG1hcmdpbjogMFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBtb250aCBvZiBtb250aHM7XG4gICAgICAgICAgICAgICAgbGV0IGluZHggPSBpbmRleDtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZUNhY2hlU2l6ZTogMTBcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TW9udGgoaW5keClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGgteWVhci1pdGVtIHRhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdjdXJyZW50X21vbnRoX3llYXIgdGEtZm9udC1ib2xkJzogaXNNb250aEFuZFllYXJPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICA/IGluZHggPT09IF9jdXJyZW50WWVhckluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGluZHggPT09IF9hY3RpdmVJbmRleCxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1vbnRoIHwgY2FsZW5kYXJtb250aHM6IGxpc3RQcmV2aWV3XCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG48L2Rpdj5cbiJdfQ==