slick-components 4.4.19 → 4.4.22

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.
@@ -13,18 +13,25 @@ export class SlickAccordionItemComponent {
13
13
  this.noExpand = (this.noExpand.toString().toLowerCase() === 'true') ? true : false;
14
14
  }
15
15
  async onHeaderClicked() {
16
- if (this.isExpanded === false)
17
- this.expand();
18
- else
19
- this.collapse();
16
+ if (this.noExpand) {
17
+ if (this.onChangeCallback)
18
+ this.onChangeCallback(this.index);
19
+ }
20
+ else {
21
+ if (this.isExpanded === false)
22
+ this.expand();
23
+ else
24
+ this.collapse();
25
+ }
20
26
  }
21
27
  async expand() {
28
+ if (this.noExpand)
29
+ return;
22
30
  if (this.isExpanded === true)
23
31
  return;
24
32
  if (this.onChangeCallback)
25
33
  this.onChangeCallback(this.index);
26
- if (this.noExpand === true)
27
- return;
34
+ this.isExpanded = true;
28
35
  await SlickUtilsService.waitForElementRef(this.slickAccordionItemRef);
29
36
  // Give the collapses a chance to collapse down before we expand
30
37
  await SlickSleepService.sleep(100);
@@ -36,19 +43,18 @@ export class SlickAccordionItemComponent {
36
43
  await SlickSleepService.sleep(100);
37
44
  this.slickAccordionBouncePaddingRef.nativeElement.style.display = "none";
38
45
  this.slickAccordionBodyWrapperRef.nativeElement.style.maxHeight = "none";
39
- this.isExpanded = true;
40
46
  }
41
47
  async collapse(ignoreOnChangeCallback = false) {
42
48
  if (this.isExpanded === false)
43
49
  return;
44
- // Teh animations requires a number for maxHeight. Just set it to the current height, then to 0
50
+ this.isExpanded = false;
51
+ // The animations requires a number for maxHeight. Just set it to the current height, then to 0
45
52
  const maxHeight = this.slickAccordionBodyRef.nativeElement.offsetHeight;
46
53
  this.slickAccordionBodyWrapperRef.nativeElement.style.maxHeight = maxHeight + "px";
47
54
  await SlickSleepService.sleep();
48
55
  this.slickAccordionBodyWrapperRef.nativeElement.style.maxHeight = "0";
49
56
  if (this.onChangeCallback && ignoreOnChangeCallback === false)
50
57
  this.onChangeCallback(this.index);
51
- this.isExpanded = false;
52
58
  }
53
59
  getKey() {
54
60
  return this.key || null;
@@ -83,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
83
89
  type: ViewChild,
84
90
  args: ["slickAccordionBouncePaddingRef"]
85
91
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYWNjb3JkaW9uL3NsaWNrLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWFjY29yZGlvbi9zbGljay1hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFNakUsTUFBTSxPQUFPLDJCQUEyQjtJQWtCdkM7UUFkUyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBTzFCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTlCLGVBQVUsR0FBWSxLQUFLLENBQUM7SUFLWixDQUFDO0lBRWpCLFdBQVc7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEYsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlO1FBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLO1lBQzVCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzs7WUFFZCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUk7WUFD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cHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrU2xlZXBTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwic2xpY2stYWNjb3JkaW9uLWl0ZW1cIixcclxuXHR0ZW1wbGF0ZVVybDogXCJzbGljay1hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0FjY29yZGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cdEBJbnB1dChcImhlYWRlclwiKSBoZWFkZXI6IHN0cmluZztcclxuXHRASW5wdXQoXCJoZWFkZXJJY29uXCIpIGhlYWRlckljb246IHN0cmluZztcclxuXHRASW5wdXQoXCJrZXlcIikga2V5OiBzdHJpbmc7XHJcblx0QElucHV0KCkgbm9FeHBhbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0QFZpZXdDaGlsZChcInNsaWNrQWNjb3JkaW9uSXRlbVJlZlwiKSBzbGlja0FjY29yZGlvbkl0ZW1SZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcInNsaWNrQWNjb3JkaW9uQm9keVdyYXBwZXJSZWZcIikgc2xpY2tBY2NvcmRpb25Cb2R5V3JhcHBlclJlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwic2xpY2tBY2NvcmRpb25Cb2R5UmVmXCIpIHNsaWNrQWNjb3JkaW9uQm9keVJlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwic2xpY2tBY2NvcmRpb25Cb3VuY2VQYWRkaW5nUmVmXCIpIHNsaWNrQWNjb3JkaW9uQm91bmNlUGFkZGluZ1JlZjogRWxlbWVudFJlZjtcclxuXHJcblx0cmVhZG9ubHkgUElYRUxTX1BFUl9USUNLID0gMTU7XHJcblxyXG5cdGlzRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRpbmRleDogbnVtYmVyO1xyXG5cdC8vIFRoaXMgd2lsbCBiZSBzZXQgaW4gdGhlIHNsaWNrLWFjY29yZGlvbi5jb21wb25lbnQgYXMgYSBjYWxsYmFja1xyXG5cdG9uQ2hhbmdlQ2FsbGJhY2s6IGFueTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0bmdPbkNoYW5nZXMoKSB7XHJcblx0XHR0aGlzLm5vRXhwYW5kID0gKHRoaXMubm9FeHBhbmQudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgb25IZWFkZXJDbGlja2VkKCkge1xyXG5cdFx0aWYgKHRoaXMuaXNFeHBhbmRlZCA9PT0gZmFsc2UpXHJcblx0XHRcdHRoaXMuZXhwYW5kKCk7XHJcblx0XHRlbHNlXHJcblx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBhbmQoKSB7XHJcblx0XHRpZiAodGhpcy5pc0V4cGFuZGVkID09PSB0cnVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0aWYgKHRoaXMub25DaGFuZ2VDYWxsYmFjaylcclxuXHRcdFx0dGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuaW5kZXgpO1xyXG5cclxuXHRcdGlmICh0aGlzLm5vRXhwYW5kID09PSB0cnVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0YXdhaXQgU2xpY2tVdGlsc1NlcnZpY2Uud2FpdEZvckVsZW1lbnRSZWYodGhpcy5zbGlja0FjY29yZGlvbkl0ZW1SZWYpO1xyXG5cclxuXHRcdC8vIEdpdmUgdGhlIGNvbGxhcHNlcyBhIGNoYW5jZSB0byBjb2xsYXBzZSBkb3duIGJlZm9yZSB3ZSBleHBhbmRcclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKDEwMCk7XHJcblx0XHRjb25zdCBtYXhIZWlnaHQgPSAoPEhUTUxEaXZFbGVtZW50PnRoaXMuc2xpY2tBY2NvcmRpb25Cb2R5UmVmLm5hdGl2ZUVsZW1lbnQpLm9mZnNldEhlaWdodDtcclxuXHRcdCg8SFRNTERpdkVsZW1lbnQ+dGhpcy5zbGlja0FjY29yZGlvbkJvdW5jZVBhZGRpbmdSZWYubmF0aXZlRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcclxuXHRcdCg8SFRNTERpdkVsZW1lbnQ+dGhpcy5zbGlja0FjY29yZGlvbkJvZHlXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLnN0eWxlLm1heEhlaWdodCA9IChtYXhIZWlnaHQgKyAzMCkgKyBcInB4XCI7XHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgxMjUpO1xyXG5cdFx0KDxIVE1MRGl2RWxlbWVudD50aGlzLnNsaWNrQWNjb3JkaW9uQm9keVdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkuc3R5bGUubWF4SGVpZ2h0ID0gbWF4SGVpZ2h0ICsgXCJweFwiO1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoMTAwKTtcclxuXHRcdCg8SFRNTERpdkVsZW1lbnQ+dGhpcy5zbGlja0FjY29yZGlvbkJvdW5jZVBhZGRpbmdSZWYubmF0aXZlRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG5cdFx0KDxIVE1MRGl2RWxlbWVudD50aGlzLnNsaWNrQWNjb3JkaW9uQm9keVdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkuc3R5bGUubWF4SGVpZ2h0ID0gXCJub25lXCI7XHJcblxyXG5cdFx0dGhpcy5pc0V4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBjb2xsYXBzZShpZ25vcmVPbkNoYW5nZUNhbGxiYWNrOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHRcdGlmICh0aGlzLmlzRXhwYW5kZWQgPT09IGZhbHNlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Ly8gVGVoIGFuaW1hdGlvbnMgcmVxdWlyZXMgYSBudW1iZXIgZm9yIG1heEhlaWdodC4gIEp1c3Qgc2V0IGl0IHRvIHRoZSBjdXJyZW50IGhlaWdodCwgdGhlbiB0byAwXHJcblx0XHRjb25zdCBtYXhIZWlnaHQgPSAoPEhUTUxEaXZFbGVtZW50PnRoaXMuc2xpY2tBY2NvcmRpb25Cb2R5UmVmLm5hdGl2ZUVsZW1lbnQpLm9mZnNldEhlaWdodDtcclxuXHRcdCg8SFRNTERpdkVsZW1lbnQ+dGhpcy5zbGlja0FjY29yZGlvbkJvZHlXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLnN0eWxlLm1heEhlaWdodCA9IG1heEhlaWdodCArIFwicHhcIjtcclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHQoPEhUTUxEaXZFbGVtZW50PnRoaXMuc2xpY2tBY2NvcmRpb25Cb2R5V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS5zdHlsZS5tYXhIZWlnaHQgPSBcIjBcIjtcclxuXHJcblx0XHRpZiAodGhpcy5vbkNoYW5nZUNhbGxiYWNrICYmIGlnbm9yZU9uQ2hhbmdlQ2FsbGJhY2sgPT09IGZhbHNlKVxyXG5cdFx0XHR0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5pbmRleCk7XHJcblxyXG5cdFx0dGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRnZXRLZXkoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0aGlzLmtleSB8fCBudWxsO1xyXG5cdH1cclxufSIsIjxkaXYgI3NsaWNrQWNjb3JkaW9uSXRlbVJlZiBjbGFzcz1cInNsaWNrLWFjY29yZGlvbi1pdGVtXCI+XHJcblx0PGRpdiAqbmdJZj1cImhlYWRlclwiIGNsYXNzPVwic2xpY2stYWNjb3JkaW9uLWhlYWRlciBjYXJkLWhlYWRlclwiIFtuZ0NsYXNzXT1cInsnYmFkZ2UtcHJpbWFyeScgOiBpc0V4cGFuZGVkIH1cIiAoY2xpY2spPVwib25IZWFkZXJDbGlja2VkKClcIj48aSAqbmdJZj1cImhlYWRlckljb25cIiBjbGFzcz1cImZhclwiIFtuZ0NsYXNzXT1cImhlYWRlckljb25cIj48L2k+IHt7aGVhZGVyfX08L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiIWhlYWRlclwiIGNsYXNzPVwic2xpY2stYWNjb3JkaW9uLWhlYWRlciBjYXJkLWhlYWRlclwiIFtuZ0NsYXNzXT1cInsnYmFkZ2UtcHJpbWFyeScgOiBpc0V4cGFuZGVkIH1cIiAoY2xpY2spPVwib25IZWFkZXJDbGlja2VkKClcIj48bmctY29udGVudCBzZWxlY3Q9XCJzbGljay1hY2NvcmRpb24taXRlbS1oZWFkZXJcIj48L25nLWNvbnRlbnQ+PC9kaXY+XHJcblx0PGRpdiAjc2xpY2tBY2NvcmRpb25Cb2R5V3JhcHBlclJlZiBjbGFzcz1cInNsaWNrLWFjY29yZGlvbi1ib2R5LXdyYXBwZXJcIj5cclxuXHRcdDxkaXYgI3NsaWNrQWNjb3JkaW9uQm9keVJlZiBjbGFzcz1cImNhcmQtYm9keSBzbGljay1hY2NvcmRpb24tYm9keVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cclxuXHRcdDxkaXYgI3NsaWNrQWNjb3JkaW9uQm91bmNlUGFkZGluZ1JlZiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7IG1pbi1oZWlnaHQ6IDMwcHg7XCI+PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYWNjb3JkaW9uL3NsaWNrLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWFjY29yZGlvbi9zbGljay1hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFNakUsTUFBTSxPQUFPLDJCQUEyQjtJQWtCdkM7UUFkUyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBTzFCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTlCLGVBQVUsR0FBWSxLQUFLLENBQUM7SUFLWixDQUFDO0lBRWpCLFdBQVc7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEYsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkM7YUFDSTtZQUNKLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLO2dCQUM1QixJ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QjtnQkFDTCxxQkFBcUI7c0JBQXhELFNBQVM7dUJBQUMsdUJBQXVCO2dCQUNXLDhCQUE4QjtzQkFBMUUsU0FBUzt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrU2xlZXBTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwic2xpY2stYWNjb3JkaW9uLWl0ZW1cIixcclxuXHR0ZW1wbGF0ZVVybDogXCJzbGljay1hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0FjY29yZGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cdEBJbnB1dChcImhlYWRlclwiKSBoZWFkZXI6IHN0cmluZztcclxuXHRASW5wdXQoXCJoZWFkZXJJY29uXCIpIGhlYWRlckljb246IHN0cmluZztcclxuXHRASW5wdXQoXCJrZXlcIikga2V5OiBzdHJpbmc7XHJcblx0QElucHV0KCkgbm9FeHBhbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0QFZpZXdDaGlsZChcInNsaWNrQWNjb3JkaW9uSXRlbVJlZlwiKSBzbGlja0FjY29yZGlvbkl0ZW1SZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcInNsaWNrQWNjb3JkaW9uQm9keVdyYXBwZXJSZWZcIikgc2xpY2tBY2NvcmRpb25Cb2R5V3JhcHBlclJlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwic2xpY2tBY2NvcmRpb25Cb2R5UmVmXCIpIHNsaWNrQWNjb3JkaW9uQm9keVJlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwic2xpY2tBY2NvcmRpb25Cb3VuY2VQYWRkaW5nUmVmXCIpIHNsaWNrQWNjb3JkaW9uQm91bmNlUGFkZGluZ1JlZjogRWxlbWVudFJlZjtcclxuXHJcblx0cmVhZG9ubHkgUElYRUxTX1BFUl9USUNLID0gMTU7XHJcblxyXG5cdGlzRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRpbmRleDogbnVtYmVyO1xyXG5cdC8vIFRoaXMgd2lsbCBiZSBzZXQgaW4gdGhlIHNsaWNrLWFjY29yZGlvbi5jb21wb25lbnQgYXMgYSBjYWxsYmFja1xyXG5cdG9uQ2hhbmdlQ2FsbGJhY2s6IGFueTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0bmdPbkNoYW5nZXMoKSB7XHJcblx0XHR0aGlzLm5vRXhwYW5kID0gKHRoaXMubm9FeHBhbmQudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgb25IZWFkZXJDbGlja2VkKCkge1xyXG5cdFx0aWYgKHRoaXMubm9FeHBhbmQpIHtcclxuXHRcdFx0aWYgKHRoaXMub25DaGFuZ2VDYWxsYmFjaylcclxuXHRcdFx0XHR0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5pbmRleCk7XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNFeHBhbmRlZCA9PT0gZmFsc2UpXHJcblx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdFx0ZWxzZVxyXG5cdFx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBhbmQoKSB7XHJcblx0XHRpZiAodGhpcy5ub0V4cGFuZClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGlmICh0aGlzLmlzRXhwYW5kZWQgPT09IHRydWUpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAodGhpcy5vbkNoYW5nZUNhbGxiYWNrKVxyXG5cdFx0XHR0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5pbmRleCk7XHJcblxyXG5cdFx0dGhpcy5pc0V4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1V0aWxzU2VydmljZS53YWl0Rm9yRWxlbWVudFJlZih0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbVJlZik7XHJcblxyXG5cdFx0Ly8gR2l2ZSB0aGUgY29sbGFwc2VzIGEgY2hhbmNlIHRvIGNvbGxhcHNlIGRvd24gYmVmb3JlIHdlIGV4cGFuZFxyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoMTAwKTtcclxuXHRcdGNvbnN0IG1heEhlaWdodCA9ICg8SFRNTERpdkVsZW1lbnQ+dGhpcy5zbGlja0FjY29yZGlvbkJvZHlSZWYubmF0aXZlRWxlbWVudCkub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0KDxIVE1MRGl2RWxlbWVudD50aGlzLnNsaWNrQWNjb3JkaW9uQm91bmNlUGFkZGluZ1JlZi5uYXRpdmVFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG5cdFx0KDxIVE1MRGl2RWxlbWVudD50aGlzLnNsaWNrQWNjb3JkaW9uQm9keVdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkuc3R5bGUubWF4SGVpZ2h0ID0gKG1heEhlaWdodCArIDMwKSArIFwicHhcIjtcclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKDEyNSk7XHJcblx0XHQoPEhUTUxEaXZFbGVtZW50PnRoaXMuc2xpY2tBY2NvcmRpb25Cb2R5V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS5zdHlsZS5tYXhIZWlnaHQgPSBtYXhIZWlnaHQgKyBcInB4XCI7XHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgxMDApO1xyXG5cdFx0KDxIVE1MRGl2RWxlbWVudD50aGlzLnNsaWNrQWNjb3JkaW9uQm91bmNlUGFkZGluZ1JlZi5uYXRpdmVFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcblx0XHQoPEhUTUxEaXZFbGVtZW50PnRoaXMuc2xpY2tBY2NvcmRpb25Cb2R5V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS5zdHlsZS5tYXhIZWlnaHQgPSBcIm5vbmVcIjtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGNvbGxhcHNlKGlnbm9yZU9uQ2hhbmdlQ2FsbGJhY2s6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cdFx0aWYgKHRoaXMuaXNFeHBhbmRlZCA9PT0gZmFsc2UpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHR0aGlzLmlzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcblx0XHQvLyBUaGUgYW5pbWF0aW9ucyByZXF1aXJlcyBhIG51bWJlciBmb3IgbWF4SGVpZ2h0LiAgSnVzdCBzZXQgaXQgdG8gdGhlIGN1cnJlbnQgaGVpZ2h0LCB0aGVuIHRvIDBcclxuXHRcdGNvbnN0IG1heEhlaWdodCA9ICg8SFRNTERpdkVsZW1lbnQ+dGhpcy5zbGlja0FjY29yZGlvbkJvZHlSZWYubmF0aXZlRWxlbWVudCkub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0KDxIVE1MRGl2RWxlbWVudD50aGlzLnNsaWNrQWNjb3JkaW9uQm9keVdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkuc3R5bGUubWF4SGVpZ2h0ID0gbWF4SGVpZ2h0ICsgXCJweFwiO1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdCg8SFRNTERpdkVsZW1lbnQ+dGhpcy5zbGlja0FjY29yZGlvbkJvZHlXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLnN0eWxlLm1heEhlaWdodCA9IFwiMFwiO1xyXG5cclxuXHRcdGlmICh0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgJiYgaWdub3JlT25DaGFuZ2VDYWxsYmFjayA9PT0gZmFsc2UpXHJcblx0XHRcdHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmluZGV4KTtcclxuXHR9XHJcblxyXG5cdGdldEtleSgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5IHx8IG51bGw7XHJcblx0fVxyXG59IiwiPGRpdiAjc2xpY2tBY2NvcmRpb25JdGVtUmVmIGNsYXNzPVwic2xpY2stYWNjb3JkaW9uLWl0ZW1cIj5cclxuXHQ8ZGl2ICpuZ0lmPVwiaGVhZGVyXCIgY2xhc3M9XCJzbGljay1hY2NvcmRpb24taGVhZGVyIGNhcmQtaGVhZGVyXCIgW25nQ2xhc3NdPVwieydiYWRnZS1wcmltYXJ5JyA6IGlzRXhwYW5kZWQgfVwiIChjbGljayk9XCJvbkhlYWRlckNsaWNrZWQoKVwiPjxpICpuZ0lmPVwiaGVhZGVySWNvblwiIGNsYXNzPVwiZmFyXCIgW25nQ2xhc3NdPVwiaGVhZGVySWNvblwiPjwvaT4ge3toZWFkZXJ9fTwvZGl2PlxyXG5cdDxkaXYgKm5nSWY9XCIhaGVhZGVyXCIgY2xhc3M9XCJzbGljay1hY2NvcmRpb24taGVhZGVyIGNhcmQtaGVhZGVyXCIgW25nQ2xhc3NdPVwieydiYWRnZS1wcmltYXJ5JyA6IGlzRXhwYW5kZWQgfVwiIChjbGljayk9XCJvbkhlYWRlckNsaWNrZWQoKVwiPjxuZy1jb250ZW50IHNlbGVjdD1cInNsaWNrLWFjY29yZGlvbi1pdGVtLWhlYWRlclwiPjwvbmctY29udGVudD48L2Rpdj5cclxuXHQ8ZGl2ICNzbGlja0FjY29yZGlvbkJvZHlXcmFwcGVyUmVmIGNsYXNzPVwic2xpY2stYWNjb3JkaW9uLWJvZHktd3JhcHBlclwiPlxyXG5cdFx0PGRpdiAjc2xpY2tBY2NvcmRpb25Cb2R5UmVmIGNsYXNzPVwiY2FyZC1ib2R5IHNsaWNrLWFjY29yZGlvbi1ib2R5XCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxyXG5cdFx0PGRpdiAjc2xpY2tBY2NvcmRpb25Cb3VuY2VQYWRkaW5nUmVmIHN0eWxlPVwiZGlzcGxheTogbm9uZTsgbWluLWhlaWdodDogMzBweDtcIj48L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -14,7 +14,7 @@ export class SlickAccordionComponent {
14
14
  slickAccordionItems.forEach((x, idx) => {
15
15
  x.index = idx;
16
16
  x.onChangeCallback = (index) => {
17
- if (this.keepExpanded === false)
17
+ if (this.keepExpanded === false && x.noExpand === false)
18
18
  this.collapseAll();
19
19
  if (this.accordionIndexChange)
20
20
  this.accordionIndexChange.emit(index);
@@ -35,7 +35,7 @@ export class SlickAccordionComponent {
35
35
  }
36
36
  async ngOnChanges(changes) {
37
37
  this.keepExpanded = (this.keepExpanded.toString().toLowerCase() === 'true') ? true : false;
38
- if (changes.accordionIndex)
38
+ if (this.keepExpanded === false && changes.accordionIndex)
39
39
  this.expand(this.accordionIndex);
40
40
  }
41
41
  expand(index) {
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
72
72
  type: ContentChildren,
73
73
  args: [forwardRef(() => SlickAccordionItemComponent)]
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWFjY29yZGlvbi9zbGljay1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYWNjb3JkaW9uL3NsaWNrLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUF5RCxlQUFlLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RLLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU8vRSxNQUFNLE9BQU8sdUJBQXVCO0lBVW5DO1FBUlUseUJBQW9CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekUsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDN0IsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBTXRELENBQUM7SUFFakIsS0FBSyxDQUFDLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLG1CQUEyRCxFQUFFLEVBQUU7WUFDNUksMEVBQTBFO1lBQzFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQzlCLElBQUksSUFBSSxDQUFDLFlBQVksS0FB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IE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBmb3J3YXJkUmVmLCBRdWVyeUxpc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrQWNjb3JkaW9uSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL3NsaWNrLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwic2xpY2stYWNjb3JkaW9uXCIsXHJcblx0dGVtcGxhdGVVcmw6IFwic2xpY2stYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpIGFjY29yZGlvbkluZGV4OiBudW1iZXI7XHJcblx0QE91dHB1dCgpIGFjY29yZGlvbkluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cdEBJbnB1dCgpIGtlZXBFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcblx0QENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFNsaWNrQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkpIHNsaWNrQWNjb3JkaW9uSXRlbXM6IFF1ZXJ5TGlzdDxTbGlja0FjY29yZGlvbkl0ZW1Db21wb25lbnQ+O1xyXG5cclxuXHRwcml2YXRlIHNsaWNrQWNjb3JkaW9uSXRlbXMkOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuXHRcdHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcyQgPSB0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoYXN5bmMgKHNsaWNrQWNjb3JkaW9uSXRlbXM6IFF1ZXJ5TGlzdDxTbGlja0FjY29yZGlvbkl0ZW1Db21wb25lbnQ+KSA9PiB7XHJcblx0XHRcdC8vIEdvIHRocm91Z2ggZWFjaCBvZiB0aGUgYWNjb3JkaW9uIGl0ZW1zIGFuZCBzZXQgdGhlIGNhbGxiYWNrIHRvIGNvbGxhcHNlXHJcblx0XHRcdHNsaWNrQWNjb3JkaW9uSXRlbXMuZm9yRWFjaCgoeCwgaWR4KSA9PiB7XHJcblx0XHRcdFx0eC5pbmRleCA9IGlkeDtcclxuXHRcdFx0XHR4Lm9uQ2hhbmdlQ2FsbGJhY2sgPSAoaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmtlZXBFeHBhbmRlZCA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdHRoaXMuY29sbGFwc2VBbGwoKTtcclxuXHJcblx0XHRcdFx0XHRpZiAodGhpcy5hY2NvcmRpb25JbmRleENoYW5nZSlcclxuXHRcdFx0XHRcdFx0dGhpcy5hY2NvcmRpb25JbmRleENoYW5nZS5lbWl0KGluZGV4KVxyXG5cclxuXHRcdFx0XHRcdGlmICh0aGlzLm9uQ2hhbmdlKVxyXG5cdFx0XHRcdFx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQoaW5kZXgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0XHRpZiAodGhpcy5hY2NvcmRpb25JbmRleCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYWNjb3JkaW9uSW5kZXggIT09IG51bGwpXHJcblx0XHRcdFx0dGhpcy5leHBhbmQodGhpcy5hY2NvcmRpb25JbmRleCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0dGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zLm5vdGlmeU9uQ2hhbmdlcygpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcyQpXHJcblx0XHRcdHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcyQudW5zdWJzY3JpYmUoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdHRoaXMua2VlcEV4cGFuZGVkID0gKHRoaXMua2VlcEV4cGFuZGVkLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy5hY2NvcmRpb25JbmRleClcclxuXHRcdFx0dGhpcy5leHBhbmQodGhpcy5hY2NvcmRpb25JbmRleCk7XHJcblx0fVxyXG5cclxuXHRleHBhbmQoaW5kZXg6IG51bWJlcikge1xyXG5cdFx0aWYgKCF0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMgfHwgKHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcy5sZW5ndGggLSAxKSA8IGluZGV4KVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0dGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zLnRvQXJyYXkoKVtpbmRleF0uZXhwYW5kKCk7XHJcblx0fVxyXG5cclxuXHRjb2xsYXBzZShpbmRleDogbnVtYmVyKSB7XHJcblx0XHRpZiAoIXRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcyB8fCAodGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zLmxlbmd0aCAtIDEpIDwgaW5kZXgpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHR0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMudG9BcnJheSgpW2luZGV4XS5jb2xsYXBzZSgpO1xyXG5cdH1cclxuXHJcblx0Z2V0S2V5KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcy50b0FycmF5KClbaW5kZXhdLmdldEtleSgpO1xyXG5cdH1cclxuXHJcblx0Y29sbGFwc2VBbGwoKSB7XHJcblx0XHR0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMuZm9yRWFjaCh4ID0+IHguY29sbGFwc2UodHJ1ZSkpO1xyXG5cdH1cclxufSIsIjxkaXYgY2xhc3M9XCJzbGljay1hY2NvcmRpb24gY2FyZFwiPlxyXG5cdDxuZy1jb250ZW50IHNlbGVjdD1cInNsaWNrLWFjY29yZGlvbi1pdGVtXCI+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWFjY29yZGlvbi9zbGljay1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYWNjb3JkaW9uL3NsaWNrLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUF5RCxlQUFlLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RLLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU8vRSxNQUFNLE9BQU8sdUJBQXVCO0lBVW5DO1FBUlUseUJBQW9CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekUsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDN0IsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBTXRELENBQUM7SUFFakIsS0FBSyxDQUFDLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLG1CQUEyRCxFQUFFLEVBQUU7WUFDNUksMEVBQTBFO1lBQzFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQzlCLElBQUksSUFBSSxDQUFDLFlBQVksS0FB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QywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBmb3J3YXJkUmVmLCBRdWVyeUxpc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrQWNjb3JkaW9uSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL3NsaWNrLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwic2xpY2stYWNjb3JkaW9uXCIsXHJcblx0dGVtcGxhdGVVcmw6IFwic2xpY2stYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpIGFjY29yZGlvbkluZGV4OiBudW1iZXI7XHJcblx0QE91dHB1dCgpIGFjY29yZGlvbkluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cdEBJbnB1dCgpIGtlZXBFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcblx0QENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFNsaWNrQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkpIHNsaWNrQWNjb3JkaW9uSXRlbXM6IFF1ZXJ5TGlzdDxTbGlja0FjY29yZGlvbkl0ZW1Db21wb25lbnQ+O1xyXG5cclxuXHRwcml2YXRlIHNsaWNrQWNjb3JkaW9uSXRlbXMkOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuXHRcdHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcyQgPSB0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoYXN5bmMgKHNsaWNrQWNjb3JkaW9uSXRlbXM6IFF1ZXJ5TGlzdDxTbGlja0FjY29yZGlvbkl0ZW1Db21wb25lbnQ+KSA9PiB7XHJcblx0XHRcdC8vIEdvIHRocm91Z2ggZWFjaCBvZiB0aGUgYWNjb3JkaW9uIGl0ZW1zIGFuZCBzZXQgdGhlIGNhbGxiYWNrIHRvIGNvbGxhcHNlXHJcblx0XHRcdHNsaWNrQWNjb3JkaW9uSXRlbXMuZm9yRWFjaCgoeCwgaWR4KSA9PiB7XHJcblx0XHRcdFx0eC5pbmRleCA9IGlkeDtcclxuXHRcdFx0XHR4Lm9uQ2hhbmdlQ2FsbGJhY2sgPSAoaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmtlZXBFeHBhbmRlZCA9PT0gZmFsc2UgJiYgeC5ub0V4cGFuZCA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdHRoaXMuY29sbGFwc2VBbGwoKTtcclxuXHJcblx0XHRcdFx0XHRpZiAodGhpcy5hY2NvcmRpb25JbmRleENoYW5nZSlcclxuXHRcdFx0XHRcdFx0dGhpcy5hY2NvcmRpb25JbmRleENoYW5nZS5lbWl0KGluZGV4KVxyXG5cclxuXHRcdFx0XHRcdGlmICh0aGlzLm9uQ2hhbmdlKSBcclxuXHRcdFx0XHRcdFx0dGhpcy5vbkNoYW5nZS5lbWl0KGluZGV4KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdFx0aWYgKHRoaXMuYWNjb3JkaW9uSW5kZXggIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFjY29yZGlvbkluZGV4ICE9PSBudWxsKSBcclxuXHRcdFx0XHR0aGlzLmV4cGFuZCh0aGlzLmFjY29yZGlvbkluZGV4KTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMubm90aWZ5T25DaGFuZ2VzKCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zJClcclxuXHRcdFx0dGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zJC51bnN1YnNjcmliZSgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cdFx0dGhpcy5rZWVwRXhwYW5kZWQgPSAodGhpcy5rZWVwRXhwYW5kZWQudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuXHRcdGlmICh0aGlzLmtlZXBFeHBhbmRlZCA9PT0gZmFsc2UgJiYgY2hhbmdlcy5hY2NvcmRpb25JbmRleCkgXHJcblx0XHRcdHRoaXMuZXhwYW5kKHRoaXMuYWNjb3JkaW9uSW5kZXgpO1x0XHRcclxuXHR9XHJcblxyXG5cdGV4cGFuZChpbmRleDogbnVtYmVyKSB7XHJcblx0XHRpZiAoIXRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcyB8fCAodGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zLmxlbmd0aCAtIDEpIDwgaW5kZXgpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHR0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMudG9BcnJheSgpW2luZGV4XS5leHBhbmQoKTtcclxuXHR9XHJcblxyXG5cdGNvbGxhcHNlKGluZGV4OiBudW1iZXIpIHtcclxuXHRcdGlmICghdGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zIHx8ICh0aGlzLnNsaWNrQWNjb3JkaW9uSXRlbXMubGVuZ3RoIC0gMSkgPCBpbmRleClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcy50b0FycmF5KClbaW5kZXhdLmNvbGxhcHNlKCk7XHJcblx0fVxyXG5cclxuXHRnZXRLZXkoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5zbGlja0FjY29yZGlvbkl0ZW1zLnRvQXJyYXkoKVtpbmRleF0uZ2V0S2V5KCk7XHJcblx0fVxyXG5cclxuXHRjb2xsYXBzZUFsbCgpIHtcclxuXHRcdHRoaXMuc2xpY2tBY2NvcmRpb25JdGVtcy5mb3JFYWNoKHggPT4geC5jb2xsYXBzZSh0cnVlKSk7XHJcblx0fVxyXG59IiwiPGRpdiBjbGFzcz1cInNsaWNrLWFjY29yZGlvbiBjYXJkXCI+XHJcblx0PG5nLWNvbnRlbnQgc2VsZWN0PVwic2xpY2stYWNjb3JkaW9uLWl0ZW1cIj48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -67,13 +67,15 @@ export class SlickAutoCompleteComponent {
67
67
  documentClick(e) {
68
68
  if (!this.expanded || !e.target)
69
69
  return;
70
+ if (e.target === this.inputRef)
71
+ return;
70
72
  if (SlickUtilsService.checkParentIdExists(e.target, "slick-auto-complete_" + this.uuid) === false) {
71
73
  clearInterval(this.waitForItemsInterval);
72
74
  this.slickFunctionLockService.release("AUTO_COMPLETE_WAIT_FOR_ITEMS");
73
75
  this.collapse();
76
+ if (this.allowFreeformText && this.onFreeformTextSelect)
77
+ this.onFreeformTextSelect.emit(this.inputRef.value);
74
78
  }
75
- if (this.allowFreeformText && this.onFreeformTextSelect)
76
- this.onFreeformTextSelect.emit(this.inputRef.value);
77
79
  }
78
80
  onItemClick(index) {
79
81
  this.selectItem(index);
@@ -372,4 +374,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
372
374
  type: ContentChild,
373
375
  args: [SlickAutoCompleteListItemTemplateDirective, { static: true }]
374
376
  }] } });
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1hdXRvLWNvbXBsZXRlL3NsaWNrLWF1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYXV0by1jb21wbGV0ZS9zbGljay1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9ELFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUN2TSxPQUFPLEVBQTJDLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFZakUsTUFBTSxPQUFPLDBCQUEwQjtJQXdDdEMsWUFBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFyQ3RELFVBQUssR0FBVyxHQUFHLENBQUM7UUFDZCxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUU3QixlQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFDbkIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUM1QyxjQUFTLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLHlCQUFvQixH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LEVBQUUsSUFBSTt5QkFDWDtxQkFBQzsrR0FHZ0IsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNELEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDRSxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ1EsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNXLG9CQUFvQjtzQkFBbEQsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBQ1IsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNDLFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFDVSxpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNRLHVCQUF1QjtzQkFBeEQsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBQ1gsU0FBUztzQkFBN0IsTUFBTTt1QkFBQyxXQUFXO2dCQUNDLFFBQVE7c0JBQTNCLE1BQU07dUJBQUMsVUFBVTtnQkFDYyxvQkFBb0I7c0JBQW5ELE1BQU07dUJBQUMsc0JBQXNCO2dCQUVrQixlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDOEIsbUJBQW1CO3NCQUE5RixZQUFZO3VCQUFDLDBDQUEwQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtLCBGb3Jtc01vZHVsZSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL3NsaWNrLWF1dG8tY29tcGxldGUtbGlzdC1pdGVtLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBTbGlja1V0aWxzU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay11dGlscy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1mdW5jdGlvbi1sb2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tTbGVlcFNlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stc2xlZXAuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay1hdXRvLWNvbXBsZXRlJyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLWF1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tBdXRvQ29tcGxldGVDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cdEBJbnB1dChcImlucHV0UmVmXCIpIGlucHV0UmVmOiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cdEBJbnB1dChcIml0ZW1zXCIpIGl0ZW1zOiBhbnlbXTtcclxuXHRASW5wdXQoXCJkZWxheVwiKSBkZWxheTogbnVtYmVyID0gMzAwO1xyXG5cdEBJbnB1dChcInNlbGVjdEZpcnN0XCIpIHNlbGVjdEZpcnN0OiBib29sZWFuID0gdHJ1ZTtcclxuXHRASW5wdXQoXCJkaXNwbGF5VGV4dEZpZWxkTmFtZVwiKSBkaXNwbGF5VGV4dEZpZWxkTmFtZTogc3RyaW5nO1xyXG5cdEBJbnB1dChcImxpc3RIZWlnaHRcIikgbGlzdEhlaWdodCA9IFwiMzAwcHhcIjtcclxuXHRASW5wdXQoXCJsaXN0V2lkdGhcIikgbGlzdFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcblx0QElucHV0KFwiYWxsb3dGcmVlZm9ybVRleHRcIikgYWxsb3dGcmVlZm9ybVRleHQgPSB0cnVlO1xyXG5cdEBJbnB1dChcInNob3dOb0l0ZW1zRm91bmREaXNwbGF5XCIpIHNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID0gdHJ1ZTtcclxuXHRAT3V0cHV0KFwib25SZWZyZXNoXCIpIG9uUmVmcmVzaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHRAT3V0cHV0KFwib25TZWxlY3RcIikgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dChcIm9uRnJlZWZvcm1UZXh0U2VsZWN0XCIpIG9uRnJlZWZvcm1UZXh0U2VsZWN0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuXHRAVmlld0NoaWxkKFwiYXV0b0NvbXBsZXRlUmVmXCIsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9Db21wbGV0ZVJlZjogRWxlbWVudFJlZjtcclxuXHRAQ29udGVudENoaWxkKFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgbGlzdEl0ZW1UZW1wbGF0ZVJlZjogU2xpY2tBdXRvQ29tcGxldGVMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlO1xyXG5cclxuXHRmbkRvY3VtZW50Q2xpY2sgPSAoZSkgPT4gdGhpcy5kb2N1bWVudENsaWNrKGUpO1xyXG5cdGZuS2V5RG93biA9IChlKSA9PiB0aGlzLmtleURvd24oZSk7XHJcblxyXG5cdHByaXZhdGUgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcblx0cHJpdmF0ZSBkZWxheVRpbWVvdXQ6IE5vZGVKUy5UaW1lcjtcclxuXHRwcml2YXRlIHdhaXRGb3JJdGVtc0ludGVydmFsOiBOb2RlSlMuVGltZXI7XHJcblx0cHJpdmF0ZSBsYXN0SW5wdXRWYWx1ZTogc3RyaW5nID0gXCJcIjtcclxuXHRwcml2YXRlIGZvcmNlZENvbGxhcHNlID0gZmFsc2U7XHJcblxyXG5cdC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHNvIHRoYXQgdGhlIHNjcm9sbCBhbmQgcmVzaXplIGV2ZW50cyBjYW4gYWRkIGFuZCByZW1vdmUgdGhlIGV2ZW50IHByb3Blcmx5LFxyXG5cdC8vIGFzIHdlbGwgYXMgZ2V0dGluZyB0aGUgY29ycmVjdCBFUzYgZnVuY3Rpb25cclxuXHRwcml2YXRlIGZuUmVwb3NpdGlvbiA9ICgpID0+IHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0bGVmdDogc3RyaW5nO1xyXG5cdHRvcDogc3RyaW5nO1xyXG5cdHdpZHRoOiBzdHJpbmc7XHJcblx0c2VsZWN0ZWRJbmRleDogbnVtYmVyID0gLTE7XHJcblx0c2hvd0F1dG9Db21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGF1dG9Db21wbGV0ZVZpc2libGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHRsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlOiBTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UpIHtcclxuXHRcdHRoaXMudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG5nT25Jbml0KCkge1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdC8vIFJlbW92ZSB0aGlzIGZyb20gdGhlIGlubGluZSB2ZXJzaW9uIGFuZCBwdXQgaXQgb24gdGhlIGJvZHkgc28gdGhhdCBpdCBkb2Vzbid0IGhpZGUgYmVoaW5kIHRoZSBib3R0b21cclxuXHRcdC8vIG9mIGEgZGl2IHdoZW4gaXQgZXhwYW5kcyBiZXlvbmQgdGhlIGJvdHRvbS5cclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlUmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlKHRoaXMuYXV0b0NvbXBsZXRlUmVmKTtcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdFx0dGhpcy5pbnB1dFJlZi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLmZuS2V5RG93bik7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLmZuS2V5RG93bik7XHJcblxyXG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHJcblx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0Ly8gSXMgb2theSBpZiB0aGlzIGZhaWxzLiAgSXQganVzdCBtZWFucyBpdCB3YXMgYWxyZWFkeSByZW1vdmVkLlxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50KTtcclxuXHRcdH1cclxuXHRcdGNhdGNoIHsgfVxyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1x0XHRcclxuXHRcdGlmIChjaGFuZ2VzLmFsbG93RnJlZWZvcm1UZXh0KSBcclxuXHRcdFx0dGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCA9ICh0aGlzLmFsbG93RnJlZWZvcm1UZXh0LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykgPyBmYWxzZSA6IHRydWU7XHRcdFxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5KVxyXG5cdFx0XHR0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID0gKHRoaXMuc2hvd05vSXRlbXNGb3VuZERpc3BsYXkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSA/IGZhbHNlIDogdHJ1ZTtcdFx0XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuaXRlbXMpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPT09IDAgJiYgdGhpcy5zaG93Tm9JdGVtc0ZvdW5kRGlzcGxheSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdGlmICghdGhpcy5leHBhbmRlZCB8fCAhZS50YXJnZXQpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAoU2xpY2tVdGlsc1NlcnZpY2UuY2hlY2tQYXJlbnRJZEV4aXN0cyg8SFRNTEVsZW1lbnQ+ZS50YXJnZXQsIFwic2xpY2stYXV0by1jb21wbGV0ZV9cIiArIHRoaXMudXVpZCkgPT09IGZhbHNlKSB7XHJcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJBVVRPX0NPTVBMRVRFX1dBSVRfRk9SX0lURU1TXCIpO1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuYWxsb3dGcmVlZm9ybVRleHQgJiYgdGhpcy5vbkZyZWVmb3JtVGV4dFNlbGVjdClcclxuXHRcdFx0dGhpcy5vbkZyZWVmb3JtVGV4dFNlbGVjdC5lbWl0KHRoaXMuaW5wdXRSZWYudmFsdWUpO1xyXG5cclxuXHR9XHJcblxyXG5cdG9uSXRlbUNsaWNrKGluZGV4KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oaW5kZXgpO1xyXG5cdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBrZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcblx0XHQvLyBhbHRcclxuXHRcdGlmIChldmVudC5rZXlDb2RlID09PSAxOClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHR0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5yZWxlYXNlKFwiQVVUT19DT01QTEVURV9XQUlUX0ZPUl9JVEVNU1wiKTtcclxuXHJcblx0XHQvLyBJZiB3ZSdyZSBqdXN0IHRhYmJpbmcgdGhyb3VnaCwgZG9uJ3QgZXZlbiBkbyBhbnl0aGluZ1xyXG5cdFx0aWYgKCF0aGlzLmxhc3RJbnB1dFZhbHVlICYmIChldmVudC5rZXlDb2RlID09PSA5IHx8IGV2ZW50LmtleUNvZGUgPT09IDEzKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblxyXG5cdFx0aWYgKHRoaXMubGFzdElucHV0VmFsdWUgIT09IHRoaXMuaW5wdXRSZWYudmFsdWUpIHtcclxuXHRcdFx0dGhpcy5sYXN0SW5wdXRWYWx1ZSA9IHRoaXMuaW5wdXRSZWYudmFsdWU7XHJcblx0XHRcdHRoaXMuZm9yY2VkQ29sbGFwc2UgPSBmYWxzZTtcclxuXHJcblx0XHRcdGlmICghdGhpcy5sYXN0SW5wdXRWYWx1ZSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cdFx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdFx0dGhpcy5kZWxheVRpbWVvdXQgPSBudWxsO1xyXG5cdFx0XHRpZiAodGhpcy5pbnB1dFJlZi52YWx1ZSA9PT0gJycpIHtcclxuXHRcdFx0XHR0aGlzLml0ZW1zID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5kZWxheVRpbWVvdXQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHRcdCh0aGlzLnNlbGVjdEZpcnN0ID09PSB0cnVlKSA/IHRoaXMuc2VsZWN0ZWRJbmRleCA9IDAgOiB0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuXHRcdFx0XHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMuaXRlbXMgPSBudWxsO1xyXG5cdFx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucmVmcmVzaEl0ZW1zKHRydWUpO1xyXG5cdFx0XHRcdH0sIHRoaXMuZGVsYXkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDkgfHwgZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcclxuXHRcdFx0aWYgKHRoaXMuZGVsYXlUaW1lb3V0ICYmIHRoaXMuc2VsZWN0Rmlyc3QpIHtcclxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVvdXQpO1xyXG5cdFx0XHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLml0ZW1zID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdEZpcnN0ID09PSB0cnVlICYmICF0aGlzLmZvcmNlZENvbGxhcHNlKSB7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnJlZnJlc2hJdGVtcyhmYWxzZSk7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIXRoaXMuaXRlbXMgJiYgIXRoaXMuaW5wdXRSZWYudmFsdWUgJiYgdGhpcy5vblNlbGVjdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm9uU2VsZWN0LmVtaXQobnVsbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCAmJiB0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0KSBcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0LmVtaXQodGhpcy5pbnB1dFJlZi52YWx1ZSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuYWxsb3dGcmVlZm9ybVRleHQgJiYgdGhpcy5vbkZyZWVmb3JtVGV4dFNlbGVjdCkgXHJcblx0XHRcdFx0XHRcdHRoaXMub25GcmVlZm9ybVRleHRTZWxlY3QuZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdFx0XHRpZiAoIXRoaXMuaXRlbXMgJiYgIXRoaXMuaW5wdXRSZWYudmFsdWUgJiYgdGhpcy5vblNlbGVjdCkge1xyXG5cdFx0XHRcdFx0dGhpcy5vblNlbGVjdC5lbWl0KG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLmV4cGFuZGVkICYmICF0aGlzLmZvcmNlZENvbGxhcHNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCAmJiB0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0KSB7XHJcblx0XHRcdFx0XHRcdHRoaXMub25GcmVlZm9ybVRleHRTZWxlY3QuZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRXNjXHJcblx0XHRpZiAoZXZlbnQud2hpY2ggPT09IDI3KSB7XHJcblx0XHRcdHRoaXMuZm9yY2VkQ29sbGFwc2UgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQXJyb3d1cFxyXG5cdFx0aWYgKGV2ZW50LndoaWNoID09PSAzOCkge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gMClcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgtLTtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBcnJvd2Rvd25cclxuXHRcdGlmIChldmVudC53aGljaCA9PT0gNDApIHtcclxuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPT09IG51bGwgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSB1bmRlZmluZWQpXHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHR0aGlzLmV4cGFuZCgpO1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA8IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSlcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgrKztcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIHJlZ2lzdGVycyAnZm4nIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGNoYW5nZXMgYXJlIG1hZGVcclxuXHQvLyB0aGlzIGlzIGhvdyB3ZSBlbWl0IHRoZSBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm1cclxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHQvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcclxuXHRyZWdpc3Rlck9uVG91Y2hlZCgpIHsgfVxyXG5cclxuXHRhc3luYyBzZWxlY3RJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuXHRcdGlmIChpbmRleCA8IDAgfHwgIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XHJcblx0XHRcdGlmICh0aGlzLmRpc3BsYXlUZXh0RmllbGROYW1lKSB7XHJcblx0XHRcdFx0Y29uc3QgdGV4dCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldERlZXBPYmplY3QodGhpcy5zZWxlY3RlZEl0ZW0sIHRoaXMuZGlzcGxheVRleHRGaWVsZE5hbWUpO1xyXG5cdFx0XHRcdGlmICh0ZXh0KSB7XHJcblx0XHRcdFx0XHR0aGlzLmlucHV0UmVmLnZhbHVlID0gdGV4dDtcclxuXHRcdFx0XHRcdHRoaXMubGFzdElucHV0VmFsdWUgPSB0aGlzLmlucHV0UmVmLnZhbHVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuXHRcdGlmICh0aGlzLm9uU2VsZWN0KVxyXG5cdFx0XHR0aGlzLm9uU2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG5cdFx0Ly8gQ2FsbCB0byB1cGRhdGUgdGhlIG1vZGVsIGZvciB0aGUgdGV4dGJveFxyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdGxldCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcclxuXHRcdGV2dC5pbml0RXZlbnQoJ2lucHV0JywgdHJ1ZSwgZmFsc2UpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5kaXNwYXRjaEV2ZW50KGV2dCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGV4cGFuZCgpIHtcclxuXHRcdHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHRcdC8vIElmIHRoZSBmbGFnIHRvIHNob3cgaXRlbXMgaXMgZmFsc2UsIGRvbid0IGRpc3BsYXkgXCJMb2FkaW5nLi4uXCJcclxuXHRcdGlmICh0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID09PSBmYWxzZSAmJiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApKSB7XHJcblx0XHRcdHRoaXMuc2hvd0F1dG9Db21wbGV0ZSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmF1dG9Db21wbGV0ZVZpc2libGl0eSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnNob3dBdXRvQ29tcGxldGUgPSB0cnVlO1xyXG5cdFx0dGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLmF1dG9Db21wbGV0ZVZpc2libGl0eSA9IHRydWU7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0XHR0aGlzLmlucHV0UmVmLmNsYXNzTGlzdC5hZGQoXCJzbGljay1hdXRvLWNvbXBsZXRlX3JlbW92ZS1ib3R0b20tbGVmdC1ib3JkZXItcmFkaXVzXCIpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5jbGFzc0xpc3QuYWRkKFwic2xpY2stYXV0by1jb21wbGV0ZV9yZW1vdmUtYm90dG9tLXJpZ2h0LWJvcmRlci1yYWRpdXNcIik7XHJcblxyXG5cdFx0Ly8gVGhpcyBpcyBuZWNlc3NhcnksIG90aGVyd2lzZSBgdGhpc2AgaW4gdGhlIHJlcG9zaXRpb24gZnVuY3Rpb24gd2lsbCBiZSB3aW5kb3dcclxuXHRcdC8vIGFuZCBub3QgdGhlIGNvbXBvbmVudC5cclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb2xsYXBzZSgpIHtcclxuXHRcdGxldCBpbnB1dEdyb3VwUHJlcGVuZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldENsb3Nlc3RTaWJsaW5nKHRoaXMuaW5wdXRSZWYsIFwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiKTtcclxuXHRcdGlmIChpbnB1dEdyb3VwUHJlcGVuZClcclxuXHRcdFx0aW5wdXRHcm91cFByZXBlbmQuY2xhc3NMaXN0LnJlbW92ZShcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1sZWZ0LWJvcmRlci1yYWRpdXNcIik7XHJcblxyXG5cdFx0dGhpcy5pbnB1dFJlZi5jbGFzc0xpc3QucmVtb3ZlKFwic2xpY2stYXV0by1jb21wbGV0ZV9yZW1vdmUtYm90dG9tLWxlZnQtYm9yZGVyLXJhZGl1c1wiKTtcclxuXHRcdHRoaXMuaW5wdXRSZWYuY2xhc3NMaXN0LnJlbW92ZShcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1yaWdodC1ib3JkZXItcmFkaXVzXCIpO1xyXG5cclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlVmlzaWJsaXR5ID0gZmFsc2U7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHR0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHJcblx0XHQvLyBTaW5jZSBhbmd1bGFyIGhhcyBubyB3YXkgdG8gdXNlIHRoZSB0aGlyZCBwYXJhbWV0ZXIsIEknbSBkb2luZyB0aGlzIGluIHJhdyBqc1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuZm5Eb2N1bWVudENsaWNrLCB0cnVlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVwb3NpdGlvbigpIHtcclxuXHRcdGxldCByZWN0ID0gdGhpcy5pbnB1dFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdGxldCBpbnB1dExlZnQgPSByZWN0LmxlZnQ7XHJcblx0XHRsZXQgaW5wdXRUb3AgPSByZWN0LnRvcDtcclxuXHRcdGxldCBpbnB1dEhlaWdodCA9IHRoaXMuaW5wdXRSZWYub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0bGV0IGlucHV0V2lkdGggPSB0aGlzLmlucHV0UmVmLm9mZnNldFdpZHRoO1xyXG5cclxuXHRcdGxldCBpbnB1dEdyb3VwUHJlcGVuZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldENsb3Nlc3RTaWJsaW5nKHRoaXMuaW5wdXRSZWYsIFwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiKTtcclxuXHRcdGlmIChpbnB1dEdyb3VwUHJlcGVuZCkge1xyXG5cdFx0XHRpbnB1dExlZnQgPSBpbnB1dEdyb3VwUHJlcGVuZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xyXG5cdFx0XHRpbnB1dFdpZHRoID0gaW5wdXRXaWR0aCArPSBpbnB1dEdyb3VwUHJlcGVuZC5vZmZzZXRXaWR0aDtcclxuXHRcdFx0aW5wdXRHcm91cFByZXBlbmQuY2xhc3NMaXN0LmFkZChcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1sZWZ0LWJvcmRlci1yYWRpdXNcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5sZWZ0ID0gaW5wdXRMZWZ0ICsgXCJweFwiO1xyXG5cdFx0dGhpcy50b3AgPSAoaW5wdXRUb3AgKyBpbnB1dEhlaWdodCArIDEpICsgXCJweFwiO1xyXG5cdFx0aWYgKHRoaXMubGlzdFdpZHRoID09PSAnMTAwJScpXHJcblx0XHRcdHRoaXMud2lkdGggPSBpbnB1dFdpZHRoICsgXCJweFwiO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy5saXN0V2lkdGggPT09ICdhdXRvJylcclxuXHRcdFx0dGhpcy53aWR0aCA9IFwiYXV0b1wiO1xyXG5cdFx0ZWxzZVxyXG5cdFx0XHR0aGlzLndpZHRoID0gdGhpcy5saXN0V2lkdGg7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHJlZnJlc2hJdGVtcyhleHBhbmQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihhc3luYyAocmVzb2x2ZSkgPT4ge1xyXG5cdFx0XHRhd2FpdCB0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5sb2NrKFwiQVVUT19DT01QTEVURV9XQUlUX0ZPUl9JVEVNU1wiKTtcclxuXHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLndhaXRGb3JJdGVtc0ludGVydmFsKTtcclxuXHRcdFx0dGhpcy5pdGVtcyA9IG51bGw7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMub25SZWZyZXNoIHx8ICF0aGlzLmlucHV0UmVmLnZhbHVlKSB7XHJcblx0XHRcdFx0dGhpcy5pdGVtcyA9IFtdO1xyXG5cdFx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJBVVRPX0NPTVBMRVRFX1dBSVRfRk9SX0lURU1TXCIpO1xyXG5cdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdGlmICh0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID09PSBmYWxzZSlcclxuXHRcdFx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdFx0XHQvLyBDYWxsIHRoZSB1c2VycyByZWZyZXNoIG1ldGhvZCB0byBnZXQgYSBmcmVzaCBsaXN0IG9mIGl0ZW1zXHJcblx0XHRcdFx0dGhpcy5vblJlZnJlc2guZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHJcblx0XHRcdFx0Ly8gV2FpdCBmb3IgdGhlIGxpc3QgdG8gcmVmcmVzaFxyXG5cdFx0XHRcdGxldCB0aW1lb3V0Q2hlY2sgPSAxMDAwO1xyXG5cdFx0XHRcdHRoaXMud2FpdEZvckl0ZW1zSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvLyBJZiB3ZSd2ZSB0aW1lZG91dCwgZ290IGEgcmVzcG9uc2Ugb3IgdGhleSBzdGFydGVkIHR5cGluZyBzb21ldGhpbmcgZWxzZSwgc3RvcCB0aGUgaW50ZXJ2YWxcclxuXHRcdFx0XHRcdGlmICh0aW1lb3V0Q2hlY2sgPD0gMCB8fCB0aGlzLml0ZW1zKSB7XHJcblx0XHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHRcdFx0XHRcdGlmICh0aW1lb3V0Q2hlY2sgPD0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgbGlzdCBpbiBhdXRvIGNvbXBsZXRlXCIpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaXRlbXMgPSBbXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5zaG93Tm9JdGVtc0ZvdW5kRGlzcGxheSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGlmIChleHBhbmQpXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UucmVsZWFzZShcIkFVVE9fQ09NUExFVEVfV0FJVF9GT1JfSVRFTVNcIik7XHJcblx0XHRcdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR0aW1lb3V0Q2hlY2stLTtcclxuXHRcdFx0XHR9LCAxMDApO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcbn0iLCI8ZGl2ICNhdXRvQ29tcGxldGVSZWYgaWQ9XCJzbGljay1hdXRvLWNvbXBsZXRlX3t7dXVpZH19XCIgY2xhc3M9J3NsaWNrLWF1dG8tY29tcGxldGUgZHJvcGRvd24tbWVudScgW3N0eWxlLndpZHRoXT1cIndpZHRoXCIgW3N0eWxlLm1pbldpZHRoXT1cIndpZHRoXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCIgW3N0eWxlLm9wYWNpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICcxJyA6ICcwJ1wiIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImxpc3RIZWlnaHRcIiBbc3R5bGUubGVmdF09XCJsZWZ0XCIgW3N0eWxlLnRvcF09XCJ0b3BcIj5cclxuXHQ8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIHN0eWxlPVwiZm9udC1zaXplOiAuOHJlbVwiIGNsYXNzPVwibWwtM1wiPkxvYWRpbmcuLi48L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbXM/Lmxlbmd0aCA9PT0gMFwiIHN0eWxlPVwiZm9udC1zaXplOiAuOHJlbVwiIGNsYXNzPVwibWwtM1wiPlxyXG5cdFx0Tm8gaXRlbXMgZm91bmRcclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbXM/Lmxlbmd0aCA+IDBcIj5cclxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpbmRleCA9IGluZGV4O1wiIChjbGljayk9XCJvbkl0ZW1DbGljayhpbmRleClcIiBbY2xhc3MuY2FyZC1oZWFkZXJdPVwic2VsZWN0ZWRJbmRleCA9PT0gaW5kZXhcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RJdGVtVGVtcGxhdGVSZWYudGVtcGxhdGUsIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpbmRleDogaW5kZXggfVwiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1hdXRvLWNvbXBsZXRlL3NsaWNrLWF1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYXV0by1jb21wbGV0ZS9zbGljay1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9ELFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUN2TSxPQUFPLEVBQTJDLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFZakUsTUFBTSxPQUFPLDBCQUEwQjtJQXdDdEMsWUFBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFyQ3RELFVBQUssR0FBVyxHQUFHLENBQUM7UUFDZCxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUU3QixlQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFDbkIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUM1QyxjQUFTLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLHlCQUFvQixH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QzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLDJCQUEyQixFQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFBQzsrR0FHZ0IsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNELEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDRSxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ1EsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNXLG9CQUFvQjtzQkFBbEQsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBQ1IsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNDLFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFDVSxpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNRLHVCQUF1QjtzQkFBeEQsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBQ1gsU0FBUztzQkFBN0IsTUFBTTt1QkFBQyxXQUFXO2dCQUNDLFFBQVE7c0JBQTNCLE1BQU07dUJBQUMsVUFBVTtnQkFDYyxvQkFBb0I7c0JBQW5ELE1BQU07dUJBQUMsc0JBQXNCO2dCQUVrQixlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDOEIsbUJBQW1CO3NCQUE5RixZQUFZO3VCQUFDLDBDQUEwQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtLCBGb3Jtc01vZHVsZSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL3NsaWNrLWF1dG8tY29tcGxldGUtbGlzdC1pdGVtLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBTbGlja1V0aWxzU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay11dGlscy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1mdW5jdGlvbi1sb2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tTbGVlcFNlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stc2xlZXAuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay1hdXRvLWNvbXBsZXRlJyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLWF1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tBdXRvQ29tcGxldGVDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cdEBJbnB1dChcImlucHV0UmVmXCIpIGlucHV0UmVmOiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cdEBJbnB1dChcIml0ZW1zXCIpIGl0ZW1zOiBhbnlbXTtcclxuXHRASW5wdXQoXCJkZWxheVwiKSBkZWxheTogbnVtYmVyID0gMzAwO1xyXG5cdEBJbnB1dChcInNlbGVjdEZpcnN0XCIpIHNlbGVjdEZpcnN0OiBib29sZWFuID0gdHJ1ZTtcclxuXHRASW5wdXQoXCJkaXNwbGF5VGV4dEZpZWxkTmFtZVwiKSBkaXNwbGF5VGV4dEZpZWxkTmFtZTogc3RyaW5nO1xyXG5cdEBJbnB1dChcImxpc3RIZWlnaHRcIikgbGlzdEhlaWdodCA9IFwiMzAwcHhcIjtcclxuXHRASW5wdXQoXCJsaXN0V2lkdGhcIikgbGlzdFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcblx0QElucHV0KFwiYWxsb3dGcmVlZm9ybVRleHRcIikgYWxsb3dGcmVlZm9ybVRleHQgPSB0cnVlO1xyXG5cdEBJbnB1dChcInNob3dOb0l0ZW1zRm91bmREaXNwbGF5XCIpIHNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID0gdHJ1ZTtcclxuXHRAT3V0cHV0KFwib25SZWZyZXNoXCIpIG9uUmVmcmVzaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHRAT3V0cHV0KFwib25TZWxlY3RcIikgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dChcIm9uRnJlZWZvcm1UZXh0U2VsZWN0XCIpIG9uRnJlZWZvcm1UZXh0U2VsZWN0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuXHRAVmlld0NoaWxkKFwiYXV0b0NvbXBsZXRlUmVmXCIsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9Db21wbGV0ZVJlZjogRWxlbWVudFJlZjtcclxuXHRAQ29udGVudENoaWxkKFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgbGlzdEl0ZW1UZW1wbGF0ZVJlZjogU2xpY2tBdXRvQ29tcGxldGVMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlO1xyXG5cclxuXHRmbkRvY3VtZW50Q2xpY2sgPSAoZSkgPT4gdGhpcy5kb2N1bWVudENsaWNrKGUpO1xyXG5cdGZuS2V5RG93biA9IChlKSA9PiB0aGlzLmtleURvd24oZSk7XHJcblxyXG5cdHByaXZhdGUgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcblx0cHJpdmF0ZSBkZWxheVRpbWVvdXQ6IE5vZGVKUy5UaW1lcjtcclxuXHRwcml2YXRlIHdhaXRGb3JJdGVtc0ludGVydmFsOiBOb2RlSlMuVGltZXI7XHJcblx0cHJpdmF0ZSBsYXN0SW5wdXRWYWx1ZTogc3RyaW5nID0gXCJcIjtcclxuXHRwcml2YXRlIGZvcmNlZENvbGxhcHNlID0gZmFsc2U7XHJcblxyXG5cdC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHNvIHRoYXQgdGhlIHNjcm9sbCBhbmQgcmVzaXplIGV2ZW50cyBjYW4gYWRkIGFuZCByZW1vdmUgdGhlIGV2ZW50IHByb3Blcmx5LFxyXG5cdC8vIGFzIHdlbGwgYXMgZ2V0dGluZyB0aGUgY29ycmVjdCBFUzYgZnVuY3Rpb25cclxuXHRwcml2YXRlIGZuUmVwb3NpdGlvbiA9ICgpID0+IHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0bGVmdDogc3RyaW5nO1xyXG5cdHRvcDogc3RyaW5nO1xyXG5cdHdpZHRoOiBzdHJpbmc7XHJcblx0c2VsZWN0ZWRJbmRleDogbnVtYmVyID0gLTE7XHJcblx0c2hvd0F1dG9Db21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGF1dG9Db21wbGV0ZVZpc2libGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHRsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlOiBTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UpIHtcclxuXHRcdHRoaXMudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG5nT25Jbml0KCkge1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdC8vIFJlbW92ZSB0aGlzIGZyb20gdGhlIGlubGluZSB2ZXJzaW9uIGFuZCBwdXQgaXQgb24gdGhlIGJvZHkgc28gdGhhdCBpdCBkb2Vzbid0IGhpZGUgYmVoaW5kIHRoZSBib3R0b21cclxuXHRcdC8vIG9mIGEgZGl2IHdoZW4gaXQgZXhwYW5kcyBiZXlvbmQgdGhlIGJvdHRvbS5cclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlUmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlKHRoaXMuYXV0b0NvbXBsZXRlUmVmKTtcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdFx0dGhpcy5pbnB1dFJlZi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLmZuS2V5RG93bik7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLmZuS2V5RG93bik7XHJcblxyXG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHJcblx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0Ly8gSXMgb2theSBpZiB0aGlzIGZhaWxzLiAgSXQganVzdCBtZWFucyBpdCB3YXMgYWxyZWFkeSByZW1vdmVkLlxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50KTtcclxuXHRcdH1cclxuXHRcdGNhdGNoIHsgfVxyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1x0XHRcclxuXHRcdGlmIChjaGFuZ2VzLmFsbG93RnJlZWZvcm1UZXh0KSBcclxuXHRcdFx0dGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCA9ICh0aGlzLmFsbG93RnJlZWZvcm1UZXh0LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykgPyBmYWxzZSA6IHRydWU7XHRcdFxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5KVxyXG5cdFx0XHR0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID0gKHRoaXMuc2hvd05vSXRlbXNGb3VuZERpc3BsYXkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSA/IGZhbHNlIDogdHJ1ZTtcdFx0XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuaXRlbXMpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPT09IDAgJiYgdGhpcy5zaG93Tm9JdGVtc0ZvdW5kRGlzcGxheSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdGlmICghdGhpcy5leHBhbmRlZCB8fCAhZS50YXJnZXQpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAoZS50YXJnZXQgPT09IHRoaXMuaW5wdXRSZWYpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAoU2xpY2tVdGlsc1NlcnZpY2UuY2hlY2tQYXJlbnRJZEV4aXN0cyg8SFRNTEVsZW1lbnQ+ZS50YXJnZXQsIFwic2xpY2stYXV0by1jb21wbGV0ZV9cIiArIHRoaXMudXVpZCkgPT09IGZhbHNlKSB7XHJcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJBVVRPX0NPTVBMRVRFX1dBSVRfRk9SX0lURU1TXCIpO1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCAmJiB0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0KVxyXG5cdFx0XHRcdHRoaXMub25GcmVlZm9ybVRleHRTZWxlY3QuZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uSXRlbUNsaWNrKGluZGV4KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oaW5kZXgpO1xyXG5cdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBrZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcblx0XHQvLyBhbHRcclxuXHRcdGlmIChldmVudC5rZXlDb2RlID09PSAxOClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHR0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5yZWxlYXNlKFwiQVVUT19DT01QTEVURV9XQUlUX0ZPUl9JVEVNU1wiKTtcclxuXHJcblx0XHQvLyBJZiB3ZSdyZSBqdXN0IHRhYmJpbmcgdGhyb3VnaCwgZG9uJ3QgZXZlbiBkbyBhbnl0aGluZ1xyXG5cdFx0aWYgKCF0aGlzLmxhc3RJbnB1dFZhbHVlICYmIChldmVudC5rZXlDb2RlID09PSA5IHx8IGV2ZW50LmtleUNvZGUgPT09IDEzKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblxyXG5cdFx0aWYgKHRoaXMubGFzdElucHV0VmFsdWUgIT09IHRoaXMuaW5wdXRSZWYudmFsdWUpIHtcclxuXHRcdFx0dGhpcy5sYXN0SW5wdXRWYWx1ZSA9IHRoaXMuaW5wdXRSZWYudmFsdWU7XHJcblx0XHRcdHRoaXMuZm9yY2VkQ29sbGFwc2UgPSBmYWxzZTtcclxuXHJcblx0XHRcdGlmICghdGhpcy5sYXN0SW5wdXRWYWx1ZSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cdFx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdFx0dGhpcy5kZWxheVRpbWVvdXQgPSBudWxsO1xyXG5cdFx0XHRpZiAodGhpcy5pbnB1dFJlZi52YWx1ZSA9PT0gJycpIHtcclxuXHRcdFx0XHR0aGlzLml0ZW1zID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5kZWxheVRpbWVvdXQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHRcdCh0aGlzLnNlbGVjdEZpcnN0ID09PSB0cnVlKSA/IHRoaXMuc2VsZWN0ZWRJbmRleCA9IDAgOiB0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuXHRcdFx0XHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMuaXRlbXMgPSBudWxsO1xyXG5cdFx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucmVmcmVzaEl0ZW1zKHRydWUpO1xyXG5cdFx0XHRcdH0sIHRoaXMuZGVsYXkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDkgfHwgZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcclxuXHRcdFx0aWYgKHRoaXMuZGVsYXlUaW1lb3V0ICYmIHRoaXMuc2VsZWN0Rmlyc3QpIHtcclxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVvdXQpO1xyXG5cdFx0XHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLml0ZW1zID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdEZpcnN0ID09PSB0cnVlICYmICF0aGlzLmZvcmNlZENvbGxhcHNlKSB7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnJlZnJlc2hJdGVtcyhmYWxzZSk7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIXRoaXMuaXRlbXMgJiYgIXRoaXMuaW5wdXRSZWYudmFsdWUgJiYgdGhpcy5vblNlbGVjdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm9uU2VsZWN0LmVtaXQobnVsbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCAmJiB0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0KSBcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0LmVtaXQodGhpcy5pbnB1dFJlZi52YWx1ZSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuYWxsb3dGcmVlZm9ybVRleHQgJiYgdGhpcy5vbkZyZWVmb3JtVGV4dFNlbGVjdCkgXHJcblx0XHRcdFx0XHRcdHRoaXMub25GcmVlZm9ybVRleHRTZWxlY3QuZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdFx0XHRpZiAoIXRoaXMuaXRlbXMgJiYgIXRoaXMuaW5wdXRSZWYudmFsdWUgJiYgdGhpcy5vblNlbGVjdCkge1xyXG5cdFx0XHRcdFx0dGhpcy5vblNlbGVjdC5lbWl0KG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLmV4cGFuZGVkICYmICF0aGlzLmZvcmNlZENvbGxhcHNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCAmJiB0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0KSB7XHJcblx0XHRcdFx0XHRcdHRoaXMub25GcmVlZm9ybVRleHRTZWxlY3QuZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRXNjXHJcblx0XHRpZiAoZXZlbnQud2hpY2ggPT09IDI3KSB7XHJcblx0XHRcdHRoaXMuZm9yY2VkQ29sbGFwc2UgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQXJyb3d1cFxyXG5cdFx0aWYgKGV2ZW50LndoaWNoID09PSAzOCkge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gMClcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgtLTtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBcnJvd2Rvd25cclxuXHRcdGlmIChldmVudC53aGljaCA9PT0gNDApIHtcclxuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPT09IG51bGwgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSB1bmRlZmluZWQpXHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHR0aGlzLmV4cGFuZCgpO1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA8IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSlcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgrKztcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIHJlZ2lzdGVycyAnZm4nIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGNoYW5nZXMgYXJlIG1hZGVcclxuXHQvLyB0aGlzIGlzIGhvdyB3ZSBlbWl0IHRoZSBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm1cclxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHQvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcclxuXHRyZWdpc3Rlck9uVG91Y2hlZCgpIHsgfVxyXG5cclxuXHRhc3luYyBzZWxlY3RJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuXHRcdGlmIChpbmRleCA8IDAgfHwgIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XHJcblx0XHRcdGlmICh0aGlzLmRpc3BsYXlUZXh0RmllbGROYW1lKSB7XHJcblx0XHRcdFx0Y29uc3QgdGV4dCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldERlZXBPYmplY3QodGhpcy5zZWxlY3RlZEl0ZW0sIHRoaXMuZGlzcGxheVRleHRGaWVsZE5hbWUpO1xyXG5cdFx0XHRcdGlmICh0ZXh0KSB7XHJcblx0XHRcdFx0XHR0aGlzLmlucHV0UmVmLnZhbHVlID0gdGV4dDtcclxuXHRcdFx0XHRcdHRoaXMubGFzdElucHV0VmFsdWUgPSB0aGlzLmlucHV0UmVmLnZhbHVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuXHRcdGlmICh0aGlzLm9uU2VsZWN0KVxyXG5cdFx0XHR0aGlzLm9uU2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG5cdFx0Ly8gQ2FsbCB0byB1cGRhdGUgdGhlIG1vZGVsIGZvciB0aGUgdGV4dGJveFxyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdGxldCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcclxuXHRcdGV2dC5pbml0RXZlbnQoJ2lucHV0JywgdHJ1ZSwgZmFsc2UpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5kaXNwYXRjaEV2ZW50KGV2dCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGV4cGFuZCgpIHtcclxuXHRcdHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHRcdC8vIElmIHRoZSBmbGFnIHRvIHNob3cgaXRlbXMgaXMgZmFsc2UsIGRvbid0IGRpc3BsYXkgXCJMb2FkaW5nLi4uXCJcclxuXHRcdGlmICh0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID09PSBmYWxzZSAmJiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApKSB7XHJcblx0XHRcdHRoaXMuc2hvd0F1dG9Db21wbGV0ZSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmF1dG9Db21wbGV0ZVZpc2libGl0eSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnNob3dBdXRvQ29tcGxldGUgPSB0cnVlO1xyXG5cdFx0dGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLmF1dG9Db21wbGV0ZVZpc2libGl0eSA9IHRydWU7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0XHR0aGlzLmlucHV0UmVmLmNsYXNzTGlzdC5hZGQoXCJzbGljay1hdXRvLWNvbXBsZXRlX3JlbW92ZS1ib3R0b20tbGVmdC1ib3JkZXItcmFkaXVzXCIpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5jbGFzc0xpc3QuYWRkKFwic2xpY2stYXV0by1jb21wbGV0ZV9yZW1vdmUtYm90dG9tLXJpZ2h0LWJvcmRlci1yYWRpdXNcIik7XHJcblxyXG5cdFx0Ly8gVGhpcyBpcyBuZWNlc3NhcnksIG90aGVyd2lzZSBgdGhpc2AgaW4gdGhlIHJlcG9zaXRpb24gZnVuY3Rpb24gd2lsbCBiZSB3aW5kb3dcclxuXHRcdC8vIGFuZCBub3QgdGhlIGNvbXBvbmVudC5cclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb2xsYXBzZSgpIHtcclxuXHRcdGxldCBpbnB1dEdyb3VwUHJlcGVuZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldENsb3Nlc3RTaWJsaW5nKHRoaXMuaW5wdXRSZWYsIFwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiKTtcclxuXHRcdGlmIChpbnB1dEdyb3VwUHJlcGVuZClcclxuXHRcdFx0aW5wdXRHcm91cFByZXBlbmQuY2xhc3NMaXN0LnJlbW92ZShcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1sZWZ0LWJvcmRlci1yYWRpdXNcIik7XHJcblxyXG5cdFx0dGhpcy5pbnB1dFJlZi5jbGFzc0xpc3QucmVtb3ZlKFwic2xpY2stYXV0by1jb21wbGV0ZV9yZW1vdmUtYm90dG9tLWxlZnQtYm9yZGVyLXJhZGl1c1wiKTtcclxuXHRcdHRoaXMuaW5wdXRSZWYuY2xhc3NMaXN0LnJlbW92ZShcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1yaWdodC1ib3JkZXItcmFkaXVzXCIpO1xyXG5cclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlVmlzaWJsaXR5ID0gZmFsc2U7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHR0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHJcblx0XHQvLyBTaW5jZSBhbmd1bGFyIGhhcyBubyB3YXkgdG8gdXNlIHRoZSB0aGlyZCBwYXJhbWV0ZXIsIEknbSBkb2luZyB0aGlzIGluIHJhdyBqc1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuZm5Eb2N1bWVudENsaWNrLCB0cnVlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVwb3NpdGlvbigpIHtcclxuXHRcdGxldCByZWN0ID0gdGhpcy5pbnB1dFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdGxldCBpbnB1dExlZnQgPSByZWN0LmxlZnQ7XHJcblx0XHRsZXQgaW5wdXRUb3AgPSByZWN0LnRvcDtcclxuXHRcdGxldCBpbnB1dEhlaWdodCA9IHRoaXMuaW5wdXRSZWYub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0bGV0IGlucHV0V2lkdGggPSB0aGlzLmlucHV0UmVmLm9mZnNldFdpZHRoO1xyXG5cclxuXHRcdGxldCBpbnB1dEdyb3VwUHJlcGVuZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldENsb3Nlc3RTaWJsaW5nKHRoaXMuaW5wdXRSZWYsIFwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiKTtcclxuXHRcdGlmIChpbnB1dEdyb3VwUHJlcGVuZCkge1xyXG5cdFx0XHRpbnB1dExlZnQgPSBpbnB1dEdyb3VwUHJlcGVuZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xyXG5cdFx0XHRpbnB1dFdpZHRoID0gaW5wdXRXaWR0aCArPSBpbnB1dEdyb3VwUHJlcGVuZC5vZmZzZXRXaWR0aDtcclxuXHRcdFx0aW5wdXRHcm91cFByZXBlbmQuY2xhc3NMaXN0LmFkZChcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1sZWZ0LWJvcmRlci1yYWRpdXNcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5sZWZ0ID0gaW5wdXRMZWZ0ICsgXCJweFwiO1xyXG5cdFx0dGhpcy50b3AgPSAoaW5wdXRUb3AgKyBpbnB1dEhlaWdodCArIDEpICsgXCJweFwiO1xyXG5cdFx0aWYgKHRoaXMubGlzdFdpZHRoID09PSAnMTAwJScpXHJcblx0XHRcdHRoaXMud2lkdGggPSBpbnB1dFdpZHRoICsgXCJweFwiO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy5saXN0V2lkdGggPT09ICdhdXRvJylcclxuXHRcdFx0dGhpcy53aWR0aCA9IFwiYXV0b1wiO1xyXG5cdFx0ZWxzZVxyXG5cdFx0XHR0aGlzLndpZHRoID0gdGhpcy5saXN0V2lkdGg7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHJlZnJlc2hJdGVtcyhleHBhbmQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihhc3luYyAocmVzb2x2ZSkgPT4ge1xyXG5cdFx0XHRhd2FpdCB0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5sb2NrKFwiQVVUT19DT01QTEVURV9XQUlUX0ZPUl9JVEVNU1wiKTtcclxuXHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLndhaXRGb3JJdGVtc0ludGVydmFsKTtcclxuXHRcdFx0dGhpcy5pdGVtcyA9IG51bGw7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMub25SZWZyZXNoIHx8ICF0aGlzLmlucHV0UmVmLnZhbHVlKSB7XHJcblx0XHRcdFx0dGhpcy5pdGVtcyA9IFtdO1xyXG5cdFx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJBVVRPX0NPTVBMRVRFX1dBSVRfRk9SX0lURU1TXCIpO1xyXG5cdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdGlmICh0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID09PSBmYWxzZSlcclxuXHRcdFx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdFx0XHQvLyBDYWxsIHRoZSB1c2VycyByZWZyZXNoIG1ldGhvZCB0byBnZXQgYSBmcmVzaCBsaXN0IG9mIGl0ZW1zXHJcblx0XHRcdFx0dGhpcy5vblJlZnJlc2guZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHJcblx0XHRcdFx0Ly8gV2FpdCBmb3IgdGhlIGxpc3QgdG8gcmVmcmVzaFxyXG5cdFx0XHRcdGxldCB0aW1lb3V0Q2hlY2sgPSAxMDAwO1xyXG5cdFx0XHRcdHRoaXMud2FpdEZvckl0ZW1zSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvLyBJZiB3ZSd2ZSB0aW1lZG91dCwgZ290IGEgcmVzcG9uc2Ugb3IgdGhleSBzdGFydGVkIHR5cGluZyBzb21ldGhpbmcgZWxzZSwgc3RvcCB0aGUgaW50ZXJ2YWxcclxuXHRcdFx0XHRcdGlmICh0aW1lb3V0Q2hlY2sgPD0gMCB8fCB0aGlzLml0ZW1zKSB7XHJcblx0XHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHRcdFx0XHRcdGlmICh0aW1lb3V0Q2hlY2sgPD0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgbGlzdCBpbiBhdXRvIGNvbXBsZXRlXCIpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaXRlbXMgPSBbXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5zaG93Tm9JdGVtc0ZvdW5kRGlzcGxheSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGlmIChleHBhbmQpXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UucmVsZWFzZShcIkFVVE9fQ09NUExFVEVfV0FJVF9GT1JfSVRFTVNcIik7XHJcblx0XHRcdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR0aW1lb3V0Q2hlY2stLTtcclxuXHRcdFx0XHR9LCAxMDApO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcbn0iLCI8ZGl2ICNhdXRvQ29tcGxldGVSZWYgaWQ9XCJzbGljay1hdXRvLWNvbXBsZXRlX3t7dXVpZH19XCIgY2xhc3M9J3NsaWNrLWF1dG8tY29tcGxldGUgZHJvcGRvd24tbWVudScgW3N0eWxlLndpZHRoXT1cIndpZHRoXCIgW3N0eWxlLm1pbldpZHRoXT1cIndpZHRoXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCIgW3N0eWxlLm9wYWNpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICcxJyA6ICcwJ1wiIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImxpc3RIZWlnaHRcIiBbc3R5bGUubGVmdF09XCJsZWZ0XCIgW3N0eWxlLnRvcF09XCJ0b3BcIj5cclxuXHQ8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIHN0eWxlPVwiZm9udC1zaXplOiAuOHJlbVwiIGNsYXNzPVwibWwtM1wiPkxvYWRpbmcuLi48L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbXM/Lmxlbmd0aCA9PT0gMFwiIHN0eWxlPVwiZm9udC1zaXplOiAuOHJlbVwiIGNsYXNzPVwibWwtM1wiPlxyXG5cdFx0Tm8gaXRlbXMgZm91bmRcclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbXM/Lmxlbmd0aCA+IDBcIj5cclxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpbmRleCA9IGluZGV4O1wiIChjbGljayk9XCJvbkl0ZW1DbGljayhpbmRleClcIiBbY2xhc3MuY2FyZC1oZWFkZXJdPVwic2VsZWN0ZWRJbmRleCA9PT0gaW5kZXhcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RJdGVtVGVtcGxhdGVSZWYudGVtcGxhdGUsIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpbmRleDogaW5kZXggfVwiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -54,7 +54,29 @@ export class SlickCalendarComponent {
54
54
  if (moment(obj).isValid()) {
55
55
  this.selectedDate = obj;
56
56
  this.visibleDate = obj;
57
- this.recalc();
57
+ if (this.months) {
58
+ // Say we have 3 months showing and they select a date on the 3rd month
59
+ // Recalc will re-draw the 3rd month as the first month instead of just
60
+ // higlighting the date on the 3rd month. Highlight instead.
61
+ let dateFound = false;
62
+ for (let month of this.months) {
63
+ for (let week of month.weeks) {
64
+ for (let day of week.days) {
65
+ day.isSelected = false;
66
+ if (day.isInCurrentMonth === true && moment(day.date).isSame(this.selectedDate, "date")) {
67
+ day.isSelected = true;
68
+ dateFound = true;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ // But if they've
74
+ if (dateFound === false)
75
+ this.recalc();
76
+ }
77
+ else {
78
+ this.recalc();
79
+ }
58
80
  }
59
81
  else {
60
82
  this.selectedDate = null;
@@ -243,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
243
265
  type: HostListener,
244
266
  args: ['click', ['$event', '$event.target']]
245
267
  }] } });
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stY2FsZW5kYXIvc2xpY2stY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stY2FsZW5kYXIvc2xpY2stY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQW9DLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFHNUIsTUFBTSxRQUFRO0NBTWI7QUFFRCxNQUFNLFNBQVM7Q0FFZDtBQUVELE1BQU0sVUFBVTtDQUdmO0FBWUQsTUFBTSxPQUFPLHNCQUFzQjtJQTBCbEM7UUF6QlMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTVCLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFFLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUQsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1RCxrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzdELHNCQUFpQixH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QUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuXHJcbmNsYXNzIERheU1vZGVsIHtcclxuXHRkYXRlOiBEYXRlO1xyXG5cdGlzU2VsZWN0ZWQ6IGJvb2xlYW47XHJcblx0aXNUb2RheTogYm9vbGVhbjtcclxuXHRpc0luQ3VycmVudE1vbnRoOiBib29sZWFuO1xyXG5cdGlzQWN0aXZlOiBib29sZWFuO1xyXG59XHJcblxyXG5jbGFzcyBXZWVrTW9kZWwge1xyXG5cdGRheXM6IERheU1vZGVsW107XHJcbn1cclxuXHJcbmNsYXNzIE1vbnRoTW9kZWwge1xyXG5cdG1vbnRoRGlzcGxheTogc3RyaW5nO1xyXG5cdHdlZWtzOiBXZWVrTW9kZWxbXVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3NsaWNrLWNhbGVuZGFyJyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNsaWNrQ2FsZW5kYXJDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZSxcclxuXHRcdH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0NhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHRASW5wdXQoKSBjb25kZW5zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoKSBtb250aHNUb1Nob3c6IG51bWJlciA9IDE7XHJcblx0QElucHV0KCkgaW5hY3RpdmVEYXRlczogRGF0ZVtdID0gW107XHJcblx0QElucHV0KCkgaW5hY3RpdmVXZWVrZW5kczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHNob3dEYXlzTm90SW5Nb250aDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIG11bHRpU2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgbXVsdGlTZWxlY3REYXRlczogRGF0ZVtdO1xyXG5cdEBPdXRwdXQoKSBtdWx0aVNlbGVjdERhdGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG5cdEBPdXRwdXQoKSBvbkRhdGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHRAT3V0cHV0KCkgb25EYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblx0QE91dHB1dCgpIG9uTW9udGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHRAT3V0cHV0KCkgb25NdWx0aURhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10+KCk7XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnLCAnJGV2ZW50LnRhcmdldCddKVxyXG5cdG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcblx0XHRpZiAoIXRhcmdldEVsZW1lbnQgfHwgU2xpY2tVdGlsc1NlcnZpY2UuY2hlY2tQYXJlbnRDbGFzc0V4aXN0cyh0YXJnZXRFbGVtZW50LCBcInNsaWNrQ2FsZW5kYXJfbW9udGhcIikpXHJcblx0XHRcdHJldHVybjtcclxuXHR9XHJcblxyXG5cdHV1aWQ6IHN0cmluZztcclxuXHRzZWxlY3RlZERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cdHZpc2libGVEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuXHRtb250aHM6IE1vbnRoTW9kZWxbXTtcclxuXHRtaW5XaWR0aDogbnVtYmVyO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHRoaXMudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5yZWNhbGMoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGlmIChjaGFuZ2VzLmNvbmRlbnNlZClcclxuXHRcdFx0dGhpcy5jb25kZW5zZWQgPSAodGhpcy5jb25kZW5zZWQgfHwgJ2ZhbHNlJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuaW5hY3RpdmVXZWVrZW5kcylcclxuXHRcdFx0dGhpcy5pbmFjdGl2ZVdlZWtlbmRzID0gKHRoaXMuaW5hY3RpdmVXZWVrZW5kcyB8fCAndHJ1ZScpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogdHJ1ZTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy5zaG93RGF5c05vdEluTW9udGgpXHJcblx0XHRcdHRoaXMuc2hvd0RheXNOb3RJbk1vbnRoID0gKHRoaXMuc2hvd0RheXNOb3RJbk1vbnRoIHx8ICdmYWxzZScpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuXHRcdGlmIChjaGFuZ2VzLm11bHRpU2VsZWN0KVxyXG5cdFx0XHR0aGlzLm11bHRpU2VsZWN0ID0gKHRoaXMubXVsdGlTZWxlY3QgfHwgJ2ZhbHNlJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XHJcblxyXG5cdFx0Y29uc3Qgd2lkdGhQZXJDYWxlbmRhciA9ICh0aGlzLmNvbmRlbnNlZCkgPyAxODAgOiAyNTA7XHJcblx0XHR0aGlzLm1pbldpZHRoID0gdGhpcy5tb250aHNUb1Nob3cgKiB3aWR0aFBlckNhbGVuZGFyO1xyXG5cclxuXHRcdHRoaXMucmVjYWxjKCk7XHJcblxyXG5cdH1cclxuXHJcblx0cHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuXHQvLyB0aGlzIGlzIHRoZSBpbml0aWFsIHZhbHVlIHNldCB0byB0aGUgY29tcG9uZW50XHJcblx0d3JpdGVWYWx1ZShvYmo6IGFueSkge1xyXG5cdFx0aWYgKG9iaikge1xyXG5cdFx0XHRpZiAobW9tZW50KG9iaikuaXNWYWxpZCgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSBvYmo7XHJcblx0XHRcdFx0dGhpcy52aXNpYmxlRGF0ZSA9IG9iajtcclxuXHRcdFx0XHR0aGlzLnJlY2FsYygpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdGlmICghdGhpcy5zZWxlY3RlZERhdGUgJiYgdGhpcy5vbkRhdGVDaGFuZ2UpXHJcblx0XHRcdFx0dGhpcy5vbkRhdGVDaGFuZ2UuZW1pdChudWxsKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gY2hhbmdlcyBhcmUgbWFkZVxyXG5cdC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxyXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxyXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKCkgeyB9XHJcblxyXG5cdHByZXZNb250aCgpIHtcclxuXHRcdHRoaXMudmlzaWJsZURhdGUgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuc3VidHJhY3QodGhpcy5tb250aHNUb1Nob3csIFwibW9udGhzXCIpLnRvRGF0ZSgpO1xyXG5cdFx0dGhpcy5yZWNhbGMoKTtcclxuXHJcblx0XHRpZiAodGhpcy5vbk1vbnRoQ2hhbmdlKSB7XHJcblx0XHRcdGxldCBtb250aFN0YXJ0ID0gbW9tZW50KHRoaXMudmlzaWJsZURhdGUpLnN0YXJ0T2YoXCJtb250aFwiKTtcclxuXHRcdFx0aWYgKHRoaXMuc2hvd0RheXNOb3RJbk1vbnRoID09PSB0cnVlKVxyXG5cdFx0XHRcdG1vbnRoU3RhcnQgPSBtb250aFN0YXJ0LnN0YXJ0T2YoXCJ3ZWVrXCIpO1xyXG5cclxuXHRcdFx0dGhpcy5vbk1vbnRoQ2hhbmdlLmVtaXQobW9udGhTdGFydC50b0RhdGUoKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZXh0TW9udGgoKSB7XHJcblx0XHR0aGlzLnZpc2libGVEYXRlID0gbW9tZW50KHRoaXMudmlzaWJsZURhdGUpLmFkZCh0aGlzLm1vbnRoc1RvU2hvdywgXCJtb250aHNcIikudG9EYXRlKCk7XHJcblx0XHR0aGlzLnJlY2FsYygpO1xyXG5cclxuXHRcdGlmICh0aGlzLm9uTW9udGhDaGFuZ2UpIHtcclxuXHRcdFx0bGV0IG1vbnRoU3RhcnQgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuc3RhcnRPZihcIm1vbnRoXCIpO1xyXG5cdFx0XHRpZiAodGhpcy5zaG93RGF5c05vdEluTW9udGggPT09IHRydWUpXHJcblx0XHRcdFx0bW9udGhTdGFydCA9IG1vbnRoU3RhcnQuc3RhcnRPZihcIndlZWtcIik7XHJcblxyXG5cdFx0XHR0aGlzLm9uTW9udGhDaGFuZ2UuZW1pdChtb250aFN0YXJ0LnRvRGF0ZSgpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHNlbGVjdE1vbnRoKG1vbnRoSWR4KSB7XHJcblx0XHRjb25zdCBtb250aCA9IHRoaXMubW9udGhzW21vbnRoSWR4XTtcclxuXHRcdGxldCB2aXNpYmxlRGF0ZSA9IG1vbWVudCh0aGlzLnZpc2libGVEYXRlKTtcclxuXHRcdGxldCBkYXRlU3RyaW5nID0gbW9udGggKyB2aXNpYmxlRGF0ZS5mb3JtYXQoXCIgMSwgWVlZWVwiKTtcclxuXHJcblx0XHR0aGlzLnZpc2libGVEYXRlID0gbW9tZW50KGRhdGVTdHJpbmcsIFwiTU1NTSBERCwgWVlZWVwiKS50b0RhdGUoKTtcclxuXHRcdHRoaXMucmVjYWxjKCk7XHJcblx0fVxyXG5cclxuXHRzZXREYXRlKGRheU1vZGVsOiBEYXlNb2RlbCkge1xyXG5cdFx0aWYgKHRoaXMuc2hvd0RheXNOb3RJbk1vbnRoID09PSBmYWxzZSAmJiBkYXlNb2RlbC5pc0luQ3VycmVudE1vbnRoID09PSBmYWxzZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGlmIChkYXlNb2RlbC5pc0FjdGl2ZSA9PT0gZmFsc2UpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAodGhpcy5tdWx0aVNlbGVjdCA9PT0gZmFsc2UpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSBkYXlNb2RlbC5kYXRlO1xyXG5cdFx0XHR0aGlzLnZpc2libGVEYXRlID0gZGF5TW9kZWwuZGF0ZTtcclxuXHJcblx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLm9uRGF0ZUNoYW5nZSlcclxuXHRcdFx0XHR0aGlzLm9uRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLm9uRGF0ZVNlbGVjdClcclxuXHRcdFx0XHR0aGlzLm9uRGF0ZVNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHJcblx0XHRcdC8vIFNheSB3ZSBoYXZlIDMgbW9udGhzIHNob3dpbmcgYW5kIHRoZXkgc2VsZWN0IGEgZGF0ZSBvbiB0aGUgM3JkIG1vbnRoXHJcblx0XHRcdC8vIFJlY2FsYyB3aWxsIHJlLWRyYXcgdGhlIDNyZCBtb250aCBhcyB0aGUgZmlyc3QgbW9udGggaW5zdGVhZCBvZiBqdXN0IFxyXG5cdFx0XHQvLyBoaWdsaWdodGluZyB0aGUgZGF0ZSBvbiB0aGUgM3JkIG1vbnRoLiAgSGlnaGxpZ2h0IGluc3RlYWQuXHJcblx0XHRcdGxldCBkYXRlRm91bmQgPSBmYWxzZTtcclxuXHRcdFx0Zm9yIChsZXQgbW9udGggb2YgdGhpcy5tb250aHMpIHtcclxuXHRcdFx0XHRmb3IgKGxldCB3ZWVrIG9mIG1vbnRoLndlZWtzKSB7XHJcblx0XHRcdFx0XHRmb3IgKGxldCBkYXkgb2Ygd2Vlay5kYXlzKSB7XHJcblx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGlmIChkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gdHJ1ZSAmJiBtb21lbnQoZGF5LmRhdGUpLmlzU2FtZSh0aGlzLnNlbGVjdGVkRGF0ZSwgXCJkYXRlXCIpKSB7XHJcblx0XHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdGRhdGVGb3VuZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEJ1dCBpZiB0aGV5J3ZlIFxyXG5cdFx0XHRpZiAoZGF0ZUZvdW5kID09PSBmYWxzZSlcclxuXHRcdFx0XHR0aGlzLnJlY2FsYygpO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdC8vIFRoaXMgd2lsbCBiZSByZXZlcnNlZCBzaW5jZSB3ZSBoYXZlbid0IHJlLWNhbGNlZCB0aGUgZGF0ZXMgeWV0LlxyXG5cdFx0XHRpZiAoIWRheU1vZGVsLmlzU2VsZWN0ZWQpXHJcblx0XHRcdFx0dGhpcy5tdWx0aVNlbGVjdERhdGVzLnB1c2goZGF5TW9kZWwuZGF0ZSk7XHJcblx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdGxldCBkYXRlSWR4ID0gdGhpcy5tdWx0aVNlbGVjdERhdGVzLmZpbmRJbmRleChkID0+IG1vbWVudChkKS5zdGFydE9mKFwiZGF0ZVwiKS5pc1NhbWUobW9tZW50KGRheU1vZGVsLmRhdGUpLnN0YXJ0T2YoXCJkYXRlXCIpKSk7XHJcblx0XHRcdFx0dGhpcy5tdWx0aVNlbGVjdERhdGVzLnNwbGljZShkYXRlSWR4LCAxKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMub25NdWx0aURhdGVDaGFuZ2UpXHJcblx0XHRcdFx0dGhpcy5vbk11bHRpRGF0ZUNoYW5nZS5lbWl0KHRoaXMubXVsdGlTZWxlY3REYXRlcylcclxuXHJcblx0XHRcdGZvciAobGV0IG1vbnRoIG9mIHRoaXMubW9udGhzKSB7XHJcblx0XHRcdFx0Zm9yIChsZXQgd2VlayBvZiBtb250aC53ZWVrcykge1xyXG5cdFx0XHRcdFx0Zm9yIChsZXQgZGF5IG9mIHdlZWsuZGF5cykge1xyXG5cdFx0XHRcdFx0XHRkYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRpZiAoZGF5LmlzSW5DdXJyZW50TW9udGggPT09IHRydWUgJiYgKHRoaXMubXVsdGlTZWxlY3REYXRlcy5maW5kSW5kZXgoeCA9PiBtb21lbnQoeCkuaXNTYW1lKG1vbWVudChkYXkuZGF0ZSksIFwiZGF0ZVwiKSkgPj0gMCkpIHtcclxuXHRcdFx0XHRcdFx0XHRkYXkuaXNTZWxlY3RlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHJlY2FsYygpIHtcclxuXHRcdHRoaXMubW9udGhzID0gW107XHJcblxyXG5cdFx0Zm9yIChsZXQgbW9udGhDb3VudCA9IDA7IG1vbnRoQ291bnQgPCB0aGlzLm1vbnRoc1RvU2hvdzsgbW9udGhDb3VudCsrKSB7XHJcblx0XHRcdGxldCBjdXJyZW50RGF0ZSA9IG1vbWVudCh0aGlzLnZpc2libGVEYXRlKS5zdGFydE9mKFwibW9udGhcIik7XHJcblx0XHRcdGN1cnJlbnREYXRlID0gbW9tZW50KGN1cnJlbnREYXRlKS5hZGQobW9udGhDb3VudCwgXCJtb250aHNcIilcclxuXHRcdFx0Y3VycmVudERhdGUgPSBtb21lbnQoY3VycmVudERhdGUpLnN0YXJ0T2YoXCJ3ZWVrXCIpLnN0YXJ0T2YoXCJkYXRlXCIpO1xyXG5cclxuXHRcdFx0Y29uc3QgbW9udGggPSBuZXcgTW9udGhNb2RlbCgpO1xyXG5cdFx0XHRtb250aC53ZWVrcyA9IFtdO1xyXG5cclxuXHRcdFx0Ly8gQ3VycmVudERhdGUgaXMgbW9zdCBsaWtlbHkgZ29pbmcgdG8gYmUgdGhlIG1vbnRoIGJlZm9yZSwgc28gYWRkIDE1IGRheXMgdG8gZ2V0IHRvIHRoZSBtaWRkbGUgb2YgdGhlIGN1cnJlbnQgbW9udGhcclxuXHRcdFx0Y29uc3QgbW9udGhUb0Rpc3BsYXkgPSBtb21lbnQoY3VycmVudERhdGUpLmFkZCgxNSwgXCJkYXlzXCIpO1xyXG5cdFx0XHRtb250aC5tb250aERpc3BsYXkgPSAodGhpcy5jb25kZW5zZWQgPT09IHRydWUpID8gbW9udGhUb0Rpc3BsYXkuZm9ybWF0KFwiTU1NIFlZWVlcIikgOiBtb250aFRvRGlzcGxheS5mb3JtYXQoXCJNTU0gWVlZWVwiKTtcclxuXHJcblx0XHRcdGZvciAobGV0IHdlZWtDb3VudCA9IDA7IHdlZWtDb3VudCA8IDY7IHdlZWtDb3VudCsrKSB7XHJcblx0XHRcdFx0Y29uc3Qgd2VlayA9IG5ldyBXZWVrTW9kZWwoKTtcclxuXHRcdFx0XHR3ZWVrLmRheXMgPSBbXTtcclxuXHJcblx0XHRcdFx0Zm9yIChsZXQgZGF5Q291bnQgPSAwOyBkYXlDb3VudCA8IDc7IGRheUNvdW50KyspIHtcclxuXHRcdFx0XHRcdGNvbnN0IGRheSA9IG5ldyBEYXlNb2RlbCgpO1xyXG5cdFx0XHRcdFx0ZGF5LmRhdGUgPSBjdXJyZW50RGF0ZS50b0RhdGUoKTtcclxuXHRcdFx0XHRcdGRheS5pc1RvZGF5ID0gbW9tZW50KCkuaXNTYW1lKGN1cnJlbnREYXRlLCBcImRhdGVcIik7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5tdWx0aVNlbGVjdCAmJiB0aGlzLm11bHRpU2VsZWN0RGF0ZXMpXHJcblx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gKHRoaXMubXVsdGlTZWxlY3REYXRlcy5maW5kSW5kZXgoeCA9PiBtb21lbnQoeCkuaXNTYW1lKG1vbWVudChkYXkuZGF0ZSksIFwiZGF0ZVwiKSkgPj0gMCk7XHJcblx0XHRcdFx0XHRlbHNlXHJcblx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKS5pc1NhbWUoY3VycmVudERhdGUsIFwiZGF0ZVwiKTtcclxuXHJcblx0XHRcdFx0XHRkYXkuaXNJbkN1cnJlbnRNb250aCA9IChjdXJyZW50RGF0ZS5tb250aCgpID09PSBtb250aFRvRGlzcGxheS5tb250aCgpKTtcclxuXHJcblx0XHRcdFx0XHRkYXkuaXNBY3RpdmUgPSB0cnVlO1xyXG5cclxuXHRcdFx0XHRcdGlmICh0aGlzLmluYWN0aXZlV2Vla2VuZHMgJiYgY3VycmVudERhdGUuZGF5KCkgPT09IDYgfHwgY3VycmVudERhdGUuZGF5KCkgPT09IDcpXHJcblx0XHRcdFx0XHRcdGRheS5pc0FjdGl2ZSA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdGlmICh0aGlzLmluYWN0aXZlRGF0ZXMgJiYgdGhpcy5pbmFjdGl2ZURhdGVzLmZpbmRJbmRleCh4ID0+IG1vbWVudCh4KS5pc1NhbWUoY3VycmVudERhdGUsIFwiZGF0ZVwiKSkgPj0gMClcclxuXHRcdFx0XHRcdFx0ZGF5LmlzQWN0aXZlID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2hvd0RheXNOb3RJbk1vbnRoID09PSBmYWxzZSAmJiBkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdGRheS5pc0FjdGl2ZSA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdC8vIEl0J3MgcG9zc2libGUgZm9yIHRoZSBkYXkgdG8gYmUgaW4gdGhlIG1vbnRoIGRpc3BsYXksIGJ1dCBoaWRkZW4sIGJ1dCBhY3RpdmVcclxuXHRcdFx0XHRcdGlmIChkYXkuaXNBY3RpdmUgPT09IGZhbHNlKVxyXG5cdFx0XHRcdFx0XHRkYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdGlmIChkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0d2Vlay5kYXlzLnB1c2goZGF5KTtcclxuXHJcblx0XHRcdFx0XHRjdXJyZW50RGF0ZSA9IG1vbWVudChjdXJyZW50RGF0ZSkuYWRkKDEsIFwiZGF5c1wiKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdG1vbnRoLndlZWtzLnB1c2god2Vlayk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMubW9udGhzLnB1c2gobW9udGgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbn0iLCI8ZGl2IGNsYXNzPVwic2xpY2stY2FsZW5kYXIgZGVmYXVsdC13aWR0aCBjYXJkXCIgaWQ9XCJzbGljay1jYWxlbmRhcl97e3V1aWR9fVwiIFtzdHlsZS5taW5XaWR0aC5weF09XCJtaW5XaWR0aFwiIFtuZ0NsYXNzXT1cInsnc2xpY2stY2FsZW5kYXJfY29uZGVuc2VkJzogY29uZGVuc2VkID09PSB0cnVlLCAnc2xpY2stY2FsZW5kYXJfc2luZ2xlJzogbW9udGhzVG9TaG93ID09PSAxIH1cIj5cclxuXHQ8ZGl2IGNsYXNzPVwic2xpY2stY2FsZW5kYXJfcHJldi1tb250aFwiIChjbGljayk9XCJwcmV2TW9udGgoKVwiPjxpIGNsYXNzPVwiZmFyIGZhLWNoZXZyb24tbGVmdFwiPjwvaT48L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwic2xpY2stY2FsZW5kYXJfbmV4dC1tb250aFwiIChjbGljayk9XCJuZXh0TW9udGgoKVwiPjxpIGNsYXNzPVwiZmFyIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+PC9kaXY+XHJcblxyXG5cdDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWFyb3VuZCBwdC0yXCIgW25nQ2xhc3NdPVwieyAnbXgtMyc6IG1vbnRoc1RvU2hvdyA+IDEsICdteC0xJzogbW9udGhzVG9TaG93ID09PSAxIH1cIj5cclxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoc1wiIGNsYXNzPVwiZmxleC1maWxsIG14LTJcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjttYXgtd2lkdGg6IDIyMHB4O1wiPlxyXG5cclxuXHRcdFx0PHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtc20gdGFibGUtYm9yZGVybGVzc1wiIHN0eWxlPVwidGFibGUtbGF5b3V0OiBmaXhlZDsgXCI+XHJcblx0XHRcdFx0PHRoZWFkPlxyXG5cdFx0XHRcdFx0PHRyIGNsYXNzPVwic2xpY2stY2FsZW5kYXJfbW9udGgtZGlzcGxheVwiPlxyXG5cdFx0XHRcdFx0XHQ8dGQgY29sc3Bhbj1cIjdcIj48Yj57e21vbnRoLm1vbnRoRGlzcGxheX19PC9iPjwvdGQ+XHJcblx0XHRcdFx0XHQ8L3RyPlxyXG5cdFx0XHRcdFx0PHRyIGNsYXNzPVwic2xpY2stY2FsZW5kYXJfZGF5cy1vZi13ZWVrXCI+XHJcblx0XHRcdFx0XHRcdDx0ZD48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSBmYWxzZSc+U3VuPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlM8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5Nb248L3NwYW4+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gdHJ1ZSc+TTwvc3Bhbj48L3RkPlxyXG5cdFx0XHRcdFx0XHQ8dGQ+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gZmFsc2UnPlR1ZTwvc3Bhbj48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSB0cnVlJz5UPC9zcGFuPjwvdGQ+XHJcblx0XHRcdFx0XHRcdDx0ZD48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSBmYWxzZSc+V2VkPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlc8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5UaHU8L3NwYW4+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gdHJ1ZSc+VGg8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5Gcmk8L3NwYW4+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gdHJ1ZSc+Rjwvc3Bhbj48L3RkPlxyXG5cdFx0XHRcdFx0XHQ8dGQ+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gZmFsc2UnPlNhdDwvc3Bhbj48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSB0cnVlJz5TPC9zcGFuPjwvdGQ+XHJcblx0XHRcdFx0XHQ8L3RyPlxyXG5cdFx0XHRcdDwvdGhlYWQ+XHJcblxyXG5cdFx0XHRcdDx0Ym9keT5cclxuXHRcdFx0XHRcdDx0ciAqbmdGb3I9XCJsZXQgd2VlayBvZiBtb250aC53ZWVrc1wiPlxyXG5cdFx0XHRcdFx0XHQ8dGQgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrLmRheXNcIiAoY2xpY2spPVwic2V0RGF0ZShkYXkpXCIgY2xhc3M9XCJzbGljay1jYWxlbmRhcl9kYXRlXCIgW25nQ2xhc3NdPVwieyAnc2xpY2stY2FsZW5kYXJfaXMtdG9kYXknOiBkYXkuaXNUb2RheSwgJ2JnLXN1Y2Nlc3MgdGV4dC13aGl0ZSc6IGRheS5pc1NlbGVjdGVkLCAnc2xpY2stY2FsZW5kYXJfbm90X2luX21vbnRoJzogZGF5LmlzSW5DdXJyZW50TW9udGggPT09IGZhbHNlLCAnc2xpY2stY2FsZW5kYXJfaW5hY3RpdmUnOiBkYXkuaXNBY3RpdmUgPT09IGZhbHNlIH1cIj5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiAqbmdJZj1cInNob3dEYXlzTm90SW5Nb250aCA9PT0gdHJ1ZSB8fCAoc2hvd0RheXNOb3RJbk1vbnRoID09PSBmYWxzZSAmJiBkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gdHJ1ZSlcIj57e2RheS5kYXRlIHwgZGF0ZTonZCd9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiAqbmdJZj1cIm1vbnRoc1RvU2hvdyA+IDEgJiYgKHNob3dEYXlzTm90SW5Nb250aCA9PT0gZmFsc2UgJiYgZGF5LmlzSW5DdXJyZW50TW9udGggPT09IGZhbHNlKVwiPiZuYnNwOzwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHRcdDwvdHI+XHJcblx0XHRcdFx0PC90Ym9keT5cclxuXHRcdFx0PC90YWJsZT5cclxuXHJcblxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdDwvZGl2PlxyXG48L2Rpdj4iXX0=
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stY2FsZW5kYXIvc2xpY2stY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stY2FsZW5kYXIvc2xpY2stY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQW9DLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFHNUIsTUFBTSxRQUFRO0NBTWI7QUFFRCxNQUFNLFNBQVM7Q0FFZDtBQUVELE1BQU0sVUFBVTtDQUdmO0FBWUQsTUFBTSxPQUFPLHNCQUFzQjtJQTBCbEM7UUF6QlMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTVCLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFFLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUQsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1RCxrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzdELHNCQUFpQixH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WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLEVBQUM7WUFDckQsS0FBSyxFQUFFLElBQUk7U0FDWDtLQUFDLCtDQy9CSiw0a0ZBcUNNOzJGREpPLHNCQUFzQjtrQkFWbEMsU0FBUzsrQkFDQyxnQkFBZ0IsYUFFZjt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSx1QkFBdUIsRUFBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQUM7MEVBR00sU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUdQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja1V0aWxzU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay11dGlscy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuXHJcblxyXG5jbGFzcyBEYXlNb2RlbCB7XHJcblx0ZGF0ZTogRGF0ZTtcclxuXHRpc1NlbGVjdGVkOiBib29sZWFuO1xyXG5cdGlzVG9kYXk6IGJvb2xlYW47XHJcblx0aXNJbkN1cnJlbnRNb250aDogYm9vbGVhbjtcclxuXHRpc0FjdGl2ZTogYm9vbGVhbjtcclxufVxyXG5cclxuY2xhc3MgV2Vla01vZGVsIHtcclxuXHRkYXlzOiBEYXlNb2RlbFtdO1xyXG59XHJcblxyXG5jbGFzcyBNb250aE1vZGVsIHtcclxuXHRtb250aERpc3BsYXk6IHN0cmluZztcclxuXHR3ZWVrczogV2Vla01vZGVsW11cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay1jYWxlbmRhcicsXHJcblx0dGVtcGxhdGVVcmw6ICdzbGljay1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0NhbGVuZGFyQ29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblx0QElucHV0KCkgY29uZGVuc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgbW9udGhzVG9TaG93OiBudW1iZXIgPSAxO1xyXG5cdEBJbnB1dCgpIGluYWN0aXZlRGF0ZXM6IERhdGVbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGluYWN0aXZlV2Vla2VuZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoKSBzaG93RGF5c05vdEluTW9udGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoKSBtdWx0aVNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIG11bHRpU2VsZWN0RGF0ZXM6IERhdGVbXTtcclxuXHRAT3V0cHV0KCkgbXVsdGlTZWxlY3REYXRlc0NoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuXHRAT3V0cHV0KCkgb25EYXRlU2VsZWN0OiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblx0QE91dHB1dCgpIG9uRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cdEBPdXRwdXQoKSBvbk1vbnRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblx0QE91dHB1dCgpIG9uTXVsdGlEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG5cclxuXHRASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50JywgJyRldmVudC50YXJnZXQnXSlcclxuXHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0YXJnZXRFbGVtZW50IHx8IFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHModGFyZ2V0RWxlbWVudCwgXCJzbGlja0NhbGVuZGFyX21vbnRoXCIpKVxyXG5cdFx0XHRyZXR1cm47XHJcblx0fVxyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0c2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuXHR2aXNpYmxlRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblx0bW9udGhzOiBNb250aE1vZGVsW107XHJcblx0bWluV2lkdGg6IG51bWJlcjtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLnV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMucmVjYWxjKCk7XHJcblx0fVxyXG5cclxuXHRhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAoY2hhbmdlcy5jb25kZW5zZWQpXHJcblx0XHRcdHRoaXMuY29uZGVuc2VkID0gKHRoaXMuY29uZGVuc2VkIHx8ICdmYWxzZScpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuXHRcdGlmIChjaGFuZ2VzLmluYWN0aXZlV2Vla2VuZHMpXHJcblx0XHRcdHRoaXMuaW5hY3RpdmVXZWVrZW5kcyA9ICh0aGlzLmluYWN0aXZlV2Vla2VuZHMgfHwgJ3RydWUnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09ICdmYWxzZScgPyBmYWxzZSA6IHRydWU7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuc2hvd0RheXNOb3RJbk1vbnRoKVxyXG5cdFx0XHR0aGlzLnNob3dEYXlzTm90SW5Nb250aCA9ICh0aGlzLnNob3dEYXlzTm90SW5Nb250aCB8fCAnZmFsc2UnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy5tdWx0aVNlbGVjdClcclxuXHRcdFx0dGhpcy5tdWx0aVNlbGVjdCA9ICh0aGlzLm11bHRpU2VsZWN0IHx8ICdmYWxzZScpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuXHRcdGNvbnN0IHdpZHRoUGVyQ2FsZW5kYXIgPSAodGhpcy5jb25kZW5zZWQpID8gMTgwIDogMjUwO1xyXG5cdFx0dGhpcy5taW5XaWR0aCA9IHRoaXMubW9udGhzVG9TaG93ICogd2lkdGhQZXJDYWxlbmRhcjtcclxuXHJcblx0XHR0aGlzLnJlY2FsYygpO1xyXG5cclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdFx0aWYgKG1vbWVudChvYmopLmlzVmFsaWQoKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlID0gb2JqO1xyXG5cdFx0XHRcdHRoaXMudmlzaWJsZURhdGUgPSBvYmo7XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLm1vbnRocykge1xyXG5cclxuXHRcdFx0XHRcdC8vIFNheSB3ZSBoYXZlIDMgbW9udGhzIHNob3dpbmcgYW5kIHRoZXkgc2VsZWN0IGEgZGF0ZSBvbiB0aGUgM3JkIG1vbnRoXHJcblx0XHRcdFx0XHQvLyBSZWNhbGMgd2lsbCByZS1kcmF3IHRoZSAzcmQgbW9udGggYXMgdGhlIGZpcnN0IG1vbnRoIGluc3RlYWQgb2YganVzdCBcclxuXHRcdFx0XHRcdC8vIGhpZ2xpZ2h0aW5nIHRoZSBkYXRlIG9uIHRoZSAzcmQgbW9udGguICBIaWdobGlnaHQgaW5zdGVhZC5cclxuXHRcdFx0XHRcdGxldCBkYXRlRm91bmQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdGZvciAobGV0IG1vbnRoIG9mIHRoaXMubW9udGhzKSB7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IHdlZWsgb2YgbW9udGgud2Vla3MpIHtcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBkYXkgb2Ygd2Vlay5kYXlzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRkYXkuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGRheS5pc0luQ3VycmVudE1vbnRoID09PSB0cnVlICYmIG1vbWVudChkYXkuZGF0ZSkuaXNTYW1lKHRoaXMuc2VsZWN0ZWREYXRlLCBcImRhdGVcIikpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRlRm91bmQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIEJ1dCBpZiB0aGV5J3ZlIFxyXG5cdFx0XHRcdFx0aWYgKGRhdGVGb3VuZCA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdHRoaXMucmVjYWxjKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5yZWNhbGMoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0aWYgKCF0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLm9uRGF0ZUNoYW5nZSlcclxuXHRcdFx0XHR0aGlzLm9uRGF0ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZSA9IG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyByZWdpc3RlcnMgJ2ZuJyB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlXHJcblx0Ly8gdGhpcyBpcyBob3cgd2UgZW1pdCB0aGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXHJcblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG5cdH1cclxuXHJcblx0Ly8gbm90IHVzZWQsIHVzZWQgZm9yIHRvdWNoIGlucHV0XHJcblx0cmVnaXN0ZXJPblRvdWNoZWQoKSB7IH1cclxuXHJcblx0cHJldk1vbnRoKCkge1xyXG5cdFx0dGhpcy52aXNpYmxlRGF0ZSA9IG1vbWVudCh0aGlzLnZpc2libGVEYXRlKS5zdWJ0cmFjdCh0aGlzLm1vbnRoc1RvU2hvdywgXCJtb250aHNcIikudG9EYXRlKCk7XHJcblx0XHR0aGlzLnJlY2FsYygpO1xyXG5cclxuXHRcdGlmICh0aGlzLm9uTW9udGhDaGFuZ2UpIHtcclxuXHRcdFx0bGV0IG1vbnRoU3RhcnQgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuc3RhcnRPZihcIm1vbnRoXCIpO1xyXG5cdFx0XHRpZiAodGhpcy5zaG93RGF5c05vdEluTW9udGggPT09IHRydWUpXHJcblx0XHRcdFx0bW9udGhTdGFydCA9IG1vbnRoU3RhcnQuc3RhcnRPZihcIndlZWtcIik7XHJcblxyXG5cdFx0XHR0aGlzLm9uTW9udGhDaGFuZ2UuZW1pdChtb250aFN0YXJ0LnRvRGF0ZSgpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5leHRNb250aCgpIHtcclxuXHRcdHRoaXMudmlzaWJsZURhdGUgPSBtb21lbnQodGhpcy52aXNpYmxlRGF0ZSkuYWRkKHRoaXMubW9udGhzVG9TaG93LCBcIm1vbnRoc1wiKS50b0RhdGUoKTtcclxuXHRcdHRoaXMucmVjYWxjKCk7XHJcblxyXG5cdFx0aWYgKHRoaXMub25Nb250aENoYW5nZSkge1xyXG5cdFx0XHRsZXQgbW9udGhTdGFydCA9IG1vbWVudCh0aGlzLnZpc2libGVEYXRlKS5zdGFydE9mKFwibW9udGhcIik7XHJcblx0XHRcdGlmICh0aGlzLnNob3dEYXlzTm90SW5Nb250aCA9PT0gdHJ1ZSlcclxuXHRcdFx0XHRtb250aFN0YXJ0ID0gbW9udGhTdGFydC5zdGFydE9mKFwid2Vla1wiKTtcclxuXHJcblx0XHRcdHRoaXMub25Nb250aENoYW5nZS5lbWl0KG1vbnRoU3RhcnQudG9EYXRlKCkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2VsZWN0TW9udGgobW9udGhJZHgpIHtcclxuXHRcdGNvbnN0IG1vbnRoID0gdGhpcy5tb250aHNbbW9udGhJZHhdO1xyXG5cdFx0bGV0IHZpc2libGVEYXRlID0gbW9tZW50KHRoaXMudmlzaWJsZURhdGUpO1xyXG5cdFx0bGV0IGRhdGVTdHJpbmcgPSBtb250aCArIHZpc2libGVEYXRlLmZvcm1hdChcIiAxLCBZWVlZXCIpO1xyXG5cclxuXHRcdHRoaXMudmlzaWJsZURhdGUgPSBtb21lbnQoZGF0ZVN0cmluZywgXCJNTU1NIERELCBZWVlZXCIpLnRvRGF0ZSgpO1xyXG5cdFx0dGhpcy5yZWNhbGMoKTtcclxuXHR9XHJcblxyXG5cdHNldERhdGUoZGF5TW9kZWw6IERheU1vZGVsKSB7XHJcblx0XHRpZiAodGhpcy5zaG93RGF5c05vdEluTW9udGggPT09IGZhbHNlICYmIGRheU1vZGVsLmlzSW5DdXJyZW50TW9udGggPT09IGZhbHNlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0aWYgKGRheU1vZGVsLmlzQWN0aXZlID09PSBmYWxzZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGlmICh0aGlzLm11bHRpU2VsZWN0ID09PSBmYWxzZSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZSA9IGRheU1vZGVsLmRhdGU7XHJcblx0XHRcdHRoaXMudmlzaWJsZURhdGUgPSBkYXlNb2RlbC5kYXRlO1xyXG5cclxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZERhdGUpO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMub25EYXRlQ2hhbmdlKVxyXG5cdFx0XHRcdHRoaXMub25EYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMub25EYXRlU2VsZWN0KVxyXG5cdFx0XHRcdHRoaXMub25EYXRlU2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG5cclxuXHRcdFx0Ly8gU2F5IHdlIGhhdmUgMyBtb250aHMgc2hvd2luZyBhbmQgdGhleSBzZWxlY3QgYSBkYXRlIG9uIHRoZSAzcmQgbW9udGhcclxuXHRcdFx0Ly8gUmVjYWxjIHdpbGwgcmUtZHJhdyB0aGUgM3JkIG1vbnRoIGFzIHRoZSBmaXJzdCBtb250aCBpbnN0ZWFkIG9mIGp1c3QgXHJcblx0XHRcdC8vIGhpZ2xpZ2h0aW5nIHRoZSBkYXRlIG9uIHRoZSAzcmQgbW9udGguICBIaWdobGlnaHQgaW5zdGVhZC5cclxuXHRcdFx0bGV0IGRhdGVGb3VuZCA9IGZhbHNlO1xyXG5cdFx0XHRmb3IgKGxldCBtb250aCBvZiB0aGlzLm1vbnRocykge1xyXG5cdFx0XHRcdGZvciAobGV0IHdlZWsgb2YgbW9udGgud2Vla3MpIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGRheSBvZiB3ZWVrLmRheXMpIHtcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0aWYgKGRheS5pc0luQ3VycmVudE1vbnRoID09PSB0cnVlICYmIG1vbWVudChkYXkuZGF0ZSkuaXNTYW1lKHRoaXMuc2VsZWN0ZWREYXRlLCBcImRhdGVcIikpIHtcclxuXHRcdFx0XHRcdFx0XHRkYXkuaXNTZWxlY3RlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0ZGF0ZUZvdW5kID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gQnV0IGlmIHRoZXkndmUgXHJcblx0XHRcdGlmIChkYXRlRm91bmQgPT09IGZhbHNlKVxyXG5cdFx0XHRcdHRoaXMucmVjYWxjKCk7XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0Ly8gVGhpcyB3aWxsIGJlIHJldmVyc2VkIHNpbmNlIHdlIGhhdmVuJ3QgcmUtY2FsY2VkIHRoZSBkYXRlcyB5ZXQuXHJcblx0XHRcdGlmICghZGF5TW9kZWwuaXNTZWxlY3RlZClcclxuXHRcdFx0XHR0aGlzLm11bHRpU2VsZWN0RGF0ZXMucHVzaChkYXlNb2RlbC5kYXRlKTtcclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0bGV0IGRhdGVJZHggPSB0aGlzLm11bHRpU2VsZWN0RGF0ZXMuZmluZEluZGV4KGQgPT4gbW9tZW50KGQpLnN0YXJ0T2YoXCJkYXRlXCIpLmlzU2FtZShtb21lbnQoZGF5TW9kZWwuZGF0ZSkuc3RhcnRPZihcImRhdGVcIikpKTtcclxuXHRcdFx0XHR0aGlzLm11bHRpU2VsZWN0RGF0ZXMuc3BsaWNlKGRhdGVJZHgsIDEpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAodGhpcy5vbk11bHRpRGF0ZUNoYW5nZSlcclxuXHRcdFx0XHR0aGlzLm9uTXVsdGlEYXRlQ2hhbmdlLmVtaXQodGhpcy5tdWx0aVNlbGVjdERhdGVzKVxyXG5cclxuXHRcdFx0Zm9yIChsZXQgbW9udGggb2YgdGhpcy5tb250aHMpIHtcclxuXHRcdFx0XHRmb3IgKGxldCB3ZWVrIG9mIG1vbnRoLndlZWtzKSB7XHJcblx0XHRcdFx0XHRmb3IgKGxldCBkYXkgb2Ygd2Vlay5kYXlzKSB7XHJcblx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGlmIChkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gdHJ1ZSAmJiAodGhpcy5tdWx0aVNlbGVjdERhdGVzLmZpbmRJbmRleCh4ID0+IG1vbWVudCh4KS5pc1NhbWUobW9tZW50KGRheS5kYXRlKSwgXCJkYXRlXCIpKSA+PSAwKSkge1xyXG5cdFx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVjYWxjKCkge1xyXG5cdFx0dGhpcy5tb250aHMgPSBbXTtcclxuXHJcblx0XHRmb3IgKGxldCBtb250aENvdW50ID0gMDsgbW9udGhDb3VudCA8IHRoaXMubW9udGhzVG9TaG93OyBtb250aENvdW50KyspIHtcclxuXHRcdFx0bGV0IGN1cnJlbnREYXRlID0gbW9tZW50KHRoaXMudmlzaWJsZURhdGUpLnN0YXJ0T2YoXCJtb250aFwiKTtcclxuXHRcdFx0Y3VycmVudERhdGUgPSBtb21lbnQoY3VycmVudERhdGUpLmFkZChtb250aENvdW50LCBcIm1vbnRoc1wiKVxyXG5cdFx0XHRjdXJyZW50RGF0ZSA9IG1vbWVudChjdXJyZW50RGF0ZSkuc3RhcnRPZihcIndlZWtcIikuc3RhcnRPZihcImRhdGVcIik7XHJcblxyXG5cdFx0XHRjb25zdCBtb250aCA9IG5ldyBNb250aE1vZGVsKCk7XHJcblx0XHRcdG1vbnRoLndlZWtzID0gW107XHJcblxyXG5cdFx0XHQvLyBDdXJyZW50RGF0ZSBpcyBtb3N0IGxpa2VseSBnb2luZyB0byBiZSB0aGUgbW9udGggYmVmb3JlLCBzbyBhZGQgMTUgZGF5cyB0byBnZXQgdG8gdGhlIG1pZGRsZSBvZiB0aGUgY3VycmVudCBtb250aFxyXG5cdFx0XHRjb25zdCBtb250aFRvRGlzcGxheSA9IG1vbWVudChjdXJyZW50RGF0ZSkuYWRkKDE1LCBcImRheXNcIik7XHJcblx0XHRcdG1vbnRoLm1vbnRoRGlzcGxheSA9ICh0aGlzLmNvbmRlbnNlZCA9PT0gdHJ1ZSkgPyBtb250aFRvRGlzcGxheS5mb3JtYXQoXCJNTU0gWVlZWVwiKSA6IG1vbnRoVG9EaXNwbGF5LmZvcm1hdChcIk1NTSBZWVlZXCIpO1xyXG5cclxuXHRcdFx0Zm9yIChsZXQgd2Vla0NvdW50ID0gMDsgd2Vla0NvdW50IDwgNjsgd2Vla0NvdW50KyspIHtcclxuXHRcdFx0XHRjb25zdCB3ZWVrID0gbmV3IFdlZWtNb2RlbCgpO1xyXG5cdFx0XHRcdHdlZWsuZGF5cyA9IFtdO1xyXG5cclxuXHRcdFx0XHRmb3IgKGxldCBkYXlDb3VudCA9IDA7IGRheUNvdW50IDwgNzsgZGF5Q291bnQrKykge1xyXG5cdFx0XHRcdFx0Y29uc3QgZGF5ID0gbmV3IERheU1vZGVsKCk7XHJcblx0XHRcdFx0XHRkYXkuZGF0ZSA9IGN1cnJlbnREYXRlLnRvRGF0ZSgpO1xyXG5cdFx0XHRcdFx0ZGF5LmlzVG9kYXkgPSBtb21lbnQoKS5pc1NhbWUoY3VycmVudERhdGUsIFwiZGF0ZVwiKTtcclxuXHRcdFx0XHRcdGlmICh0aGlzLm11bHRpU2VsZWN0ICYmIHRoaXMubXVsdGlTZWxlY3REYXRlcylcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSAodGhpcy5tdWx0aVNlbGVjdERhdGVzLmZpbmRJbmRleCh4ID0+IG1vbWVudCh4KS5pc1NhbWUobW9tZW50KGRheS5kYXRlKSwgXCJkYXRlXCIpKSA+PSAwKTtcclxuXHRcdFx0XHRcdGVsc2VcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGUpLmlzU2FtZShjdXJyZW50RGF0ZSwgXCJkYXRlXCIpO1xyXG5cclxuXHRcdFx0XHRcdGRheS5pc0luQ3VycmVudE1vbnRoID0gKGN1cnJlbnREYXRlLm1vbnRoKCkgPT09IG1vbnRoVG9EaXNwbGF5Lm1vbnRoKCkpO1xyXG5cclxuXHRcdFx0XHRcdGRheS5pc0FjdGl2ZSA9IHRydWU7XHJcblxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuaW5hY3RpdmVXZWVrZW5kcyAmJiBjdXJyZW50RGF0ZS5kYXkoKSA9PT0gNiB8fCBjdXJyZW50RGF0ZS5kYXkoKSA9PT0gNylcclxuXHRcdFx0XHRcdFx0ZGF5LmlzQWN0aXZlID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuaW5hY3RpdmVEYXRlcyAmJiB0aGlzLmluYWN0aXZlRGF0ZXMuZmluZEluZGV4KHggPT4gbW9tZW50KHgpLmlzU2FtZShjdXJyZW50RGF0ZSwgXCJkYXRlXCIpKSA+PSAwKVxyXG5cdFx0XHRcdFx0XHRkYXkuaXNBY3RpdmUgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zaG93RGF5c05vdEluTW9udGggPT09IGZhbHNlICYmIGRheS5pc0luQ3VycmVudE1vbnRoID09PSBmYWxzZSlcclxuXHRcdFx0XHRcdFx0ZGF5LmlzQWN0aXZlID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0Ly8gSXQncyBwb3NzaWJsZSBmb3IgdGhlIGRheSB0byBiZSBpbiB0aGUgbW9udGggZGlzcGxheSwgYnV0IGhpZGRlbiwgYnV0IGFjdGl2ZVxyXG5cdFx0XHRcdFx0aWYgKGRheS5pc0FjdGl2ZSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdGRheS5pc1NlbGVjdGVkID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdFx0aWYgKGRheS5pc0luQ3VycmVudE1vbnRoID09PSBmYWxzZSlcclxuXHRcdFx0XHRcdFx0ZGF5LmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHR3ZWVrLmRheXMucHVzaChkYXkpO1xyXG5cclxuXHRcdFx0XHRcdGN1cnJlbnREYXRlID0gbW9tZW50KGN1cnJlbnREYXRlKS5hZGQoMSwgXCJkYXlzXCIpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0bW9udGgud2Vla3MucHVzaCh3ZWVrKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5tb250aHMucHVzaChtb250aCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxufSIsIjxkaXYgY2xhc3M9XCJzbGljay1jYWxlbmRhciBkZWZhdWx0LXdpZHRoIGNhcmRcIiBpZD1cInNsaWNrLWNhbGVuZGFyX3t7dXVpZH19XCIgW3N0eWxlLm1pbldpZHRoLnB4XT1cIm1pbldpZHRoXCIgW25nQ2xhc3NdPVwieydzbGljay1jYWxlbmRhcl9jb25kZW5zZWQnOiBjb25kZW5zZWQgPT09IHRydWUsICdzbGljay1jYWxlbmRhcl9zaW5nbGUnOiBtb250aHNUb1Nob3cgPT09IDEgfVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJzbGljay1jYWxlbmRhcl9wcmV2LW1vbnRoXCIgKGNsaWNrKT1cInByZXZNb250aCgpXCI+PGkgY2xhc3M9XCJmYXIgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPjwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJzbGljay1jYWxlbmRhcl9uZXh0LW1vbnRoXCIgKGNsaWNrKT1cIm5leHRNb250aCgpXCI+PGkgY2xhc3M9XCJmYXIgZmEtY2hldnJvbi1yaWdodFwiPjwvaT48L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kIHB0LTJcIiBbbmdDbGFzc109XCJ7ICdteC0zJzogbW9udGhzVG9TaG93ID4gMSwgJ214LTEnOiBtb250aHNUb1Nob3cgPT09IDEgfVwiPlxyXG5cdFx0PGRpdiAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzXCIgY2xhc3M9XCJmbGV4LWZpbGwgbXgtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO21heC13aWR0aDogMjIwcHg7XCI+XHJcblxyXG5cdFx0XHQ8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zbSB0YWJsZS1ib3JkZXJsZXNzXCIgc3R5bGU9XCJ0YWJsZS1sYXlvdXQ6IGZpeGVkOyBcIj5cclxuXHRcdFx0XHQ8dGhlYWQ+XHJcblx0XHRcdFx0XHQ8dHIgY2xhc3M9XCJzbGljay1jYWxlbmRhcl9tb250aC1kaXNwbGF5XCI+XHJcblx0XHRcdFx0XHRcdDx0ZCBjb2xzcGFuPVwiN1wiPjxiPnt7bW9udGgubW9udGhEaXNwbGF5fX08L2I+PC90ZD5cclxuXHRcdFx0XHRcdDwvdHI+XHJcblx0XHRcdFx0XHQ8dHIgY2xhc3M9XCJzbGljay1jYWxlbmRhcl9kYXlzLW9mLXdlZWtcIj5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5TdW48L3NwYW4+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gdHJ1ZSc+Uzwvc3Bhbj48L3RkPlxyXG5cdFx0XHRcdFx0XHQ8dGQ+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gZmFsc2UnPk1vbjwvc3Bhbj48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSB0cnVlJz5NPC9zcGFuPjwvdGQ+XHJcblx0XHRcdFx0XHRcdDx0ZD48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSBmYWxzZSc+VHVlPC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlQ8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdFx0PHRkPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IGZhbHNlJz5XZWQ8L3NwYW4+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gdHJ1ZSc+Vzwvc3Bhbj48L3RkPlxyXG5cdFx0XHRcdFx0XHQ8dGQ+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gZmFsc2UnPlRodTwvc3Bhbj48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSB0cnVlJz5UaDwvc3Bhbj48L3RkPlxyXG5cdFx0XHRcdFx0XHQ8dGQ+PHNwYW4gKm5nSWY9J2NvbmRlbnNlZCA9PT0gZmFsc2UnPkZyaTwvc3Bhbj48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSB0cnVlJz5GPC9zcGFuPjwvdGQ+XHJcblx0XHRcdFx0XHRcdDx0ZD48c3BhbiAqbmdJZj0nY29uZGVuc2VkID09PSBmYWxzZSc+U2F0PC9zcGFuPjxzcGFuICpuZ0lmPSdjb25kZW5zZWQgPT09IHRydWUnPlM8L3NwYW4+PC90ZD5cclxuXHRcdFx0XHRcdDwvdHI+XHJcblx0XHRcdFx0PC90aGVhZD5cclxuXHJcblx0XHRcdFx0PHRib2R5PlxyXG5cdFx0XHRcdFx0PHRyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIG1vbnRoLndlZWtzXCI+XHJcblx0XHRcdFx0XHRcdDx0ZCAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWsuZGF5c1wiIChjbGljayk9XCJzZXREYXRlKGRheSlcIiBjbGFzcz1cInNsaWNrLWNhbGVuZGFyX2RhdGVcIiBbbmdDbGFzc109XCJ7ICdzbGljay1jYWxlbmRhcl9pcy10b2RheSc6IGRheS5pc1RvZGF5LCAnYmctc3VjY2VzcyB0ZXh0LXdoaXRlJzogZGF5LmlzU2VsZWN0ZWQsICdzbGljay1jYWxlbmRhcl9ub3RfaW5fbW9udGgnOiBkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gZmFsc2UsICdzbGljay1jYWxlbmRhcl9pbmFjdGl2ZSc6IGRheS5pc0FjdGl2ZSA9PT0gZmFsc2UgfVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwic2hvd0RheXNOb3RJbk1vbnRoID09PSB0cnVlIHx8IChzaG93RGF5c05vdEluTW9udGggPT09IGZhbHNlICYmIGRheS5pc0luQ3VycmVudE1vbnRoID09PSB0cnVlKVwiPnt7ZGF5LmRhdGUgfCBkYXRlOidkJ319PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwibW9udGhzVG9TaG93ID4gMSAmJiAoc2hvd0RheXNOb3RJbk1vbnRoID09PSBmYWxzZSAmJiBkYXkuaXNJbkN1cnJlbnRNb250aCA9PT0gZmFsc2UpXCI+Jm5ic3A7PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdFx0PC90cj5cclxuXHRcdFx0XHQ8L3Rib2R5PlxyXG5cdFx0XHQ8L3RhYmxlPlxyXG5cclxuXHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0PC9kaXY+XHJcbjwvZGl2PiJdfQ==