@magicx-eng/ai-autocomplete-angular 0.43.0 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +67 -2
  2. package/esm2020/lib/ai-autocomplete/ai-autocomplete.component.mjs +3 -3
  3. package/esm2020/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.mjs +30 -5
  4. package/esm2020/lib/controller/ai-autocomplete.controller.mjs +30 -1
  5. package/esm2020/lib/internal/product-strip/product-strip.component.mjs +43 -30
  6. package/esm2020/lib/internal/suggestion-grid/suggestion-grid.component.mjs +5 -3
  7. package/esm2020/lib/internal/suggestion-item/suggestion-item.component.mjs +6 -4
  8. package/esm2020/lib/internal/time-wheel/time-wheel.component.mjs +147 -0
  9. package/esm2020/lib/shared/types.mjs +1 -1
  10. package/esm2020/public-api.mjs +7 -2
  11. package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs +262 -45
  12. package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
  13. package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs +260 -43
  14. package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
  15. package/lib/ai-autocomplete/ai-autocomplete.component.d.ts +3 -1
  16. package/lib/ai-autocomplete/ai-autocomplete.component.d.ts.map +1 -1
  17. package/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.d.ts +10 -1
  18. package/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.d.ts.map +1 -1
  19. package/lib/controller/ai-autocomplete.controller.d.ts +9 -0
  20. package/lib/controller/ai-autocomplete.controller.d.ts.map +1 -1
  21. package/lib/internal/product-strip/product-strip.component.d.ts +11 -6
  22. package/lib/internal/product-strip/product-strip.component.d.ts.map +1 -1
  23. package/lib/internal/suggestion-grid/suggestion-grid.component.d.ts +2 -1
  24. package/lib/internal/suggestion-grid/suggestion-grid.component.d.ts.map +1 -1
  25. package/lib/internal/suggestion-item/suggestion-item.component.d.ts +2 -1
  26. package/lib/internal/suggestion-item/suggestion-item.component.d.ts.map +1 -1
  27. package/lib/internal/time-wheel/time-wheel.component.d.ts +53 -0
  28. package/lib/internal/time-wheel/time-wheel.component.d.ts.map +1 -0
  29. package/lib/shared/types.d.ts +12 -4
  30. package/lib/shared/types.d.ts.map +1 -1
  31. package/package.json +2 -2
  32. package/public-api.d.ts +5 -2
  33. package/public-api.d.ts.map +1 -1
@@ -140,7 +140,7 @@ export class SuggestionItemComponent {
140
140
  clearTimeout(this.pressedTimer);
141
141
  }
142
142
  onSelect() {
143
- if (this.loading || !this.option.is_tappable || this.pressed)
143
+ if (this.loading || !this.option.is_tappable || (this.pressed && this.checked === undefined))
144
144
  return;
145
145
  this.pressed = true;
146
146
  this.cdr.markForCheck();
@@ -170,12 +170,14 @@ export class SuggestionItemComponent {
170
170
  }
171
171
  }
172
172
  SuggestionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
173
- SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", showImage: "showImage", showCount: "showCount", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight", unhighlight: "unhighlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill until the picture loads, so a slow\n or failed load leaves a neutral square rather than a gap. The picture\n is decorative: the text is the option's accessible name. -->\n <span\n *ngIf=\"imageSrc as src\"\n class=\"aia-suggestion-image\"\n aria-hidden=\"true\"\n [attr.data-aia-image-loaded]=\"imageLoaded ? '' : null\"\n >\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (load)=\"onImageLoad(src)\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\"\n ><ng-container *ngFor=\"let part of parts; trackBy: trackByIndex\"\n ><strong *ngIf=\"part.bold; else plain\" class=\"aia-suggestion-match\">{{ part.text }}</strong\n ><ng-template #plain>{{ part.text }}</ng-template></ng-container\n ><ng-container *ngIf=\"option.parameterLabel\"\n >{{ \" \" }}<span class=\"aia-suggestion-parameter\">{{ option.parameterLabel }}</span></ng-container\n ></span\n >\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}[data-aia-fit] .aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:none}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-parameter{display:block;font-size:var(--aia-option-parameter-font-size, 12px);font-weight:400;line-height:16px;text-indent:0;color:var(--aia-option-parameter-color, inherit);opacity:var(--aia-option-parameter-opacity, .6)}.aia-suggestion-match{color:var(--aia-smart-suggestion-accent, #b84549);font-weight:600}.aia-suggestion-item[data-aia-loading] .aia-suggestion-parameter{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image[data-aia-image-loaded]{background:transparent}.aia-suggestion-image img{display:block;width:auto;max-width:100%;height:100%;margin:0 auto;border-radius:var(--aia-option-picture-radius, 6px);object-fit:contain}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image{background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-parameter){--aia-option-row-height: 53px}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon svg{width:var(--aia-option-tile-icon-size, 1.5em);height:var(--aia-option-tile-icon-size, 1.5em)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
173
+ SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", checked: "checked", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", showImage: "showImage", showCount: "showCount", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight", unhighlight: "unhighlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"checked === undefined ? isHighlighted : checked\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <span *ngIf=\"checked !== undefined\" class=\"aia-checkbox\" aria-hidden=\"true\" [attr.data-checked]=\"checked\">{{ checked ? \"\u2713\" : \"\" }}</span>\n <!-- The tile keeps a placeholder fill until the picture loads, so a slow\n or failed load leaves a neutral square rather than a gap. The picture\n is decorative: the text is the option's accessible name. -->\n <span\n *ngIf=\"imageSrc as src\"\n class=\"aia-suggestion-image\"\n aria-hidden=\"true\"\n [attr.data-aia-image-loaded]=\"imageLoaded ? '' : null\"\n >\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (load)=\"onImageLoad(src)\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\"\n ><ng-container *ngFor=\"let part of parts; trackBy: trackByIndex\"\n ><strong *ngIf=\"part.bold; else plain\" class=\"aia-suggestion-match\">{{ part.text }}</strong\n ><ng-template #plain>{{ part.text }}</ng-template></ng-container\n ><ng-container *ngIf=\"option.parameterLabel\"\n >{{ \" \" }}<span class=\"aia-suggestion-parameter\">{{ option.parameterLabel }}</span></ng-container\n ></span\n >\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}[data-aia-fit] .aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:none}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-parameter{display:block;font-size:var(--aia-option-parameter-font-size, 12px);font-weight:400;line-height:16px;text-indent:0;color:var(--aia-option-parameter-color, inherit);opacity:var(--aia-option-parameter-opacity, .6)}.aia-suggestion-match{color:var(--aia-smart-suggestion-accent, #b84549);font-weight:600}.aia-suggestion-item[data-aia-loading] .aia-suggestion-parameter{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image[data-aia-image-loaded]{background:transparent}.aia-suggestion-image img{display:block;width:auto;max-width:100%;height:100%;margin:0 auto;border-radius:var(--aia-option-picture-radius, 6px);object-fit:contain}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image{background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-parameter){--aia-option-row-height: 53px}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon svg{width:var(--aia-option-tile-icon-size, 1.5em);height:var(--aia-option-tile-icon-size, 1.5em)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}.aia-suggestion-content:has(.aia-checkbox){display:flex;align-items:center;gap:10px}.aia-checkbox{display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;height:18px;border:1px solid var(--aia-border);border-radius:6px;background:var(--aia-surface);color:transparent;font-size:11px;line-height:1}.aia-checkbox[data-checked=true]{background:rgba(var(--aia-streak-rgb, 99, 102, 241),.16);border-color:rgba(var(--aia-streak-rgb, 99, 102, 241),.45);color:rgb(var(--aia-streak-rgb, 99, 102, 241))}.aia-suggestion-item:has(.aia-checkbox[data-checked=\"true\"]){background:var(--aia-option-bg, transparent)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
174
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, decorators: [{
175
175
  type: Component,
176
- args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill until the picture loads, so a slow\n or failed load leaves a neutral square rather than a gap. The picture\n is decorative: the text is the option's accessible name. -->\n <span\n *ngIf=\"imageSrc as src\"\n class=\"aia-suggestion-image\"\n aria-hidden=\"true\"\n [attr.data-aia-image-loaded]=\"imageLoaded ? '' : null\"\n >\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (load)=\"onImageLoad(src)\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\"\n ><ng-container *ngFor=\"let part of parts; trackBy: trackByIndex\"\n ><strong *ngIf=\"part.bold; else plain\" class=\"aia-suggestion-match\">{{ part.text }}</strong\n ><ng-template #plain>{{ part.text }}</ng-template></ng-container\n ><ng-container *ngIf=\"option.parameterLabel\"\n >{{ \" \" }}<span class=\"aia-suggestion-parameter\">{{ option.parameterLabel }}</span></ng-container\n ></span\n >\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}[data-aia-fit] .aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:none}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-parameter{display:block;font-size:var(--aia-option-parameter-font-size, 12px);font-weight:400;line-height:16px;text-indent:0;color:var(--aia-option-parameter-color, inherit);opacity:var(--aia-option-parameter-opacity, .6)}.aia-suggestion-match{color:var(--aia-smart-suggestion-accent, #b84549);font-weight:600}.aia-suggestion-item[data-aia-loading] .aia-suggestion-parameter{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image[data-aia-image-loaded]{background:transparent}.aia-suggestion-image img{display:block;width:auto;max-width:100%;height:100%;margin:0 auto;border-radius:var(--aia-option-picture-radius, 6px);object-fit:contain}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image{background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-parameter){--aia-option-row-height: 53px}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon svg{width:var(--aia-option-tile-icon-size, 1.5em);height:var(--aia-option-tile-icon-size, 1.5em)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}\n"] }]
176
+ args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"checked === undefined ? isHighlighted : checked\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <span *ngIf=\"checked !== undefined\" class=\"aia-checkbox\" aria-hidden=\"true\" [attr.data-checked]=\"checked\">{{ checked ? \"\u2713\" : \"\" }}</span>\n <!-- The tile keeps a placeholder fill until the picture loads, so a slow\n or failed load leaves a neutral square rather than a gap. The picture\n is decorative: the text is the option's accessible name. -->\n <span\n *ngIf=\"imageSrc as src\"\n class=\"aia-suggestion-image\"\n aria-hidden=\"true\"\n [attr.data-aia-image-loaded]=\"imageLoaded ? '' : null\"\n >\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (load)=\"onImageLoad(src)\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\"\n ><ng-container *ngFor=\"let part of parts; trackBy: trackByIndex\"\n ><strong *ngIf=\"part.bold; else plain\" class=\"aia-suggestion-match\">{{ part.text }}</strong\n ><ng-template #plain>{{ part.text }}</ng-template></ng-container\n ><ng-container *ngIf=\"option.parameterLabel\"\n >{{ \" \" }}<span class=\"aia-suggestion-parameter\">{{ option.parameterLabel }}</span></ng-container\n ></span\n >\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}[data-aia-fit] .aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:none}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-parameter{display:block;font-size:var(--aia-option-parameter-font-size, 12px);font-weight:400;line-height:16px;text-indent:0;color:var(--aia-option-parameter-color, inherit);opacity:var(--aia-option-parameter-opacity, .6)}.aia-suggestion-match{color:var(--aia-smart-suggestion-accent, #b84549);font-weight:600}.aia-suggestion-item[data-aia-loading] .aia-suggestion-parameter{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image[data-aia-image-loaded]{background:transparent}.aia-suggestion-image img{display:block;width:auto;max-width:100%;height:100%;margin:0 auto;border-radius:var(--aia-option-picture-radius, 6px);object-fit:contain}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image{background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-parameter){--aia-option-row-height: 53px}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon svg{width:var(--aia-option-tile-icon-size, 1.5em);height:var(--aia-option-tile-icon-size, 1.5em)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}.aia-suggestion-content:has(.aia-checkbox){display:flex;align-items:center;gap:10px}.aia-checkbox{display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;height:18px;border:1px solid var(--aia-border);border-radius:6px;background:var(--aia-surface);color:transparent;font-size:11px;line-height:1}.aia-checkbox[data-checked=true]{background:rgba(var(--aia-streak-rgb, 99, 102, 241),.16);border-color:rgba(var(--aia-streak-rgb, 99, 102, 241),.45);color:rgb(var(--aia-streak-rgb, 99, 102, 241))}.aia-suggestion-item:has(.aia-checkbox[data-checked=\"true\"]){background:var(--aia-option-bg, transparent)}\n"] }]
177
177
  }], propDecorators: { option: [{
178
178
  type: Input
179
+ }], checked: [{
180
+ type: Input
179
181
  }], isHighlighted: [{
180
182
  type: Input
181
183
  }], id: [{
@@ -199,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
199
201
  }], unhighlight: [{
200
202
  type: Output
201
203
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFdBQVcsRUFFWCxxQkFBcUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTdDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVVILE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFXVyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qiw4RUFBOEU7UUFDckUsYUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixvSEFBb0g7UUFDM0csY0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQiwyRkFBMkY7UUFDbEYsY0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQiw4RkFBOEY7UUFDckYsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVM1Qjs7OztXQUlHO1FBQ0gsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFFZCxXQUFNLEdB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TUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFLNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1PLFlBQVk7c0JBQXhCLEtBQUs7Z0JBVWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFDWSxTQUFTO3NCQUEzQixNQUFNO2dCQU1ZLFdBQVc7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBmb3JtYXRPcHRpb25Db3VudCxcbiAgaGlnaGxpZ2h0UGFydHMsXG4gIG9wdGlvbkltYWdlU291cmNlcyxcbiAgb3B0aW9uTGFiZWwsXG4gIHR5cGUgU3VnZ2VzdGlvbk9wdGlvbixcbiAgc2FuaXRpemVPcHRpb25JY29uU3ZnLFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBzaW5nbGUtb3B0aW9uIGNlbGwgdXNlZCBpbnNpZGUgdGhlIHN1Z2dlc3Rpb24gZ3JpZC4gTWlycm9yc1xuICogYHBhY2thZ2VzL3JlYWN0L3NyYy9jb21wb25lbnRzL1N1Z2dlc3Rpb25JdGVtLnRzeGAuIEhhbmRsZXM6XG4gKlxuICogLSBUYXBwYWJsZSB2cyBub24tdGFwcGFibGUgY3Vyc29yICsgaG92ZXIgc3R5bGluZ1xuICogLSBQcmVzc2VkLXN0YXRlIGNvbXByZXNzIGFuaW1hdGlvbiAoMTcwbXMsIHNpbmdsZS1mbGlnaHQpXG4gKiAtIEtleWJvYXJkIGFjdGl2YXRpb24gKEVudGVyL1NwYWNlKVxuICogLSBBUklBIGByb2xlPVwib3B0aW9uXCJgICsgYGFyaWEtc2VsZWN0ZWRgIGZvciB0aGUgbGlzdGJveCBwYXR0ZXJuXG4gKiAtIExvYWRpbmcgc2tlbGV0b24gd2hlbiBgbG9hZGluZz10cnVlYFxuICogLSBTZXJ2ZXItcHJvdmlkZWQgaWNvbiAoYGljb25fc3ZnYCksIGFsbG93bGlzdGVkIHRocm91Z2ggdGhlIGNvcmUnc1xuICogICBgc2FuaXRpemVPcHRpb25JY29uU3ZnYCBiZWZvcmUgaXQgaXMgYm91bmQgYXMgSFRNTFxuICogLSBTZXJ2ZXItcHJvdmlkZWQgcGljdHVyZSAoYGltYWdlX3VybGApIGFzIGEgc3F1YXJlIHRodW1ibmFpbCBpbiBwbGFjZSBvZlxuICogICB0aGUgaWNvbiwgYW5kIGl0ZW0gY291bnQgKGBpdGVtX2NvdW50YCkgYXQgdGhlIHJvdydzIHRyYWlsaW5nIGVkZ2VcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFpYS1zdWdnZXN0aW9uLWl0ZW1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZVVybDogXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFN1Z2dlc3Rpb25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCkgb3B0aW9uITogU3VnZ2VzdGlvbk9wdGlvbjtcbiAgQElucHV0KCkgaXNIaWdobGlnaHRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpZCA9IFwiXCI7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgLyoqIFdoZXRoZXIgdG8gZHJhdyB0aGUgb3B0aW9uJ3MgYGljb25fc3ZnYCBiZWZvcmUgaXRzIHRleHQuIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIHNob3dJY29uID0gdHJ1ZTtcbiAgLyoqIFdoZXRoZXIgdG8gZHJhdyB0aGUgb3B0aW9uJ3MgYGltYWdlX3VybGAgYXMgYSB0aHVtYm5haWwgYmVmb3JlIGl0cyB0ZXh0LCBpbiBwbGFjZSBvZiB0aGUgaWNvbi4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd0ltYWdlID0gdHJ1ZTtcbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgb3B0aW9uJ3MgYGl0ZW1fY291bnRgIGF0IHRoZSByb3cncyB0cmFpbGluZyBlZGdlLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93Q291bnQgPSB0cnVlO1xuICAvKiogRmFkZSB0aGlzIG9wdGlvbidzIHRleHQgdG93YXJkIGl0cyBib3R0b20gZWRnZSAobGFzdCB2aXNpYmxlIHJvdyBvZiBhIHNjcm9sbGFibGUgZ3JpZCkuICovXG4gIEBJbnB1dCgpIHNjcm9sbEhpbnQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFN0YXJ0IGRlbGF5IG9mIHRoaXMgcm93J3MgZW50cmFuY2UgYW5pbWF0aW9uIChtcykg4oCUIGVhY2ggcm93IHJpc2VzIGluIGFcbiAgICogYmVhdCBhZnRlciB0aGUgb25lIG5lYXJlciB0aGUgaW5wdXQuIENhcHR1cmVkIG9uY2UsIG9uIGZpcnN0IHJlbmRlciwgc28gYVxuICAgKiBsYXRlciBjaGFuZ2UtZGV0ZWN0aW9uIHBhc3MgY2FuJ3QgcmVzdGFydCBhIHJvdyBtaWQtcmlzZS5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBlbnRlckRlbGF5TXModmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmVudGVyRGVsYXkgPT09IG51bGwpIHRoaXMuZW50ZXJEZWxheSA9IHZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgY2FwdHVyZWQgZGVsYXk7IGBudWxsYCB1bnRpbCB0aGUgZmlyc3QgYGVudGVyRGVsYXlNc2AgYmluZGluZyBsYW5kcy5cbiAgICogVGhlIHRlbXBsYXRlIGJpbmRzIGl0IHRvIGAtLWFpYS1vcHRpb24tZW50ZXItZGVsYXlgICh0aGUgY29yZSdzXG4gICAqIE9QVElPTl9FTlRFUl9ERUxBWV9WQVIpLCB3aGljaCB0aGUgc3R5bGVzaGVldCdzIGVudHJhbmNlIHJ1bGUgcmVhZHMuXG4gICAqL1xuICBlbnRlckRlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTdWdnZXN0aW9uT3B0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaGlnaGxpZ2h0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKipcbiAgICogVGhlIHBvaW50ZXIgbGVmdCB0aGlzIHJvdy4gVGhlIG93bmVyIGNsZWFycyB0aGUgaGlnaGxpZ2h0IGlmIGl0IGlzIHN0aWxsXG4gICAqIG9uIHRoaXMgcm93OiBhIGhvdmVyIGhpZ2hsaWdodCBlbmRzIHdpdGggdGhlIGhvdmVyLCBzbyBFbnRlciBhZnRlcndhcmRzXG4gICAqIHN1Ym1pdHMgaW5zdGVhZCBvZiBwaWNraW5nIGEgcm93IHRoZSBwb2ludGVyIGlzIG5vIGxvbmdlciBvbi5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSB1bmhpZ2hsaWdodCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcmVzc2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIHByZXNzZWRUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaWNvblNvdXJjZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25TYWZlOiBTYWZlSHRtbCB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogVGhlIGBzcmNgcyB0aGF0IGZhaWxlZCB0byBsb2FkOiB0aGUgcm93IG1vdmVzIG9uIHRvIHRoZSBuZXh0IHNvdXJjZSAoYVxuICAgKiBTaG9waWZ5IHRodW1ibmFpbCBmYWxscyBiYWNrIHRvIHRoZSBvcmlnaW5hbCksIGFuZCB0aGUgdGlsZSBrZWVwcyBpdHNcbiAgICogcGxhY2Vob2xkZXIgZmlsbCBvbmNlIG5vbmUgaXMgbGVmdC5cbiAgICovXG4gIHByaXZhdGUgZmFpbGVkU3JjczogcmVhZG9ubHkgc3RyaW5nW10gPSBbXTtcbiAgLyoqIFRoZSBgc3JjYCB0aGF0IGxhc3QgZmluaXNoZWQgbG9hZGluZzsgdGhlIHRpbGUgZHJvcHMgaXRzIGZpbGwgZm9yIGl0LiAqL1xuICBwcml2YXRlIGxvYWRlZFNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBsYWJlbCBzcGxpdCBzbyB0aGUgdHlwZWQgZnJhZ21lbnQncyBtYXRjaCBjYW4gYmUgZHJhd24gaW4gYm9sZC4gKi9cbiAgZ2V0IHBhcnRzKCk6IHsgdGV4dDogc3RyaW5nOyBib2xkOiBib29sZWFuIH1bXSB7XG4gICAgcmV0dXJuIGhpZ2hsaWdodFBhcnRzKHRoaXMubGFiZWwsIHRoaXMub3B0aW9uLm1hdGNoZWRUZXh0KTtcbiAgfVxuXG4gIC8qKiBgcGFydHNgIGlzIHJlYnVpbHQgb24gZXZlcnkgY2hlY2ssIHNvIGl0cyBub2RlcyBhcmUga2VwdCBieSBwb3NpdGlvbi4gKi9cbiAgdHJhY2tCeUluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKiBUaGUgb3B0aW9uJ3MgdGV4dC4gYGljb25gIGlzIHRoZSBpY29uJ3MgbmFtZSBhbmQgaXMgbmV2ZXIgc2hvd24gYXMgdGV4dC4gKi9cbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsKHRoaXMub3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGljdHVyZSdzIGBzcmNgLCBvciBgbnVsbGAgd2hlbiB0aGUgcm93IGRyYXdzIG5vbmU6IGltYWdlcyBvZmYsIG5vXG4gICAqIGBpbWFnZV91cmxgLCBvciBvbmUgdGhhdCBpcyBub3QgYW4gaHR0cChzKSBVUkwuIEEgcGljdHVyZSBzdGFuZHMgaW4gZm9yXG4gICAqIHRoZSBpY29uIOKAlCBhIHJvdyBuZXZlciBsZWFkcyB3aXRoIHR3byB2aXN1YWxzLlxuICAgKi9cbiAgZ2V0IGltYWdlU3JjKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHNvdXJjZXMgPSB0aGlzLmltYWdlU291cmNlcztcbiAgICByZXR1cm4gKFxuICAgICAgc291cmNlcy5maW5kKChzcmMpID0+ICF0aGlzLmZhaWxlZFNyY3MuaW5jbHVkZXMoc3JjKSkgPz8gc291cmNlc1tzb3VyY2VzLmxlbmd0aCAtIDFdID8/IG51bGxcbiAgICApO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgZXZlcnkgc291cmNlIG9mIHRoZSBwaWN0dXJlIGZhaWxlZCB0byBsb2FkICh0aGUgdGlsZSdzIGZpbGwgc3RheXMpLiAqL1xuICBnZXQgaW1hZ2VGYWlsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc291cmNlcyA9IHRoaXMuaW1hZ2VTb3VyY2VzO1xuICAgIHJldHVybiBzb3VyY2VzLmxlbmd0aCA+IDAgJiYgc291cmNlcy5ldmVyeSgoc3JjKSA9PiB0aGlzLmZhaWxlZFNyY3MuaW5jbHVkZXMoc3JjKSk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgc2hvd24gcGljdHVyZSBoYXMgbG9hZGVkLCBzbyB0aGUgcGxhY2Vob2xkZXIgZmlsbCBzdGVwcyBhc2lkZS4gKi9cbiAgZ2V0IGltYWdlTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pbWFnZUZhaWxlZCAmJiB0aGlzLmltYWdlU3JjICE9PSBudWxsICYmIHRoaXMubG9hZGVkU3JjID09PSB0aGlzLmltYWdlU3JjO1xuICB9XG5cbiAgb25JbWFnZUxvYWQoc3JjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRlZFNyYyA9IHNyYztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uSW1hZ2VFcnJvcigpOiB2b2lkIHtcbiAgICBjb25zdCBzcmMgPSB0aGlzLmltYWdlU3JjO1xuICAgIGlmIChzcmMgIT09IG51bGwgJiYgIXRoaXMuZmFpbGVkU3Jjcy5pbmNsdWRlcyhzcmMpKSB0aGlzLmZhaWxlZFNyY3MgPSBbLi4udGhpcy5mYWlsZWRTcmNzLCBzcmNdO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaW1hZ2VTb3VyY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zaG93SW1hZ2UgPyBvcHRpb25JbWFnZVNvdXJjZXModGhpcy5vcHRpb24uaW1hZ2VfdXJsKSA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb3VudCBhcyBwcmludGVkIChcIjEsMjg0XCIpLCBvciBgbnVsbGAgd2hlbiB0aGUgcm93IHNob3dzIG5vbmUuIFRoZVxuICAgKiB1bml0IHdvcmQgYWZ0ZXIgaXQgaXMgdGhlIHN0eWxlc2hlZXQncyAoYC0tYWlhLW9wdGlvbi1jb3VudC11bml0YCkuXG4gICAqL1xuICBnZXQgY291bnRMYWJlbCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaG93Q291bnQgPyBmb3JtYXRPcHRpb25Db3VudCh0aGlzLm9wdGlvbi5pdGVtX2NvdW50KSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9wdGlvbidzIGljb24gYXMgYmluZGFibGUgSFRNTCwgb3IgYG51bGxgIHdoZW4gaXQgaGFzIG5vbmUgKG9yIGl0c1xuICAgKiBtYXJrdXAgZmFpbGVkIHRoZSBhbGxvd2xpc3QpLiBBbmd1bGFyJ3Mgb3duIEhUTUwgc2FuaXRpemVyIHN0cmlwcyBgPHN2Zz5gXG4gICAqIHdob2xlc2FsZSwgc28gdGhlIGNvcmUncyBhbGxvd2xpc3RlZCBvdXRwdXQgaXMgbWFya2VkIHRydXN0ZWQgaW5zdGVhZCDigJRcbiAgICogaXQgaXMgbmV2ZXIgdGhlIHNlcnZlcidzIHJhdyBzdHJpbmcuIFJlY29tcHV0ZWQgb25seSB3aGVuIHRoZSBtYXJrdXBcbiAgICogY2hhbmdlczsgdGhlIGdldHRlciBydW5zIG9uIGV2ZXJ5IE9uUHVzaCBjaGVjay5cbiAgICovXG4gIGdldCBpY29uSHRtbCgpOiBTYWZlSHRtbCB8IG51bGwge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuc2hvd0ljb24gJiYgIXRoaXMuaW1hZ2VTcmMgPyB0aGlzLm9wdGlvbi5pY29uX3N2ZyA6IHVuZGVmaW5lZDtcbiAgICBpZiAoc3ZnICE9PSB0aGlzLmljb25Tb3VyY2UpIHtcbiAgICAgIHRoaXMuaWNvblNvdXJjZSA9IHN2ZztcbiAgICAgIGNvbnN0IGh0bWwgPSBzdmcgPyBzYW5pdGl6ZU9wdGlvbkljb25Tdmcoc3ZnKSA6IG51bGw7XG4gICAgICB0aGlzLmljb25TYWZlID0gaHRtbCA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaWNvblNhZmU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgfVxuXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlIHx8IHRoaXMucHJlc3NlZCkgcmV0dXJuO1xuICAgIHRoaXMucHJlc3NlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5zZWxlY3QuZW1pdCh0aGlzLm9wdGlvbik7XG4gICAgaWYgKHRoaXMucHJlc3NlZFRpbWVyICE9PSB1bmRlZmluZWQpIGNsZWFyVGltZW91dCh0aGlzLnByZXNzZWRUaW1lcik7XG4gICAgdGhpcy5wcmVzc2VkVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMTcwKTtcbiAgfVxuXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuaGlnaGxpZ2h0LmVtaXQoKTtcbiAgfVxuXG4gIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0LmVtaXQoKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm9uU2VsZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtpZF09XCJpZFwiXG4gIHJvbGU9XCJvcHRpb25cIlxuICBkYXRhLWFpYS1vcHRpb249XCJcIlxuICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cImxvYWRpbmcgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pY29uXT1cImljb25IdG1sICYmIG9wdGlvbi5pY29uID8gb3B0aW9uLmljb24gOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtaW1hZ2VdPVwiaW1hZ2VTcmMgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pdGVtLWNvdW50XT1cImNvdW50TGFiZWwgIT09IG51bGwgPyBvcHRpb24uaXRlbV9jb3VudCA6IG51bGxcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzSGlnaGxpZ2h0ZWRcIlxuICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWl0ZW1cIlxuICBbc3R5bGUuLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5XT1cIihlbnRlckRlbGF5ID8/IDApICsgJ21zJ1wiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLWhpZ2hsaWdodGVkXT1cImlzSGlnaGxpZ2h0ZWQgJiYgIWxvYWRpbmdcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS10YXBwYWJsZV09XCJvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1ub24tdGFwcGFibGVdPVwiIW9wdGlvbi5pc190YXBwYWJsZVwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXByZXNzZWRdPVwicHJlc3NlZFwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXNjcm9sbC1oaW50XT1cInNjcm9sbEhpbnRcIlxuICBbYXR0ci50YWJpbmRleF09XCJsb2FkaW5nIHx8ICFvcHRpb24uaXNfdGFwcGFibGUgPyAtMSA6IDBcIlxuICAoY2xpY2spPVwib25TZWxlY3QoKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxuICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXG4+XG4gIDxzcGFuIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tY29udGVudFwiPlxuICAgIDwhLS0gVGhlIHRpbGUga2VlcHMgYSBwbGFjZWhvbGRlciBmaWxsIHVudGlsIHRoZSBwaWN0dXJlIGxvYWRzLCBzbyBhIHNsb3dcbiAgICAgICAgIG9yIGZhaWxlZCBsb2FkIGxlYXZlcyBhIG5ldXRyYWwgc3F1YXJlIHJhdGhlciB0aGFuIGEgZ2FwLiBUaGUgcGljdHVyZVxuICAgICAgICAgaXMgZGVjb3JhdGl2ZTogdGhlIHRleHQgaXMgdGhlIG9wdGlvbidzIGFjY2Vzc2libGUgbmFtZS4gLS0+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaW1hZ2VTcmMgYXMgc3JjXCJcbiAgICAgIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24taW1hZ2VcIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIFthdHRyLmRhdGEtYWlhLWltYWdlLWxvYWRlZF09XCJpbWFnZUxvYWRlZCA/ICcnIDogbnVsbFwiXG4gICAgPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgIGFsdD1cIlwiXG4gICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgIHJlZmVycmVycG9saWN5PVwibm8tcmVmZXJyZXJcIlxuICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgIFtoaWRkZW5dPVwiaW1hZ2VGYWlsZWRcIlxuICAgICAgICAobG9hZCk9XCJvbkltYWdlTG9hZChzcmMpXCJcbiAgICAgICAgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigpXCJcbiAgICAgIC8+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cImljb25IdG1sXCJcbiAgICAgIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24taWNvblwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgW2lubmVySFRNTF09XCJpY29uSHRtbFwiXG4gICAgPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLXRleHRcIlxuICAgICAgPjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhcnQgb2YgcGFydHM7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgICAgID48c3Ryb25nICpuZ0lmPVwicGFydC5ib2xkOyBlbHNlIHBsYWluXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1tYXRjaFwiPnt7IHBhcnQudGV4dCB9fTwvc3Ryb25nXG4gICAgICAgID48bmctdGVtcGxhdGUgI3BsYWluPnt7IHBhcnQudGV4dCB9fTwvbmctdGVtcGxhdGU+PC9uZy1jb250YWluZXJcbiAgICAgID48bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uLnBhcmFtZXRlckxhYmVsXCJcbiAgICAgICAgPnt7IFwiIFwiIH19PHNwYW4gY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1wYXJhbWV0ZXJcIj57eyBvcHRpb24ucGFyYW1ldGVyTGFiZWwgfX08L3NwYW4+PC9uZy1jb250YWluZXJcbiAgICAgID48L3NwYW5cbiAgICA+XG4gICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udGFnXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi10YWdcIj57eyBvcHRpb24udGFnIH19PC9zcGFuPlxuICAgIDwhLS0gUGFydCBvZiB0aGUgcm93J3MgYWNjZXNzaWJsZSBuYW1lLCByZWFkIGFmdGVyIHRoZSBvcHRpb24ncyB0ZXh0LiAtLT5cbiAgICA8c3BhbiAqbmdJZj1cImNvdW50TGFiZWwgIT09IG51bGxcIiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvdW50XCI+e3sgY291bnRMYWJlbCB9fTwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFdBQVcsRUFFWCxxQkFBcUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTdDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVVILE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFZVyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qiw4RUFBOEU7UUFDckUsYUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixvSEFBb0g7UUFDM0csY0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQiwyRkFBMkY7UUFDbEYsY0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQiw4RkFBOEY7UUFDckYsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVM1Qjs7OztXQUlHO1FBQ0gsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFFZCxXQUFNLEdB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SSxXQUNQLENBQUMsWUFBWSxDQUFDLG1CQUNOLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBSzVCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFVYSxNQUFNO3NCQUF4QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU07Z0JBTVksV0FBVztzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBpbmplY3QsXG4gIHR5cGUgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCB0eXBlIFNhZmVIdG1sIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7XG4gIGZvcm1hdE9wdGlvbkNvdW50LFxuICBoaWdobGlnaHRQYXJ0cyxcbiAgb3B0aW9uSW1hZ2VTb3VyY2VzLFxuICBvcHRpb25MYWJlbCxcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIEludGVybmFsIHNpbmdsZS1vcHRpb24gY2VsbCB1c2VkIGluc2lkZSB0aGUgc3VnZ2VzdGlvbiBncmlkLiBNaXJyb3JzXG4gKiBgcGFja2FnZXMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvU3VnZ2VzdGlvbkl0ZW0udHN4YC4gSGFuZGxlczpcbiAqXG4gKiAtIFRhcHBhYmxlIHZzIG5vbi10YXBwYWJsZSBjdXJzb3IgKyBob3ZlciBzdHlsaW5nXG4gKiAtIFByZXNzZWQtc3RhdGUgY29tcHJlc3MgYW5pbWF0aW9uICgxNzBtcywgc2luZ2xlLWZsaWdodClcbiAqIC0gS2V5Ym9hcmQgYWN0aXZhdGlvbiAoRW50ZXIvU3BhY2UpXG4gKiAtIEFSSUEgYHJvbGU9XCJvcHRpb25cImAgKyBgYXJpYS1zZWxlY3RlZGAgZm9yIHRoZSBsaXN0Ym94IHBhdHRlcm5cbiAqIC0gTG9hZGluZyBza2VsZXRvbiB3aGVuIGBsb2FkaW5nPXRydWVgXG4gKiAtIFNlcnZlci1wcm92aWRlZCBpY29uIChgaWNvbl9zdmdgKSwgYWxsb3dsaXN0ZWQgdGhyb3VnaCB0aGUgY29yZSdzXG4gKiAgIGBzYW5pdGl6ZU9wdGlvbkljb25TdmdgIGJlZm9yZSBpdCBpcyBib3VuZCBhcyBIVE1MXG4gKiAtIFNlcnZlci1wcm92aWRlZCBwaWN0dXJlIChgaW1hZ2VfdXJsYCkgYXMgYSBzcXVhcmUgdGh1bWJuYWlsIGluIHBsYWNlIG9mXG4gKiAgIHRoZSBpY29uLCBhbmQgaXRlbSBjb3VudCAoYGl0ZW1fY291bnRgKSBhdCB0aGUgcm93J3MgdHJhaWxpbmcgZWRnZVxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYWlhLXN1Z2dlc3Rpb24taXRlbVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50LmNzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VnZ2VzdGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBvcHRpb24hOiBTdWdnZXN0aW9uT3B0aW9uO1xuICBASW5wdXQoKSBjaGVja2VkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNIaWdobGlnaHRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpZCA9IFwiXCI7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgLyoqIFdoZXRoZXIgdG8gZHJhdyB0aGUgb3B0aW9uJ3MgYGljb25fc3ZnYCBiZWZvcmUgaXRzIHRleHQuIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIHNob3dJY29uID0gdHJ1ZTtcbiAgLyoqIFdoZXRoZXIgdG8gZHJhdyB0aGUgb3B0aW9uJ3MgYGltYWdlX3VybGAgYXMgYSB0aHVtYm5haWwgYmVmb3JlIGl0cyB0ZXh0LCBpbiBwbGFjZSBvZiB0aGUgaWNvbi4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd0ltYWdlID0gdHJ1ZTtcbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgb3B0aW9uJ3MgYGl0ZW1fY291bnRgIGF0IHRoZSByb3cncyB0cmFpbGluZyBlZGdlLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93Q291bnQgPSB0cnVlO1xuICAvKiogRmFkZSB0aGlzIG9wdGlvbidzIHRleHQgdG93YXJkIGl0cyBib3R0b20gZWRnZSAobGFzdCB2aXNpYmxlIHJvdyBvZiBhIHNjcm9sbGFibGUgZ3JpZCkuICovXG4gIEBJbnB1dCgpIHNjcm9sbEhpbnQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFN0YXJ0IGRlbGF5IG9mIHRoaXMgcm93J3MgZW50cmFuY2UgYW5pbWF0aW9uIChtcykg4oCUIGVhY2ggcm93IHJpc2VzIGluIGFcbiAgICogYmVhdCBhZnRlciB0aGUgb25lIG5lYXJlciB0aGUgaW5wdXQuIENhcHR1cmVkIG9uY2UsIG9uIGZpcnN0IHJlbmRlciwgc28gYVxuICAgKiBsYXRlciBjaGFuZ2UtZGV0ZWN0aW9uIHBhc3MgY2FuJ3QgcmVzdGFydCBhIHJvdyBtaWQtcmlzZS5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBlbnRlckRlbGF5TXModmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmVudGVyRGVsYXkgPT09IG51bGwpIHRoaXMuZW50ZXJEZWxheSA9IHZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgY2FwdHVyZWQgZGVsYXk7IGBudWxsYCB1bnRpbCB0aGUgZmlyc3QgYGVudGVyRGVsYXlNc2AgYmluZGluZyBsYW5kcy5cbiAgICogVGhlIHRlbXBsYXRlIGJpbmRzIGl0IHRvIGAtLWFpYS1vcHRpb24tZW50ZXItZGVsYXlgICh0aGUgY29yZSdzXG4gICAqIE9QVElPTl9FTlRFUl9ERUxBWV9WQVIpLCB3aGljaCB0aGUgc3R5bGVzaGVldCdzIGVudHJhbmNlIHJ1bGUgcmVhZHMuXG4gICAqL1xuICBlbnRlckRlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTdWdnZXN0aW9uT3B0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaGlnaGxpZ2h0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKipcbiAgICogVGhlIHBvaW50ZXIgbGVmdCB0aGlzIHJvdy4gVGhlIG93bmVyIGNsZWFycyB0aGUgaGlnaGxpZ2h0IGlmIGl0IGlzIHN0aWxsXG4gICAqIG9uIHRoaXMgcm93OiBhIGhvdmVyIGhpZ2hsaWdodCBlbmRzIHdpdGggdGhlIGhvdmVyLCBzbyBFbnRlciBhZnRlcndhcmRzXG4gICAqIHN1Ym1pdHMgaW5zdGVhZCBvZiBwaWNraW5nIGEgcm93IHRoZSBwb2ludGVyIGlzIG5vIGxvbmdlciBvbi5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSB1bmhpZ2hsaWdodCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcmVzc2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIHByZXNzZWRUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaWNvblNvdXJjZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25TYWZlOiBTYWZlSHRtbCB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogVGhlIGBzcmNgcyB0aGF0IGZhaWxlZCB0byBsb2FkOiB0aGUgcm93IG1vdmVzIG9uIHRvIHRoZSBuZXh0IHNvdXJjZSAoYVxuICAgKiBTaG9waWZ5IHRodW1ibmFpbCBmYWxscyBiYWNrIHRvIHRoZSBvcmlnaW5hbCksIGFuZCB0aGUgdGlsZSBrZWVwcyBpdHNcbiAgICogcGxhY2Vob2xkZXIgZmlsbCBvbmNlIG5vbmUgaXMgbGVmdC5cbiAgICovXG4gIHByaXZhdGUgZmFpbGVkU3JjczogcmVhZG9ubHkgc3RyaW5nW10gPSBbXTtcbiAgLyoqIFRoZSBgc3JjYCB0aGF0IGxhc3QgZmluaXNoZWQgbG9hZGluZzsgdGhlIHRpbGUgZHJvcHMgaXRzIGZpbGwgZm9yIGl0LiAqL1xuICBwcml2YXRlIGxvYWRlZFNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBsYWJlbCBzcGxpdCBzbyB0aGUgdHlwZWQgZnJhZ21lbnQncyBtYXRjaCBjYW4gYmUgZHJhd24gaW4gYm9sZC4gKi9cbiAgZ2V0IHBhcnRzKCk6IHsgdGV4dDogc3RyaW5nOyBib2xkOiBib29sZWFuIH1bXSB7XG4gICAgcmV0dXJuIGhpZ2hsaWdodFBhcnRzKHRoaXMubGFiZWwsIHRoaXMub3B0aW9uLm1hdGNoZWRUZXh0KTtcbiAgfVxuXG4gIC8qKiBgcGFydHNgIGlzIHJlYnVpbHQgb24gZXZlcnkgY2hlY2ssIHNvIGl0cyBub2RlcyBhcmUga2VwdCBieSBwb3NpdGlvbi4gKi9cbiAgdHJhY2tCeUluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKiBUaGUgb3B0aW9uJ3MgdGV4dC4gYGljb25gIGlzIHRoZSBpY29uJ3MgbmFtZSBhbmQgaXMgbmV2ZXIgc2hvd24gYXMgdGV4dC4gKi9cbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsKHRoaXMub3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGljdHVyZSdzIGBzcmNgLCBvciBgbnVsbGAgd2hlbiB0aGUgcm93IGRyYXdzIG5vbmU6IGltYWdlcyBvZmYsIG5vXG4gICAqIGBpbWFnZV91cmxgLCBvciBvbmUgdGhhdCBpcyBub3QgYW4gaHR0cChzKSBVUkwuIEEgcGljdHVyZSBzdGFuZHMgaW4gZm9yXG4gICAqIHRoZSBpY29uIOKAlCBhIHJvdyBuZXZlciBsZWFkcyB3aXRoIHR3byB2aXN1YWxzLlxuICAgKi9cbiAgZ2V0IGltYWdlU3JjKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHNvdXJjZXMgPSB0aGlzLmltYWdlU291cmNlcztcbiAgICByZXR1cm4gKFxuICAgICAgc291cmNlcy5maW5kKChzcmMpID0+ICF0aGlzLmZhaWxlZFNyY3MuaW5jbHVkZXMoc3JjKSkgPz8gc291cmNlc1tzb3VyY2VzLmxlbmd0aCAtIDFdID8/IG51bGxcbiAgICApO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgZXZlcnkgc291cmNlIG9mIHRoZSBwaWN0dXJlIGZhaWxlZCB0byBsb2FkICh0aGUgdGlsZSdzIGZpbGwgc3RheXMpLiAqL1xuICBnZXQgaW1hZ2VGYWlsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc291cmNlcyA9IHRoaXMuaW1hZ2VTb3VyY2VzO1xuICAgIHJldHVybiBzb3VyY2VzLmxlbmd0aCA+IDAgJiYgc291cmNlcy5ldmVyeSgoc3JjKSA9PiB0aGlzLmZhaWxlZFNyY3MuaW5jbHVkZXMoc3JjKSk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgc2hvd24gcGljdHVyZSBoYXMgbG9hZGVkLCBzbyB0aGUgcGxhY2Vob2xkZXIgZmlsbCBzdGVwcyBhc2lkZS4gKi9cbiAgZ2V0IGltYWdlTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pbWFnZUZhaWxlZCAmJiB0aGlzLmltYWdlU3JjICE9PSBudWxsICYmIHRoaXMubG9hZGVkU3JjID09PSB0aGlzLmltYWdlU3JjO1xuICB9XG5cbiAgb25JbWFnZUxvYWQoc3JjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRlZFNyYyA9IHNyYztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uSW1hZ2VFcnJvcigpOiB2b2lkIHtcbiAgICBjb25zdCBzcmMgPSB0aGlzLmltYWdlU3JjO1xuICAgIGlmIChzcmMgIT09IG51bGwgJiYgIXRoaXMuZmFpbGVkU3Jjcy5pbmNsdWRlcyhzcmMpKSB0aGlzLmZhaWxlZFNyY3MgPSBbLi4udGhpcy5mYWlsZWRTcmNzLCBzcmNdO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaW1hZ2VTb3VyY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zaG93SW1hZ2UgPyBvcHRpb25JbWFnZVNvdXJjZXModGhpcy5vcHRpb24uaW1hZ2VfdXJsKSA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb3VudCBhcyBwcmludGVkIChcIjEsMjg0XCIpLCBvciBgbnVsbGAgd2hlbiB0aGUgcm93IHNob3dzIG5vbmUuIFRoZVxuICAgKiB1bml0IHdvcmQgYWZ0ZXIgaXQgaXMgdGhlIHN0eWxlc2hlZXQncyAoYC0tYWlhLW9wdGlvbi1jb3VudC11bml0YCkuXG4gICAqL1xuICBnZXQgY291bnRMYWJlbCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaG93Q291bnQgPyBmb3JtYXRPcHRpb25Db3VudCh0aGlzLm9wdGlvbi5pdGVtX2NvdW50KSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9wdGlvbidzIGljb24gYXMgYmluZGFibGUgSFRNTCwgb3IgYG51bGxgIHdoZW4gaXQgaGFzIG5vbmUgKG9yIGl0c1xuICAgKiBtYXJrdXAgZmFpbGVkIHRoZSBhbGxvd2xpc3QpLiBBbmd1bGFyJ3Mgb3duIEhUTUwgc2FuaXRpemVyIHN0cmlwcyBgPHN2Zz5gXG4gICAqIHdob2xlc2FsZSwgc28gdGhlIGNvcmUncyBhbGxvd2xpc3RlZCBvdXRwdXQgaXMgbWFya2VkIHRydXN0ZWQgaW5zdGVhZCDigJRcbiAgICogaXQgaXMgbmV2ZXIgdGhlIHNlcnZlcidzIHJhdyBzdHJpbmcuIFJlY29tcHV0ZWQgb25seSB3aGVuIHRoZSBtYXJrdXBcbiAgICogY2hhbmdlczsgdGhlIGdldHRlciBydW5zIG9uIGV2ZXJ5IE9uUHVzaCBjaGVjay5cbiAgICovXG4gIGdldCBpY29uSHRtbCgpOiBTYWZlSHRtbCB8IG51bGwge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuc2hvd0ljb24gJiYgIXRoaXMuaW1hZ2VTcmMgPyB0aGlzLm9wdGlvbi5pY29uX3N2ZyA6IHVuZGVmaW5lZDtcbiAgICBpZiAoc3ZnICE9PSB0aGlzLmljb25Tb3VyY2UpIHtcbiAgICAgIHRoaXMuaWNvblNvdXJjZSA9IHN2ZztcbiAgICAgIGNvbnN0IGh0bWwgPSBzdmcgPyBzYW5pdGl6ZU9wdGlvbkljb25Tdmcoc3ZnKSA6IG51bGw7XG4gICAgICB0aGlzLmljb25TYWZlID0gaHRtbCA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaWNvblNhZmU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgfVxuXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlIHx8ICh0aGlzLnByZXNzZWQgJiYgdGhpcy5jaGVja2VkID09PSB1bmRlZmluZWQpKVxuICAgICAgcmV0dXJuO1xuICAgIHRoaXMucHJlc3NlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5zZWxlY3QuZW1pdCh0aGlzLm9wdGlvbik7XG4gICAgaWYgKHRoaXMucHJlc3NlZFRpbWVyICE9PSB1bmRlZmluZWQpIGNsZWFyVGltZW91dCh0aGlzLnByZXNzZWRUaW1lcik7XG4gICAgdGhpcy5wcmVzc2VkVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMTcwKTtcbiAgfVxuXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuaGlnaGxpZ2h0LmVtaXQoKTtcbiAgfVxuXG4gIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0LmVtaXQoKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm9uU2VsZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtpZF09XCJpZFwiXG4gIHJvbGU9XCJvcHRpb25cIlxuICBkYXRhLWFpYS1vcHRpb249XCJcIlxuICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cImxvYWRpbmcgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pY29uXT1cImljb25IdG1sICYmIG9wdGlvbi5pY29uID8gb3B0aW9uLmljb24gOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtaW1hZ2VdPVwiaW1hZ2VTcmMgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pdGVtLWNvdW50XT1cImNvdW50TGFiZWwgIT09IG51bGwgPyBvcHRpb24uaXRlbV9jb3VudCA6IG51bGxcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImNoZWNrZWQgPT09IHVuZGVmaW5lZCA/IGlzSGlnaGxpZ2h0ZWQgOiBjaGVja2VkXCJcbiAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCJcbiAgW3N0eWxlLi0tYWlhLW9wdGlvbi1lbnRlci1kZWxheV09XCIoZW50ZXJEZWxheSA/PyAwKSArICdtcydcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1oaWdobGlnaHRlZF09XCJpc0hpZ2hsaWdodGVkICYmICFsb2FkaW5nXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tdGFwcGFibGVdPVwib3B0aW9uLmlzX3RhcHBhYmxlXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tbm9uLXRhcHBhYmxlXT1cIiFvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1wcmVzc2VkXT1cInByZXNzZWRcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1zY3JvbGwtaGludF09XCJzY3JvbGxIaW50XCJcbiAgW2F0dHIudGFiaW5kZXhdPVwibG9hZGluZyB8fCAhb3B0aW9uLmlzX3RhcHBhYmxlID8gLTEgOiAwXCJcbiAgKGNsaWNrKT1cIm9uU2VsZWN0KClcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCJcbiAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvbnRlbnRcIj5cbiAgICA8c3BhbiAqbmdJZj1cImNoZWNrZWQgIT09IHVuZGVmaW5lZFwiIGNsYXNzPVwiYWlhLWNoZWNrYm94XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW2F0dHIuZGF0YS1jaGVja2VkXT1cImNoZWNrZWRcIj57eyBjaGVja2VkID8gXCLinJNcIiA6IFwiXCIgfX08L3NwYW4+XG4gICAgPCEtLSBUaGUgdGlsZSBrZWVwcyBhIHBsYWNlaG9sZGVyIGZpbGwgdW50aWwgdGhlIHBpY3R1cmUgbG9hZHMsIHNvIGEgc2xvd1xuICAgICAgICAgb3IgZmFpbGVkIGxvYWQgbGVhdmVzIGEgbmV1dHJhbCBzcXVhcmUgcmF0aGVyIHRoYW4gYSBnYXAuIFRoZSBwaWN0dXJlXG4gICAgICAgICBpcyBkZWNvcmF0aXZlOiB0aGUgdGV4dCBpcyB0aGUgb3B0aW9uJ3MgYWNjZXNzaWJsZSBuYW1lLiAtLT5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJpbWFnZVNyYyBhcyBzcmNcIlxuICAgICAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pbWFnZVwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgW2F0dHIuZGF0YS1haWEtaW1hZ2UtbG9hZGVkXT1cImltYWdlTG9hZGVkID8gJycgOiBudWxsXCJcbiAgICA+XG4gICAgICA8aW1nXG4gICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgcmVmZXJyZXJwb2xpY3k9XCJuby1yZWZlcnJlclwiXG4gICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgICAgW2hpZGRlbl09XCJpbWFnZUZhaWxlZFwiXG4gICAgICAgIChsb2FkKT1cIm9uSW1hZ2VMb2FkKHNyYylcIlxuICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaWNvbkh0bWxcIlxuICAgICAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pY29uXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbaW5uZXJIVE1MXT1cImljb25IdG1sXCJcbiAgICA+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGV4dFwiXG4gICAgICA+PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFydCBvZiBwYXJ0czsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCJcbiAgICAgICAgPjxzdHJvbmcgKm5nSWY9XCJwYXJ0LmJvbGQ7IGVsc2UgcGxhaW5cIiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLW1hdGNoXCI+e3sgcGFydC50ZXh0IH19PC9zdHJvbmdcbiAgICAgICAgPjxuZy10ZW1wbGF0ZSAjcGxhaW4+e3sgcGFydC50ZXh0IH19PC9uZy10ZW1wbGF0ZT48L25nLWNvbnRhaW5lclxuICAgICAgPjxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb24ucGFyYW1ldGVyTGFiZWxcIlxuICAgICAgICA+e3sgXCIgXCIgfX08c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLXBhcmFtZXRlclwiPnt7IG9wdGlvbi5wYXJhbWV0ZXJMYWJlbCB9fTwvc3Bhbj48L25nLWNvbnRhaW5lclxuICAgICAgPjwvc3BhblxuICAgID5cbiAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi50YWdcIiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLXRhZ1wiPnt7IG9wdGlvbi50YWcgfX08L3NwYW4+XG4gICAgPCEtLSBQYXJ0IG9mIHRoZSByb3cncyBhY2Nlc3NpYmxlIG5hbWUsIHJlYWQgYWZ0ZXIgdGhlIG9wdGlvbidzIHRleHQuIC0tPlxuICAgIDxzcGFuICpuZ0lmPVwiY291bnRMYWJlbCAhPT0gbnVsbFwiIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tY291bnRcIj57eyBjb3VudExhYmVsIH19PC9zcGFuPlxuICA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,147 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChildren, ViewEncapsulation, } from "@angular/core";
3
+ import { formatTime, TIME_WHEEL_COLUMNS, TIME_WHEEL_ROW_HEIGHT, timeWheelIndex, timeWheelIndexFromScroll, timeWheelRows, withTimeWheelIndex, } from "@magicx-eng/ai-autocomplete-vanilla";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ /** How long a column's scroll must be still before the row it rests on counts. */
7
+ const SCROLL_SETTLE_MS = 120;
8
+ /**
9
+ * The dropdown's time body, rendered in place of the options grid when the
10
+ * active parameter is a time. Angular analogue of vanilla's `renderTimeWheel`
11
+ * and React's `<TimeWheel>`: three wheels — hour, minutes in fives, AM/PM —
12
+ * whose top rows read as the time, and a Done button.
13
+ *
14
+ * The wheels hold no time of their own. `view.minutes` is the time; turning a
15
+ * wheel emits the new time and the next render scrolls every wheel to it. That
16
+ * is what lets the keyboard (ArrowUp/ArrowDown in the input, handled by the
17
+ * core) and the pointer move the same time.
18
+ *
19
+ * @internal
20
+ */
21
+ export class TimeWheelComponent {
22
+ constructor() {
23
+ /** The core's `timeView`: the time on the wheels' top rows. */
24
+ this.view = null;
25
+ /** Accessible name for the wheel ("Time"). */
26
+ this.label = "";
27
+ /** Text of the button that answers with the time ("Done"). */
28
+ this.doneLabel = "";
29
+ /**
30
+ * False for the press window after an answer: the answered pill's wheel is
31
+ * still on screen and must not take a second answer.
32
+ */
33
+ this.interactive = true;
34
+ /** The user turned a wheel; the value is the whole new time. Commits nothing. */
35
+ this.timeChange = new EventEmitter();
36
+ /** Done — answer the pill with the time on the wheels. */
37
+ this.commit = new EventEmitter();
38
+ this.columns = TIME_WHEEL_COLUMNS;
39
+ this.scroll = new Map();
40
+ this.trackByColumn = (_, column) => column;
41
+ this.trackByRow = (_, row) => row.label;
42
+ }
43
+ get valueLabel() {
44
+ return this.view ? formatTime(this.view.minutes) : "";
45
+ }
46
+ rowsOf(column) {
47
+ return timeWheelRows(column);
48
+ }
49
+ indexOf(column) {
50
+ return this.view ? timeWheelIndex(column, this.view.minutes) : -1;
51
+ }
52
+ /** Scroll each wheel so its chosen row is on top. Idempotent, so cheap to run on every check. */
53
+ ngAfterViewChecked() {
54
+ if (!this.view || !this.wheelColumns)
55
+ return;
56
+ for (const ref of this.wheelColumns) {
57
+ const el = ref.nativeElement;
58
+ const column = el.getAttribute("data-aia-time-column");
59
+ const state = this.scrollStateOf(column);
60
+ // Never yank a wheel the user is still turning: their scroll settles
61
+ // into a time of its own.
62
+ if (state.settle)
63
+ continue;
64
+ const top = timeWheelIndex(column, this.view.minutes) * TIME_WHEEL_ROW_HEIGHT;
65
+ if (Math.abs(el.scrollTop - top) < 1)
66
+ continue;
67
+ state.syncedTop = top;
68
+ el.scrollTop = top;
69
+ }
70
+ }
71
+ ngOnDestroy() {
72
+ for (const state of this.scroll.values()) {
73
+ if (state.settle)
74
+ clearTimeout(state.settle);
75
+ }
76
+ }
77
+ onClick(event) {
78
+ if (!this.interactive || !this.view)
79
+ return;
80
+ const target = event.target instanceof Element ? event.target : null;
81
+ if (target?.closest("[data-aia-time-done]")) {
82
+ this.commit.emit();
83
+ return;
84
+ }
85
+ const row = target?.closest("[data-aia-time-row]");
86
+ const column = row?.getAttribute("data-aia-time-column");
87
+ if (!row || !column)
88
+ return;
89
+ const index = Number(row.getAttribute("data-aia-index"));
90
+ this.timeChange.emit(withTimeWheelIndex(column, this.view.minutes, index));
91
+ }
92
+ onScroll(column, event) {
93
+ const el = event.target;
94
+ const state = this.scrollStateOf(column);
95
+ if (state.syncedTop != null && Math.abs(el.scrollTop - state.syncedTop) < 1) {
96
+ state.syncedTop = null;
97
+ return;
98
+ }
99
+ state.syncedTop = null;
100
+ if (state.settle)
101
+ clearTimeout(state.settle);
102
+ state.settle = setTimeout(() => this.settle(column, el), SCROLL_SETTLE_MS);
103
+ }
104
+ /** Keeps the input focused, which the dropdown's visibility gate depends on. */
105
+ preventBlur(event) {
106
+ event.preventDefault();
107
+ }
108
+ settle(column, el) {
109
+ this.scrollStateOf(column).settle = null;
110
+ if (!this.interactive || !this.view)
111
+ return;
112
+ const index = timeWheelIndexFromScroll(column, el.scrollTop);
113
+ if (index === timeWheelIndex(column, this.view.minutes))
114
+ return;
115
+ this.timeChange.emit(withTimeWheelIndex(column, this.view.minutes, index));
116
+ }
117
+ scrollStateOf(column) {
118
+ let state = this.scroll.get(column);
119
+ if (!state) {
120
+ state = { syncedTop: null, settle: null };
121
+ this.scroll.set(column, state);
122
+ }
123
+ return state;
124
+ }
125
+ }
126
+ TimeWheelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimeWheelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
127
+ TimeWheelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TimeWheelComponent, isStandalone: true, selector: "aia-time-wheel", inputs: { view: "view", label: "label", doneLabel: "doneLabel", interactive: "interactive" }, outputs: { timeChange: "timeChange", commit: "commit" }, viewQueries: [{ propertyName: "wheelColumns", predicate: ["wheelColumn"], descendants: true }], ngImport: i0, template: "<!-- One click listener for the whole wheel (see onClick): the wheel appears\n when a response lands, and content that appears mid-tap carrying its own\n listeners cancels the tap on iOS. -->\n<div\n class=\"magicx-aia-time-wheel\"\n data-aia-time-wheel=\"\"\n role=\"group\"\n [attr.aria-label]=\"label\"\n (mousedown)=\"preventBlur($event)\"\n (click)=\"onClick($event)\"\n>\n <!-- The wheels are a pointer surface; keyboard users move the time from the\n input. So the columns are hidden from AT and the time is announced\n from here instead. -->\n <span class=\"magicx-aia-time-wheel-value\" data-aia-time-value=\"\" aria-live=\"polite\">{{\n valueLabel\n }}</span>\n <div class=\"magicx-aia-time-wheel-columns\" aria-hidden=\"true\">\n <div class=\"magicx-aia-time-wheel-band\"></div>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByColumn\">\n <span *ngIf=\"column === 'minute'\" class=\"magicx-aia-time-wheel-separator\">:</span>\n <div\n #wheelColumn\n class=\"magicx-aia-time-wheel-column\"\n [attr.data-aia-time-column]=\"column\"\n (scroll)=\"onScroll(column, $event)\"\n >\n <div\n *ngFor=\"let row of rowsOf(column); let i = index; trackBy: trackByRow\"\n class=\"magicx-aia-time-wheel-row\"\n [class.magicx-aia-time-wheel-row--selected]=\"i === indexOf(column)\"\n data-aia-time-row=\"\"\n [attr.data-aia-time-column]=\"column\"\n [attr.data-aia-index]=\"i\"\n >\n {{ row.label }}\n </div>\n </div>\n </ng-container>\n </div>\n <!-- Out of the tab order, as the calendar's buttons are: Tab is bound to the\n dropdown, and Enter in the input already commits a moved wheel. -->\n <button type=\"button\" tabindex=\"-1\" class=\"magicx-aia-time-wheel-done\" data-aia-time-done=\"\">\n {{ doneLabel }}\n </button>\n</div>\n", styles: [".magicx-aia-time-wheel{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 6px 4px}.magicx-aia-time-wheel-value{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.magicx-aia-time-wheel-columns{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:2px;width:100%}.magicx-aia-time-wheel-band{position:absolute;top:0;right:0;left:0;height:30px;border-radius:8px;background:var(--aia-time-band-bg, rgba(var(--aia-streak-rgb, 255, 255, 255), .08));pointer-events:none}.magicx-aia-time-wheel-column{position:relative;flex:0 0 auto;width:44px;height:90px;padding-bottom:60px;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;mask-image:linear-gradient(to bottom,#000 34%,transparent 100%)}.magicx-aia-time-wheel-column::-webkit-scrollbar{display:none}.magicx-aia-time-wheel-row{display:flex;align-items:center;justify-content:center;height:30px;scroll-snap-align:start;font-family:inherit;font-size:var(--aia-time-font-size, 15px);font-variant-numeric:tabular-nums;font-weight:450;line-height:20px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));cursor:pointer}.magicx-aia-time-wheel-row--selected{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));font-weight:500}.magicx-aia-time-wheel-separator{display:flex;align-items:center;height:30px;font-size:var(--aia-time-font-size, 15px);font-weight:500;line-height:20px;color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.magicx-aia-time-wheel-done{align-self:stretch;height:32px;padding:0 12px;border:none;border-radius:8px;background:var(--aia-time-done-bg, rgba(var(--aia-streak-rgb, 255, 255, 255), .1));font-family:inherit;font-size:13px;font-weight:500;line-height:20px;color:var( --aia-time-done-color, var(--aia-option-color-selected, var(--aia-color-text-default, #fff)) );cursor:pointer;transition:background-color .15s ease-out}.magicx-aia-time-wheel-done:hover{background:var(--aia-time-done-bg-hover, rgba(var(--aia-streak-rgb, 255, 255, 255), .16))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TimeWheelComponent, decorators: [{
129
+ type: Component,
130
+ args: [{ selector: "aia-time-wheel", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!-- One click listener for the whole wheel (see onClick): the wheel appears\n when a response lands, and content that appears mid-tap carrying its own\n listeners cancels the tap on iOS. -->\n<div\n class=\"magicx-aia-time-wheel\"\n data-aia-time-wheel=\"\"\n role=\"group\"\n [attr.aria-label]=\"label\"\n (mousedown)=\"preventBlur($event)\"\n (click)=\"onClick($event)\"\n>\n <!-- The wheels are a pointer surface; keyboard users move the time from the\n input. So the columns are hidden from AT and the time is announced\n from here instead. -->\n <span class=\"magicx-aia-time-wheel-value\" data-aia-time-value=\"\" aria-live=\"polite\">{{\n valueLabel\n }}</span>\n <div class=\"magicx-aia-time-wheel-columns\" aria-hidden=\"true\">\n <div class=\"magicx-aia-time-wheel-band\"></div>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByColumn\">\n <span *ngIf=\"column === 'minute'\" class=\"magicx-aia-time-wheel-separator\">:</span>\n <div\n #wheelColumn\n class=\"magicx-aia-time-wheel-column\"\n [attr.data-aia-time-column]=\"column\"\n (scroll)=\"onScroll(column, $event)\"\n >\n <div\n *ngFor=\"let row of rowsOf(column); let i = index; trackBy: trackByRow\"\n class=\"magicx-aia-time-wheel-row\"\n [class.magicx-aia-time-wheel-row--selected]=\"i === indexOf(column)\"\n data-aia-time-row=\"\"\n [attr.data-aia-time-column]=\"column\"\n [attr.data-aia-index]=\"i\"\n >\n {{ row.label }}\n </div>\n </div>\n </ng-container>\n </div>\n <!-- Out of the tab order, as the calendar's buttons are: Tab is bound to the\n dropdown, and Enter in the input already commits a moved wheel. -->\n <button type=\"button\" tabindex=\"-1\" class=\"magicx-aia-time-wheel-done\" data-aia-time-done=\"\">\n {{ doneLabel }}\n </button>\n</div>\n", styles: [".magicx-aia-time-wheel{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 6px 4px}.magicx-aia-time-wheel-value{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.magicx-aia-time-wheel-columns{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:2px;width:100%}.magicx-aia-time-wheel-band{position:absolute;top:0;right:0;left:0;height:30px;border-radius:8px;background:var(--aia-time-band-bg, rgba(var(--aia-streak-rgb, 255, 255, 255), .08));pointer-events:none}.magicx-aia-time-wheel-column{position:relative;flex:0 0 auto;width:44px;height:90px;padding-bottom:60px;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;mask-image:linear-gradient(to bottom,#000 34%,transparent 100%)}.magicx-aia-time-wheel-column::-webkit-scrollbar{display:none}.magicx-aia-time-wheel-row{display:flex;align-items:center;justify-content:center;height:30px;scroll-snap-align:start;font-family:inherit;font-size:var(--aia-time-font-size, 15px);font-variant-numeric:tabular-nums;font-weight:450;line-height:20px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));cursor:pointer}.magicx-aia-time-wheel-row--selected{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));font-weight:500}.magicx-aia-time-wheel-separator{display:flex;align-items:center;height:30px;font-size:var(--aia-time-font-size, 15px);font-weight:500;line-height:20px;color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.magicx-aia-time-wheel-done{align-self:stretch;height:32px;padding:0 12px;border:none;border-radius:8px;background:var(--aia-time-done-bg, rgba(var(--aia-streak-rgb, 255, 255, 255), .1));font-family:inherit;font-size:13px;font-weight:500;line-height:20px;color:var( --aia-time-done-color, var(--aia-option-color-selected, var(--aia-color-text-default, #fff)) );cursor:pointer;transition:background-color .15s ease-out}.magicx-aia-time-wheel-done:hover{background:var(--aia-time-done-bg-hover, rgba(var(--aia-streak-rgb, 255, 255, 255), .16))}\n"] }]
131
+ }], propDecorators: { view: [{
132
+ type: Input
133
+ }], label: [{
134
+ type: Input
135
+ }], doneLabel: [{
136
+ type: Input
137
+ }], interactive: [{
138
+ type: Input
139
+ }], timeChange: [{
140
+ type: Output
141
+ }], commit: [{
142
+ type: Output
143
+ }], wheelColumns: [{
144
+ type: ViewChildren,
145
+ args: ["wheelColumn"]
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS13aGVlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3RpbWUtd2hlZWwvdGltZS13aGVlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3RpbWUtd2hlZWwvdGltZS13aGVlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sWUFBWSxFQUNaLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixxQkFBcUIsRUFJckIsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixhQUFhLEVBQ2Isa0JBQWtCLEdBQ25CLE1BQU0scUNBQXFDLENBQUM7OztBQUU3QyxrRkFBa0Y7QUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFhN0I7Ozs7Ozs7Ozs7OztHQVlHO0FBVUgsTUFBTSxPQUFPLGtCQUFrQjtJQVQvQjtRQVVFLCtEQUErRDtRQUN0RCxTQUFJLEdBQW9CLElBQUksQ0FBQztRQUN0Qyw4Q0FBOEM7UUFDckMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNwQiw4REFBOEQ7UUFDckQsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUN4Qjs7O1dBR0c7UUFDTSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUU1QixpRkFBaUY7UUFDOUQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDM0QsMERBQTBEO1FBQ3ZDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSTVDLFlBQU8sR0FBRyxrQkFBa0IsQ0FBQztRQUVyQixXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFvRW5FLGtCQUFhLEdBQUcsQ0FBQyxDQUFTLEVBQUUsTUFBdUIsRUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLGVBQVUsR0FBRyxDQUFDLENBQVMsRUFBRSxHQUFpQixFQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0tBa0JsRTtJQXJGQyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUF1QjtRQUM1QixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXVCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsaUdBQWlHO0lBQ2pHLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUM3QyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztZQUM3QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFvQixDQUFDO1lBQzFFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMscUVBQXFFO1lBQ3JFLDBCQUEwQjtZQUMxQixJQUFJLEtBQUssQ0FBQyxNQUFNO2dCQUFFLFNBQVM7WUFDM0IsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLHFCQUFxQixDQUFDO1lBQzlFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsU0FBUztZQUMvQyxLQUFLLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUN0QixFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU07Z0JBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDNUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNyRSxJQUFJLE1BQU0sRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLE9BQU87U0FDUjtRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxPQUFPLENBQWMscUJBQXFCLENBQUMsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixDQUEyQixDQUFDO1FBQ25GLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUM1QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUF1QixFQUFFLEtBQVk7UUFDNUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNFLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLE9BQU87U0FDUjtRQUNELEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksS0FBSyxDQUFDLE1BQU07WUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLEtBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixXQUFXLENBQUMsS0FBaUI7UUFDM0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFLTyxNQUFNLENBQUMsTUFBdUIsRUFBRSxFQUFlO1FBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUM1QyxNQUFNLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksS0FBSyxLQUFLLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPO1FBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBdUI7UUFDM0MsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLEtBQUssR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNoQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Z0hBNUdVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLGlVQy9EL0IsazVEQThDQSxncEVEV1ksWUFBWTs0RkFNWCxrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLG1CQUNOLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBTTVCLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdhLFVBQVU7c0JBQTVCLE1BQU07Z0JBRVksTUFBTTtzQkFBeEIsTUFBTTtnQkFFc0IsWUFBWTtzQkFBeEMsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICB0eXBlIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIHR5cGUgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIHR5cGUgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgZm9ybWF0VGltZSxcbiAgVElNRV9XSEVFTF9DT0xVTU5TLFxuICBUSU1FX1dIRUVMX1JPV19IRUlHSFQsXG4gIHR5cGUgVGltZVZpZXcsXG4gIHR5cGUgVGltZVdoZWVsQ29sdW1uLFxuICB0eXBlIFRpbWVXaGVlbFJvdyxcbiAgdGltZVdoZWVsSW5kZXgsXG4gIHRpbWVXaGVlbEluZGV4RnJvbVNjcm9sbCxcbiAgdGltZVdoZWVsUm93cyxcbiAgd2l0aFRpbWVXaGVlbEluZGV4LFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLyoqIEhvdyBsb25nIGEgY29sdW1uJ3Mgc2Nyb2xsIG11c3QgYmUgc3RpbGwgYmVmb3JlIHRoZSByb3cgaXQgcmVzdHMgb24gY291bnRzLiAqL1xuY29uc3QgU0NST0xMX1NFVFRMRV9NUyA9IDEyMDtcblxuLyoqXG4gKiBQZXItY29sdW1uIHNjcm9sbCBib29ra2VlcGluZy4gYHN5bmNlZFRvcGAgaXMgdGhlIG9mZnNldCB0aGlzIGNvbXBvbmVudCBsYXN0XG4gKiBzY3JvbGxlZCB0aGUgY29sdW1uIHRvIGl0c2VsZiwgc28gdGhlIHNjcm9sbCBldmVudCB0aGF0IGVjaG9lcyBpdCBpcyBub3RcbiAqIG1pc3Rha2VuIGZvciB0aGUgdXNlciB0dXJuaW5nIHRoZSB3aGVlbDsgYHNldHRsZWAgaXMgdGhlIHBlbmRpbmcgcmVhZCBvZiBhXG4gKiBzY3JvbGwgdGhlIHVzZXIgaXMgc3RpbGwgbWFraW5nLlxuICovXG5pbnRlcmZhY2UgQ29sdW1uU2Nyb2xsIHtcbiAgc3luY2VkVG9wOiBudW1iZXIgfCBudWxsO1xuICBzZXR0bGU6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbDtcbn1cblxuLyoqXG4gKiBUaGUgZHJvcGRvd24ncyB0aW1lIGJvZHksIHJlbmRlcmVkIGluIHBsYWNlIG9mIHRoZSBvcHRpb25zIGdyaWQgd2hlbiB0aGVcbiAqIGFjdGl2ZSBwYXJhbWV0ZXIgaXMgYSB0aW1lLiBBbmd1bGFyIGFuYWxvZ3VlIG9mIHZhbmlsbGEncyBgcmVuZGVyVGltZVdoZWVsYFxuICogYW5kIFJlYWN0J3MgYDxUaW1lV2hlZWw+YDogdGhyZWUgd2hlZWxzIOKAlCBob3VyLCBtaW51dGVzIGluIGZpdmVzLCBBTS9QTSDigJRcbiAqIHdob3NlIHRvcCByb3dzIHJlYWQgYXMgdGhlIHRpbWUsIGFuZCBhIERvbmUgYnV0dG9uLlxuICpcbiAqIFRoZSB3aGVlbHMgaG9sZCBubyB0aW1lIG9mIHRoZWlyIG93bi4gYHZpZXcubWludXRlc2AgaXMgdGhlIHRpbWU7IHR1cm5pbmcgYVxuICogd2hlZWwgZW1pdHMgdGhlIG5ldyB0aW1lIGFuZCB0aGUgbmV4dCByZW5kZXIgc2Nyb2xscyBldmVyeSB3aGVlbCB0byBpdC4gVGhhdFxuICogaXMgd2hhdCBsZXRzIHRoZSBrZXlib2FyZCAoQXJyb3dVcC9BcnJvd0Rvd24gaW4gdGhlIGlucHV0LCBoYW5kbGVkIGJ5IHRoZVxuICogY29yZSkgYW5kIHRoZSBwb2ludGVyIG1vdmUgdGhlIHNhbWUgdGltZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFpYS10aW1lLXdoZWVsXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi90aW1lLXdoZWVsLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90aW1lLXdoZWVsLmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVXaGVlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG4gIC8qKiBUaGUgY29yZSdzIGB0aW1lVmlld2A6IHRoZSB0aW1lIG9uIHRoZSB3aGVlbHMnIHRvcCByb3dzLiAqL1xuICBASW5wdXQoKSB2aWV3OiBUaW1lVmlldyB8IG51bGwgPSBudWxsO1xuICAvKiogQWNjZXNzaWJsZSBuYW1lIGZvciB0aGUgd2hlZWwgKFwiVGltZVwiKS4gKi9cbiAgQElucHV0KCkgbGFiZWwgPSBcIlwiO1xuICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRoYXQgYW5zd2VycyB3aXRoIHRoZSB0aW1lIChcIkRvbmVcIikuICovXG4gIEBJbnB1dCgpIGRvbmVMYWJlbCA9IFwiXCI7XG4gIC8qKlxuICAgKiBGYWxzZSBmb3IgdGhlIHByZXNzIHdpbmRvdyBhZnRlciBhbiBhbnN3ZXI6IHRoZSBhbnN3ZXJlZCBwaWxsJ3Mgd2hlZWwgaXNcbiAgICogc3RpbGwgb24gc2NyZWVuIGFuZCBtdXN0IG5vdCB0YWtlIGEgc2Vjb25kIGFuc3dlci5cbiAgICovXG4gIEBJbnB1dCgpIGludGVyYWN0aXZlID0gdHJ1ZTtcblxuICAvKiogVGhlIHVzZXIgdHVybmVkIGEgd2hlZWw7IHRoZSB2YWx1ZSBpcyB0aGUgd2hvbGUgbmV3IHRpbWUuIENvbW1pdHMgbm90aGluZy4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRpbWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgLyoqIERvbmUg4oCUIGFuc3dlciB0aGUgcGlsbCB3aXRoIHRoZSB0aW1lIG9uIHRoZSB3aGVlbHMuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjb21taXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihcIndoZWVsQ29sdW1uXCIpIHdoZWVsQ29sdW1ucz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgcmVhZG9ubHkgY29sdW1ucyA9IFRJTUVfV0hFRUxfQ09MVU1OUztcblxuICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbCA9IG5ldyBNYXA8VGltZVdoZWVsQ29sdW1uLCBDb2x1bW5TY3JvbGw+KCk7XG5cbiAgZ2V0IHZhbHVlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52aWV3ID8gZm9ybWF0VGltZSh0aGlzLnZpZXcubWludXRlcykgOiBcIlwiO1xuICB9XG5cbiAgcm93c09mKGNvbHVtbjogVGltZVdoZWVsQ29sdW1uKTogcmVhZG9ubHkgVGltZVdoZWVsUm93W10ge1xuICAgIHJldHVybiB0aW1lV2hlZWxSb3dzKGNvbHVtbik7XG4gIH1cblxuICBpbmRleE9mKGNvbHVtbjogVGltZVdoZWVsQ29sdW1uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52aWV3ID8gdGltZVdoZWVsSW5kZXgoY29sdW1uLCB0aGlzLnZpZXcubWludXRlcykgOiAtMTtcbiAgfVxuXG4gIC8qKiBTY3JvbGwgZWFjaCB3aGVlbCBzbyBpdHMgY2hvc2VuIHJvdyBpcyBvbiB0b3AuIElkZW1wb3RlbnQsIHNvIGNoZWFwIHRvIHJ1biBvbiBldmVyeSBjaGVjay4gKi9cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWV3IHx8ICF0aGlzLndoZWVsQ29sdW1ucykgcmV0dXJuO1xuICAgIGZvciAoY29uc3QgcmVmIG9mIHRoaXMud2hlZWxDb2x1bW5zKSB7XG4gICAgICBjb25zdCBlbCA9IHJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgY29sdW1uID0gZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1haWEtdGltZS1jb2x1bW5cIikgYXMgVGltZVdoZWVsQ29sdW1uO1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnNjcm9sbFN0YXRlT2YoY29sdW1uKTtcbiAgICAgIC8vIE5ldmVyIHlhbmsgYSB3aGVlbCB0aGUgdXNlciBpcyBzdGlsbCB0dXJuaW5nOiB0aGVpciBzY3JvbGwgc2V0dGxlc1xuICAgICAgLy8gaW50byBhIHRpbWUgb2YgaXRzIG93bi5cbiAgICAgIGlmIChzdGF0ZS5zZXR0bGUpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgdG9wID0gdGltZVdoZWVsSW5kZXgoY29sdW1uLCB0aGlzLnZpZXcubWludXRlcykgKiBUSU1FX1dIRUVMX1JPV19IRUlHSFQ7XG4gICAgICBpZiAoTWF0aC5hYnMoZWwuc2Nyb2xsVG9wIC0gdG9wKSA8IDEpIGNvbnRpbnVlO1xuICAgICAgc3RhdGUuc3luY2VkVG9wID0gdG9wO1xuICAgICAgZWwuc2Nyb2xsVG9wID0gdG9wO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3RhdGUgb2YgdGhpcy5zY3JvbGwudmFsdWVzKCkpIHtcbiAgICAgIGlmIChzdGF0ZS5zZXR0bGUpIGNsZWFyVGltZW91dChzdGF0ZS5zZXR0bGUpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUgfHwgIXRoaXMudmlldykgcmV0dXJuO1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgPyBldmVudC50YXJnZXQgOiBudWxsO1xuICAgIGlmICh0YXJnZXQ/LmNsb3Nlc3QoXCJbZGF0YS1haWEtdGltZS1kb25lXVwiKSkge1xuICAgICAgdGhpcy5jb21taXQuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByb3cgPSB0YXJnZXQ/LmNsb3Nlc3Q8SFRNTEVsZW1lbnQ+KFwiW2RhdGEtYWlhLXRpbWUtcm93XVwiKTtcbiAgICBjb25zdCBjb2x1bW4gPSByb3c/LmdldEF0dHJpYnV0ZShcImRhdGEtYWlhLXRpbWUtY29sdW1uXCIpIGFzIFRpbWVXaGVlbENvbHVtbiB8IG51bGw7XG4gICAgaWYgKCFyb3cgfHwgIWNvbHVtbikgcmV0dXJuO1xuICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKHJvdy5nZXRBdHRyaWJ1dGUoXCJkYXRhLWFpYS1pbmRleFwiKSk7XG4gICAgdGhpcy50aW1lQ2hhbmdlLmVtaXQod2l0aFRpbWVXaGVlbEluZGV4KGNvbHVtbiwgdGhpcy52aWV3Lm1pbnV0ZXMsIGluZGV4KSk7XG4gIH1cblxuICBvblNjcm9sbChjb2x1bW46IFRpbWVXaGVlbENvbHVtbiwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnNjcm9sbFN0YXRlT2YoY29sdW1uKTtcbiAgICBpZiAoc3RhdGUuc3luY2VkVG9wICE9IG51bGwgJiYgTWF0aC5hYnMoZWwuc2Nyb2xsVG9wIC0gc3RhdGUuc3luY2VkVG9wKSA8IDEpIHtcbiAgICAgIHN0YXRlLnN5bmNlZFRvcCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXRlLnN5bmNlZFRvcCA9IG51bGw7XG4gICAgaWYgKHN0YXRlLnNldHRsZSkgY2xlYXJUaW1lb3V0KHN0YXRlLnNldHRsZSk7XG4gICAgc3RhdGUuc2V0dGxlID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldHRsZShjb2x1bW4sIGVsKSwgU0NST0xMX1NFVFRMRV9NUyk7XG4gIH1cblxuICAvKiogS2VlcHMgdGhlIGlucHV0IGZvY3VzZWQsIHdoaWNoIHRoZSBkcm9wZG93bidzIHZpc2liaWxpdHkgZ2F0ZSBkZXBlbmRzIG9uLiAqL1xuICBwcmV2ZW50Qmx1cihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICB0cmFja0J5Q29sdW1uID0gKF86IG51bWJlciwgY29sdW1uOiBUaW1lV2hlZWxDb2x1bW4pOiBzdHJpbmcgPT4gY29sdW1uO1xuICB0cmFja0J5Um93ID0gKF86IG51bWJlciwgcm93OiBUaW1lV2hlZWxSb3cpOiBzdHJpbmcgPT4gcm93LmxhYmVsO1xuXG4gIHByaXZhdGUgc2V0dGxlKGNvbHVtbjogVGltZVdoZWVsQ29sdW1uLCBlbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFN0YXRlT2YoY29sdW1uKS5zZXR0bGUgPSBudWxsO1xuICAgIGlmICghdGhpcy5pbnRlcmFjdGl2ZSB8fCAhdGhpcy52aWV3KSByZXR1cm47XG4gICAgY29uc3QgaW5kZXggPSB0aW1lV2hlZWxJbmRleEZyb21TY3JvbGwoY29sdW1uLCBlbC5zY3JvbGxUb3ApO1xuICAgIGlmIChpbmRleCA9PT0gdGltZVdoZWVsSW5kZXgoY29sdW1uLCB0aGlzLnZpZXcubWludXRlcykpIHJldHVybjtcbiAgICB0aGlzLnRpbWVDaGFuZ2UuZW1pdCh3aXRoVGltZVdoZWVsSW5kZXgoY29sdW1uLCB0aGlzLnZpZXcubWludXRlcywgaW5kZXgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsU3RhdGVPZihjb2x1bW46IFRpbWVXaGVlbENvbHVtbik6IENvbHVtblNjcm9sbCB7XG4gICAgbGV0IHN0YXRlID0gdGhpcy5zY3JvbGwuZ2V0KGNvbHVtbik7XG4gICAgaWYgKCFzdGF0ZSkge1xuICAgICAgc3RhdGUgPSB7IHN5bmNlZFRvcDogbnVsbCwgc2V0dGxlOiBudWxsIH07XG4gICAgICB0aGlzLnNjcm9sbC5zZXQoY29sdW1uLCBzdGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuIiwiPCEtLSBPbmUgY2xpY2sgbGlzdGVuZXIgZm9yIHRoZSB3aG9sZSB3aGVlbCAoc2VlIG9uQ2xpY2spOiB0aGUgd2hlZWwgYXBwZWFyc1xuICAgICB3aGVuIGEgcmVzcG9uc2UgbGFuZHMsIGFuZCBjb250ZW50IHRoYXQgYXBwZWFycyBtaWQtdGFwIGNhcnJ5aW5nIGl0cyBvd25cbiAgICAgbGlzdGVuZXJzIGNhbmNlbHMgdGhlIHRhcCBvbiBpT1MuIC0tPlxuPGRpdlxuICBjbGFzcz1cIm1hZ2ljeC1haWEtdGltZS13aGVlbFwiXG4gIGRhdGEtYWlhLXRpbWUtd2hlZWw9XCJcIlxuICByb2xlPVwiZ3JvdXBcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgKG1vdXNlZG93bik9XCJwcmV2ZW50Qmx1cigkZXZlbnQpXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDwhLS0gVGhlIHdoZWVscyBhcmUgYSBwb2ludGVyIHN1cmZhY2U7IGtleWJvYXJkIHVzZXJzIG1vdmUgdGhlIHRpbWUgZnJvbSB0aGVcbiAgICAgICBpbnB1dC4gU28gdGhlIGNvbHVtbnMgYXJlIGhpZGRlbiBmcm9tIEFUIGFuZCB0aGUgdGltZSBpcyBhbm5vdW5jZWRcbiAgICAgICBmcm9tIGhlcmUgaW5zdGVhZC4gLS0+XG4gIDxzcGFuIGNsYXNzPVwibWFnaWN4LWFpYS10aW1lLXdoZWVsLXZhbHVlXCIgZGF0YS1haWEtdGltZS12YWx1ZT1cIlwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPnt7XG4gICAgdmFsdWVMYWJlbFxuICB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cIm1hZ2ljeC1haWEtdGltZS13aGVlbC1jb2x1bW5zXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1hZ2ljeC1haWEtdGltZS13aGVlbC1iYW5kXCI+PC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlDb2x1bW5cIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY29sdW1uID09PSAnbWludXRlJ1wiIGNsYXNzPVwibWFnaWN4LWFpYS10aW1lLXdoZWVsLXNlcGFyYXRvclwiPjo8L3NwYW4+XG4gICAgICA8ZGl2XG4gICAgICAgICN3aGVlbENvbHVtblxuICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtdGltZS13aGVlbC1jb2x1bW5cIlxuICAgICAgICBbYXR0ci5kYXRhLWFpYS10aW1lLWNvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKGNvbHVtbiwgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NPZihjb2x1bW4pOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Um93XCJcbiAgICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtdGltZS13aGVlbC1yb3dcIlxuICAgICAgICAgIFtjbGFzcy5tYWdpY3gtYWlhLXRpbWUtd2hlZWwtcm93LS1zZWxlY3RlZF09XCJpID09PSBpbmRleE9mKGNvbHVtbilcIlxuICAgICAgICAgIGRhdGEtYWlhLXRpbWUtcm93PVwiXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWFpYS10aW1lLWNvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgIFthdHRyLmRhdGEtYWlhLWluZGV4XT1cImlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcm93LmxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8IS0tIE91dCBvZiB0aGUgdGFiIG9yZGVyLCBhcyB0aGUgY2FsZW5kYXIncyBidXR0b25zIGFyZTogVGFiIGlzIGJvdW5kIHRvIHRoZVxuICAgICAgIGRyb3Bkb3duLCBhbmQgRW50ZXIgaW4gdGhlIGlucHV0IGFscmVhZHkgY29tbWl0cyBhIG1vdmVkIHdoZWVsLiAtLT5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIGNsYXNzPVwibWFnaWN4LWFpYS10aW1lLXdoZWVsLWRvbmVcIiBkYXRhLWFpYS10aW1lLWRvbmU9XCJcIj5cbiAgICB7eyBkb25lTGFiZWwgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBUElDb25maWcsXG4gIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQ3VycmVuY3lPcHRpb25zLFxuICBDdXN0b21GaWVsZHNSZXBvcnQsXG4gIERhdGVNb250aFZpZXcsXG4gIERhdGVSYW5nZSxcbiAgRm9ybWF0VHlwZSxcbiAgSWRlbnRpZmllZFBhcmFtU3RhdGUsXG4gIE1hdGNoZWRJdGVtLFxuICBPcHRpb25PdmVycmlkZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RzQ29uZmlnLFxuICBTZWdtZW50LFxuICBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgU3VnZ2VzdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uLXRpbWUgb3B0aW9ucyBmb3Ige0BsaW5rIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlcn0uXG4gKlxuICogTWlycm9ycyB0aGUgcHJvcHMgdGhlIFJlYWN0IGB1c2VBSUF1dG9jb21wbGV0ZSgpYCBob29rIGFjY2VwdHMsIG1pbnVzIHRoZVxuICogZmllbGRzIHRoYXQgb25seSBtYWtlIHNlbnNlIGZvciBhIFJlYWN0IGNvbXBvbmVudCBzaGVsbCAoYGNvbHVtbnNgIGlzIGhlcmU7XG4gKiBgYXV0b0ZvY3VzYCwgYGNsYXNzTmFtZWAsIGBwaWxsUGxhY2VtZW50YCwgZXRjLiBsaXZlIG9uIHRoZSBUaWVyIDFcbiAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50KS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyB7XG4gIC8qKiBSdW50aW1lIEFQSSBjb25maWd1cmF0aW9uIChhcGlLZXksIGVuZHBvaW50LCBldGMuKS4gKi9cbiAgYXBpQ29uZmlnPzogQVBJQ29uZmlnO1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBjb250ZXh0LiBJbmNsdWRlIHdoYXRldmVyIHlvdSBrbm93IGFib3V0IHRoZSB1c2VyIOKAlCBhXG4gICAqIHByb2ZpbGUsIHByZWZlcmVuY2VzLCB3b3Jrc3BhY2UsIGFueXRoaW5nIOKAlCB0byBwZXJzb25hbGl6ZSBzdWdnZXN0ZWRcbiAgICogcGFyYW1ldGVycyBhbmQgb3B0aW9ucyB0byB0aGVtLlxuICAgKi9cbiAgYWRkaXRpb25hbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIEJDUCA0NyBsYW5ndWFnZSB0YWcgKGUuZy4gYFwiZXNcImApLCBzZW50IHdpdGggZXZlcnkgc3VnZ2VzdGlvbiByZXF1ZXN0LlxuICAgKiBEZWZhdWx0OiB0aGUgYnJvd3NlciBsYW5ndWFnZSAoYG5hdmlnYXRvci5sYW5ndWFnZWApLCBlbHNlIGBcImVuLVVTXCJgLlxuICAgKi9cbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIC8qKiBTZW5kcyBjdXJyZW5jeSBjb250ZXh0IHdpdGggc3VnZ2VzdGlvbnMgd2hlbiB0aGUgY29kZSBhbmQgYSBmaW5pdGUgcG9zaXRpdmUgcmF0ZSBhcmUgc2V0LiAqL1xuICBjdXJyZW5jeT86IEN1cnJlbmN5T3B0aW9ucztcbiAgLyoqXG4gICAqIFlvdXIgcHJvZHVjdCBpZC4gV2hlbiBzZXQsIHdoYXQgdGhlIGRyb3Bkb3duIG9mZmVycyBiZWZvcmUgYW55dGhpbmcgaXNcbiAgICogdHlwZWQgaXMgcmVhZCBmcm9tIGEgY2FjaGVhYmxlIFVSTCBmb3IgeW91ciBwcm9kdWN0LCB3aXRoIG5vIGNyZWRlbnRpYWwsXG4gICAqIGluc3RlYWQgb2YgYSBzdWdnZXN0aW9uIHJlcXVlc3Q7IGl0IGZhbGxzIGJhY2sgdG8gYSBzdWdnZXN0aW9uIHJlcXVlc3RcbiAgICogd2hlbiBpdCBjYW5ub3QgYmUgcmVhZC5cbiAgICovXG4gIHByb2R1Y3RJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFN0YWJsZSBpZCBmb3IgdGhpcyB2aXNpdG9yLCBrZXB0IGJ5IHRoZSBob3N0IGFjcm9zcyBwYWdlIGxvYWRzLiBSaWRlcyBvblxuICAgKiB0ZWxlbWV0cnkgZXZlbnRzIHNvIHNlYXJjaGVzIGNhbiBiZSBqb2luZWQgdG8gd2hhdCB0aGUgdmlzaXRvciBkb2VzXG4gICAqIGFmdGVyd2FyZHMuIE11c3QgYmUgYSBVVUlEIHY0OyBvbWl0IHRvIHNlbmQgbm9uZS4gQSBmdW5jdGlvbiBpcyBjYWxsZWRcbiAgICogb25seSBvbmNlIHRoZSBzZXJ2ZXIgaGFzIGZ1bm5lbCB0ZWxlbWV0cnkgb24uXG4gICAqL1xuICB2aXNpdG9ySWQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgLyoqIFBlci1zdWdnZXN0aW9uLXR5cGUgY2xpZW50LXNpZGUgb3B0aW9uIG92ZXJyaWRlcy4gKi9cbiAgb3B0aW9uT3ZlcnJpZGVzPzogT3B0aW9uT3ZlcnJpZGVzO1xuICAvKiogV2hlbiB0cnVlLCBjb21wbGV0ZWQgcGFyYW1zJyBsaXRlcmFsIHRleHQgaXMgb21pdHRlZCBmcm9tIEFQSSByZXF1ZXN0cy4gKi9cbiAgbWFza0NvbXBsZXRlZFRleHQ/OiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGRyb3Bkb3duIGdyaWQuIERlZmF1bHQ6IDIuICovXG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgZHJvcGRvd24gb3BlbnMgcmVsYXRpdmUgdG8gdGhlIGlucHV0LiBEZWZhdWx0OiBcImJlbG93XCIuXG4gICAqXG4gICAqIFJlYWQgYnkgdGhlIGtleWJvYXJkIGNvbnRyb2xsZXIgdG8gZGVjaWRlIHdoaWNoIHZlcnRpY2FsLWFycm93IGtleSBvcGVuc1xuICAgKiB0aGUgZHJvcGRvd24gZnJvbSB0aGUgaW5wdXQg4oCUIEFycm93RG93biB3aGVuIHRoZSBkcm9wZG93biBpcyBiZWxvdyxcbiAgICogQXJyb3dVcCB3aGVuIGl0J3MgYWJvdmUuXG4gICAqL1xuICBvcHRpb25zUG9zaXRpb24/OiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBkcm9wZG93biBhcHBlYXJzLiBcImF1dG9cIiAoZGVmYXVsdCkgc2hvd3Mgd2hlbiBvcHRpb25zIGFyZVxuICAgKiBhdmFpbGFibGU7IFwibWFudWFsXCIgc2hvd3Mgb25seSBvbiBwaWxsIHRhcDsgXCJoaWRkZW5cIiBuZXZlciBzaG93cy5cbiAgICovXG4gIGRyb3Bkb3duVHJpZ2dlcj86IFwiYXV0b1wiIHwgXCJtYW51YWxcIiB8IFwiaGlkZGVuXCI7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gY2xvc2VzIGlmIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgY2xvc2VEcm9wZG93bk9uQmx1cj86IGJvb2xlYW47XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBub24tdGFwcGFibGUgb3B0aW9ucyByZW5kZXIgYWxvbmdzaWRlIHRhcHBhYmxlIG9uZXMuICovXG4gIHNob3dOb25UYXBwYWJsZU9wdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogU0RLIHN1cmZhY2UgaWRlbnRpZmllciDigJQgc2VudCBhcyBtZXRhLnNvdXJjZSBvbiBib3RoIC9hcGkvc3VnZ2VzdCBhbmRcbiAgICogdGVsZW1ldHJ5IGV2ZW50cy4gU2V0IGF1dG9tYXRpY2FsbHkgdG8gXCJmdWxsLXNka1wiIGJ5IHRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQuIERlZmF1bHRzIHRvIFwiaGVhZGxlc3Mtc2RrXCIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc291cmNlPzogXCJmdWxsLXNka1wiIHwgXCJoZWFkbGVzcy1zZGtcIjtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgKEVudGVyIGtleSBvciBgc3VibWl0KClgIGFjdGlvbikuICovXG4gIG9uU3VibWl0PzogKHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgc3VnZ2VzdGlvbiByb3VuZC10cmlwIHdpdGggdGhlIHN0cnVjdHVyZWRcbiAgICogcXVlcnkgYXMgdGhlIFNESyBub3cgdW5kZXJzdGFuZHMgaXQg4oCUIHRoZSBzYW1lIGBBdXRvY29tcGxldGVSZXN1bHRgIHNoYXBlXG4gICAqIGBvblN1Ym1pdGAgZGVsaXZlcnMsIHNvIGEgY29uc3VtZXIgY2FuIG1pcnJvciB0aGUgcXVlcnkgYXMgaXQgaXMgYnVpbHRcbiAgICogKGEgbGl2ZSBwcmV2aWV3LCBhIGRyYWZ0LCBhbmFseXRpY3MpIHdpdGhvdXQgd2FpdGluZyBmb3Igc3VibWl0LlxuICAgKlxuICAgKiBGaXJlcyBvbmNlIHBlciByZXNwb25zZSB0aGF0IHdhcyBhcHBsaWVkLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgcmVxdWVzdFxuICAgKiBvbiBjb25zdHJ1Y3Rpb24gKGFuIGVtcHR5IHJlc3VsdCkuIERvZXMgbm90IGZpcmUgZm9yIGEgcmVxdWVzdCB0aGF0XG4gICAqIGZhaWxlZCwgd2FzIGFib3J0ZWQsIG9yIHdhcyBzdXBlcnNlZGVkIGJlZm9yZSBpdCByZXR1cm5lZCwgYW5kIG5vdGhpbmdcbiAgICogZmlyZXMgZm9yIGEga2V5c3Ryb2tlIHRoYXQgaGFzbid0IGJlZW4gc2VudCB5ZXQg4oCUIHJlYWQgYGdldFJlc3VsdCgpYCBmb3JcbiAgICogdGhlIGN1cnJlbnQgdmFsdWUgb24gZGVtYW5kLlxuICAgKi9cbiAgb25SZXN1bHQ/OiAocmVzdWx0OiBBdXRvY29tcGxldGVSZXN1bHQpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIGZldGNoIGZhaWxzLiAqL1xuICBvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBlZGl0b3IgdGV4dCBjaGFuZ2VzIChjb250cm9sbGVkLW1vZGUgc2lnbmFsKS4gKi9cbiAgb25DaGFuZ2U/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gY29tcGxldGVkIHBhcmFtcyBjaGFuZ2UgKGNvbnRyb2xsZWQtbW9kZSBzaWduYWwpLiAqL1xuICBvblBhcmFtc0NoYW5nZT86IChwYXJhbXM6IENvbXBsZXRlZFBhcmFtU3RhdGVbXSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy4gKi9cbiAgb25Gb2N1cz86ICgpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gcmVuZGVycyBhIGhvcml6b250YWwgcm93IG9mIHByb2R1Y3RcbiAgICogY2FyZHMgYmVsb3cgdGhlIG9wdGlvbnMgZ3JpZCB3aGVuZXZlciBpdCBoYXMgcHJvZHVjdHMgdG8gc2hvdzogYnkgZGVmYXVsdFxuICAgKiB0aGUgaXRlbXMgdGhlIGAvc3VnZ2VzdGAgcmVzcG9uc2UgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIHRoZVxuICAgKiByZXN1bHRzIG9mIGEgY3VzdG9tIGBwcm9kdWN0c2Agc2VhcmNoLiBTZXQgdG8gZmFsc2UgdG8gcmVuZGVyIG5vIHN0cmlwXG4gICAqIGFuZCBydW4gbm8gY3VzdG9tIHNlYXJjaC5cbiAgICovXG4gIHNob3dQcm9kdWN0cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b20gc291cmNlIGZvciB0aGUgcHJvZHVjdCBzdHJpcC4gT21pdCBpdCBhbmQgdGhlIHN0cmlwIHNob3dzIHRoZVxuICAgKiBpdGVtcyB0aGUgYC9zdWdnZXN0YCByZXNwb25zZSBpdHNlbGYgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIHdpdGhcbiAgICogbm8gZXh0cmEgcmVxdWVzdC4gU2V0IGl0IGFuZCB0aGUgZHJvcGRvd24gaXMgZmVkIGJ5IHRoZSBpbnRlZ3JhdGlvbidzIG93blxuICAgKiBzZWFyY2ggZW5kcG9pbnQgb24gdGhlIFNESydzIGV4aXN0aW5nIGZldGNoIGNhZGVuY2UgaW5zdGVhZDsgdGhlIHNlcnZlcidzXG4gICAqIGl0ZW1zIGFyZSB0aGVuIG5vdCByZW5kZXJlZC5cbiAgICovXG4gIHByb2R1Y3RzPzogUHJvZHVjdHNDb25maWc7XG4gIC8qKlxuICAgKiBSdW5zIHN5bmNocm9ub3VzbHkgd2l0aCB0aGUgU0RLJ3MgY2FyZHMgYW5kIHRoZWlyIHJlc3BvbnNlIGl0ZW1zIGluIHRoZSBzYW1lIG9yZGVyLlxuICAgKiBUaGUgcHJvZHVjdCBzdHJpcCBzaG93cyB0aGUgcmV0dXJuZWQgYXJyYXkuXG4gICAqIERvZXMgbm90IGFwcGx5IHRvIGEgY3VzdG9tIHByb2R1Y3RzIGludGVncmF0aW9uLlxuICAgKiBBIHRocm93IG9yIGEgcmVzdWx0IHRoYXQgaXMgbm90IGFuIGFycmF5IGtlZXBzIHRoZSBTREsncyBjYXJkcy5cbiAgICovXG4gIG1hcFByb2R1Y3RzPzogKHByb2R1Y3RzOiBQcm9kdWN0W10sIGl0ZW1zOiBNYXRjaGVkSXRlbVtdKSA9PiBQcm9kdWN0W107XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBhY3RpdmF0ZXMgYSBwcm9kdWN0IGNhcmQuIFRoZSBTREsgZG9lcyBub3QgbmF2aWdhdGUg4oCUXG4gICAqIHRoZSBpbnRlZ3JhdGlvbiBkZWNpZGVzIHdoYXQgYSBzZWxlY3Rpb24gbWVhbnMuIE1vZGlmaWVyIC8gbWlkZGxlIGNsaWNrc1xuICAgKiBhcmUgbGVmdCB0byB0aGUgYnJvd3NlciAoY21kLWNsaWNrIHN0aWxsIG9wZW5zIGEgdGFiKSBhbmQgZG9uJ3QgZmlyZSB0aGlzLlxuICAgKi9cbiAgb25Qcm9kdWN0U2VsZWN0PzogKHByb2R1Y3Q6IFByb2R1Y3QpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBBZGRzIGEgcHJvZHVjdCB0byB0aGUgY2FydCBmcm9tIGl0cyBjYXJkLiBXaGVuIHNldCwgZXZlcnkgY2FyZCB0aGF0IGlzbid0XG4gICAqIHNvbGQgb3V0IChgYXZhaWxhYmxlOiBmYWxzZWApIHNob3dzIGFuIGFkZC10by1jYXJ0IGJ1dHRvbiBpbiB0aGUgYm90dG9tXG4gICAqIHJpZ2h0IGNvcm5lciBvZiBpdHMgaW1hZ2U7IHdoZW4gdW5zZXQsIG5vIGNhcmQgaGFzIG9uZS4gUHJlc3NpbmcgdGhlIGJ1dHRvblxuICAgKiBjYWxscyB0aGlzLCBub3QgYG9uUHJvZHVjdFNlbGVjdGAsIGFuZCB0aGUgcGFuZWwgc3RheXMgb3Blbi4gVGhlIFNESyBuZXZlclxuICAgKiB0b3VjaGVzIGEgY2FydCBpdHNlbGYuXG4gICAqXG4gICAqIFJldHVybiBhIHByb21pc2UgdG8gaGF2ZSB0aGUgYnV0dG9uIHNob3cgcHJvZ3Jlc3M6IGl0IGNhcnJpZXNcbiAgICogYGRhdGEtYWlhLWNhcnQtc3RhdGU9XCJhZGRpbmdcImAgdW50aWwgdGhlIHByb21pc2Ugc2V0dGxlcywgdGhlbiBgXCJhZGRlZFwiYFxuICAgKiBmb3IgYSBtb21lbnQgaWYgaXQgcmVzb2x2ZWQuIEEgcmVqZWN0aW9uIHB1dHMgdGhlIGJ1dHRvbiBiYWNrIGF0IHJlc3QuXG4gICAqXG4gICAqIFVubGlrZSB0aGUgb3RoZXIgY2FsbGJhY2tzIGl0IGNhbiBiZSBzd2FwcGVkIG9yIHJlbW92ZWQgdGhyb3VnaFxuICAgKiBgdXBkYXRlKClgLCB3aGljaCBhZGRzIG9yIHJlbW92ZXMgdGhlIGJ1dHRvbnMuXG4gICAqL1xuICBvblByb2R1Y3RBZGRUb0NhcnQ/OiAocHJvZHVjdDogUHJvZHVjdCkgPT4gdm9pZCB8IFByb21pc2VMaWtlPHVua25vd24+O1xuICAvKiogSW5pdGlhbCBjb250cm9sbGVkIHRleHQgdmFsdWUuICovXG4gIHZhbHVlPzogc3RyaW5nO1xuICAvKiogSW5pdGlhbCBjb250cm9sbGVkIGNvbXBsZXRlZCBwYXJhbXMuICovXG4gIGNvbXBsZXRlZFBhcmFtcz86IENvbXBsZXRlZFBhcmFtU3RhdGVbXTtcbiAgLyoqXG4gICAqIENhcmV0LXNldCBjYWxsYmFjay4gSW52b2tlZCBieSB0aGUgY29yZSB3aGVuIHJlLWVkaXQgLyBCYWNrc3BhY2UgZmxvd3NcbiAgICogbmVlZCB0aGUgZWRpdG9yIGNhcmV0IHBhcmtlZCBhdCBhIHNwZWNpZmljIHBsYWluLXRleHQgb2Zmc2V0LiBUaGUgVGllciAxXG4gICAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50IHdpcmVzIHRoaXMgZnJvbSBpdHMgZWRpdG9yIGhvc3Q7IGhlYWRsZXNzXG4gICAqIGNvbnN1bWVycyBjYW4gbGVhdmUgaXQgdW5zZXQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc2V0Q3Vyc29yPzogKG9mZnNldDogbnVtYmVyKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFN1YnNldCBvZiB7QGxpbmsgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9uc30gdGhhdCBjYW4gYmUgY2hhbmdlZCBhZnRlclxuICogY29uc3RydWN0aW9uLiBFeGNsdWRlcyBldmVudCBjYWxsYmFja3MgKHRob3NlIGFyZSByZWdpc3RlcmVkIG9uY2UgYXRcbiAqIGNvbnN0cnVjdGlvbiDigJQgc2VlIHZhbmlsbGEgYENvcmVVcGRhdGVPcHRpb25zYCkuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUgPSBQYXJ0aWFsPFxuICBPbWl0PFxuICAgIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMsXG4gICAgfCBcIm9uU3VibWl0XCJcbiAgICB8IFwib25SZXN1bHRcIlxuICAgIHwgXCJvbkVycm9yXCJcbiAgICB8IFwib25DaGFuZ2VcIlxuICAgIHwgXCJvblBhcmFtc0NoYW5nZVwiXG4gICAgfCBcIm9uRm9jdXNcIlxuICAgIHwgXCJvbkJsdXJcIlxuICAgIHwgXCJvblByb2R1Y3RTZWxlY3RcIlxuICAgIHwgXCJzZXRDdXJzb3JcIlxuICA+XG4+O1xuXG4vKipcbiAqIFNuYXBzaG90IG9mIHRoZSBjb250cm9sbGVyJ3MgcmVhY3RpdmUgc3RhdGUuIEVhY2ggZmllbGQgaXMgYWxzbyBleHBvc2VkIGFzXG4gKiBhIHN0YW5kLWFsb25lIG9ic2VydmFibGUgb24gdGhlIGNvbnRyb2xsZXIgKGUuZy4gYGNvbnRyb2xsZXIudGV4dCRgKS5cbiAqXG4gKiBgc3VnZ2VzdGlvblBpbGxzYCBtaXJyb3JzIFJlYWN0J3MgYHN1Z2dlc3Rpb25QaWxsc2Ag4oCUIHRoZSBhY3Rpb25hYmxlXG4gKiBzdWJzZXQgb2YgYHN1Z2dlc3Rpb25zYCByZWFkeSBmb3IgcGlsbCByZW5kZXJpbmcuIGBpc0xvYWRpbmdgIGlzIHRoZVxuICogVUktdmlzaWJsZSBsb2FkaW5nIGZsYWcgKHN1cHByZXNzZWQgZHVyaW5nIHRoZSBwb3N0LXNlbGVjdCBwcmVzc1xuICogYW5pbWF0aW9uIGFuZCBkdXJpbmcgcmUtZWRpdCwgd2hlcmUgY2FjaGVkIG9wdGlvbnMgc3RheSB2aXNpYmxlKS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGNvbXBsZXRlZFBhcmFtczogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogU3VnZ2VzdGlvbnMgdGhlIHVzZXIgZGlzbWlzc2VkIHdpdGggdGhlIHNraXAga2V5ICjihpIpLiBOb3RoaW5nIHJlbmRlcnNcbiAgICogdGhlbSDigJQgcGFzcyB0aGVtIHRvIGBidWlsZFN1Ym1pdFJlc3VsdGAgc28gYSBoYW5kLXJvbGxlZCBzdWJtaXQgY2Fycmllc1xuICAgKiB0aGUgc2FtZSBgdGV4dDogXCJza2lwcGVkXCJgIGVudHJpZXMgdGhlIFNESydzIG93biByZXF1ZXN0cyBkby5cbiAgICovXG4gIHNraXBwZWRQYXJhbXM6IFNraXBwZWRQYXJhbVN0YXRlW107XG4gIC8qKlxuICAgKiBQYXJhbXMgdGhlIHNlcnZlciBpZGVudGlmaWVkIGluIHRoZSB1c2VyJ3Mgb3duIHdvcmRzLiBBbHJlYWR5IHJlbmRlcmVkXG4gICAqIHRocm91Z2ggYHNlZ21lbnRzYDsgZXhwb3NlZCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYW4gcGFzcyB0aGVtIHRvXG4gICAqIGBidWlsZFN1Ym1pdFJlc3VsdGAgYW5kIHJlcG9ydCB0aGUgc2FtZSBgaWRlbnRpZmllZF9wYXJhbXNgIHRoZSBTREsnc1xuICAgKiBvd24gcmVzdWx0cyBjYXJyeS5cbiAgICovXG4gIGlkZW50aWZpZWRQYXJhbXM6IElkZW50aWZpZWRQYXJhbVN0YXRlW107XG4gIHN1Z2dlc3Rpb25QaWxsczogU3VnZ2VzdGlvbltdO1xuICBzZWdtZW50czogU2VnbWVudFtdO1xuICBuZXdQYXJhbUlkOiBzdHJpbmcgfCBudWxsO1xuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvKipcbiAgICogV2hhdCB0aGUgcHJvZHVjdCBzdHJpcCBzaG93czogdGhlIGl0ZW1zIHRoZSBsYXRlc3QgYC9zdWdnZXN0YCByZXNwb25zZVxuICAgKiByZXBvcnRlZCBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIHRoZSByZXN1bHRzIG9mIGEgY3VzdG9tIGBwcm9kdWN0c2BcbiAgICogc2VhcmNoLiBBbHJlYWR5IGZvbGRlZCBpbnRvIHRoZSBkcm9wZG93biBzbmFwc2hvdCDigJQgcmVhZCBpdCBoZXJlIG9ubHlcbiAgICogd2hlbiByZW5kZXJpbmcgeW91ciBvd24gc3RyaXAuXG4gICAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKipcbiAgICogVGhlIGNhdGFsb2cgZ3JvdW5kaW5nIHJlcG9ydCB0aGUgbGF0ZXN0IHJlc3BvbnNlIGNhcnJpZWQsIG9yIG51bGwgd2hlbiBpdFxuICAgKiBjYXJyaWVkIG5vbmU6IHdoaWNoIG9mIHRoZSBxdWVyeSdzIGNvbnN0cmFpbnRzIHRoZSBjYXRhbG9nIGFwcGxpZWQsIHdoaWNoXG4gICAqIGl0IGRyb3BwZWQsIGFuZCBob3cgbWFueSBpdGVtcyAoYW5kIHdoaWNoKSB0aGUgYXBwbGllZCBvbmVzIGxlZnRcbiAgICogc3RhbmRpbmcuIE51bGwgaXMgXCJubyBuZXdzXCIsIG5vdCBhbiBlbXB0eSBjYXRhbG9nLlxuICAgKi9cbiAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZHNSZXBvcnQgfCBudWxsO1xuICBhY3RpdmVJbmRleDogbnVtYmVyO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIGlzUmVhZHk6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEcm9wZG93bk9wZW46IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyVGV4dDogc3RyaW5nO1xuICBlcnJvcjogRXJyb3IgfCBudWxsO1xuICBlZGl0aW5nUGFyYW06IENvbXBsZXRlZFBhcmFtU3RhdGUgfCBudWxsO1xuICAvKipcbiAgICogU2V0IHdoaWxlIHRoZSB1c2VyIGlzIHBpY2tpbmcgYSBkYXRlIGZvciBhIHNwYW4gdGhlIHNlcnZlciBpZGVudGlmaWVkIGFzXG4gICAqIG9uZSDigJQgXCJzZXB0ZW1iZXIgNXRoXCIgaW4gXCJmbHkgdG8gdmVnYXMgb24gc2VwdGVtYmVyIDV0aFwiLiBOdWxsIG90aGVyd2lzZS5cbiAgICovXG4gIGVkaXRpbmdJZGVudGlmaWVkOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBwYXJhbWV0ZXI6IHN0cmluZztcbiAgICBhbmNob3I6IG51bWJlcjtcbiAgICB0YWlsOiBudW1iZXI7XG4gICAgLyoqIFRoZSBkYXRlIHRoZSBzcGFuIHdhcyByZWFkIGFzLCBvciBhIHJhbmdlJ3Mgc3RhcnQuIE51bGwgd2hlbiBpdCBjb3VsZG4ndCBiZSByZWFkLiAqL1xuICAgIGlzbzogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogVGhlIG90aGVyIGVuZCwgd2hlbiB0aGUgc3BhbiByZWFkcyBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIGFzIG9uZSBkYXkuICovXG4gICAgaXNvRW5kOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBXaGV0aGVyIHRoYXQgc3BhbiBpcyBhbnN3ZXJlZCBieSBhIGNhbGVuZGFyLCBvciBhIGNhbGVuZGFyIGluIHR3byB0YXBzLiAqL1xuICAgIGZvcm1hdDogRm9ybWF0VHlwZTtcbiAgfSB8IG51bGw7XG4gIGVkaXRpbmdBbmNob3I6IG51bWJlciB8IG51bGw7XG4gIGNhcmV0T2Zmc2V0OiBudW1iZXIgfCBudWxsO1xufVxuXG4vKipcbiAqIENvbXBvc2l0ZSBzdGF0ZSBzaGFwZSBmb3IgdGhlIGRyb3Bkb3duIHZpZXcgbGF5ZXIuIFRpZXIgMiBjb25zdW1lcnMgYmluZFxuICogdGhlIGRyb3Bkb3duIGNvbXBvbmVudCB0byB0aGlzIHNuYXBzaG90OyBUaWVyIDEgdXNlcyB0aGUgc2FtZSBzaGFwZVxuICogaW50ZXJuYWxseS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlIHtcbiAgLyoqIEFjdGl2ZSBzdWdnZXN0aW9uICsgZmlsdGVyZWQgb3B0aW9ucyB0byByZW5kZXIgaW4gdGhlIGdyaWQuICovXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKiBDdXJyZW50bHkgaGlnaGxpZ2h0ZWQgb3B0aW9uIGluZGV4LiAtMSB3aGVuIG5vbmUuICovXG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBkcm9wZG93biBzaG91bGQgYmUgdmlzaWJsZS4gKi9cbiAgaXNPcGVuOiBib29sZWFuO1xuICAvKiogUGlsbHMgdG8gcmVuZGVyIGluIHRoZSBkcm9wZG93bidzIHBpbGxiYXIgKHJlLWVkaXQgcGlsbCBvciBhbGwgc3VnZ2VzdGlvbiBwaWxscykuICovXG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIC8qKiBXaGV0aGVyIHRoZSBhY3RpdmUgcGlsbCByZW5kZXJzIHNlbGVjdGVkIChmdWxsIG9wYWNpdHkpIHZzLiB0aGUgYGZpcnN0YCB0aWVyLiAqL1xuICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogYm9vbGVhbjtcbiAgLyoqIFRydWUgd2hlbiB0aGUgZHJvcGRvd24gc2hvdWxkIHJlbmRlciBpdHMgbG9hZGluZyBza2VsZXRvbi4gKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgaW5wdXQgaGFzIG5vIHR5cGVkIHRleHQg4oCUIHRoZSBzb2xlIHN0YXRlIHRoYXQgc3VyZmFjZXMgXCJ0YWIgdG8gc2VsZWN0XCIgaW4gdGhlIGZvb3RlciBoaW50LiAqL1xuICBpc0lucHV0RW1wdHk6IGJvb2xlYW47XG4gIC8qKiBQcm9kdWN0IGNhcmRzIHRvIHJlbmRlciBiZWxvdyB0aGUgb3B0aW9ucyBncmlkLiBFbXB0eSByZW5kZXJzIG5vIHN0cmlwLiAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSBhIGNvbXBsZXRlZCBwYXJhbSBpcyBiZWluZyByZS1lZGl0ZWQuIFRoZSBwaWxsYmFyIHRoZW4gc2hvd3NcbiAgICogdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCDigJQgbm90IHNraXBwYWJsZSDigJQgc28gdGhlIHNraXAgYnV0dG9uIGhpZGVzLlxuICAgKiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBub3QgZWRpdGluZykgc28gZXhpc3RpbmcgY29uc3VtZXIgY29kZSBjb25zdHJ1Y3RpbmdcbiAgICogdGhpcyBzdGF0ZSDigJQgdGVzdCBmaXh0dXJlcywgZmFrZSBjb250cm9sbGVycyDigJQga2VlcHMgY29tcGlsaW5nIGFjcm9zcyB0aGVcbiAgICogbWlub3IgYnVtcCB0aGF0IGludHJvZHVjZWQgaXQuXG4gICAqL1xuICBpc0VkaXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSBmb3IgdGhlIH4xNzBtcyB3aW5kb3cgYWZ0ZXIgYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB3aGlsZSB0aGUgYW5zd2VyZWRcbiAgICogc3VnZ2VzdGlvbiBhbmltYXRlcyBvdXQuIGBpc0xvYWRpbmdgIGlzIGRlbGliZXJhdGVseSBzdXBwcmVzc2VkIGluIHRoYXRcbiAgICogd2luZG93LCBidXQgdGhlIGNvcmUncyBgc2tpcEFjdGl2ZVBpbGwoKWAgbm8tb3BzIGluIGl0IOKAlCB0aGUgc2tpcCBidXR0b25cbiAgICogcmVuZGVycyBkaXNhYmxlZCBvZmYgdGhpcyBmbGFnIGluc3RlYWQgb2Ygc3dhbGxvd2luZyBjbGlja3Mgc2lsZW50bHkuXG4gICAqIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIGZhbHNlKSBmb3IgdGhlIHNhbWUgY29tcGlsZS1jb21wYXQgcmVhc29uIGFzXG4gICAqIGBpc0VkaXRpbmdgLlxuICAgKi9cbiAgaW5TZWxlY3Rpb25BbmltYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSB0aGUgbG9hZGluZyBza2VsZXRvbiBmYWRlcyBvdXQgYmVmb3JlIHRoZSByZXNwb25zZSdzIG9wdGlvbnNcbiAgICogcmVwbGFjZSBpdC4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgZmFsc2UpIGZvciB0aGUgc2FtZSBjb21waWxlLWNvbXBhdFxuICAgKiByZWFzb24gYXMgYGlzRWRpdGluZ2AuXG4gICAqL1xuICBza2VsZXRvbkV4aXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlcmUgdGhlIGRyb3Bkb3duIG9wZW5zIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCDigJQgbWlycm9ycyB0aGUgY29udHJvbGxlcidzXG4gICAqIGBvcHRpb25zUG9zaXRpb25gIG9wdGlvbi4gYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YCByZWFkcyBpdCBmcm9tIGhlcmUsIHNvXG4gICAqIHBsYWNlbWVudCBpcyBjb25maWd1cmVkIG9uY2Ugb24gdGhlIGNvbnRyb2xsZXIgKG5vIHNlcGFyYXRlIGlucHV0IHRvIHN5bmMpLlxuICAgKi9cbiAgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHByb2R1Y3QgY2FyZHMgZHJhdyBhbiBhZGQtdG8tY2FydCBidXR0b24g4oCUIHRoZSBjb250cm9sbGVyIGhhcyBhblxuICAgKiBgb25Qcm9kdWN0QWRkVG9DYXJ0YCBoYW5kbGVyLiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBmYWxzZSkgZm9yIHRoZSBzYW1lXG4gICAqIGNvbXBpbGUtY29tcGF0IHJlYXNvbiBhcyBgaXNFZGl0aW5nYC5cbiAgICovXG4gIGhhc1Byb2R1Y3RBZGRUb0NhcnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogSG93IHRoZSBhY3RpdmUgcGlsbCBpcyBhbnN3ZXJlZC4gYFwiZGF0ZVwiYCBhbmQgYFwiZGF0ZS1yYW5nZVwiYCByZW5kZXIgYVxuICAgKiBjYWxlbmRhciBpbiBwbGFjZSBvZiB0aGUgb3B0aW9ucyBncmlkLCBhbmQgYHN1Z2dlc3Rpb25zWzBdLm9wdGlvbnNgIHRoZW5cbiAgICogY2FycmllcyB0aGF0IG1vbnRoJ3MgY2VsbHMgcmF0aGVyIHRoYW4gdGhlIHBhcmFtZXRlcidzIG93biBvcHRpb25zIOKAlCB0aGVcbiAgICogY29yZSBzd2FwcyB0aGVtIGJlZm9yZSB0aGV5IHJlYWNoIGhlcmUuIEEgYFwiZGF0ZS1yYW5nZVwiYCBwYXJhbWV0ZXIgaXNcbiAgICogYW5zd2VyZWQgYnkgdHdvIHRhcHMgb2YgdGhhdCBjYWxlbmRhciwgYSBzdGFydCBhbmQgYW4gZW5kLCBjb21taXR0ZWQgYXMgb25lXG4gICAqIHNwYW4uIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIGBcIm9wdGlvbnNcImApIGZvciB0aGUgc2FtZSBjb21waWxlLWNvbXBhdCByZWFzb25cbiAgICogYXMgYGlzRWRpdGluZ2AuXG4gICAqL1xuICBmb3JtYXRUeXBlPzogRm9ybWF0VHlwZTtcbiAgLyoqIFRoZSBtb250aCB0aGUgY2FsZW5kYXIgc2hvd3MuIE51bGwvdW5kZWZpbmVkIHVubGVzcyBgZm9ybWF0VHlwZWAgaXMgYSBjYWxlbmRhciBvbmUuICovXG4gIGRhdGVWaWV3PzogRGF0ZU1vbnRoVmlldyB8IG51bGw7XG4gIC8qKiBgWVlZWS1NTS1ERGAgYWxyZWFkeSBoZWxkIGJ5IHRoZSBwYXJhbSBiZWluZyByZS1lZGl0ZWQsIHNvIGl0cyBjZWxsIHJlYWRzIGFzIHRoZSBjdXJyZW50IGFuc3dlci4gKi9cbiAgc2VsZWN0ZWREYXRlSXNvPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEJvdGggZW5kcyBvZiBhIHJhbmdlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCwgc28gYm90aCBjZWxscyByZWFkIGFzIHRoZSBjdXJyZW50IGFuc3dlci4gKi9cbiAgc2VsZWN0ZWREYXRlUmFuZ2U/OiBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogVGhlIGZpcnN0IGVuZCBvZiBhIHJhbmdlIHBpY2tlZCBzbyBmYXIsIHdoaWxlIHRoZSB1c2VyIGNob29zZXMgdGhlIHNlY29uZC4gKi9cbiAgZGF0ZVJhbmdlU3RhcnQ/OiBzdHJpbmcgfCBudWxsO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBUElDb25maWcsXG4gIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQ3VycmVuY3lPcHRpb25zLFxuICBDdXN0b21GaWVsZHNSZXBvcnQsXG4gIERhdGVNb250aFZpZXcsXG4gIERhdGVSYW5nZSxcbiAgRm9ybWF0VHlwZSxcbiAgSWRlbnRpZmllZFBhcmFtU3RhdGUsXG4gIE1hdGNoZWRJdGVtLFxuICBPcHRpb25PdmVycmlkZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RzQ29uZmlnLFxuICBTZWdtZW50LFxuICBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgU3VnZ2VzdGlvbixcbiAgVGltZVZpZXcsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIENvbnN0cnVjdGlvbi10aW1lIG9wdGlvbnMgZm9yIHtAbGluayBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJ9LlxuICpcbiAqIE1pcnJvcnMgdGhlIHByb3BzIHRoZSBSZWFjdCBgdXNlQUlBdXRvY29tcGxldGUoKWAgaG9vayBhY2NlcHRzLCBtaW51cyB0aGVcbiAqIGZpZWxkcyB0aGF0IG9ubHkgbWFrZSBzZW5zZSBmb3IgYSBSZWFjdCBjb21wb25lbnQgc2hlbGwgKGBjb2x1bW5zYCBpcyBoZXJlO1xuICogYGF1dG9Gb2N1c2AsIGBjbGFzc05hbWVgLCBgcGlsbFBsYWNlbWVudGAsIGV0Yy4gbGl2ZSBvbiB0aGUgVGllciAxXG4gKiBgPGFpLWF1dG9jb21wbGV0ZT5gIGNvbXBvbmVudCkuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMge1xuICAvKiogUnVudGltZSBBUEkgY29uZmlndXJhdGlvbiAoYXBpS2V5LCBlbmRwb2ludCwgZXRjLikuICovXG4gIGFwaUNvbmZpZz86IEFQSUNvbmZpZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgY29udGV4dC4gSW5jbHVkZSB3aGF0ZXZlciB5b3Uga25vdyBhYm91dCB0aGUgdXNlciDigJQgYVxuICAgKiBwcm9maWxlLCBwcmVmZXJlbmNlcywgd29ya3NwYWNlLCBhbnl0aGluZyDigJQgdG8gcGVyc29uYWxpemUgc3VnZ2VzdGVkXG4gICAqIHBhcmFtZXRlcnMgYW5kIG9wdGlvbnMgdG8gdGhlbS5cbiAgICovXG4gIGFkZGl0aW9uYWxDb250ZXh0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKlxuICAgKiBCQ1AgNDcgbGFuZ3VhZ2UgdGFnIChlLmcuIGBcImVzXCJgKSwgc2VudCB3aXRoIGV2ZXJ5IHN1Z2dlc3Rpb24gcmVxdWVzdC5cbiAgICogRGVmYXVsdDogdGhlIGJyb3dzZXIgbGFuZ3VhZ2UgKGBuYXZpZ2F0b3IubGFuZ3VhZ2VgKSwgZWxzZSBgXCJlbi1VU1wiYC5cbiAgICovXG4gIGxhbmd1YWdlPzogc3RyaW5nO1xuICAvKiogU2VuZHMgY3VycmVuY3kgY29udGV4dCB3aXRoIHN1Z2dlc3Rpb25zIHdoZW4gdGhlIGNvZGUgYW5kIGEgZmluaXRlIHBvc2l0aXZlIHJhdGUgYXJlIHNldC4gKi9cbiAgY3VycmVuY3k/OiBDdXJyZW5jeU9wdGlvbnM7XG4gIC8qKlxuICAgKiBZb3VyIHByb2R1Y3QgaWQuIFdoZW4gc2V0LCB3aGF0IHRoZSBkcm9wZG93biBvZmZlcnMgYmVmb3JlIGFueXRoaW5nIGlzXG4gICAqIHR5cGVkIGlzIHJlYWQgZnJvbSBhIGNhY2hlYWJsZSBVUkwgZm9yIHlvdXIgcHJvZHVjdCwgd2l0aCBubyBjcmVkZW50aWFsLFxuICAgKiBpbnN0ZWFkIG9mIGEgc3VnZ2VzdGlvbiByZXF1ZXN0OyBpdCBmYWxscyBiYWNrIHRvIGEgc3VnZ2VzdGlvbiByZXF1ZXN0XG4gICAqIHdoZW4gaXQgY2Fubm90IGJlIHJlYWQuXG4gICAqL1xuICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGFibGUgaWQgZm9yIHRoaXMgdmlzaXRvciwga2VwdCBieSB0aGUgaG9zdCBhY3Jvc3MgcGFnZSBsb2Fkcy4gUmlkZXMgb25cbiAgICogdGVsZW1ldHJ5IGV2ZW50cyBzbyBzZWFyY2hlcyBjYW4gYmUgam9pbmVkIHRvIHdoYXQgdGhlIHZpc2l0b3IgZG9lc1xuICAgKiBhZnRlcndhcmRzLiBNdXN0IGJlIGEgVVVJRCB2NDsgb21pdCB0byBzZW5kIG5vbmUuIEEgZnVuY3Rpb24gaXMgY2FsbGVkXG4gICAqIG9ubHkgb25jZSB0aGUgc2VydmVyIGhhcyBmdW5uZWwgdGVsZW1ldHJ5IG9uLlxuICAgKi9cbiAgdmlzaXRvcklkPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gIC8qKiBQZXItc3VnZ2VzdGlvbi10eXBlIGNsaWVudC1zaWRlIG9wdGlvbiBvdmVycmlkZXMuICovXG4gIG9wdGlvbk92ZXJyaWRlcz86IE9wdGlvbk92ZXJyaWRlcztcbiAgLyoqIFdoZW4gdHJ1ZSwgY29tcGxldGVkIHBhcmFtcycgbGl0ZXJhbCB0ZXh0IGlzIG9taXR0ZWQgZnJvbSBBUEkgcmVxdWVzdHMuICovXG4gIG1hc2tDb21wbGV0ZWRUZXh0PzogYm9vbGVhbjtcbiAgLyoqIE51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBkcm9wZG93biBncmlkLiBEZWZhdWx0OiAyLiAqL1xuICBjb2x1bW5zPzogbnVtYmVyO1xuICAvKipcbiAgICogV2hlcmUgdGhlIGRyb3Bkb3duIG9wZW5zIHJlbGF0aXZlIHRvIHRoZSBpbnB1dC4gRGVmYXVsdDogXCJiZWxvd1wiLlxuICAgKlxuICAgKiBSZWFkIGJ5IHRoZSBrZXlib2FyZCBjb250cm9sbGVyIHRvIGRlY2lkZSB3aGljaCB2ZXJ0aWNhbC1hcnJvdyBrZXkgb3BlbnNcbiAgICogdGhlIGRyb3Bkb3duIGZyb20gdGhlIGlucHV0IOKAlCBBcnJvd0Rvd24gd2hlbiB0aGUgZHJvcGRvd24gaXMgYmVsb3csXG4gICAqIEFycm93VXAgd2hlbiBpdCdzIGFib3ZlLlxuICAgKi9cbiAgb3B0aW9uc1Bvc2l0aW9uPzogXCJhYm92ZVwiIHwgXCJiZWxvd1wiO1xuICAvKipcbiAgICogV2hlbiB0aGUgZHJvcGRvd24gYXBwZWFycy4gXCJhdXRvXCIgKGRlZmF1bHQpIHNob3dzIHdoZW4gb3B0aW9ucyBhcmVcbiAgICogYXZhaWxhYmxlOyBcIm1hbnVhbFwiIHNob3dzIG9ubHkgb24gcGlsbCB0YXA7IFwiaGlkZGVuXCIgbmV2ZXIgc2hvd3MuXG4gICAqL1xuICBkcm9wZG93blRyaWdnZXI/OiBcImF1dG9cIiB8IFwibWFudWFsXCIgfCBcImhpZGRlblwiO1xuICAvKiogV2hlbiB0cnVlIChkZWZhdWx0KSwgdGhlIGRyb3Bkb3duIGNsb3NlcyBpZiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIGNsb3NlRHJvcGRvd25PbkJsdXI/OiBib29sZWFuO1xuICAvKiogV2hlbiB0cnVlIChkZWZhdWx0KSwgbm9uLXRhcHBhYmxlIG9wdGlvbnMgcmVuZGVyIGFsb25nc2lkZSB0YXBwYWJsZSBvbmVzLiAqL1xuICBzaG93Tm9uVGFwcGFibGVPcHRpb25zPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNESyBzdXJmYWNlIGlkZW50aWZpZXIg4oCUIHNlbnQgYXMgbWV0YS5zb3VyY2Ugb24gYm90aCAvYXBpL3N1Z2dlc3QgYW5kXG4gICAqIHRlbGVtZXRyeSBldmVudHMuIFNldCBhdXRvbWF0aWNhbGx5IHRvIFwiZnVsbC1zZGtcIiBieSB0aGUgVGllciAxXG4gICAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50LiBEZWZhdWx0cyB0byBcImhlYWRsZXNzLXNka1wiLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNvdXJjZT86IFwiZnVsbC1zZGtcIiB8IFwiaGVhZGxlc3Mtc2RrXCI7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIChFbnRlciBrZXkgb3IgYHN1Ym1pdCgpYCBhY3Rpb24pLiAqL1xuICBvblN1Ym1pdD86IChyZXN1bHQ6IEF1dG9jb21wbGV0ZVJlc3VsdCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIENhbGxlZCBhZnRlciBldmVyeSBzdWNjZXNzZnVsIHN1Z2dlc3Rpb24gcm91bmQtdHJpcCB3aXRoIHRoZSBzdHJ1Y3R1cmVkXG4gICAqIHF1ZXJ5IGFzIHRoZSBTREsgbm93IHVuZGVyc3RhbmRzIGl0IOKAlCB0aGUgc2FtZSBgQXV0b2NvbXBsZXRlUmVzdWx0YCBzaGFwZVxuICAgKiBgb25TdWJtaXRgIGRlbGl2ZXJzLCBzbyBhIGNvbnN1bWVyIGNhbiBtaXJyb3IgdGhlIHF1ZXJ5IGFzIGl0IGlzIGJ1aWx0XG4gICAqIChhIGxpdmUgcHJldmlldywgYSBkcmFmdCwgYW5hbHl0aWNzKSB3aXRob3V0IHdhaXRpbmcgZm9yIHN1Ym1pdC5cbiAgICpcbiAgICogRmlyZXMgb25jZSBwZXIgcmVzcG9uc2UgdGhhdCB3YXMgYXBwbGllZCwgaW5jbHVkaW5nIHRoZSBpbml0aWFsIHJlcXVlc3RcbiAgICogb24gY29uc3RydWN0aW9uIChhbiBlbXB0eSByZXN1bHQpLiBEb2VzIG5vdCBmaXJlIGZvciBhIHJlcXVlc3QgdGhhdFxuICAgKiBmYWlsZWQsIHdhcyBhYm9ydGVkLCBvciB3YXMgc3VwZXJzZWRlZCBiZWZvcmUgaXQgcmV0dXJuZWQsIGFuZCBub3RoaW5nXG4gICAqIGZpcmVzIGZvciBhIGtleXN0cm9rZSB0aGF0IGhhc24ndCBiZWVuIHNlbnQgeWV0IOKAlCByZWFkIGBnZXRSZXN1bHQoKWAgZm9yXG4gICAqIHRoZSBjdXJyZW50IHZhbHVlIG9uIGRlbWFuZC5cbiAgICovXG4gIG9uUmVzdWx0PzogKHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gYSBmZXRjaCBmYWlscy4gKi9cbiAgb25FcnJvcj86IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgZWRpdG9yIHRleHQgY2hhbmdlcyAoY29udHJvbGxlZC1tb2RlIHNpZ25hbCkuICovXG4gIG9uQ2hhbmdlPzogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIGNvbXBsZXRlZCBwYXJhbXMgY2hhbmdlIChjb250cm9sbGVkLW1vZGUgc2lnbmFsKS4gKi9cbiAgb25QYXJhbXNDaGFuZ2U/OiAocGFyYW1zOiBDb21wbGV0ZWRQYXJhbVN0YXRlW10pID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuICovXG4gIG9uRm9jdXM/OiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLiAqL1xuICBvbkJsdXI/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogV2hlbiB0cnVlIChkZWZhdWx0KSwgdGhlIGRyb3Bkb3duIHJlbmRlcnMgYSBob3Jpem9udGFsIHJvdyBvZiBwcm9kdWN0XG4gICAqIGNhcmRzIGJlbG93IHRoZSBvcHRpb25zIGdyaWQgd2hlbmV2ZXIgaXQgaGFzIHByb2R1Y3RzIHRvIHNob3c6IGJ5IGRlZmF1bHRcbiAgICogdGhlIGl0ZW1zIHRoZSBgL3N1Z2dlc3RgIHJlc3BvbnNlIHJlcG9ydHMgYXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LCBvciB0aGVcbiAgICogcmVzdWx0cyBvZiBhIGN1c3RvbSBgcHJvZHVjdHNgIHNlYXJjaC4gU2V0IHRvIGZhbHNlIHRvIHJlbmRlciBubyBzdHJpcFxuICAgKiBhbmQgcnVuIG5vIGN1c3RvbSBzZWFyY2guXG4gICAqL1xuICBzaG93UHJvZHVjdHM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ3VzdG9tIHNvdXJjZSBmb3IgdGhlIHByb2R1Y3Qgc3RyaXAuIE9taXQgaXQgYW5kIHRoZSBzdHJpcCBzaG93cyB0aGVcbiAgICogaXRlbXMgdGhlIGAvc3VnZ2VzdGAgcmVzcG9uc2UgaXRzZWxmIHJlcG9ydHMgYXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LCB3aXRoXG4gICAqIG5vIGV4dHJhIHJlcXVlc3QuIFNldCBpdCBhbmQgdGhlIGRyb3Bkb3duIGlzIGZlZCBieSB0aGUgaW50ZWdyYXRpb24ncyBvd25cbiAgICogc2VhcmNoIGVuZHBvaW50IG9uIHRoZSBTREsncyBleGlzdGluZyBmZXRjaCBjYWRlbmNlIGluc3RlYWQ7IHRoZSBzZXJ2ZXInc1xuICAgKiBpdGVtcyBhcmUgdGhlbiBub3QgcmVuZGVyZWQuXG4gICAqL1xuICBwcm9kdWN0cz86IFByb2R1Y3RzQ29uZmlnO1xuICAvKipcbiAgICogUnVucyBzeW5jaHJvbm91c2x5IHdpdGggdGhlIFNESydzIGNhcmRzIGFuZCB0aGVpciByZXNwb25zZSBpdGVtcyBpbiB0aGUgc2FtZSBvcmRlci5cbiAgICogVGhlIHByb2R1Y3Qgc3RyaXAgc2hvd3MgdGhlIHJldHVybmVkIGFycmF5LlxuICAgKiBEb2VzIG5vdCBhcHBseSB0byBhIGN1c3RvbSBwcm9kdWN0cyBpbnRlZ3JhdGlvbi5cbiAgICogQSB0aHJvdyBvciBhIHJlc3VsdCB0aGF0IGlzIG5vdCBhbiBhcnJheSBrZWVwcyB0aGUgU0RLJ3MgY2FyZHMuXG4gICAqL1xuICBtYXBQcm9kdWN0cz86IChwcm9kdWN0czogUHJvZHVjdFtdLCBpdGVtczogTWF0Y2hlZEl0ZW1bXSkgPT4gUHJvZHVjdFtdO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgYWN0aXZhdGVzIGEgcHJvZHVjdCBjYXJkLiBUaGUgU0RLIGRvZXMgbm90IG5hdmlnYXRlIOKAlFxuICAgKiB0aGUgaW50ZWdyYXRpb24gZGVjaWRlcyB3aGF0IGEgc2VsZWN0aW9uIG1lYW5zLiBNb2RpZmllciAvIG1pZGRsZSBjbGlja3NcbiAgICogYXJlIGxlZnQgdG8gdGhlIGJyb3dzZXIgKGNtZC1jbGljayBzdGlsbCBvcGVucyBhIHRhYikgYW5kIGRvbid0IGZpcmUgdGhpcy5cbiAgICovXG4gIG9uUHJvZHVjdFNlbGVjdD86IChwcm9kdWN0OiBQcm9kdWN0KSA9PiB2b2lkO1xuICAvKipcbiAgICogQWRkcyBhIHByb2R1Y3QgdG8gdGhlIGNhcnQgZnJvbSBpdHMgY2FyZC4gV2hlbiBzZXQsIGV2ZXJ5IGNhcmQgdGhhdCBpc24ndFxuICAgKiBzb2xkIG91dCAoYGF2YWlsYWJsZTogZmFsc2VgKSBzaG93cyBhbiBhZGQtdG8tY2FydCBidXR0b24gaW4gdGhlIGJvdHRvbVxuICAgKiByaWdodCBjb3JuZXIgb2YgaXRzIGltYWdlOyB3aGVuIHVuc2V0LCBubyBjYXJkIGhhcyBvbmUuIFByZXNzaW5nIHRoZSBidXR0b25cbiAgICogY2FsbHMgdGhpcywgbm90IGBvblByb2R1Y3RTZWxlY3RgLCBhbmQgdGhlIHBhbmVsIHN0YXlzIG9wZW4uIFRoZSBTREsgbmV2ZXJcbiAgICogdG91Y2hlcyBhIGNhcnQgaXRzZWxmLlxuICAgKlxuICAgKiBSZXR1cm4gYSBwcm9taXNlIHRvIGhhdmUgdGhlIGJ1dHRvbiBzaG93IHByb2dyZXNzOiBpdCBjYXJyaWVzXG4gICAqIGBkYXRhLWFpYS1jYXJ0LXN0YXRlPVwiYWRkaW5nXCJgIHVudGlsIHRoZSBwcm9taXNlIHNldHRsZXMsIHRoZW4gYFwiYWRkZWRcImBcbiAgICogaWYgaXQgcmVzb2x2ZWQuIGBcImFkZGVkXCJgIHN0YXlzIHVudGlsIHRoZSBjYXJkJ3MgcHJvZHVjdCBjaGFuZ2VzOyBwcmVzc2luZ1xuICAgKiBhZ2FpbiBhZGRzIGFub3RoZXIgdW5pdCAoYWRkaW5nIOKGkiBhZGRlZCBhZ2FpbikuIEEgcmVqZWN0aW9uIHB1dHMgdGhlXG4gICAqIGJ1dHRvbiBiYWNrIGF0IHJlc3QuXG4gICAqXG4gICAqIFVubGlrZSB0aGUgb3RoZXIgY2FsbGJhY2tzIGl0IGNhbiBiZSBzd2FwcGVkIG9yIHJlbW92ZWQgdGhyb3VnaFxuICAgKiBgdXBkYXRlKClgLCB3aGljaCBhZGRzIG9yIHJlbW92ZXMgdGhlIGJ1dHRvbnMuXG4gICAqL1xuICBvblByb2R1Y3RBZGRUb0NhcnQ/OiAocHJvZHVjdDogUHJvZHVjdCkgPT4gdm9pZCB8IFByb21pc2VMaWtlPHVua25vd24+O1xuICAvKiogSW5pdGlhbCBjb250cm9sbGVkIHRleHQgdmFsdWUuICovXG4gIHZhbHVlPzogc3RyaW5nO1xuICAvKiogSW5pdGlhbCBjb250cm9sbGVkIGNvbXBsZXRlZCBwYXJhbXMuICovXG4gIGNvbXBsZXRlZFBhcmFtcz86IENvbXBsZXRlZFBhcmFtU3RhdGVbXTtcbiAgLyoqXG4gICAqIENhcmV0LXNldCBjYWxsYmFjay4gSW52b2tlZCBieSB0aGUgY29yZSB3aGVuIHJlLWVkaXQgLyBCYWNrc3BhY2UgZmxvd3NcbiAgICogbmVlZCB0aGUgZWRpdG9yIGNhcmV0IHBhcmtlZCBhdCBhIHNwZWNpZmljIHBsYWluLXRleHQgb2Zmc2V0LiBUaGUgVGllciAxXG4gICAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50IHdpcmVzIHRoaXMgZnJvbSBpdHMgZWRpdG9yIGhvc3Q7IGhlYWRsZXNzXG4gICAqIGNvbnN1bWVycyBjYW4gbGVhdmUgaXQgdW5zZXQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc2V0Q3Vyc29yPzogKG9mZnNldDogbnVtYmVyKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFN1YnNldCBvZiB7QGxpbmsgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9uc30gdGhhdCBjYW4gYmUgY2hhbmdlZCBhZnRlclxuICogY29uc3RydWN0aW9uLiBFeGNsdWRlcyBldmVudCBjYWxsYmFja3MgKHRob3NlIGFyZSByZWdpc3RlcmVkIG9uY2UgYXRcbiAqIGNvbnN0cnVjdGlvbiDigJQgc2VlIHZhbmlsbGEgYENvcmVVcGRhdGVPcHRpb25zYCkuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUgPSBQYXJ0aWFsPFxuICBPbWl0PFxuICAgIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMsXG4gICAgfCBcIm9uU3VibWl0XCJcbiAgICB8IFwib25SZXN1bHRcIlxuICAgIHwgXCJvbkVycm9yXCJcbiAgICB8IFwib25DaGFuZ2VcIlxuICAgIHwgXCJvblBhcmFtc0NoYW5nZVwiXG4gICAgfCBcIm9uRm9jdXNcIlxuICAgIHwgXCJvbkJsdXJcIlxuICAgIHwgXCJvblByb2R1Y3RTZWxlY3RcIlxuICAgIHwgXCJzZXRDdXJzb3JcIlxuICA+XG4+O1xuXG4vKipcbiAqIFNuYXBzaG90IG9mIHRoZSBjb250cm9sbGVyJ3MgcmVhY3RpdmUgc3RhdGUuIEVhY2ggZmllbGQgaXMgYWxzbyBleHBvc2VkIGFzXG4gKiBhIHN0YW5kLWFsb25lIG9ic2VydmFibGUgb24gdGhlIGNvbnRyb2xsZXIgKGUuZy4gYGNvbnRyb2xsZXIudGV4dCRgKS5cbiAqXG4gKiBgc3VnZ2VzdGlvblBpbGxzYCBtaXJyb3JzIFJlYWN0J3MgYHN1Z2dlc3Rpb25QaWxsc2Ag4oCUIHRoZSBhY3Rpb25hYmxlXG4gKiBzdWJzZXQgb2YgYHN1Z2dlc3Rpb25zYCByZWFkeSBmb3IgcGlsbCByZW5kZXJpbmcuIGBpc0xvYWRpbmdgIGlzIHRoZVxuICogVUktdmlzaWJsZSBsb2FkaW5nIGZsYWcgKHN1cHByZXNzZWQgZHVyaW5nIHRoZSBwb3N0LXNlbGVjdCBwcmVzc1xuICogYW5pbWF0aW9uIGFuZCBkdXJpbmcgcmUtZWRpdCwgd2hlcmUgY2FjaGVkIG9wdGlvbnMgc3RheSB2aXNpYmxlKS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGNvbXBsZXRlZFBhcmFtczogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogU3VnZ2VzdGlvbnMgdGhlIHVzZXIgZGlzbWlzc2VkIHdpdGggdGhlIHNraXAga2V5ICjihpIpLiBOb3RoaW5nIHJlbmRlcnNcbiAgICogdGhlbSDigJQgcGFzcyB0aGVtIHRvIGBidWlsZFN1Ym1pdFJlc3VsdGAgc28gYSBoYW5kLXJvbGxlZCBzdWJtaXQgY2Fycmllc1xuICAgKiB0aGUgc2FtZSBgdGV4dDogXCJza2lwcGVkXCJgIGVudHJpZXMgdGhlIFNESydzIG93biByZXF1ZXN0cyBkby5cbiAgICovXG4gIHNraXBwZWRQYXJhbXM6IFNraXBwZWRQYXJhbVN0YXRlW107XG4gIC8qKlxuICAgKiBQYXJhbXMgdGhlIHNlcnZlciBpZGVudGlmaWVkIGluIHRoZSB1c2VyJ3Mgb3duIHdvcmRzLiBBbHJlYWR5IHJlbmRlcmVkXG4gICAqIHRocm91Z2ggYHNlZ21lbnRzYDsgZXhwb3NlZCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYW4gcGFzcyB0aGVtIHRvXG4gICAqIGBidWlsZFN1Ym1pdFJlc3VsdGAgYW5kIHJlcG9ydCB0aGUgc2FtZSBgaWRlbnRpZmllZF9wYXJhbXNgIHRoZSBTREsnc1xuICAgKiBvd24gcmVzdWx0cyBjYXJyeS5cbiAgICovXG4gIGlkZW50aWZpZWRQYXJhbXM6IElkZW50aWZpZWRQYXJhbVN0YXRlW107XG4gIHN1Z2dlc3Rpb25QaWxsczogU3VnZ2VzdGlvbltdO1xuICBzZWdtZW50czogU2VnbWVudFtdO1xuICBuZXdQYXJhbUlkOiBzdHJpbmcgfCBudWxsO1xuICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAvKipcbiAgICogV2hhdCB0aGUgcHJvZHVjdCBzdHJpcCBzaG93czogdGhlIGl0ZW1zIHRoZSBsYXRlc3QgYC9zdWdnZXN0YCByZXNwb25zZVxuICAgKiByZXBvcnRlZCBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIHRoZSByZXN1bHRzIG9mIGEgY3VzdG9tIGBwcm9kdWN0c2BcbiAgICogc2VhcmNoLiBBbHJlYWR5IGZvbGRlZCBpbnRvIHRoZSBkcm9wZG93biBzbmFwc2hvdCDigJQgcmVhZCBpdCBoZXJlIG9ubHlcbiAgICogd2hlbiByZW5kZXJpbmcgeW91ciBvd24gc3RyaXAuXG4gICAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKipcbiAgICogVGhlIGNhdGFsb2cgZ3JvdW5kaW5nIHJlcG9ydCB0aGUgbGF0ZXN0IHJlc3BvbnNlIGNhcnJpZWQsIG9yIG51bGwgd2hlbiBpdFxuICAgKiBjYXJyaWVkIG5vbmU6IHdoaWNoIG9mIHRoZSBxdWVyeSdzIGNvbnN0cmFpbnRzIHRoZSBjYXRhbG9nIGFwcGxpZWQsIHdoaWNoXG4gICAqIGl0IGRyb3BwZWQsIGFuZCBob3cgbWFueSBpdGVtcyAoYW5kIHdoaWNoKSB0aGUgYXBwbGllZCBvbmVzIGxlZnRcbiAgICogc3RhbmRpbmcuIE51bGwgaXMgXCJubyBuZXdzXCIsIG5vdCBhbiBlbXB0eSBjYXRhbG9nLlxuICAgKi9cbiAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZHNSZXBvcnQgfCBudWxsO1xuICBhY3RpdmVJbmRleDogbnVtYmVyO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIGlzUmVhZHk6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEcm9wZG93bk9wZW46IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyVGV4dDogc3RyaW5nO1xuICBlcnJvcjogRXJyb3IgfCBudWxsO1xuICBlZGl0aW5nUGFyYW06IENvbXBsZXRlZFBhcmFtU3RhdGUgfCBudWxsO1xuICAvKipcbiAgICogU2V0IHdoaWxlIHRoZSB1c2VyIGlzIHBpY2tpbmcgYSBkYXRlIGZvciBhIHNwYW4gdGhlIHNlcnZlciBpZGVudGlmaWVkIGFzXG4gICAqIG9uZSDigJQgXCJzZXB0ZW1iZXIgNXRoXCIgaW4gXCJmbHkgdG8gdmVnYXMgb24gc2VwdGVtYmVyIDV0aFwiLiBOdWxsIG90aGVyd2lzZS5cbiAgICovXG4gIGVkaXRpbmdJZGVudGlmaWVkOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBwYXJhbWV0ZXI6IHN0cmluZztcbiAgICBhbmNob3I6IG51bWJlcjtcbiAgICB0YWlsOiBudW1iZXI7XG4gICAgLyoqIFRoZSBkYXRlIHRoZSBzcGFuIHdhcyByZWFkIGFzLCBvciBhIHJhbmdlJ3Mgc3RhcnQuIE51bGwgd2hlbiBpdCBjb3VsZG4ndCBiZSByZWFkLiAqL1xuICAgIGlzbzogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogVGhlIG90aGVyIGVuZCwgd2hlbiB0aGUgc3BhbiByZWFkcyBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIGFzIG9uZSBkYXkuICovXG4gICAgaXNvRW5kOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBXaGV0aGVyIHRoYXQgc3BhbiBpcyBhbnN3ZXJlZCBieSBhIGNhbGVuZGFyLCBvciBhIGNhbGVuZGFyIGluIHR3byB0YXBzLiAqL1xuICAgIGZvcm1hdDogRm9ybWF0VHlwZTtcbiAgfSB8IG51bGw7XG4gIGVkaXRpbmdBbmNob3I6IG51bWJlciB8IG51bGw7XG4gIGNhcmV0T2Zmc2V0OiBudW1iZXIgfCBudWxsO1xufVxuXG4vKipcbiAqIENvbXBvc2l0ZSBzdGF0ZSBzaGFwZSBmb3IgdGhlIGRyb3Bkb3duIHZpZXcgbGF5ZXIuIFRpZXIgMiBjb25zdW1lcnMgYmluZFxuICogdGhlIGRyb3Bkb3duIGNvbXBvbmVudCB0byB0aGlzIHNuYXBzaG90OyBUaWVyIDEgdXNlcyB0aGUgc2FtZSBzaGFwZVxuICogaW50ZXJuYWxseS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlIHtcbiAgLyoqIEFjdGl2ZSBzdWdnZXN0aW9uICsgZmlsdGVyZWQgb3B0aW9ucyB0byByZW5kZXIgaW4gdGhlIGdyaWQuICovXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKiBDdXJyZW50bHkgaGlnaGxpZ2h0ZWQgb3B0aW9uIGluZGV4LiAtMSB3aGVuIG5vbmUuICovXG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBkcm9wZG93biBzaG91bGQgYmUgdmlzaWJsZS4gKi9cbiAgaXNPcGVuOiBib29sZWFuO1xuICAvKiogUGlsbHMgdG8gcmVuZGVyIGluIHRoZSBkcm9wZG93bidzIHBpbGxiYXIgKHJlLWVkaXQgcGlsbCBvciBhbGwgc3VnZ2VzdGlvbiBwaWxscykuICovXG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIC8qKiBXaGV0aGVyIHRoZSBhY3RpdmUgcGlsbCByZW5kZXJzIHNlbGVjdGVkIChmdWxsIG9wYWNpdHkpIHZzLiB0aGUgYGZpcnN0YCB0aWVyLiAqL1xuICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogYm9vbGVhbjtcbiAgLyoqIFRydWUgd2hlbiB0aGUgZHJvcGRvd24gc2hvdWxkIHJlbmRlciBpdHMgbG9hZGluZyBza2VsZXRvbi4gKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgaW5wdXQgaGFzIG5vIHR5cGVkIHRleHQg4oCUIHRoZSBzb2xlIHN0YXRlIHRoYXQgc3VyZmFjZXMgXCJ0YWIgdG8gc2VsZWN0XCIgaW4gdGhlIGZvb3RlciBoaW50LiAqL1xuICBpc0lucHV0RW1wdHk6IGJvb2xlYW47XG4gIC8qKiBQcm9kdWN0IGNhcmRzIHRvIHJlbmRlciBiZWxvdyB0aGUgb3B0aW9ucyBncmlkLiBFbXB0eSByZW5kZXJzIG5vIHN0cmlwLiAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSBhIGNvbXBsZXRlZCBwYXJhbSBpcyBiZWluZyByZS1lZGl0ZWQuIFRoZSBwaWxsYmFyIHRoZW4gc2hvd3NcbiAgICogdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCDigJQgbm90IHNraXBwYWJsZSDigJQgc28gdGhlIHNraXAgYnV0dG9uIGhpZGVzLlxuICAgKiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBub3QgZWRpdGluZykgc28gZXhpc3RpbmcgY29uc3VtZXIgY29kZSBjb25zdHJ1Y3RpbmdcbiAgICogdGhpcyBzdGF0ZSDigJQgdGVzdCBmaXh0dXJlcywgZmFrZSBjb250cm9sbGVycyDigJQga2VlcHMgY29tcGlsaW5nIGFjcm9zcyB0aGVcbiAgICogbWlub3IgYnVtcCB0aGF0IGludHJvZHVjZWQgaXQuXG4gICAqL1xuICBpc0VkaXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSBmb3IgdGhlIH4xNzBtcyB3aW5kb3cgYWZ0ZXIgYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB3aGlsZSB0aGUgYW5zd2VyZWRcbiAgICogc3VnZ2VzdGlvbiBhbmltYXRlcyBvdXQuIGBpc0xvYWRpbmdgIGlzIGRlbGliZXJhdGVseSBzdXBwcmVzc2VkIGluIHRoYXRcbiAgICogd2luZG93LCBidXQgdGhlIGNvcmUncyBgc2tpcEFjdGl2ZVBpbGwoKWAgbm8tb3BzIGluIGl0IOKAlCB0aGUgc2tpcCBidXR0b25cbiAgICogcmVuZGVycyBkaXNhYmxlZCBvZmYgdGhpcyBmbGFnIGluc3RlYWQgb2Ygc3dhbGxvd2luZyBjbGlja3Mgc2lsZW50bHkuXG4gICAqIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIGZhbHNlKSBmb3IgdGhlIHNhbWUgY29tcGlsZS1jb21wYXQgcmVhc29uIGFzXG4gICAqIGBpc0VkaXRpbmdgLlxuICAgKi9cbiAgaW5TZWxlY3Rpb25BbmltYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSB0aGUgbG9hZGluZyBza2VsZXRvbiBmYWRlcyBvdXQgYmVmb3JlIHRoZSByZXNwb25zZSdzIG9wdGlvbnNcbiAgICogcmVwbGFjZSBpdC4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgZmFsc2UpIGZvciB0aGUgc2FtZSBjb21waWxlLWNvbXBhdFxuICAgKiByZWFzb24gYXMgYGlzRWRpdGluZ2AuXG4gICAqL1xuICBza2VsZXRvbkV4aXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlcmUgdGhlIGRyb3Bkb3duIG9wZW5zIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCDigJQgbWlycm9ycyB0aGUgY29udHJvbGxlcidzXG4gICAqIGBvcHRpb25zUG9zaXRpb25gIG9wdGlvbi4gYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YCByZWFkcyBpdCBmcm9tIGhlcmUsIHNvXG4gICAqIHBsYWNlbWVudCBpcyBjb25maWd1cmVkIG9uY2Ugb24gdGhlIGNvbnRyb2xsZXIgKG5vIHNlcGFyYXRlIGlucHV0IHRvIHN5bmMpLlxuICAgKi9cbiAgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHByb2R1Y3QgY2FyZHMgZHJhdyBhbiBhZGQtdG8tY2FydCBidXR0b24g4oCUIHRoZSBjb250cm9sbGVyIGhhcyBhblxuICAgKiBgb25Qcm9kdWN0QWRkVG9DYXJ0YCBoYW5kbGVyLiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBmYWxzZSkgZm9yIHRoZSBzYW1lXG4gICAqIGNvbXBpbGUtY29tcGF0IHJlYXNvbiBhcyBgaXNFZGl0aW5nYC5cbiAgICovXG4gIGhhc1Byb2R1Y3RBZGRUb0NhcnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogSG93IHRoZSBhY3RpdmUgcGlsbCBpcyBhbnN3ZXJlZC4gYFwiZGF0ZVwiYCBhbmQgYFwiZGF0ZS1yYW5nZVwiYCByZW5kZXIgYVxuICAgKiBjYWxlbmRhciBpbiBwbGFjZSBvZiB0aGUgb3B0aW9ucyBncmlkLCBhbmQgYHN1Z2dlc3Rpb25zWzBdLm9wdGlvbnNgIHRoZW5cbiAgICogY2FycmllcyB0aGF0IG1vbnRoJ3MgY2VsbHMgcmF0aGVyIHRoYW4gdGhlIHBhcmFtZXRlcidzIG93biBvcHRpb25zIOKAlCB0aGVcbiAgICogY29yZSBzd2FwcyB0aGVtIGJlZm9yZSB0aGV5IHJlYWNoIGhlcmUuIEEgYFwiZGF0ZS1yYW5nZVwiYCBwYXJhbWV0ZXIgaXNcbiAgICogYW5zd2VyZWQgYnkgdHdvIHRhcHMgb2YgdGhhdCBjYWxlbmRhciwgYSBzdGFydCBhbmQgYW4gZW5kLCBjb21taXR0ZWQgYXMgb25lXG4gICAqIHNwYW4uIGBcInRpbWVcImAgcmVuZGVycyB0aGUgdGltZSB3aGVlbCBpbiBwbGFjZSBvZiB0aGUgb3B0aW9ucyBncmlkLCBkcmF3blxuICAgKiBmcm9tIGB0aW1lVmlld2AuIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIGBcIm9wdGlvbnNcImApIGZvciB0aGUgc2FtZVxuICAgKiBjb21waWxlLWNvbXBhdCByZWFzb24gYXMgYGlzRWRpdGluZ2AuXG4gICAqL1xuICBmb3JtYXRUeXBlPzogRm9ybWF0VHlwZTtcbiAgLyoqIFRoZSBtb250aCB0aGUgY2FsZW5kYXIgc2hvd3MuIE51bGwvdW5kZWZpbmVkIHVubGVzcyBgZm9ybWF0VHlwZWAgaXMgYSBjYWxlbmRhciBvbmUuICovXG4gIGRhdGVWaWV3PzogRGF0ZU1vbnRoVmlldyB8IG51bGw7XG4gIC8qKiBgWVlZWS1NTS1ERGAgYWxyZWFkeSBoZWxkIGJ5IHRoZSBwYXJhbSBiZWluZyByZS1lZGl0ZWQsIHNvIGl0cyBjZWxsIHJlYWRzIGFzIHRoZSBjdXJyZW50IGFuc3dlci4gKi9cbiAgc2VsZWN0ZWREYXRlSXNvPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEJvdGggZW5kcyBvZiBhIHJhbmdlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCwgc28gYm90aCBjZWxscyByZWFkIGFzIHRoZSBjdXJyZW50IGFuc3dlci4gKi9cbiAgc2VsZWN0ZWREYXRlUmFuZ2U/OiBEYXRlUmFuZ2UgfCBudWxsO1xuICAvKiogVGhlIGZpcnN0IGVuZCBvZiBhIHJhbmdlIHBpY2tlZCBzbyBmYXIsIHdoaWxlIHRoZSB1c2VyIGNob29zZXMgdGhlIHNlY29uZC4gKi9cbiAgZGF0ZVJhbmdlU3RhcnQ/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogV2hhdCB0aGUgdGltZSB3aGVlbCBzaG93cy4gTnVsbC91bmRlZmluZWQgdW5sZXNzIGBmb3JtYXRUeXBlYCBpcyBgXCJ0aW1lXCJgLiAqL1xuICB0aW1lVmlldz86IFRpbWVWaWV3IHwgbnVsbDtcbiAgbXVsdGlTZWxlY3RWaWV3PzogeyBwaWNrZWQ6IHN0cmluZ1tdIH0gfCBudWxsO1xufVxuIl19
@@ -5,7 +5,7 @@
5
5
  * are considered part of the package's public contract.
6
6
  */
7
7
  // === Submit-result builder (folds skipped params into completed_params) ===
8
- import { buildSubmitResult as _buildSubmitResult, cellDay as _cellDay, cellIso as _cellIso, DATE_RANGE_META_END as _DATE_RANGE_META_END, DATE_RANGE_META_START as _DATE_RANGE_META_START, DEFAULT_OPTION_COUNT_UNIT as _DEFAULT_OPTION_COUNT_UNIT, dateCellMarks as _dateCellMarks, formatDate as _formatDate, formatDateRange as _formatDateRange, formatOptionCount as _formatOptionCount, isoDate as _isoDate, monthLabel as _monthLabel, optionCountLabel as _optionCountLabel, optionHasImage as _optionHasImage, optionImageSources as _optionImageSources, optionImageSrc as _optionImageSrc, optionLabel as _optionLabel, optionsShowLeadingVisuals as _optionsShowLeadingVisuals, PRODUCT_PATH_PREFIX as _PRODUCT_PATH_PREFIX, parseDate as _parseDate, parseLooseDate as _parseLooseDate, parseLooseDateRange as _parseLooseDateRange, productFromMatchedItem as _productFromMatchedItem, productImageSources as _productImageSources, productsFromCustomFields as _productsFromCustomFields, sanitizeOptionIconSvg as _sanitizeOptionIconSvg, selectedRangeFor as _selectedRangeFor, visibleDateRange as _visibleDateRange, WEEKDAY_LABELS as _WEEKDAY_LABELS, withSkippedParams as _withSkippedParams, } from "@magicx-eng/ai-autocomplete-vanilla";
8
+ import { buildSubmitResult as _buildSubmitResult, cellDay as _cellDay, cellIso as _cellIso, DATE_RANGE_META_END as _DATE_RANGE_META_END, DATE_RANGE_META_START as _DATE_RANGE_META_START, DEFAULT_OPTION_COUNT_UNIT as _DEFAULT_OPTION_COUNT_UNIT, dateCellMarks as _dateCellMarks, formatDate as _formatDate, formatDateRange as _formatDateRange, formatOptionCount as _formatOptionCount, formatTime as _formatTime, isoDate as _isoDate, monthLabel as _monthLabel, optionCountLabel as _optionCountLabel, optionHasImage as _optionHasImage, optionImageSources as _optionImageSources, optionImageSrc as _optionImageSrc, optionLabel as _optionLabel, optionsShowLeadingVisuals as _optionsShowLeadingVisuals, PRODUCT_PATH_PREFIX as _PRODUCT_PATH_PREFIX, parseDate as _parseDate, parseLooseDate as _parseLooseDate, parseLooseDateRange as _parseLooseDateRange, parseTime as _parseTime, productFromMatchedItem as _productFromMatchedItem, productImageSources as _productImageSources, productsFromCustomFields as _productsFromCustomFields, sanitizeOptionIconSvg as _sanitizeOptionIconSvg, selectedRangeFor as _selectedRangeFor, TIME_META_KEY as _TIME_META_KEY, visibleDateRange as _visibleDateRange, WEEKDAY_LABELS as _WEEKDAY_LABELS, withSkippedParams as _withSkippedParams, } from "@magicx-eng/ai-autocomplete-vanilla";
9
9
  /**
10
10
  * Re-exported through local bindings rather than `export ... from`.
11
11
  *
@@ -37,6 +37,11 @@ export const formatDateRange = _formatDateRange;
37
37
  export const parseLooseDateRange = _parseLooseDateRange;
38
38
  export const selectedRangeFor = _selectedRangeFor;
39
39
  export const visibleDateRange = _visibleDateRange;
40
+ // Time helpers: the written form a committed time takes, reading it back, and
41
+ // the metadata key the exact 24-hour time is recorded under.
42
+ export const formatTime = _formatTime;
43
+ export const parseTime = _parseTime;
44
+ export const TIME_META_KEY = _TIME_META_KEY;
40
45
  // Option icons, for a custom dropdown that draws `icon_svg` itself.
41
46
  export const optionLabel = _optionLabel;
42
47
  export const sanitizeOptionIconSvg = _sanitizeOptionIconSvg;
@@ -64,4 +69,4 @@ export { AIAutocompleteDropdownComponent } from "./lib/ai-autocomplete-dropdown"
64
69
  export { AIAutocompleteController } from "./lib/controller";
65
70
  // === Tier 2: Input binder + ControlValueAccessor ===
66
71
  export { AIAutocompleteInputDirective } from "./lib/input";
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBb0NILDZFQUE2RTtBQUM3RSxPQUFPLEVBQ0wsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE9BQU8sSUFBSSxRQUFRLEVBQ25CLG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxxQkFBcUIsSUFBSSxzQkFBc0IsRUFDL0MseUJBQXlCLElBQUksMEJBQTBCLEVBQ3ZELGFBQWEsSUFBSSxjQUFjLEVBQy9CLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGVBQWUsSUFBSSxnQkFBZ0IsRUFDbkMsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLE9BQU8sSUFBSSxRQUFRLEVBQ25CLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxjQUFjLElBQUksZUFBZSxFQUNqQyxrQkFBa0IsSUFBSSxtQkFBbUIsRUFDekMsY0FBYyxJQUFJLGVBQWUsRUFDakMsV0FBVyxJQUFJLFlBQVksRUFDM0IseUJBQXlCLElBQUksMEJBQTBCLEVBQ3ZELG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxTQUFTLElBQUksVUFBVSxFQUN2QixjQUFjLElBQUksZUFBZSxFQUNqQyxtQkFBbUIsSUFBSSxvQkFBb0IsRUFDM0Msc0JBQXNCLElBQUksdUJBQXVCLEVBQ2pELG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyx3QkFBd0IsSUFBSSx5QkFBeUIsRUFDckQscUJBQXFCLElBQUksc0JBQXNCLEVBQy9DLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFDckMsY0FBYyxJQUFJLGVBQWUsRUFDakMsaUJBQWlCLElBQUksa0JBQWtCLEdBQ3hDLE1BQU0scUNBQXFDLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCx3RUFBd0U7QUFDeEUseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUN0QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQztBQUM5Qyx3RUFBd0U7QUFDeEUsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCwyRUFBMkU7QUFDM0UsMkJBQTJCO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRywwQkFBMEIsQ0FBQztBQUNwRSxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsdUJBQXVCLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcseUJBQXlCLENBQUM7QUFDbEUsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakYsb0RBQW9EO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELHNEQUFzRDtBQUN0RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgc3VyZmFjZSBmb3IgQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLWFuZ3VsYXIuXG4gKlxuICogUG9wdWxhdGVkIGluY3JlbWVudGFsbHkgYXMgZmVhdHVyZXMgbGFuZC4gT25seSBzeW1ib2xzIHJlLWV4cG9ydGVkIGhlcmVcbiAqIGFyZSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHBhY2thZ2UncyBwdWJsaWMgY29udHJhY3QuXG4gKi9cblxuLy8gPT09IFJlLWV4cG9ydGVkIHdpcmUgdHlwZXMgPT09XG5leHBvcnQgdHlwZSB7XG4gIEFjY2Vzc1Rva2VuQ29uZmlnLFxuICBBY2Nlc3NUb2tlblJlc3VsdCxcbiAgQVBJQ29uZmlnLFxuICBBUElLZXlDb25maWcsXG4gIEFwcGVhcmFuY2VNb2RlLFxuICBBdXRvY29tcGxldGVSZXN1bHQsXG4gIENvbXBsZXRlZFBhcmFtLFxuICBDb21wbGV0ZWRQYXJhbVN0YXRlLFxuICBDdXJyZW5jeU9wdGlvbnMsXG4gIEN1c3RvbUZpZWxkc1JlcG9ydCxcbiAgRGF0ZU1vbnRoVmlldyxcbiAgRGF0ZVJhbmdlLFxuICBFeHByZXNzZWRGaWx0ZXIsXG4gIEZpbHRlck9wLFxuICBGb3JtYXRUeXBlLFxuICBJZGVudGlmaWVkUGFyYW0sXG4gIElkZW50aWZpZWRQYXJhbVN0YXRlLFxuICBNYXRjaGVkSXRlbSxcbiAgTWF0Y2hlZEl0ZW1zLFxuICBPcHRpb25PdmVycmlkZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RJbWFnZUZhbGxiYWNrLFxuICBQcm9kdWN0c0NvbmZpZyxcbiAgUHJvZHVjdHNMYXlvdXQsXG4gIFNlZ21lbnQsXG4gIFNraXBwZWRQYXJhbVN0YXRlLFxuICBTdWJtaXRSZXN1bHRFeHRyYXMsXG4gIFN1Z2dlc3Rpb24sXG4gIFN1Z2dlc3Rpb25PcHRpb24sXG4gIFRhc2tLaW5kLFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLy8gPT09IFN1Ym1pdC1yZXN1bHQgYnVpbGRlciAoZm9sZHMgc2tpcHBlZCBwYXJhbXMgaW50byBjb21wbGV0ZWRfcGFyYW1zKSA9PT1cbmltcG9ydCB7XG4gIGJ1aWxkU3VibWl0UmVzdWx0IGFzIF9idWlsZFN1Ym1pdFJlc3VsdCxcbiAgY2VsbERheSBhcyBfY2VsbERheSxcbiAgY2VsbElzbyBhcyBfY2VsbElzbyxcbiAgREFURV9SQU5HRV9NRVRBX0VORCBhcyBfREFURV9SQU5HRV9NRVRBX0VORCxcbiAgREFURV9SQU5HRV9NRVRBX1NUQVJUIGFzIF9EQVRFX1JBTkdFX01FVEFfU1RBUlQsXG4gIERFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQgYXMgX0RFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQsXG4gIGRhdGVDZWxsTWFya3MgYXMgX2RhdGVDZWxsTWFya3MsXG4gIGZvcm1hdERhdGUgYXMgX2Zvcm1hdERhdGUsXG4gIGZvcm1hdERhdGVSYW5nZSBhcyBfZm9ybWF0RGF0ZVJhbmdlLFxuICBmb3JtYXRPcHRpb25Db3VudCBhcyBfZm9ybWF0T3B0aW9uQ291bnQsXG4gIGlzb0RhdGUgYXMgX2lzb0RhdGUsXG4gIG1vbnRoTGFiZWwgYXMgX21vbnRoTGFiZWwsXG4gIG9wdGlvbkNvdW50TGFiZWwgYXMgX29wdGlvbkNvdW50TGFiZWwsXG4gIG9wdGlvbkhhc0ltYWdlIGFzIF9vcHRpb25IYXNJbWFnZSxcbiAgb3B0aW9uSW1hZ2VTb3VyY2VzIGFzIF9vcHRpb25JbWFnZVNvdXJjZXMsXG4gIG9wdGlvbkltYWdlU3JjIGFzIF9vcHRpb25JbWFnZVNyYyxcbiAgb3B0aW9uTGFiZWwgYXMgX29wdGlvbkxhYmVsLFxuICBvcHRpb25zU2hvd0xlYWRpbmdWaXN1YWxzIGFzIF9vcHRpb25zU2hvd0xlYWRpbmdWaXN1YWxzLFxuICBQUk9EVUNUX1BBVEhfUFJFRklYIGFzIF9QUk9EVUNUX1BBVEhfUFJFRklYLFxuICBwYXJzZURhdGUgYXMgX3BhcnNlRGF0ZSxcbiAgcGFyc2VMb29zZURhdGUgYXMgX3BhcnNlTG9vc2VEYXRlLFxuICBwYXJzZUxvb3NlRGF0ZVJhbmdlIGFzIF9wYXJzZUxvb3NlRGF0ZVJhbmdlLFxuICBwcm9kdWN0RnJvbU1hdGNoZWRJdGVtIGFzIF9wcm9kdWN0RnJvbU1hdGNoZWRJdGVtLFxuICBwcm9kdWN0SW1hZ2VTb3VyY2VzIGFzIF9wcm9kdWN0SW1hZ2VTb3VyY2VzLFxuICBwcm9kdWN0c0Zyb21DdXN0b21GaWVsZHMgYXMgX3Byb2R1Y3RzRnJvbUN1c3RvbUZpZWxkcyxcbiAgc2FuaXRpemVPcHRpb25JY29uU3ZnIGFzIF9zYW5pdGl6ZU9wdGlvbkljb25TdmcsXG4gIHNlbGVjdGVkUmFuZ2VGb3IgYXMgX3NlbGVjdGVkUmFuZ2VGb3IsXG4gIHZpc2libGVEYXRlUmFuZ2UgYXMgX3Zpc2libGVEYXRlUmFuZ2UsXG4gIFdFRUtEQVlfTEFCRUxTIGFzIF9XRUVLREFZX0xBQkVMUyxcbiAgd2l0aFNraXBwZWRQYXJhbXMgYXMgX3dpdGhTa2lwcGVkUGFyYW1zLFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLyoqXG4gKiBSZS1leHBvcnRlZCB0aHJvdWdoIGxvY2FsIGJpbmRpbmdzIHJhdGhlciB0aGFuIGBleHBvcnQgLi4uIGZyb21gLlxuICpcbiAqIG5nLXBhY2thZ3IncyBmbGF0IGJ1bmRsZXMgZHJvcCBhIGJhcmUgYGV4cG9ydCB7IHggfSBmcm9tIFwiPGV4dGVybmFsPlwiYDogdGhlXG4gKiBuYW1lIHN1cnZpdmVzIGluIHRoZSBnZW5lcmF0ZWQgYC5kLnRzYCwgc28gY29uc3VtZXIgY29kZSB0eXBlY2hlY2tzLCBidXQgdGhlXG4gKiBzeW1ib2wgaXMgYWJzZW50IGZyb20gYGZlc20yMDIwYCDigJQgdGhlIGVudHJ5IHBvaW50IHRoZSBgZXhwb3J0c2AgbWFwIHJlc29sdmVzXG4gKiBieSBkZWZhdWx0IOKAlCBhbmQgaXMgYHVuZGVmaW5lZGAgYXQgcnVudGltZS4gQmluZGluZyB0byBhIGxvY2FsIGNvbnN0IGZvcmNlc1xuICogaXQgaW50byB0aGUgYnVuZGxlLlxuICovXG5leHBvcnQgY29uc3QgYnVpbGRTdWJtaXRSZXN1bHQgPSBfYnVpbGRTdWJtaXRSZXN1bHQ7XG5leHBvcnQgY29uc3Qgd2l0aFNraXBwZWRQYXJhbXMgPSBfd2l0aFNraXBwZWRQYXJhbXM7XG4vLyBEYXRlIGhlbHBlcnMsIGZvciB0dXJuaW5nIGEgY29tbWl0dGVkIGRhdGUgYmFjayBpbnRvIGEgYERhdGVgIGFuZCBmb3Jcbi8vIHJlbmRlcmluZyBhIGN1c3RvbSBjYWxlbmRhciBpbiBUaWVyIDMuXG5leHBvcnQgY29uc3QgY2VsbERheSA9IF9jZWxsRGF5O1xuZXhwb3J0IGNvbnN0IGNlbGxJc28gPSBfY2VsbElzbztcbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlID0gX2Zvcm1hdERhdGU7XG5leHBvcnQgY29uc3QgaXNvRGF0ZSA9IF9pc29EYXRlO1xuZXhwb3J0IGNvbnN0IG1vbnRoTGFiZWwgPSBfbW9udGhMYWJlbDtcbmV4cG9ydCBjb25zdCBwYXJzZURhdGUgPSBfcGFyc2VEYXRlO1xuZXhwb3J0IGNvbnN0IHBhcnNlTG9vc2VEYXRlID0gX3BhcnNlTG9vc2VEYXRlO1xuZXhwb3J0IGNvbnN0IFdFRUtEQVlfTEFCRUxTID0gX1dFRUtEQVlfTEFCRUxTO1xuLy8gUmFuZ2UgaGVscGVycywgZm9yIGEgY3VzdG9tIGNhbGVuZGFyIHRoYXQgYW5zd2VycyBhIHNwYW4gaW4gdHdvIHRhcHMuXG4vLyBUaGUgdHdvIG1ldGFkYXRhIGtleXMgYXJlIHdoYXQgYSBjb21taXR0ZWQgcmFuZ2UgcmVjb3JkcyBpdHMgZW5kcyB1bmRlciwgc29cbi8vIGEgY29uc3VtZXIgcmVhZGluZyB0aGVtIGJhY2sgbmV2ZXIgaGFyZGNvZGVzIHRoZSBzdHJpbmdzLlxuZXhwb3J0IGNvbnN0IERBVEVfUkFOR0VfTUVUQV9FTkQgPSBfREFURV9SQU5HRV9NRVRBX0VORDtcbmV4cG9ydCBjb25zdCBEQVRFX1JBTkdFX01FVEFfU1RBUlQgPSBfREFURV9SQU5HRV9NRVRBX1NUQVJUO1xuZXhwb3J0IGNvbnN0IGRhdGVDZWxsTWFya3MgPSBfZGF0ZUNlbGxNYXJrcztcbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlUmFuZ2UgPSBfZm9ybWF0RGF0ZVJhbmdlO1xuZXhwb3J0IGNvbnN0IHBhcnNlTG9vc2VEYXRlUmFuZ2UgPSBfcGFyc2VMb29zZURhdGVSYW5nZTtcbmV4cG9ydCBjb25zdCBzZWxlY3RlZFJhbmdlRm9yID0gX3NlbGVjdGVkUmFuZ2VGb3I7XG5leHBvcnQgY29uc3QgdmlzaWJsZURhdGVSYW5nZSA9IF92aXNpYmxlRGF0ZVJhbmdlO1xuLy8gT3B0aW9uIGljb25zLCBmb3IgYSBjdXN0b20gZHJvcGRvd24gdGhhdCBkcmF3cyBgaWNvbl9zdmdgIGl0c2VsZi5cbmV4cG9ydCBjb25zdCBvcHRpb25MYWJlbCA9IF9vcHRpb25MYWJlbDtcbmV4cG9ydCBjb25zdCBzYW5pdGl6ZU9wdGlvbkljb25TdmcgPSBfc2FuaXRpemVPcHRpb25JY29uU3ZnO1xuLy8gT3B0aW9uIHBpY3R1cmVzIGFuZCBjb3VudHMsIGZvciBhIGN1c3RvbSBkcm9wZG93biB0aGF0IGRyYXdzIGBpbWFnZV91cmxgXG4vLyBhbmQgYGl0ZW1fY291bnRgIGl0c2VsZi5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09QVElPTl9DT1VOVF9VTklUID0gX0RFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQ7XG5leHBvcnQgY29uc3QgZm9ybWF0T3B0aW9uQ291bnQgPSBfZm9ybWF0T3B0aW9uQ291bnQ7XG5leHBvcnQgY29uc3Qgb3B0aW9uQ291bnRMYWJlbCA9IF9vcHRpb25Db3VudExhYmVsO1xuZXhwb3J0IGNvbnN0IG9wdGlvbkhhc0ltYWdlID0gX29wdGlvbkhhc0ltYWdlO1xuZXhwb3J0IGNvbnN0IG9wdGlvbkltYWdlU3JjID0gX29wdGlvbkltYWdlU3JjO1xuZXhwb3J0IGNvbnN0IG9wdGlvbkltYWdlU291cmNlcyA9IF9vcHRpb25JbWFnZVNvdXJjZXM7XG5leHBvcnQgY29uc3Qgb3B0aW9uc1Nob3dMZWFkaW5nVmlzdWFscyA9IF9vcHRpb25zU2hvd0xlYWRpbmdWaXN1YWxzO1xuLy8gUHJvZHVjdCBzdHJpcCBoZWxwZXJzLCBmb3IgYSBjdXN0b20gc3RyaXAgZmVkIGZyb20gYGN1c3RvbUZpZWxkcyRgLlxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfUEFUSF9QUkVGSVggPSBfUFJPRFVDVF9QQVRIX1BSRUZJWDtcbmV4cG9ydCBjb25zdCBwcm9kdWN0RnJvbU1hdGNoZWRJdGVtID0gX3Byb2R1Y3RGcm9tTWF0Y2hlZEl0ZW07XG5leHBvcnQgY29uc3QgcHJvZHVjdEltYWdlU291cmNlcyA9IF9wcm9kdWN0SW1hZ2VTb3VyY2VzO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RzRnJvbUN1c3RvbUZpZWxkcyA9IF9wcm9kdWN0c0Zyb21DdXN0b21GaWVsZHM7XG4vLyA9PT0gVGllciAxOiBGdWxsIGNvbXBvbmVudCA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSBcIi4vbGliL2FpLWF1dG9jb21wbGV0ZVwiO1xuLy8gPT09IENvbnZlbmllbmNlIE5nTW9kdWxlID09PVxuZXhwb3J0IHsgQUlBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tIFwiLi9saWIvYWktYXV0b2NvbXBsZXRlLm1vZHVsZVwiO1xuLy8gPT09IFRpZXIgMjogRHJvcGRvd24gY29tcG9uZW50ID09PVxuZXhwb3J0IHsgQUlBdXRvY29tcGxldGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gXCIuL2xpYi9haS1hdXRvY29tcGxldGUtZHJvcGRvd25cIjtcbi8vID09PSBUaWVyIDI6IENvbnRyb2xsZXIgKGhlYWRsZXNzIGxvZ2ljIGNsYXNzKSA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciB9IGZyb20gXCIuL2xpYi9jb250cm9sbGVyXCI7XG4vLyA9PT0gVGllciAyOiBJbnB1dCBiaW5kZXIgKyBDb250cm9sVmFsdWVBY2Nlc3NvciA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUgfSBmcm9tIFwiLi9saWIvaW5wdXRcIjtcbi8vID09PSBBbmd1bGFyLXNwZWNpZmljIHB1YmxpYyB0eXBlcyA9PT1cbmV4cG9ydCB0eXBlIHtcbiAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyxcbiAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUsXG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSxcbiAgQUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlLFxufSBmcm9tIFwiLi9saWIvc2hhcmVkL3R5cGVzXCI7XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBcUNILDZFQUE2RTtBQUM3RSxPQUFPLEVBQ0wsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE9BQU8sSUFBSSxRQUFRLEVBQ25CLG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxxQkFBcUIsSUFBSSxzQkFBc0IsRUFDL0MseUJBQXlCLElBQUksMEJBQTBCLEVBQ3ZELGFBQWEsSUFBSSxjQUFjLEVBQy9CLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGVBQWUsSUFBSSxnQkFBZ0IsRUFDbkMsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLE9BQU8sSUFBSSxRQUFRLEVBQ25CLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxjQUFjLElBQUksZUFBZSxFQUNqQyxrQkFBa0IsSUFBSSxtQkFBbUIsRUFDekMsY0FBYyxJQUFJLGVBQWUsRUFDakMsV0FBVyxJQUFJLFlBQVksRUFDM0IseUJBQXlCLElBQUksMEJBQTBCLEVBQ3ZELG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxTQUFTLElBQUksVUFBVSxFQUN2QixjQUFjLElBQUksZUFBZSxFQUNqQyxtQkFBbUIsSUFBSSxvQkFBb0IsRUFDM0MsU0FBUyxJQUFJLFVBQVUsRUFDdkIsc0JBQXNCLElBQUksdUJBQXVCLEVBQ2pELG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyx3QkFBd0IsSUFBSSx5QkFBeUIsRUFDckQscUJBQXFCLElBQUksc0JBQXNCLEVBQy9DLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxhQUFhLElBQUksY0FBYyxFQUMvQixnQkFBZ0IsSUFBSSxpQkFBaUIsRUFDckMsY0FBYyxJQUFJLGVBQWUsRUFDakMsaUJBQWlCLElBQUksa0JBQWtCLEdBQ3hDLE1BQU0scUNBQXFDLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCx3RUFBd0U7QUFDeEUseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUN0QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQztBQUM5Qyx3RUFBd0U7QUFDeEUsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCw4RUFBOEU7QUFDOUUsNkRBQTZEO0FBQzdELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFDdEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQzVDLG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHNCQUFzQixDQUFDO0FBQzVELDJFQUEyRTtBQUMzRSwyQkFBMkI7QUFDM0IsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsMEJBQTBCLENBQUM7QUFDcEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx1QkFBdUIsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyx5QkFBeUIsQ0FBQztBQUNsRSxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLHFDQUFxQztBQUNyQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRixvREFBb0Q7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljIEFQSSBzdXJmYWNlIGZvciBAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtYW5ndWxhci5cbiAqXG4gKiBQb3B1bGF0ZWQgaW5jcmVtZW50YWxseSBhcyBmZWF0dXJlcyBsYW5kLiBPbmx5IHN5bWJvbHMgcmUtZXhwb3J0ZWQgaGVyZVxuICogYXJlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgcGFja2FnZSdzIHB1YmxpYyBjb250cmFjdC5cbiAqL1xuXG4vLyA9PT0gUmUtZXhwb3J0ZWQgd2lyZSB0eXBlcyA9PT1cbmV4cG9ydCB0eXBlIHtcbiAgQWNjZXNzVG9rZW5Db25maWcsXG4gIEFjY2Vzc1Rva2VuUmVzdWx0LFxuICBBUElDb25maWcsXG4gIEFQSUtleUNvbmZpZyxcbiAgQXBwZWFyYW5jZU1vZGUsXG4gIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgQ29tcGxldGVkUGFyYW0sXG4gIENvbXBsZXRlZFBhcmFtU3RhdGUsXG4gIEN1cnJlbmN5T3B0aW9ucyxcbiAgQ3VzdG9tRmllbGRzUmVwb3J0LFxuICBEYXRlTW9udGhWaWV3LFxuICBEYXRlUmFuZ2UsXG4gIEV4cHJlc3NlZEZpbHRlcixcbiAgRmlsdGVyT3AsXG4gIEZvcm1hdFR5cGUsXG4gIElkZW50aWZpZWRQYXJhbSxcbiAgSWRlbnRpZmllZFBhcmFtU3RhdGUsXG4gIE1hdGNoZWRJdGVtLFxuICBNYXRjaGVkSXRlbXMsXG4gIE9wdGlvbk92ZXJyaWRlcyxcbiAgUHJvZHVjdCxcbiAgUHJvZHVjdEltYWdlRmFsbGJhY2ssXG4gIFByb2R1Y3RzQ29uZmlnLFxuICBQcm9kdWN0c0xheW91dCxcbiAgU2VnbWVudCxcbiAgU2tpcHBlZFBhcmFtU3RhdGUsXG4gIFN1Ym1pdFJlc3VsdEV4dHJhcyxcbiAgU3VnZ2VzdGlvbixcbiAgU3VnZ2VzdGlvbk9wdGlvbixcbiAgVGFza0tpbmQsXG4gIFRpbWVWaWV3LFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLy8gPT09IFN1Ym1pdC1yZXN1bHQgYnVpbGRlciAoZm9sZHMgc2tpcHBlZCBwYXJhbXMgaW50byBjb21wbGV0ZWRfcGFyYW1zKSA9PT1cbmltcG9ydCB7XG4gIGJ1aWxkU3VibWl0UmVzdWx0IGFzIF9idWlsZFN1Ym1pdFJlc3VsdCxcbiAgY2VsbERheSBhcyBfY2VsbERheSxcbiAgY2VsbElzbyBhcyBfY2VsbElzbyxcbiAgREFURV9SQU5HRV9NRVRBX0VORCBhcyBfREFURV9SQU5HRV9NRVRBX0VORCxcbiAgREFURV9SQU5HRV9NRVRBX1NUQVJUIGFzIF9EQVRFX1JBTkdFX01FVEFfU1RBUlQsXG4gIERFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQgYXMgX0RFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQsXG4gIGRhdGVDZWxsTWFya3MgYXMgX2RhdGVDZWxsTWFya3MsXG4gIGZvcm1hdERhdGUgYXMgX2Zvcm1hdERhdGUsXG4gIGZvcm1hdERhdGVSYW5nZSBhcyBfZm9ybWF0RGF0ZVJhbmdlLFxuICBmb3JtYXRPcHRpb25Db3VudCBhcyBfZm9ybWF0T3B0aW9uQ291bnQsXG4gIGZvcm1hdFRpbWUgYXMgX2Zvcm1hdFRpbWUsXG4gIGlzb0RhdGUgYXMgX2lzb0RhdGUsXG4gIG1vbnRoTGFiZWwgYXMgX21vbnRoTGFiZWwsXG4gIG9wdGlvbkNvdW50TGFiZWwgYXMgX29wdGlvbkNvdW50TGFiZWwsXG4gIG9wdGlvbkhhc0ltYWdlIGFzIF9vcHRpb25IYXNJbWFnZSxcbiAgb3B0aW9uSW1hZ2VTb3VyY2VzIGFzIF9vcHRpb25JbWFnZVNvdXJjZXMsXG4gIG9wdGlvbkltYWdlU3JjIGFzIF9vcHRpb25JbWFnZVNyYyxcbiAgb3B0aW9uTGFiZWwgYXMgX29wdGlvbkxhYmVsLFxuICBvcHRpb25zU2hvd0xlYWRpbmdWaXN1YWxzIGFzIF9vcHRpb25zU2hvd0xlYWRpbmdWaXN1YWxzLFxuICBQUk9EVUNUX1BBVEhfUFJFRklYIGFzIF9QUk9EVUNUX1BBVEhfUFJFRklYLFxuICBwYXJzZURhdGUgYXMgX3BhcnNlRGF0ZSxcbiAgcGFyc2VMb29zZURhdGUgYXMgX3BhcnNlTG9vc2VEYXRlLFxuICBwYXJzZUxvb3NlRGF0ZVJhbmdlIGFzIF9wYXJzZUxvb3NlRGF0ZVJhbmdlLFxuICBwYXJzZVRpbWUgYXMgX3BhcnNlVGltZSxcbiAgcHJvZHVjdEZyb21NYXRjaGVkSXRlbSBhcyBfcHJvZHVjdEZyb21NYXRjaGVkSXRlbSxcbiAgcHJvZHVjdEltYWdlU291cmNlcyBhcyBfcHJvZHVjdEltYWdlU291cmNlcyxcbiAgcHJvZHVjdHNGcm9tQ3VzdG9tRmllbGRzIGFzIF9wcm9kdWN0c0Zyb21DdXN0b21GaWVsZHMsXG4gIHNhbml0aXplT3B0aW9uSWNvblN2ZyBhcyBfc2FuaXRpemVPcHRpb25JY29uU3ZnLFxuICBzZWxlY3RlZFJhbmdlRm9yIGFzIF9zZWxlY3RlZFJhbmdlRm9yLFxuICBUSU1FX01FVEFfS0VZIGFzIF9USU1FX01FVEFfS0VZLFxuICB2aXNpYmxlRGF0ZVJhbmdlIGFzIF92aXNpYmxlRGF0ZVJhbmdlLFxuICBXRUVLREFZX0xBQkVMUyBhcyBfV0VFS0RBWV9MQUJFTFMsXG4gIHdpdGhTa2lwcGVkUGFyYW1zIGFzIF93aXRoU2tpcHBlZFBhcmFtcyxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogUmUtZXhwb3J0ZWQgdGhyb3VnaCBsb2NhbCBiaW5kaW5ncyByYXRoZXIgdGhhbiBgZXhwb3J0IC4uLiBmcm9tYC5cbiAqXG4gKiBuZy1wYWNrYWdyJ3MgZmxhdCBidW5kbGVzIGRyb3AgYSBiYXJlIGBleHBvcnQgeyB4IH0gZnJvbSBcIjxleHRlcm5hbD5cImA6IHRoZVxuICogbmFtZSBzdXJ2aXZlcyBpbiB0aGUgZ2VuZXJhdGVkIGAuZC50c2AsIHNvIGNvbnN1bWVyIGNvZGUgdHlwZWNoZWNrcywgYnV0IHRoZVxuICogc3ltYm9sIGlzIGFic2VudCBmcm9tIGBmZXNtMjAyMGAg4oCUIHRoZSBlbnRyeSBwb2ludCB0aGUgYGV4cG9ydHNgIG1hcCByZXNvbHZlc1xuICogYnkgZGVmYXVsdCDigJQgYW5kIGlzIGB1bmRlZmluZWRgIGF0IHJ1bnRpbWUuIEJpbmRpbmcgdG8gYSBsb2NhbCBjb25zdCBmb3JjZXNcbiAqIGl0IGludG8gdGhlIGJ1bmRsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkU3VibWl0UmVzdWx0ID0gX2J1aWxkU3VibWl0UmVzdWx0O1xuZXhwb3J0IGNvbnN0IHdpdGhTa2lwcGVkUGFyYW1zID0gX3dpdGhTa2lwcGVkUGFyYW1zO1xuLy8gRGF0ZSBoZWxwZXJzLCBmb3IgdHVybmluZyBhIGNvbW1pdHRlZCBkYXRlIGJhY2sgaW50byBhIGBEYXRlYCBhbmQgZm9yXG4vLyByZW5kZXJpbmcgYSBjdXN0b20gY2FsZW5kYXIgaW4gVGllciAzLlxuZXhwb3J0IGNvbnN0IGNlbGxEYXkgPSBfY2VsbERheTtcbmV4cG9ydCBjb25zdCBjZWxsSXNvID0gX2NlbGxJc287XG5leHBvcnQgY29uc3QgZm9ybWF0RGF0ZSA9IF9mb3JtYXREYXRlO1xuZXhwb3J0IGNvbnN0IGlzb0RhdGUgPSBfaXNvRGF0ZTtcbmV4cG9ydCBjb25zdCBtb250aExhYmVsID0gX21vbnRoTGFiZWw7XG5leHBvcnQgY29uc3QgcGFyc2VEYXRlID0gX3BhcnNlRGF0ZTtcbmV4cG9ydCBjb25zdCBwYXJzZUxvb3NlRGF0ZSA9IF9wYXJzZUxvb3NlRGF0ZTtcbmV4cG9ydCBjb25zdCBXRUVLREFZX0xBQkVMUyA9IF9XRUVLREFZX0xBQkVMUztcbi8vIFJhbmdlIGhlbHBlcnMsIGZvciBhIGN1c3RvbSBjYWxlbmRhciB0aGF0IGFuc3dlcnMgYSBzcGFuIGluIHR3byB0YXBzLlxuLy8gVGhlIHR3byBtZXRhZGF0YSBrZXlzIGFyZSB3aGF0IGEgY29tbWl0dGVkIHJhbmdlIHJlY29yZHMgaXRzIGVuZHMgdW5kZXIsIHNvXG4vLyBhIGNvbnN1bWVyIHJlYWRpbmcgdGhlbSBiYWNrIG5ldmVyIGhhcmRjb2RlcyB0aGUgc3RyaW5ncy5cbmV4cG9ydCBjb25zdCBEQVRFX1JBTkdFX01FVEFfRU5EID0gX0RBVEVfUkFOR0VfTUVUQV9FTkQ7XG5leHBvcnQgY29uc3QgREFURV9SQU5HRV9NRVRBX1NUQVJUID0gX0RBVEVfUkFOR0VfTUVUQV9TVEFSVDtcbmV4cG9ydCBjb25zdCBkYXRlQ2VsbE1hcmtzID0gX2RhdGVDZWxsTWFya3M7XG5leHBvcnQgY29uc3QgZm9ybWF0RGF0ZVJhbmdlID0gX2Zvcm1hdERhdGVSYW5nZTtcbmV4cG9ydCBjb25zdCBwYXJzZUxvb3NlRGF0ZVJhbmdlID0gX3BhcnNlTG9vc2VEYXRlUmFuZ2U7XG5leHBvcnQgY29uc3Qgc2VsZWN0ZWRSYW5nZUZvciA9IF9zZWxlY3RlZFJhbmdlRm9yO1xuZXhwb3J0IGNvbnN0IHZpc2libGVEYXRlUmFuZ2UgPSBfdmlzaWJsZURhdGVSYW5nZTtcbi8vIFRpbWUgaGVscGVyczogdGhlIHdyaXR0ZW4gZm9ybSBhIGNvbW1pdHRlZCB0aW1lIHRha2VzLCByZWFkaW5nIGl0IGJhY2ssIGFuZFxuLy8gdGhlIG1ldGFkYXRhIGtleSB0aGUgZXhhY3QgMjQtaG91ciB0aW1lIGlzIHJlY29yZGVkIHVuZGVyLlxuZXhwb3J0IGNvbnN0IGZvcm1hdFRpbWUgPSBfZm9ybWF0VGltZTtcbmV4cG9ydCBjb25zdCBwYXJzZVRpbWUgPSBfcGFyc2VUaW1lO1xuZXhwb3J0IGNvbnN0IFRJTUVfTUVUQV9LRVkgPSBfVElNRV9NRVRBX0tFWTtcbi8vIE9wdGlvbiBpY29ucywgZm9yIGEgY3VzdG9tIGRyb3Bkb3duIHRoYXQgZHJhd3MgYGljb25fc3ZnYCBpdHNlbGYuXG5leHBvcnQgY29uc3Qgb3B0aW9uTGFiZWwgPSBfb3B0aW9uTGFiZWw7XG5leHBvcnQgY29uc3Qgc2FuaXRpemVPcHRpb25JY29uU3ZnID0gX3Nhbml0aXplT3B0aW9uSWNvblN2Zztcbi8vIE9wdGlvbiBwaWN0dXJlcyBhbmQgY291bnRzLCBmb3IgYSBjdXN0b20gZHJvcGRvd24gdGhhdCBkcmF3cyBgaW1hZ2VfdXJsYFxuLy8gYW5kIGBpdGVtX2NvdW50YCBpdHNlbGYuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PUFRJT05fQ09VTlRfVU5JVCA9IF9ERUZBVUxUX09QVElPTl9DT1VOVF9VTklUO1xuZXhwb3J0IGNvbnN0IGZvcm1hdE9wdGlvbkNvdW50ID0gX2Zvcm1hdE9wdGlvbkNvdW50O1xuZXhwb3J0IGNvbnN0IG9wdGlvbkNvdW50TGFiZWwgPSBfb3B0aW9uQ291bnRMYWJlbDtcbmV4cG9ydCBjb25zdCBvcHRpb25IYXNJbWFnZSA9IF9vcHRpb25IYXNJbWFnZTtcbmV4cG9ydCBjb25zdCBvcHRpb25JbWFnZVNyYyA9IF9vcHRpb25JbWFnZVNyYztcbmV4cG9ydCBjb25zdCBvcHRpb25JbWFnZVNvdXJjZXMgPSBfb3B0aW9uSW1hZ2VTb3VyY2VzO1xuZXhwb3J0IGNvbnN0IG9wdGlvbnNTaG93TGVhZGluZ1Zpc3VhbHMgPSBfb3B0aW9uc1Nob3dMZWFkaW5nVmlzdWFscztcbi8vIFByb2R1Y3Qgc3RyaXAgaGVscGVycywgZm9yIGEgY3VzdG9tIHN0cmlwIGZlZCBmcm9tIGBjdXN0b21GaWVsZHMkYC5cbmV4cG9ydCBjb25zdCBQUk9EVUNUX1BBVEhfUFJFRklYID0gX1BST0RVQ1RfUEFUSF9QUkVGSVg7XG5leHBvcnQgY29uc3QgcHJvZHVjdEZyb21NYXRjaGVkSXRlbSA9IF9wcm9kdWN0RnJvbU1hdGNoZWRJdGVtO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RJbWFnZVNvdXJjZXMgPSBfcHJvZHVjdEltYWdlU291cmNlcztcbmV4cG9ydCBjb25zdCBwcm9kdWN0c0Zyb21DdXN0b21GaWVsZHMgPSBfcHJvZHVjdHNGcm9tQ3VzdG9tRmllbGRzO1xuLy8gPT09IFRpZXIgMTogRnVsbCBjb21wb25lbnQgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2xpYi9haS1hdXRvY29tcGxldGVcIjtcbi8vID09PSBDb252ZW5pZW5jZSBOZ01vZHVsZSA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSBcIi4vbGliL2FpLWF1dG9jb21wbGV0ZS5tb2R1bGVcIjtcbi8vID09PSBUaWVyIDI6IERyb3Bkb3duIGNvbXBvbmVudCA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tIFwiLi9saWIvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duXCI7XG4vLyA9PT0gVGllciAyOiBDb250cm9sbGVyIChoZWFkbGVzcyBsb2dpYyBjbGFzcykgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi9saWIvY29udHJvbGxlclwiO1xuLy8gPT09IFRpZXIgMjogSW5wdXQgYmluZGVyICsgQ29udHJvbFZhbHVlQWNjZXNzb3IgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlIH0gZnJvbSBcIi4vbGliL2lucHV0XCI7XG4vLyA9PT0gQW5ndWxhci1zcGVjaWZpYyBwdWJsaWMgdHlwZXMgPT09XG5leHBvcnQgdHlwZSB7XG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMsXG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlLFxuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUsXG4gIEFJQXV0b2NvbXBsZXRlRHJvcGRvd25TdGF0ZSxcbn0gZnJvbSBcIi4vbGliL3NoYXJlZC90eXBlc1wiO1xuIl19