valtech-components 2.0.843 → 2.0.845

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.
@@ -394,7 +394,7 @@ export class ArticleComponent {
394
394
  </ng-container>
395
395
  </div>
396
396
  </article>
397
- `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff0d}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: CodeDisplayComponent, selector: "val-code-display", inputs: ["props"] }, { kind: "component", type: NotesBoxComponent, selector: "val-notes-box", inputs: ["props"] }, { kind: "component", type: PlainCodeBoxComponent, selector: "val-plain-code-box", inputs: ["props"] }] }); }
397
+ `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff14;border-left-color:var(--ion-color-primary)}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: CodeDisplayComponent, selector: "val-code-display", inputs: ["props"] }, { kind: "component", type: NotesBoxComponent, selector: "val-notes-box", inputs: ["props"] }, { kind: "component", type: PlainCodeBoxComponent, selector: "val-plain-code-box", inputs: ["props"] }] }); }
398
398
  }
399
399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ArticleComponent, decorators: [{
400
400
  type: Component,
@@ -571,8 +571,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
571
571
  </ng-container>
572
572
  </div>
573
573
  </article>
574
- `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff0d}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"] }]
574
+ `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff14;border-left-color:var(--ion-color-primary)}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"] }]
575
575
  }], ctorParameters: () => [], propDecorators: { props: [{
576
576
  type: Input
577
577
  }] } });
578
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUUzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUVoRyxPQUFPLEVBQ0wsZUFBZSxHQW1CaEIsTUFBTSxTQUFTLENBQUM7OztBQXVMakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBUTNCLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXhCLE1BQU0sTUFBTSxHQUE4QixFQUFFLENBQUM7UUFDN0MsTUFBTSxhQUFhLEdBQTJCO1lBQzVDLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLFFBQVE7WUFDZixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxRQUFRO1lBQ2YsTUFBTSxFQUFFLFFBQVE7U0FDakIsQ0FBQztRQUVGLElBQUksT0FBTyxDQUFDLEdBQUc7WUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sQ0FBQyxNQUFNO1lBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUF1QjtRQUM5QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNLLHdCQUF3QixDQUFDLElBQXdCO1FBQ3ZELE1BQU0sVUFBVSxHQUErQztZQUM3RCxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUs7WUFDNUIsUUFBUSxFQUFFLGVBQWUsQ0FBQyxRQUFRO1lBQ2xDLElBQUksRUFBRSxlQUFlLENBQUMsU0FBUztZQUMvQixTQUFTLEVBQUUsZUFBZSxDQUFDLFNBQVM7WUFDcEMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLO1lBQzVCLFNBQVMsRUFBRSxlQUFlLENBQUMsTUFBTTtZQUNqQyxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUk7WUFDMUIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO1lBQzFCLE9BQU8sRUFBRSxlQUFlLENBQUMsT0FBTztZQUNoQyxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUk7WUFDMUIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxNQUFNO1lBQzlCLFNBQVMsRUFBRSxlQUFlLENBQUMsU0FBUztZQUNwQyxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUs7WUFDNUIsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLO1lBQzVCLE1BQU0sRUFBRSxlQUFlLENBQUMsTUFBTTtTQUMvQixDQUFDO1FBQ0YsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUNwRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsc0JBQXNCLENBQUMsT0FBdUI7UUFDNUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGtCQUFrQjtRQUVqRyxNQUFNLE9BQU8sR0FBbUI7WUFDOUIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLGNBQWMsRUFBRSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUc7WUFDdEUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLGNBQWMsRUFBRSxNQUFNLElBQUksY0FBYyxDQUFDLE1BQU07WUFDbEYsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLGNBQWMsRUFBRSxVQUFVLElBQUksY0FBYyxDQUFDLFVBQVU7U0FDbkcsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUM3QixJQUFJLE9BQU8sQ0FBQyxHQUFHO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDMUUsSUFBSSxPQUFPLENBQUMsTUFBTTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksT0FBTyxDQUFDLFVBQVU7WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUUvRixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELDRDQUE0QztJQUU1QyxlQUFlLENBQUMsT0FBdUI7UUFDckMsT0FBTyxPQUE4QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUF1QjtRQUN4QyxPQUFPLE9BQWlDLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUF1QjtRQUNwQyxPQUFPLE9BQTZCLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLE9BQThCLENBQUM7SUFDeEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQXVCO1FBQ3pDLE9BQU8sT0FBa0MsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQXVCO1FBQ3BDLE9BQU8sT0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQXVCO1FBQ3BDLE9BQU8sT0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBdUI7UUFDdEMsT0FBTyxPQUErQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUF1QjtRQUN6QyxPQUFPLE9BQWtDLENBQUM7SUFDNUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLE9BQThCLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLE9BQThCLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQXVCO1FBQ3RDLE9BQU8sT0FBK0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsMENBQTBDO0lBRTFDLGlCQUFpQixDQUFDLE9BQXVCO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxPQUF1QjtRQUMzQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUMxRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBdUI7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLHdCQUF3QixDQUFDO0lBQzVFLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBdUI7UUFDcEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQzFELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUF1QjtRQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU87WUFDTCxJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQzVCLFFBQVEsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxZQUFZO1lBQ3BELElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBdUI7UUFDcEMsT0FBTyxPQUE2QixDQUFDO0lBQ3ZDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUF1QjtRQUN2QyxPQUFPLE9BQWdDLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU87WUFDTCxJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQzVCLGtFQUFrRTtZQUNsRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksT0FBTztZQUMzQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksU0FBUztZQUMzQyxTQUFTLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTTtZQUNoRCxJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUTtZQUN4QyxPQUFPLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSTtZQUMxQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2xDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO1lBQ3BELFlBQVksRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVk7WUFDNUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTztZQUNsQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLO1NBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQXVCO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxPQUFPO1lBQ0wsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNqQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksSUFBSTtZQUMzRCxRQUFRLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRO1NBQ3hDLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBdUI7UUFDdEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBRWpDLE9BQU87WUFDTCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3ZDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLFFBQVE7WUFDNUIsTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsS0FBSztZQUNmLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLFFBQVE7WUFDdEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLFdBQVcsRUFBRSxRQUFpQjtZQUM5QixLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzlFLFdBQVcsRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUs7U0FDcEMsQ0FBQztJQUNKLENBQUM7K0dBeE9VLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG1HQTlMakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtS1QseWpUQTdLQyxZQUFZLG1iQUNaLGdCQUFnQiwyRUFDaEIsY0FBYyx5RUFDZCxhQUFhLHdFQUNiLGVBQWUsMEdBQ2YsY0FBYyx5RUFDZCxvQkFBb0IsZ0ZBQ3BCLGlCQUFpQiw2RUFDakIscUJBQXFCOzs0RkFnTVosZ0JBQWdCO2tCQTVNNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixxQkFBcUI7cUJBQ3RCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtS1Q7d0RBaUNELEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS90eXBlcyc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2RlRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb2RlLWRpc3BsYXkvY29kZS1kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2RlRGlzcGxheU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvZGUtZGlzcGxheS90eXBlcyc7XG5pbXBvcnQgeyBOb3Rlc0JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9ub3Rlcy1ib3gvbm90ZXMtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3Rlc0JveE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL25vdGVzLWJveC90eXBlcyc7XG5pbXBvcnQgeyBQbGFpbkNvZGVCb3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGxhaW4tY29kZS1ib3gvcGxhaW4tY29kZS1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWluQ29kZUJveE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3BsYWluLWNvZGUtYm94L3R5cGVzJztcbmltcG9ydCB7XG4gIEFSVElDTEVfU1BBQ0lORyxcbiAgQXJ0aWNsZUJ1dHRvbkVsZW1lbnQsXG4gIEFydGljbGVDb2RlRWxlbWVudCxcbiAgQXJ0aWNsZUNvbW1hbmRFbGVtZW50LFxuICBBcnRpY2xlQ29udGVudFR5cGUsXG4gIEFydGljbGVDdXN0b21FbGVtZW50LFxuICBBcnRpY2xlRWxlbWVudCxcbiAgQXJ0aWNsZUhpZ2hsaWdodEVsZW1lbnQsXG4gIEFydGljbGVJbWFnZUVsZW1lbnQsXG4gIEFydGljbGVMaXN0RWxlbWVudCxcbiAgQXJ0aWNsZU1ldGFkYXRhLFxuICBBcnRpY2xlTm90ZUVsZW1lbnQsXG4gIEFydGljbGVRdW90ZUVsZW1lbnQsXG4gIEFydGljbGVTZXBhcmF0b3JFbGVtZW50LFxuICBBcnRpY2xlU3BhY2luZyxcbiAgQXJ0aWNsZVN1YnRpdGxlRWxlbWVudCxcbiAgQXJ0aWNsZVRleHRFbGVtZW50LFxuICBBcnRpY2xlVGl0bGVFbGVtZW50LFxuICBBcnRpY2xlVmlkZW9FbGVtZW50LFxufSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFydGljbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgQ29kZURpc3BsYXlDb21wb25lbnQsXG4gICAgTm90ZXNCb3hDb21wb25lbnQsXG4gICAgUGxhaW5Db2RlQm94Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhcnRpY2xlXG4gICAgICBjbGFzcz1cInZhbC1hcnRpY2xlXCJcbiAgICAgIFtjbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd2YWwtYXJ0aWNsZS0tY2VudGVyZWQnOiBwcm9wcy5jZW50ZXJlZCxcbiAgICAgICAgJ3ZhbC1hcnRpY2xlLS1saWdodCc6IHByb3BzLnRoZW1lID09PSAnbGlnaHQnLFxuICAgICAgICAndmFsLWFydGljbGUtLWRhcmsnOiBwcm9wcy50aGVtZSA9PT0gJ2RhcmsnLFxuICAgICAgfVwiXG4gICAgICBbc3R5bGUubWF4LXdpZHRoXT1cInByb3BzLm1heFdpZHRoXCJcbiAgICAgIFtuZ1N0eWxlXT1cImdldENvbnRhaW5lclN0eWxlcygpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHByb3BzLmVsZW1lbnRzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19lbGVtZW50XCJcbiAgICAgICAgW2NsYXNzXT1cImVsZW1lbnQuY3NzQ2xhc3NcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRFbGVtZW50U3BhY2luZ0NsYXNzKGVsZW1lbnQpXCJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZWxlbWVudC52aXNpYmxlID09PSBmYWxzZSA/ICdub25lJyA6ICdibG9jaydcIlxuICAgICAgPlxuICAgICAgICA8IS0tIFTDrXR1bG8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICd0aXRsZSdcIj5cbiAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImdldFRpdGxlRWxlbWVudChlbGVtZW50KS5wcm9wc1wiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gU3VidMOtdHVsbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ3N1YnRpdGxlJ1wiPlxuICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cImdldFN1YnRpdGxlRWxlbWVudChlbGVtZW50KS5wcm9wc1wiPjwvdmFsLXRpdGxlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFRleHRvL1DDoXJyYWZvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAndGV4dCcgfHwgZWxlbWVudC50eXBlID09PSAncGFyYWdyYXBoJ1wiPlxuICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiZ2V0VGV4dEVsZW1lbnQoZWxlbWVudCkucHJvcHNcIj48L3ZhbC10ZXh0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIENpdGEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdxdW90ZSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJnZXRRdW90ZVRleHRQcm9wcyhlbGVtZW50KVwiPjwvdmFsLXRleHQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuYXV0aG9yXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fcXVvdGUtYXV0aG9yXCI+XG4gICAgICAgICAgICAgIOKAlCB7eyBnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuYXV0aG9yIH19XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpLnByb3BzLnNvdXJjZVwiIGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlLXNvdXJjZVwiPlxuICAgICAgICAgICAgICAgICwge3sgZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpLnByb3BzLnNvdXJjZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBUZXh0byBkZXN0YWNhZG8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdoaWdobGlnaHQnXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9faGlnaGxpZ2h0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19oaWdobGlnaHQtLXJvdW5kZWQnOiBnZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpLnByb3BzLnJvdW5kZWQsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEhpZ2hsaWdodENvbG9yKGVsZW1lbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cImdldEhpZ2hsaWdodFRleHRQcm9wcyhlbGVtZW50KVwiPjwvdmFsLXRleHQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ8OzZGlnbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2NvZGUnXCI+XG4gICAgICAgICAgPHZhbC1jb2RlLWRpc3BsYXkgW3Byb3BzXT1cImdldENvZGVEaXNwbGF5UHJvcHMoZWxlbWVudClcIj48L3ZhbC1jb2RlLWRpc3BsYXk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTm90YSBkZXN0YWNhZGEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdub3RlJ1wiPlxuICAgICAgICAgIDx2YWwtbm90ZXMtYm94IFtwcm9wc109XCJnZXROb3RlQm94UHJvcHMoZWxlbWVudClcIj48L3ZhbC1ub3Rlcy1ib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ29tYW5kbyBkZSB0ZXJtaW5hbCAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2NvbW1hbmQnXCI+XG4gICAgICAgICAgPHZhbC1wbGFpbi1jb2RlLWJveCBbcHJvcHNdPVwiZ2V0Q29tbWFuZFByb3BzKGVsZW1lbnQpXCI+PC92YWwtcGxhaW4tY29kZS1ib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTGlzdGEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdsaXN0J1wiPlxuICAgICAgICAgIDx1bCAqbmdJZj1cImdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLmxpc3RUeXBlICE9PSAnb3JkZXJlZCdcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0XCI+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0TGlzdEVsZW1lbnQoZWxlbWVudCkucHJvcHMuaXRlbXNcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJnZXRMaXN0RWxlbWVudChlbGVtZW50KS5wcm9wcy5saXN0VHlwZSA9PT0gJ2NoZWNrbGlzdCdcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0LWNoZWNrXCJcbiAgICAgICAgICAgICAgICA+4pyTPC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJpdGVtLnRleHRcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPG9sXG4gICAgICAgICAgICAqbmdJZj1cImdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLmxpc3RUeXBlID09PSAnb3JkZXJlZCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fbGlzdCB2YWwtYXJ0aWNsZV9fbGlzdC0tb3JkZXJlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLml0ZW1zXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiaXRlbS50ZXh0XCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L29sPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEJvdMOzbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2J1dHRvbidcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19idXR0b24tY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19idXR0b24tY29udGFpbmVyLS1sZWZ0JzogZ2V0QnV0dG9uRWxlbWVudChlbGVtZW50KS5wcm9wcy5hbGlnbm1lbnQgPT09ICdsZWZ0JyxcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19idXR0b24tY29udGFpbmVyLS1jZW50ZXInOiBnZXRCdXR0b25FbGVtZW50KGVsZW1lbnQpLnByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcicsXG4gICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fYnV0dG9uLWNvbnRhaW5lci0tcmlnaHQnOiBnZXRCdXR0b25FbGVtZW50KGVsZW1lbnQpLnByb3BzLmFsaWdubWVudCA9PT0gJ3JpZ2h0JyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJnZXRCdXR0b25Qcm9wcyhlbGVtZW50KVwiPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBTZXBhcmFkb3IgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdzZXBhcmF0b3InXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hcnRpY2xlX19zZXBhcmF0b3JcIj5cbiAgICAgICAgICAgIDxoclxuICAgICAgICAgICAgICAqbmdJZj1cImdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudCkucHJvcHMuc3R5bGUgPT09ICdsaW5lJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX3NlcGFyYXRvci1saW5lXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yLWxpbmUtLXRoaW4nOiBnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQpLnByb3BzLnRoaWNrbmVzcyA9PT0gJ3RoaW4nLFxuICAgICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yLWxpbmUtLXRoaWNrJzogZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50KS5wcm9wcy50aGlja25lc3MgPT09ICd0aGljaycsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQpLnByb3BzLnN0eWxlID09PSAnZG90cydcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19zZXBhcmF0b3ItZG90c1wiPlxuICAgICAgICAgICAgICDigKIg4oCiIOKAolxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwiZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50KS5wcm9wcy5zdHlsZSA9PT0gJ3NwYWNlJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX3NlcGFyYXRvci1zcGFjZVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gSW1hZ2VuIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnaW1hZ2UnXCI+XG4gICAgICAgICAgPHZhbC1pbWFnZSBbcHJvcHNdPVwiZ2V0SW1hZ2VNZXRhZGF0YShlbGVtZW50KVwiPjwvdmFsLWltYWdlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFZpZGVvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAndmlkZW8nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hcnRpY2xlX192aWRlb1wiPlxuICAgICAgICAgICAgPHZpZGVvXG4gICAgICAgICAgICAgIFtzcmNdPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnNyY1wiXG4gICAgICAgICAgICAgIFtwb3N0ZXJdPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnBvc3RlclwiXG4gICAgICAgICAgICAgIFtjb250cm9sc109XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMuY29udHJvbHMgIT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgW2F1dG9wbGF5XT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5hdXRvcGxheVwiXG4gICAgICAgICAgICAgIFttdXRlZF09XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMubXV0ZWRcIlxuICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5tYXhXaWR0aFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX3ZpZGVvLWNvbnRlbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBUdSBuYXZlZ2Fkb3Igbm8gc29wb3J0YSBlbCBlbGVtZW50byB2aWRlby5cbiAgICAgICAgICAgIDwvdmlkZW8+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnRpdGxlXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fdmlkZW8tdGl0bGVcIj5cbiAgICAgICAgICAgICAge3sgZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnRpdGxlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBDb250ZW5pZG8gcGVyc29uYWxpemFkbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2N1c3RvbSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX2N1c3RvbVwiIFtpbm5lckhUTUxdPVwiZ2V0Q3VzdG9tRWxlbWVudChlbGVtZW50KS5wcm9wcy5odG1sQ29udGVudFwiPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXJ0aWNsZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYXJ0aWNsZS5jb21wb25lbnQuc2NzcyddLFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCwgLy8gQ29tZW50YWRvIHRlbXBvcmFsbWVudGUgcGFyYSBkZWJ1Z1xufSlcbi8qKlxuICogdmFsLWFydGljbGVcbiAqXG4gKiBDb21wb25lbnRlIHBhcmEgY3JlYXIgYXJ0w61jdWxvcywgYmxvZ3MgeSBkb2N1bWVudGFjacOzbiBkZSBmb3JtYSBkZWNsYXJhdGl2YS5cbiAqIFBlcm1pdGUgY29tYmluYXIgbcO6bHRpcGxlcyBlbGVtZW50b3MgKHTDrXR1bG9zLCB0ZXh0bywgaW3DoWdlbmVzLCBjw7NkaWdvLCBldGMuKVxuICogY29uIGVzcGFjaWFkbyBhdXRvbcOhdGljbyB5IHNvcG9ydGUgbXVsdGktaWRpb21hLlxuICpcbiAqIEBleGFtcGxlIFVzbyBiw6FzaWNvOlxuICogYGBgaHRtbFxuICogPHZhbC1hcnRpY2xlIFtwcm9wc109XCJhcnRpY2xlQ29uZmlnXCI+PC92YWwtYXJ0aWNsZT5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIENvbiBBcnRpY2xlQnVpbGRlcjpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGFydGljbGVDb25maWcgPSBuZXcgQXJ0aWNsZUJ1aWxkZXIoKVxuICogICAudGl0bGUodGl0bGVQcm9wcylcbiAqICAgLnBhcmFncmFwaCh0ZXh0UHJvcHMpXG4gKiAgIC5jb2RlKCdjb25zb2xlLmxvZyhcIkhlbGxvIFdvcmxkXCIpJywgJ2phdmFzY3JpcHQnKVxuICogICAuYnVpbGQoKTtcbiAqIGBgYFxuICpcbiAqIEBpbnB1dCBwcm9wczogQXJ0aWNsZU1ldGFkYXRhIC0gQ29uZmlndXJhY2nDs24gY29tcGxldGEgZGVsIGFydMOtY3Vsb1xuICovXG5leHBvcnQgY2xhc3MgQXJ0aWNsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBDb25maWd1cmFjacOzbiBkZWwgYXJ0w61jdWxvXG4gICAqIEB0eXBlIHtBcnRpY2xlTWV0YWRhdGF9XG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wcyE6IEFydGljbGVNZXRhZGF0YTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gVmFsaWRhY2nDs24gYsOhc2ljYVxuICAgIGlmICghdGhpcy5wcm9wcyB8fCAhdGhpcy5wcm9wcy5lbGVtZW50cykge1xuICAgICAgY29uc29sZS53YXJuKCd2YWwtYXJ0aWNsZTogcHJvcHMuZWxlbWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsb3MgZXN0aWxvcyBkZSBwYWRkaW5nIHBhcmEgZWwgY29udGVuZWRvciBhcnRpY2xlXG4gICAqL1xuICBnZXRDb250YWluZXJTdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qgc3BhY2luZyA9IHRoaXMucHJvcHMuY29udGFpbmVyU3BhY2luZztcbiAgICBpZiAoIXNwYWNpbmcpIHJldHVybiB7fTtcblxuICAgIGNvbnN0IHN0eWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGNvbnN0IHNwYWNpbmdWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBub25lOiAnMCcsXG4gICAgICBzbWFsbDogJzAuNXJlbScsXG4gICAgICBtZWRpdW06ICcxcmVtJyxcbiAgICAgIGxhcmdlOiAnMS41cmVtJyxcbiAgICAgIHhsYXJnZTogJzIuNXJlbScsXG4gICAgfTtcblxuICAgIGlmIChzcGFjaW5nLnRvcCkgc3R5bGVzWydwYWRkaW5nLXRvcCddID0gc3BhY2luZ1ZhbHVlc1tzcGFjaW5nLnRvcF07XG4gICAgaWYgKHNwYWNpbmcuYm90dG9tKSBzdHlsZXNbJ3BhZGRpbmctYm90dG9tJ10gPSBzcGFjaW5nVmFsdWVzW3NwYWNpbmcuYm90dG9tXTtcbiAgICBpZiAoc3BhY2luZy5ob3Jpem9udGFsKSB7XG4gICAgICBzdHlsZXNbJ3BhZGRpbmctbGVmdCddID0gc3BhY2luZ1ZhbHVlc1tzcGFjaW5nLmhvcml6b250YWxdO1xuICAgICAgc3R5bGVzWydwYWRkaW5nLXJpZ2h0J10gPSBzcGFjaW5nVmFsdWVzW3NwYWNpbmcuaG9yaXpvbnRhbF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jacOzbiBkZSB0cmFja0J5IHBhcmEgb3B0aW1pemFyIGVsIHJlbmRlcmluZyBkZSBlbGVtZW50b3NcbiAgICovXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IGFueSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuaWQgfHwgaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCBlc3BhY2lhZG8gcG9yIGRlZmVjdG8gc2Vnw7puIGVsIHRpcG8gZGUgZWxlbWVudG9cbiAgICovXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFNwYWNpbmdGb3JUeXBlKHR5cGU6IEFydGljbGVDb250ZW50VHlwZSk6IEFydGljbGVTcGFjaW5nIHtcbiAgICBjb25zdCBzcGFjaW5nTWFwOiBSZWNvcmQ8QXJ0aWNsZUNvbnRlbnRUeXBlLCBBcnRpY2xlU3BhY2luZz4gPSB7XG4gICAgICB0aXRsZTogQVJUSUNMRV9TUEFDSU5HLlRJVExFLFxuICAgICAgc3VidGl0bGU6IEFSVElDTEVfU1BBQ0lORy5TVUJUSVRMRSxcbiAgICAgIHRleHQ6IEFSVElDTEVfU1BBQ0lORy5QQVJBR1JBUEgsXG4gICAgICBwYXJhZ3JhcGg6IEFSVElDTEVfU1BBQ0lORy5QQVJBR1JBUEgsXG4gICAgICBxdW90ZTogQVJUSUNMRV9TUEFDSU5HLlFVT1RFLFxuICAgICAgaGlnaGxpZ2h0OiBBUlRJQ0xFX1NQQUNJTkcuTUVESVVNLFxuICAgICAgY29kZTogQVJUSUNMRV9TUEFDSU5HLkNPREUsXG4gICAgICBub3RlOiBBUlRJQ0xFX1NQQUNJTkcuTk9URSxcbiAgICAgIGNvbW1hbmQ6IEFSVElDTEVfU1BBQ0lORy5DT01NQU5ELFxuICAgICAgbGlzdDogQVJUSUNMRV9TUEFDSU5HLkxJU1QsXG4gICAgICBidXR0b246IEFSVElDTEVfU1BBQ0lORy5CVVRUT04sXG4gICAgICBzZXBhcmF0b3I6IEFSVElDTEVfU1BBQ0lORy5TRVBBUkFUT1IsXG4gICAgICBpbWFnZTogQVJUSUNMRV9TUEFDSU5HLklNQUdFLFxuICAgICAgdmlkZW86IEFSVElDTEVfU1BBQ0lORy5JTUFHRSxcbiAgICAgIGN1c3RvbTogQVJUSUNMRV9TUEFDSU5HLk1FRElVTSxcbiAgICB9O1xuICAgIHJldHVybiBzcGFjaW5nTWFwW3R5cGVdIHx8IEFSVElDTEVfU1BBQ0lORy5NRURJVU07XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYXMgY2xhc2VzIENTUyBwYXJhIGVsIGVzcGFjaWFkbyBkZWwgZWxlbWVudG8uXG4gICAqIFByaW9yaWRhZDogZWxlbWVudC5zcGFjaW5nID4gZWxlbWVudFNwYWNpbmcgPiBlc3BhY2lhZG8gbmF0aXZvIHBvciB0aXBvXG4gICAqL1xuICBnZXRFbGVtZW50U3BhY2luZ0NsYXNzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCBkZWZhdWx0Rm9yVHlwZSA9IHRoaXMuZ2V0RGVmYXVsdFNwYWNpbmdGb3JUeXBlKGVsZW1lbnQudHlwZSk7XG4gICAgY29uc3QgZ2xvYmFsT3ZlcnJpZGUgPSB0aGlzLnByb3BzLmVsZW1lbnRTcGFjaW5nIHx8IHRoaXMucHJvcHMuZGVmYXVsdFNwYWNpbmc7IC8vIGJhY2t3YXJkIGNvbXBhdFxuXG4gICAgY29uc3Qgc3BhY2luZzogQXJ0aWNsZVNwYWNpbmcgPSB7XG4gICAgICB0b3A6IGVsZW1lbnQuc3BhY2luZz8udG9wID8/IGdsb2JhbE92ZXJyaWRlPy50b3AgPz8gZGVmYXVsdEZvclR5cGUudG9wLFxuICAgICAgYm90dG9tOiBlbGVtZW50LnNwYWNpbmc/LmJvdHRvbSA/PyBnbG9iYWxPdmVycmlkZT8uYm90dG9tID8/IGRlZmF1bHRGb3JUeXBlLmJvdHRvbSxcbiAgICAgIGhvcml6b250YWw6IGVsZW1lbnQuc3BhY2luZz8uaG9yaXpvbnRhbCA/PyBnbG9iYWxPdmVycmlkZT8uaG9yaXpvbnRhbCA/PyBkZWZhdWx0Rm9yVHlwZS5ob3Jpem9udGFsLFxuICAgIH07XG5cbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChzcGFjaW5nLnRvcCkgY2xhc3Nlcy5wdXNoKGB2YWwtYXJ0aWNsZV9fc3BhY2luZy10b3AtLSR7c3BhY2luZy50b3B9YCk7XG4gICAgaWYgKHNwYWNpbmcuYm90dG9tKSBjbGFzc2VzLnB1c2goYHZhbC1hcnRpY2xlX19zcGFjaW5nLWJvdHRvbS0tJHtzcGFjaW5nLmJvdHRvbX1gKTtcbiAgICBpZiAoc3BhY2luZy5ob3Jpem9udGFsKSBjbGFzc2VzLnB1c2goYHZhbC1hcnRpY2xlX19zcGFjaW5nLWhvcml6b250YWwtLSR7c3BhY2luZy5ob3Jpem9udGFsfWApO1xuXG4gICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgLy8gPT09IEZVTkNJT05FUyBERSBUSVBPIFBBUkEgVFlQRVNDUklQVCA9PT1cblxuICBnZXRUaXRsZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlVGl0bGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlVGl0bGVFbGVtZW50O1xuICB9XG5cbiAgZ2V0U3VidGl0bGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVN1YnRpdGxlRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVN1YnRpdGxlRWxlbWVudDtcbiAgfVxuXG4gIGdldFRleHRFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVRleHRFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlVGV4dEVsZW1lbnQ7XG4gIH1cblxuICBnZXRRdW90ZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlUXVvdGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlUXVvdGVFbGVtZW50O1xuICB9XG5cbiAgZ2V0SGlnaGxpZ2h0RWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVIaWdobGlnaHRFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlSGlnaGxpZ2h0RWxlbWVudDtcbiAgfVxuXG4gIGdldENvZGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZUNvZGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlQ29kZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRMaXN0RWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVMaXN0RWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUxpc3RFbGVtZW50O1xuICB9XG5cbiAgZ2V0QnV0dG9uRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVCdXR0b25FbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlQnV0dG9uRWxlbWVudDtcbiAgfVxuXG4gIGdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlU2VwYXJhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVNlcGFyYXRvckVsZW1lbnQ7XG4gIH1cblxuICBnZXRJbWFnZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlSW1hZ2VFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlSW1hZ2VFbGVtZW50O1xuICB9XG5cbiAgZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVZpZGVvRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVZpZGVvRWxlbWVudDtcbiAgfVxuXG4gIGdldEN1c3RvbUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlQ3VzdG9tRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUN1c3RvbUVsZW1lbnQ7XG4gIH1cblxuICAvLyA9PT0gRlVOQ0lPTkVTIEFVWElMSUFSRVMgUEFSQSBQUk9QUyA9PT1cblxuICBnZXRRdW90ZVRleHRQcm9wcyhlbGVtZW50OiBBcnRpY2xlRWxlbWVudCkge1xuICAgIGNvbnN0IHF1b3RlRWxlbWVudCA9IHRoaXMuZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgYXV0aG9yLCBzb3VyY2UsIC4uLnRleHRQcm9wcyB9ID0gcXVvdGVFbGVtZW50LnByb3BzO1xuICAgIHJldHVybiB0ZXh0UHJvcHM7XG4gIH1cblxuICBnZXRIaWdobGlnaHRUZXh0UHJvcHMoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpIHtcbiAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gdGhpcy5nZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgYmFja2dyb3VuZENvbG9yLCByb3VuZGVkLCAuLi50ZXh0UHJvcHMgfSA9IGhpZ2hsaWdodEVsZW1lbnQucHJvcHM7XG4gICAgcmV0dXJuIHRleHRQcm9wcztcbiAgfVxuXG4gIGdldEhpZ2hsaWdodENvbG9yKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gdGhpcy5nZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpO1xuICAgIHJldHVybiBoaWdobGlnaHRFbGVtZW50LnByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWNvbG9yLWxpZ2h0KSc7XG4gIH1cblxuICBnZXRCdXR0b25Qcm9wcyhlbGVtZW50OiBBcnRpY2xlRWxlbWVudCkge1xuICAgIGNvbnN0IGJ1dHRvbkVsZW1lbnQgPSB0aGlzLmdldEJ1dHRvbkVsZW1lbnQoZWxlbWVudCk7XG4gICAgY29uc3QgeyBhbGlnbm1lbnQsIC4uLmJ1dHRvblByb3BzIH0gPSBidXR0b25FbGVtZW50LnByb3BzO1xuICAgIHJldHVybiBidXR0b25Qcm9wcztcbiAgfVxuXG4gIGdldENvZGVEaXNwbGF5UHJvcHMoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBDb2RlRGlzcGxheU1ldGFkYXRhIHtcbiAgICBjb25zdCBjb2RlRWxlbWVudCA9IHRoaXMuZ2V0Q29kZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGU6IGNvZGVFbGVtZW50LnByb3BzLmNvZGUsXG4gICAgICBsYW5ndWFnZTogY29kZUVsZW1lbnQucHJvcHMubGFuZ3VhZ2UgfHwgJ3R5cGVzY3JpcHQnLFxuICAgICAgdGFiczogW10sXG4gICAgfTtcbiAgfVxuXG4gIGdldE5vdGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZU5vdGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlTm90ZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRDb21tYW5kRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVDb21tYW5kRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUNvbW1hbmRFbGVtZW50O1xuICB9XG5cbiAgZ2V0Tm90ZUJveFByb3BzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogTm90ZXNCb3hNZXRhZGF0YSB7XG4gICAgY29uc3Qgbm90ZUVsZW1lbnQgPSB0aGlzLmdldE5vdGVFbGVtZW50KGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiBub3RlRWxlbWVudC5wcm9wcy50ZXh0LFxuICAgICAgLy8gYD8/YCAobm90IGB8fGApIHNvIGV4cGxpY2l0IGVtcHR5IHN0cmluZyBzdXBwcmVzc2VzIHRoZSBwcmVmaXguXG4gICAgICBwcmVmaXg6IG5vdGVFbGVtZW50LnByb3BzLnByZWZpeCA/PyAnTm90YTonLFxuICAgICAgY29sb3I6IG5vdGVFbGVtZW50LnByb3BzLmNvbG9yIHx8ICd3YXJuaW5nJyxcbiAgICAgIHRleHRDb2xvcjogbm90ZUVsZW1lbnQucHJvcHMudGV4dENvbG9yIHx8ICdkYXJrJyxcbiAgICAgIHNpemU6IG5vdGVFbGVtZW50LnByb3BzLnNpemUgfHwgJ21lZGl1bScsXG4gICAgICByb3VuZGVkOiBub3RlRWxlbWVudC5wcm9wcy5yb3VuZGVkID8/IHRydWUsXG4gICAgICBwYWRkaW5nOiBub3RlRWxlbWVudC5wcm9wcy5wYWRkaW5nLFxuICAgICAgYWxsb3dQYXJ0aWFsQm9sZDogbm90ZUVsZW1lbnQucHJvcHMuYWxsb3dQYXJ0aWFsQm9sZCxcbiAgICAgIHByb2Nlc3NMaW5rczogbm90ZUVsZW1lbnQucHJvcHMucHJvY2Vzc0xpbmtzLFxuICAgICAgY29tcGFjdDogbm90ZUVsZW1lbnQucHJvcHMuY29tcGFjdCxcbiAgICAgIGFsaWduOiBub3RlRWxlbWVudC5wcm9wcy5hbGlnbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0Q29tbWFuZFByb3BzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogUGxhaW5Db2RlQm94TWV0YWRhdGEge1xuICAgIGNvbnN0IGNvbW1hbmRFbGVtZW50ID0gdGhpcy5nZXRDb21tYW5kRWxlbWVudChlbGVtZW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZXM6IGNvbW1hbmRFbGVtZW50LnByb3BzLmxpbmVzLFxuICAgICAgc2hvd0NvcHlCdXR0b246IGNvbW1hbmRFbGVtZW50LnByb3BzLnNob3dDb3B5QnV0dG9uID8/IHRydWUsXG4gICAgICBsYW5ndWFnZTogY29tbWFuZEVsZW1lbnQucHJvcHMubGFuZ3VhZ2UsXG4gICAgfTtcbiAgfVxuXG4gIGdldEltYWdlTWV0YWRhdGEoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBJbWFnZU1ldGFkYXRhIHtcbiAgICBjb25zdCBpbWFnZUVsZW1lbnQgPSB0aGlzLmdldEltYWdlRWxlbWVudChlbGVtZW50KTtcbiAgICBjb25zdCBwcm9wcyA9IGltYWdlRWxlbWVudC5wcm9wcztcblxuICAgIHJldHVybiB7XG4gICAgICBzcmM6IHByb3BzLnNyYyxcbiAgICAgIGFsdDogcHJvcHMuYWx0LFxuICAgICAgbW9kZTogcHJvcHMucm91bmRlZCA/ICdyb3VuZGVkJyA6ICdib3gnLFxuICAgICAgc2l6ZTogcHJvcHMuc2l6ZSB8fCAnbWVkaXVtJyxcbiAgICAgIHNoYWRlZDogZmFsc2UsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBhbGlnbm1lbnQ6IHByb3BzLmFsaWdubWVudCB8fCAnY2VudGVyJyxcbiAgICAgIGNhcHRpb246IHByb3BzLmNhcHRpb24sXG4gICAgICBjYXB0aW9uU2l6ZTogJ21lZGl1bScgYXMgY29uc3QsXG4gICAgICB3aWR0aDogcHJvcHMubWF4V2lkdGggPyBwYXJzZUludChwcm9wcy5tYXhXaWR0aC5yZXBsYWNlKCdweCcsICcnKSkgOiB1bmRlZmluZWQsXG4gICAgICBwcmV2aWV3TW9kZTogcHJvcHMucHJldmlldyB8fCBmYWxzZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
578
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUUzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUVoRyxPQUFPLEVBQ0wsZUFBZSxHQW1CaEIsTUFBTSxTQUFTLENBQUM7OztBQXVMakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBUTNCLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFD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QztJQUNKLENBQUM7K0dBeE9VLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG1HQTlMakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtS1Qsb21UQTdLQyxZQUFZLG1iQUNaLGdCQUFnQiwyRUFDaEIsY0FBYyx5RUFDZCxhQUFhLHdFQUNiLGVBQWUsMEdBQ2YsY0FBYyx5RUFDZCxvQkFBb0IsZ0ZBQ3BCLGlCQUFpQiw2RUFDakIscUJBQXFCOzs0RkFnTVosZ0JBQWdCO2tCQTVNNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixxQkFBcUI7cUJBQ3RCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtS1Q7d0RBaUNELEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS90eXBlcyc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2RlRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb2RlLWRpc3BsYXkvY29kZS1kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2RlRGlzcGxheU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvZGUtZGlzcGxheS90eXBlcyc7XG5pbXBvcnQgeyBOb3Rlc0JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9ub3Rlcy1ib3gvbm90ZXMtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3Rlc0JveE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL25vdGVzLWJveC90eXBlcyc7XG5pbXBvcnQgeyBQbGFpbkNvZGVCb3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGxhaW4tY29kZS1ib3gvcGxhaW4tY29kZS1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWluQ29kZUJveE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3BsYWluLWNvZGUtYm94L3R5cGVzJztcbmltcG9ydCB7XG4gIEFSVElDTEVfU1BBQ0lORyxcbiAgQXJ0aWNsZUJ1dHRvbkVsZW1lbnQsXG4gIEFydGljbGVDb2RlRWxlbWVudCxcbiAgQXJ0aWNsZUNvbW1hbmRFbGVtZW50LFxuICBBcnRpY2xlQ29udGVudFR5cGUsXG4gIEFydGljbGVDdXN0b21FbGVtZW50LFxuICBBcnRpY2xlRWxlbWVudCxcbiAgQXJ0aWNsZUhpZ2hsaWdodEVsZW1lbnQsXG4gIEFydGljbGVJbWFnZUVsZW1lbnQsXG4gIEFydGljbGVMaXN0RWxlbWVudCxcbiAgQXJ0aWNsZU1ldGFkYXRhLFxuICBBcnRpY2xlTm90ZUVsZW1lbnQsXG4gIEFydGljbGVRdW90ZUVsZW1lbnQsXG4gIEFydGljbGVTZXBhcmF0b3JFbGVtZW50LFxuICBBcnRpY2xlU3BhY2luZyxcbiAgQXJ0aWNsZVN1YnRpdGxlRWxlbWVudCxcbiAgQXJ0aWNsZVRleHRFbGVtZW50LFxuICBBcnRpY2xlVGl0bGVFbGVtZW50LFxuICBBcnRpY2xlVmlkZW9FbGVtZW50LFxufSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFydGljbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgQ29kZURpc3BsYXlDb21wb25lbnQsXG4gICAgTm90ZXNCb3hDb21wb25lbnQsXG4gICAgUGxhaW5Db2RlQm94Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhcnRpY2xlXG4gICAgICBjbGFzcz1cInZhbC1hcnRpY2xlXCJcbiAgICAgIFtjbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd2YWwtYXJ0aWNsZS0tY2VudGVyZWQnOiBwcm9wcy5jZW50ZXJlZCxcbiAgICAgICAgJ3ZhbC1hcnRpY2xlLS1saWdodCc6IHByb3BzLnRoZW1lID09PSAnbGlnaHQnLFxuICAgICAgICAndmFsLWFydGljbGUtLWRhcmsnOiBwcm9wcy50aGVtZSA9PT0gJ2RhcmsnLFxuICAgICAgfVwiXG4gICAgICBbc3R5bGUubWF4LXdpZHRoXT1cInByb3BzLm1heFdpZHRoXCJcbiAgICAgIFtuZ1N0eWxlXT1cImdldENvbnRhaW5lclN0eWxlcygpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHByb3BzLmVsZW1lbnRzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19lbGVtZW50XCJcbiAgICAgICAgW2NsYXNzXT1cImVsZW1lbnQuY3NzQ2xhc3NcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRFbGVtZW50U3BhY2luZ0NsYXNzKGVsZW1lbnQpXCJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZWxlbWVudC52aXNpYmxlID09PSBmYWxzZSA/ICdub25lJyA6ICdibG9jaydcIlxuICAgICAgPlxuICAgICAgICA8IS0tIFTDrXR1bG8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICd0aXRsZSdcIj5cbiAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImdldFRpdGxlRWxlbWVudChlbGVtZW50KS5wcm9wc1wiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gU3VidMOtdHVsbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ3N1YnRpdGxlJ1wiPlxuICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cImdldFN1YnRpdGxlRWxlbWVudChlbGVtZW50KS5wcm9wc1wiPjwvdmFsLXRpdGxlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFRleHRvL1DDoXJyYWZvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAndGV4dCcgfHwgZWxlbWVudC50eXBlID09PSAncGFyYWdyYXBoJ1wiPlxuICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiZ2V0VGV4dEVsZW1lbnQoZWxlbWVudCkucHJvcHNcIj48L3ZhbC10ZXh0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIENpdGEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdxdW90ZSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJnZXRRdW90ZVRleHRQcm9wcyhlbGVtZW50KVwiPjwvdmFsLXRleHQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuYXV0aG9yXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fcXVvdGUtYXV0aG9yXCI+XG4gICAgICAgICAgICAgIOKAlCB7eyBnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuYXV0aG9yIH19XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpLnByb3BzLnNvdXJjZVwiIGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlLXNvdXJjZVwiPlxuICAgICAgICAgICAgICAgICwge3sgZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpLnByb3BzLnNvdXJjZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBUZXh0byBkZXN0YWNhZG8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdoaWdobGlnaHQnXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9faGlnaGxpZ2h0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19oaWdobGlnaHQtLXJvdW5kZWQnOiBnZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpLnByb3BzLnJvdW5kZWQsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEhpZ2hsaWdodENvbG9yKGVsZW1lbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cImdldEhpZ2hsaWdodFRleHRQcm9wcyhlbGVtZW50KVwiPjwvdmFsLXRleHQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ8OzZGlnbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2NvZGUnXCI+XG4gICAgICAgICAgPHZhbC1jb2RlLWRpc3BsYXkgW3Byb3BzXT1cImdldENvZGVEaXNwbGF5UHJvcHMoZWxlbWVudClcIj48L3ZhbC1jb2RlLWRpc3BsYXk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTm90YSBkZXN0YWNhZGEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdub3RlJ1wiPlxuICAgICAgICAgIDx2YWwtbm90ZXMtYm94IFtwcm9wc109XCJnZXROb3RlQm94UHJvcHMoZWxlbWVudClcIj48L3ZhbC1ub3Rlcy1ib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ29tYW5kbyBkZSB0ZXJtaW5hbCAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2NvbW1hbmQnXCI+XG4gICAgICAgICAgPHZhbC1wbGFpbi1jb2RlLWJveCBbcHJvcHNdPVwiZ2V0Q29tbWFuZFByb3BzKGVsZW1lbnQpXCI+PC92YWwtcGxhaW4tY29kZS1ib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTGlzdGEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdsaXN0J1wiPlxuICAgICAgICAgIDx1bCAqbmdJZj1cImdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLmxpc3RUeXBlICE9PSAnb3JkZXJlZCdcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0XCI+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0TGlzdEVsZW1lbnQoZWxlbWVudCkucHJvcHMuaXRlbXNcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJnZXRMaXN0RWxlbWVudChlbGVtZW50KS5wcm9wcy5saXN0VHlwZSA9PT0gJ2NoZWNrbGlzdCdcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0LWNoZWNrXCJcbiAgICAgICAgICAgICAgICA+4pyTPC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJpdGVtLnRleHRcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPG9sXG4gICAgICAgICAgICAqbmdJZj1cImdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLmxpc3RUeXBlID09PSAnb3JkZXJlZCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fbGlzdCB2YWwtYXJ0aWNsZV9fbGlzdC0tb3JkZXJlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLml0ZW1zXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiaXRlbS50ZXh0XCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L29sPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEJvdMOzbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2J1dHRvbidcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19idXR0b24tY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19idXR0b24tY29udGFpbmVyLS1sZWZ0JzogZ2V0QnV0dG9uRWxlbWVudChlbGVtZW50KS5wcm9wcy5hbGlnbm1lbnQgPT09ICdsZWZ0JyxcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19idXR0b24tY29udGFpbmVyLS1jZW50ZXInOiBnZXRCdXR0b25FbGVtZW50KGVsZW1lbnQpLnByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcicsXG4gICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fYnV0dG9uLWNvbnRhaW5lci0tcmlnaHQnOiBnZXRCdXR0b25FbGVtZW50KGVsZW1lbnQpLnByb3BzLmFsaWdubWVudCA9PT0gJ3JpZ2h0JyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJnZXRCdXR0b25Qcm9wcyhlbGVtZW50KVwiPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBTZXBhcmFkb3IgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdzZXBhcmF0b3InXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hcnRpY2xlX19zZXBhcmF0b3JcIj5cbiAgICAgICAgICAgIDxoclxuICAgICAgICAgICAgICAqbmdJZj1cImdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudCkucHJvcHMuc3R5bGUgPT09ICdsaW5lJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX3NlcGFyYXRvci1saW5lXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yLWxpbmUtLXRoaW4nOiBnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQpLnByb3BzLnRoaWNrbmVzcyA9PT0gJ3RoaW4nLFxuICAgICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yLWxpbmUtLXRoaWNrJzogZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50KS5wcm9wcy50aGlja25lc3MgPT09ICd0aGljaycsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQpLnByb3BzLnN0eWxlID09PSAnZG90cydcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19zZXBhcmF0b3ItZG90c1wiPlxuICAgICAgICAgICAgICDigKIg4oCiIOKAolxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwiZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50KS5wcm9wcy5zdHlsZSA9PT0gJ3NwYWNlJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX3NlcGFyYXRvci1zcGFjZVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gSW1hZ2VuIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnaW1hZ2UnXCI+XG4gICAgICAgICAgPHZhbC1pbWFnZSBbcHJvcHNdPVwiZ2V0SW1hZ2VNZXRhZGF0YShlbGVtZW50KVwiPjwvdmFsLWltYWdlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFZpZGVvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAndmlkZW8nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hcnRpY2xlX192aWRlb1wiPlxuICAgICAgICAgICAgPHZpZGVvXG4gICAgICAgICAgICAgIFtzcmNdPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnNyY1wiXG4gICAgICAgICAgICAgIFtwb3N0ZXJdPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnBvc3RlclwiXG4gICAgICAgICAgICAgIFtjb250cm9sc109XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMuY29udHJvbHMgIT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgW2F1dG9wbGF5XT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5hdXRvcGxheVwiXG4gICAgICAgICAgICAgIFttdXRlZF09XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMubXV0ZWRcIlxuICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5tYXhXaWR0aFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX3ZpZGVvLWNvbnRlbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBUdSBuYXZlZ2Fkb3Igbm8gc29wb3J0YSBlbCBlbGVtZW50byB2aWRlby5cbiAgICAgICAgICAgIDwvdmlkZW8+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnRpdGxlXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fdmlkZW8tdGl0bGVcIj5cbiAgICAgICAgICAgICAge3sgZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLnRpdGxlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBDb250ZW5pZG8gcGVyc29uYWxpemFkbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2N1c3RvbSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX2N1c3RvbVwiIFtpbm5lckhUTUxdPVwiZ2V0Q3VzdG9tRWxlbWVudChlbGVtZW50KS5wcm9wcy5odG1sQ29udGVudFwiPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXJ0aWNsZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYXJ0aWNsZS5jb21wb25lbnQuc2NzcyddLFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCwgLy8gQ29tZW50YWRvIHRlbXBvcmFsbWVudGUgcGFyYSBkZWJ1Z1xufSlcbi8qKlxuICogdmFsLWFydGljbGVcbiAqXG4gKiBDb21wb25lbnRlIHBhcmEgY3JlYXIgYXJ0w61jdWxvcywgYmxvZ3MgeSBkb2N1bWVudGFjacOzbiBkZSBmb3JtYSBkZWNsYXJhdGl2YS5cbiAqIFBlcm1pdGUgY29tYmluYXIgbcO6bHRpcGxlcyBlbGVtZW50b3MgKHTDrXR1bG9zLCB0ZXh0bywgaW3DoWdlbmVzLCBjw7NkaWdvLCBldGMuKVxuICogY29uIGVzcGFjaWFkbyBhdXRvbcOhdGljbyB5IHNvcG9ydGUgbXVsdGktaWRpb21hLlxuICpcbiAqIEBleGFtcGxlIFVzbyBiw6FzaWNvOlxuICogYGBgaHRtbFxuICogPHZhbC1hcnRpY2xlIFtwcm9wc109XCJhcnRpY2xlQ29uZmlnXCI+PC92YWwtYXJ0aWNsZT5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIENvbiBBcnRpY2xlQnVpbGRlcjpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGFydGljbGVDb25maWcgPSBuZXcgQXJ0aWNsZUJ1aWxkZXIoKVxuICogICAudGl0bGUodGl0bGVQcm9wcylcbiAqICAgLnBhcmFncmFwaCh0ZXh0UHJvcHMpXG4gKiAgIC5jb2RlKCdjb25zb2xlLmxvZyhcIkhlbGxvIFdvcmxkXCIpJywgJ2phdmFzY3JpcHQnKVxuICogICAuYnVpbGQoKTtcbiAqIGBgYFxuICpcbiAqIEBpbnB1dCBwcm9wczogQXJ0aWNsZU1ldGFkYXRhIC0gQ29uZmlndXJhY2nDs24gY29tcGxldGEgZGVsIGFydMOtY3Vsb1xuICovXG5leHBvcnQgY2xhc3MgQXJ0aWNsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBDb25maWd1cmFjacOzbiBkZWwgYXJ0w61jdWxvXG4gICAqIEB0eXBlIHtBcnRpY2xlTWV0YWRhdGF9XG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wcyE6IEFydGljbGVNZXRhZGF0YTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gVmFsaWRhY2nDs24gYsOhc2ljYVxuICAgIGlmICghdGhpcy5wcm9wcyB8fCAhdGhpcy5wcm9wcy5lbGVtZW50cykge1xuICAgICAgY29uc29sZS53YXJuKCd2YWwtYXJ0aWNsZTogcHJvcHMuZWxlbWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsb3MgZXN0aWxvcyBkZSBwYWRkaW5nIHBhcmEgZWwgY29udGVuZWRvciBhcnRpY2xlXG4gICAqL1xuICBnZXRDb250YWluZXJTdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qgc3BhY2luZyA9IHRoaXMucHJvcHMuY29udGFpbmVyU3BhY2luZztcbiAgICBpZiAoIXNwYWNpbmcpIHJldHVybiB7fTtcblxuICAgIGNvbnN0IHN0eWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGNvbnN0IHNwYWNpbmdWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBub25lOiAnMCcsXG4gICAgICBzbWFsbDogJzAuNXJlbScsXG4gICAgICBtZWRpdW06ICcxcmVtJyxcbiAgICAgIGxhcmdlOiAnMS41cmVtJyxcbiAgICAgIHhsYXJnZTogJzIuNXJlbScsXG4gICAgfTtcblxuICAgIGlmIChzcGFjaW5nLnRvcCkgc3R5bGVzWydwYWRkaW5nLXRvcCddID0gc3BhY2luZ1ZhbHVlc1tzcGFjaW5nLnRvcF07XG4gICAgaWYgKHNwYWNpbmcuYm90dG9tKSBzdHlsZXNbJ3BhZGRpbmctYm90dG9tJ10gPSBzcGFjaW5nVmFsdWVzW3NwYWNpbmcuYm90dG9tXTtcbiAgICBpZiAoc3BhY2luZy5ob3Jpem9udGFsKSB7XG4gICAgICBzdHlsZXNbJ3BhZGRpbmctbGVmdCddID0gc3BhY2luZ1ZhbHVlc1tzcGFjaW5nLmhvcml6b250YWxdO1xuICAgICAgc3R5bGVzWydwYWRkaW5nLXJpZ2h0J10gPSBzcGFjaW5nVmFsdWVzW3NwYWNpbmcuaG9yaXpvbnRhbF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jacOzbiBkZSB0cmFja0J5IHBhcmEgb3B0aW1pemFyIGVsIHJlbmRlcmluZyBkZSBlbGVtZW50b3NcbiAgICovXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IGFueSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuaWQgfHwgaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCBlc3BhY2lhZG8gcG9yIGRlZmVjdG8gc2Vnw7puIGVsIHRpcG8gZGUgZWxlbWVudG9cbiAgICovXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFNwYWNpbmdGb3JUeXBlKHR5cGU6IEFydGljbGVDb250ZW50VHlwZSk6IEFydGljbGVTcGFjaW5nIHtcbiAgICBjb25zdCBzcGFjaW5nTWFwOiBSZWNvcmQ8QXJ0aWNsZUNvbnRlbnRUeXBlLCBBcnRpY2xlU3BhY2luZz4gPSB7XG4gICAgICB0aXRsZTogQVJUSUNMRV9TUEFDSU5HLlRJVExFLFxuICAgICAgc3VidGl0bGU6IEFSVElDTEVfU1BBQ0lORy5TVUJUSVRMRSxcbiAgICAgIHRleHQ6IEFSVElDTEVfU1BBQ0lORy5QQVJBR1JBUEgsXG4gICAgICBwYXJhZ3JhcGg6IEFSVElDTEVfU1BBQ0lORy5QQVJBR1JBUEgsXG4gICAgICBxdW90ZTogQVJUSUNMRV9TUEFDSU5HLlFVT1RFLFxuICAgICAgaGlnaGxpZ2h0OiBBUlRJQ0xFX1NQQUNJTkcuTUVESVVNLFxuICAgICAgY29kZTogQVJUSUNMRV9TUEFDSU5HLkNPREUsXG4gICAgICBub3RlOiBBUlRJQ0xFX1NQQUNJTkcuTk9URSxcbiAgICAgIGNvbW1hbmQ6IEFSVElDTEVfU1BBQ0lORy5DT01NQU5ELFxuICAgICAgbGlzdDogQVJUSUNMRV9TUEFDSU5HLkxJU1QsXG4gICAgICBidXR0b246IEFSVElDTEVfU1BBQ0lORy5CVVRUT04sXG4gICAgICBzZXBhcmF0b3I6IEFSVElDTEVfU1BBQ0lORy5TRVBBUkFUT1IsXG4gICAgICBpbWFnZTogQVJUSUNMRV9TUEFDSU5HLklNQUdFLFxuICAgICAgdmlkZW86IEFSVElDTEVfU1BBQ0lORy5JTUFHRSxcbiAgICAgIGN1c3RvbTogQVJUSUNMRV9TUEFDSU5HLk1FRElVTSxcbiAgICB9O1xuICAgIHJldHVybiBzcGFjaW5nTWFwW3R5cGVdIHx8IEFSVElDTEVfU1BBQ0lORy5NRURJVU07XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYXMgY2xhc2VzIENTUyBwYXJhIGVsIGVzcGFjaWFkbyBkZWwgZWxlbWVudG8uXG4gICAqIFByaW9yaWRhZDogZWxlbWVudC5zcGFjaW5nID4gZWxlbWVudFNwYWNpbmcgPiBlc3BhY2lhZG8gbmF0aXZvIHBvciB0aXBvXG4gICAqL1xuICBnZXRFbGVtZW50U3BhY2luZ0NsYXNzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCBkZWZhdWx0Rm9yVHlwZSA9IHRoaXMuZ2V0RGVmYXVsdFNwYWNpbmdGb3JUeXBlKGVsZW1lbnQudHlwZSk7XG4gICAgY29uc3QgZ2xvYmFsT3ZlcnJpZGUgPSB0aGlzLnByb3BzLmVsZW1lbnRTcGFjaW5nIHx8IHRoaXMucHJvcHMuZGVmYXVsdFNwYWNpbmc7IC8vIGJhY2t3YXJkIGNvbXBhdFxuXG4gICAgY29uc3Qgc3BhY2luZzogQXJ0aWNsZVNwYWNpbmcgPSB7XG4gICAgICB0b3A6IGVsZW1lbnQuc3BhY2luZz8udG9wID8/IGdsb2JhbE92ZXJyaWRlPy50b3AgPz8gZGVmYXVsdEZvclR5cGUudG9wLFxuICAgICAgYm90dG9tOiBlbGVtZW50LnNwYWNpbmc/LmJvdHRvbSA/PyBnbG9iYWxPdmVycmlkZT8uYm90dG9tID8/IGRlZmF1bHRGb3JUeXBlLmJvdHRvbSxcbiAgICAgIGhvcml6b250YWw6IGVsZW1lbnQuc3BhY2luZz8uaG9yaXpvbnRhbCA/PyBnbG9iYWxPdmVycmlkZT8uaG9yaXpvbnRhbCA/PyBkZWZhdWx0Rm9yVHlwZS5ob3Jpem9udGFsLFxuICAgIH07XG5cbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChzcGFjaW5nLnRvcCkgY2xhc3Nlcy5wdXNoKGB2YWwtYXJ0aWNsZV9fc3BhY2luZy10b3AtLSR7c3BhY2luZy50b3B9YCk7XG4gICAgaWYgKHNwYWNpbmcuYm90dG9tKSBjbGFzc2VzLnB1c2goYHZhbC1hcnRpY2xlX19zcGFjaW5nLWJvdHRvbS0tJHtzcGFjaW5nLmJvdHRvbX1gKTtcbiAgICBpZiAoc3BhY2luZy5ob3Jpem9udGFsKSBjbGFzc2VzLnB1c2goYHZhbC1hcnRpY2xlX19zcGFjaW5nLWhvcml6b250YWwtLSR7c3BhY2luZy5ob3Jpem9udGFsfWApO1xuXG4gICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgLy8gPT09IEZVTkNJT05FUyBERSBUSVBPIFBBUkEgVFlQRVNDUklQVCA9PT1cblxuICBnZXRUaXRsZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlVGl0bGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlVGl0bGVFbGVtZW50O1xuICB9XG5cbiAgZ2V0U3VidGl0bGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVN1YnRpdGxlRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVN1YnRpdGxlRWxlbWVudDtcbiAgfVxuXG4gIGdldFRleHRFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVRleHRFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlVGV4dEVsZW1lbnQ7XG4gIH1cblxuICBnZXRRdW90ZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlUXVvdGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlUXVvdGVFbGVtZW50O1xuICB9XG5cbiAgZ2V0SGlnaGxpZ2h0RWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVIaWdobGlnaHRFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlSGlnaGxpZ2h0RWxlbWVudDtcbiAgfVxuXG4gIGdldENvZGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZUNvZGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlQ29kZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRMaXN0RWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVMaXN0RWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUxpc3RFbGVtZW50O1xuICB9XG5cbiAgZ2V0QnV0dG9uRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVCdXR0b25FbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlQnV0dG9uRWxlbWVudDtcbiAgfVxuXG4gIGdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlU2VwYXJhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVNlcGFyYXRvckVsZW1lbnQ7XG4gIH1cblxuICBnZXRJbWFnZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlSW1hZ2VFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlSW1hZ2VFbGVtZW50O1xuICB9XG5cbiAgZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVZpZGVvRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVZpZGVvRWxlbWVudDtcbiAgfVxuXG4gIGdldEN1c3RvbUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlQ3VzdG9tRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUN1c3RvbUVsZW1lbnQ7XG4gIH1cblxuICAvLyA9PT0gRlVOQ0lPTkVTIEFVWElMSUFSRVMgUEFSQSBQUk9QUyA9PT1cblxuICBnZXRRdW90ZVRleHRQcm9wcyhlbGVtZW50OiBBcnRpY2xlRWxlbWVudCkge1xuICAgIGNvbnN0IHF1b3RlRWxlbWVudCA9IHRoaXMuZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgYXV0aG9yLCBzb3VyY2UsIC4uLnRleHRQcm9wcyB9ID0gcXVvdGVFbGVtZW50LnByb3BzO1xuICAgIHJldHVybiB0ZXh0UHJvcHM7XG4gIH1cblxuICBnZXRIaWdobGlnaHRUZXh0UHJvcHMoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpIHtcbiAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gdGhpcy5nZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgYmFja2dyb3VuZENvbG9yLCByb3VuZGVkLCAuLi50ZXh0UHJvcHMgfSA9IGhpZ2hsaWdodEVsZW1lbnQucHJvcHM7XG4gICAgcmV0dXJuIHRleHRQcm9wcztcbiAgfVxuXG4gIGdldEhpZ2hsaWdodENvbG9yKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gdGhpcy5nZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpO1xuICAgIHJldHVybiBoaWdobGlnaHRFbGVtZW50LnByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWNvbG9yLWxpZ2h0KSc7XG4gIH1cblxuICBnZXRCdXR0b25Qcm9wcyhlbGVtZW50OiBBcnRpY2xlRWxlbWVudCkge1xuICAgIGNvbnN0IGJ1dHRvbkVsZW1lbnQgPSB0aGlzLmdldEJ1dHRvbkVsZW1lbnQoZWxlbWVudCk7XG4gICAgY29uc3QgeyBhbGlnbm1lbnQsIC4uLmJ1dHRvblByb3BzIH0gPSBidXR0b25FbGVtZW50LnByb3BzO1xuICAgIHJldHVybiBidXR0b25Qcm9wcztcbiAgfVxuXG4gIGdldENvZGVEaXNwbGF5UHJvcHMoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBDb2RlRGlzcGxheU1ldGFkYXRhIHtcbiAgICBjb25zdCBjb2RlRWxlbWVudCA9IHRoaXMuZ2V0Q29kZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGU6IGNvZGVFbGVtZW50LnByb3BzLmNvZGUsXG4gICAgICBsYW5ndWFnZTogY29kZUVsZW1lbnQucHJvcHMubGFuZ3VhZ2UgfHwgJ3R5cGVzY3JpcHQnLFxuICAgICAgdGFiczogW10sXG4gICAgfTtcbiAgfVxuXG4gIGdldE5vdGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZU5vdGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlTm90ZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRDb21tYW5kRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVDb21tYW5kRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUNvbW1hbmRFbGVtZW50O1xuICB9XG5cbiAgZ2V0Tm90ZUJveFByb3BzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogTm90ZXNCb3hNZXRhZGF0YSB7XG4gICAgY29uc3Qgbm90ZUVsZW1lbnQgPSB0aGlzLmdldE5vdGVFbGVtZW50KGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiBub3RlRWxlbWVudC5wcm9wcy50ZXh0LFxuICAgICAgLy8gYD8/YCAobm90IGB8fGApIHNvIGV4cGxpY2l0IGVtcHR5IHN0cmluZyBzdXBwcmVzc2VzIHRoZSBwcmVmaXguXG4gICAgICBwcmVmaXg6IG5vdGVFbGVtZW50LnByb3BzLnByZWZpeCA/PyAnTm90YTonLFxuICAgICAgY29sb3I6IG5vdGVFbGVtZW50LnByb3BzLmNvbG9yIHx8ICd3YXJuaW5nJyxcbiAgICAgIHRleHRDb2xvcjogbm90ZUVsZW1lbnQucHJvcHMudGV4dENvbG9yIHx8ICdkYXJrJyxcbiAgICAgIHNpemU6IG5vdGVFbGVtZW50LnByb3BzLnNpemUgfHwgJ21lZGl1bScsXG4gICAgICByb3VuZGVkOiBub3RlRWxlbWVudC5wcm9wcy5yb3VuZGVkID8/IHRydWUsXG4gICAgICBwYWRkaW5nOiBub3RlRWxlbWVudC5wcm9wcy5wYWRkaW5nLFxuICAgICAgYWxsb3dQYXJ0aWFsQm9sZDogbm90ZUVsZW1lbnQucHJvcHMuYWxsb3dQYXJ0aWFsQm9sZCxcbiAgICAgIHByb2Nlc3NMaW5rczogbm90ZUVsZW1lbnQucHJvcHMucHJvY2Vzc0xpbmtzLFxuICAgICAgY29tcGFjdDogbm90ZUVsZW1lbnQucHJvcHMuY29tcGFjdCxcbiAgICAgIGFsaWduOiBub3RlRWxlbWVudC5wcm9wcy5hbGlnbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0Q29tbWFuZFByb3BzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogUGxhaW5Db2RlQm94TWV0YWRhdGEge1xuICAgIGNvbnN0IGNvbW1hbmRFbGVtZW50ID0gdGhpcy5nZXRDb21tYW5kRWxlbWVudChlbGVtZW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZXM6IGNvbW1hbmRFbGVtZW50LnByb3BzLmxpbmVzLFxuICAgICAgc2hvd0NvcHlCdXR0b246IGNvbW1hbmRFbGVtZW50LnByb3BzLnNob3dDb3B5QnV0dG9uID8/IHRydWUsXG4gICAgICBsYW5ndWFnZTogY29tbWFuZEVsZW1lbnQucHJvcHMubGFuZ3VhZ2UsXG4gICAgfTtcbiAgfVxuXG4gIGdldEltYWdlTWV0YWRhdGEoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBJbWFnZU1ldGFkYXRhIHtcbiAgICBjb25zdCBpbWFnZUVsZW1lbnQgPSB0aGlzLmdldEltYWdlRWxlbWVudChlbGVtZW50KTtcbiAgICBjb25zdCBwcm9wcyA9IGltYWdlRWxlbWVudC5wcm9wcztcblxuICAgIHJldHVybiB7XG4gICAgICBzcmM6IHByb3BzLnNyYyxcbiAgICAgIGFsdDogcHJvcHMuYWx0LFxuICAgICAgbW9kZTogcHJvcHMucm91bmRlZCA/ICdyb3VuZGVkJyA6ICdib3gnLFxuICAgICAgc2l6ZTogcHJvcHMuc2l6ZSB8fCAnbWVkaXVtJyxcbiAgICAgIHNoYWRlZDogZmFsc2UsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBhbGlnbm1lbnQ6IHByb3BzLmFsaWdubWVudCB8fCAnY2VudGVyJyxcbiAgICAgIGNhcHRpb246IHByb3BzLmNhcHRpb24sXG4gICAgICBjYXB0aW9uU2l6ZTogJ21lZGl1bScgYXMgY29uc3QsXG4gICAgICB3aWR0aDogcHJvcHMubWF4V2lkdGggPyBwYXJzZUludChwcm9wcy5tYXhXaWR0aC5yZXBsYWNlKCdweCcsICcnKSkgOiB1bmRlZmluZWQsXG4gICAgICBwcmV2aWV3TW9kZTogcHJvcHMucHJldmlldyB8fCBmYWxzZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -88,7 +88,10 @@ export class StorageService {
88
88
  const uploadMetadata = {
89
89
  contentType: metadata?.contentType || (file instanceof File ? file.type : undefined),
90
90
  customMetadata: metadata?.customMetadata,
91
- cacheControl: metadata?.cacheControl,
91
+ // Default agresivo: getDownloadURL devuelve URLs con token único por
92
+ // versión del objeto → re-subir el archivo cambia el URL (cache-bust
93
+ // natural). El consumidor puede override pasando cacheControl explícito.
94
+ cacheControl: metadata?.cacheControl ?? 'public, max-age=31536000',
92
95
  };
93
96
  const task = uploadBytesResumable(storageRef, file, uploadMetadata);
94
97
  const progress$ = new BehaviorSubject({
@@ -481,4 +484,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
481
484
  type: Injectable,
482
485
  args: [{ providedIn: 'root' }]
483
486
  }], ctorParameters: () => [{ type: i1.Storage }] });
484
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEVBQ1gsT0FBTyxFQUNQLEdBQUcsRUFFSCxvQkFBb0IsR0FHckIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBU25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFvQixPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRjVCLFdBQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU5QixDQUFDO0lBRXhDOzs7Ozs7O09BT0c7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDeEQsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuRCxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELDhFQUE4RTtJQUM5RSxTQUFTO0lBQ1QsOEVBQThFO0lBRTlFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0gsTUFBTSxDQUFDLElBQVksRUFBRSxJQUFpQixFQUFFLFFBQTBC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O0lBQy9DLENBQUM7K0dBM2RVLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RvcmFnZSBTZXJ2aWNlXG4gKlxuICogU2VydmljaW8gcGFyYSBvcGVyYWNpb25lcyBkZSBGaXJlYmFzZSBTdG9yYWdlLlxuICogU29wb3J0YSB1cGxvYWQgY29uIHRyYWNraW5nIGRlIHByb2dyZXNvLCBkb3dubG9hZCB5IGdlc3Rpw7NuIGRlIGFyY2hpdm9zLlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZGVsZXRlT2JqZWN0LFxuICBnZXREb3dubG9hZFVSTCxcbiAgZ2V0TWV0YWRhdGEsXG4gIGxpc3RBbGwsXG4gIHJlZixcbiAgU3RvcmFnZSxcbiAgdXBsb2FkQnl0ZXNSZXN1bWFibGUsXG4gIFVwbG9hZE1ldGFkYXRhLFxuICBVcGxvYWRUYXNrU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvc3RvcmFnZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBTdG9yYWdlTGlzdFJlc3VsdCxcbiAgU3RvcmFnZU1ldGFkYXRhLFxuICBVcGxvYWRQcm9ncmVzcyxcbiAgVXBsb2FkUmVzdWx0LFxuICBVcGxvYWRTdGF0ZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU2VydmljaW8gcGFyYSBGaXJlYmFzZSBTdG9yYWdlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHsuLi59KVxuICogZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQge1xuICogICBwcml2YXRlIHN0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICpcbiAqICAgdXBsb2FkUHJvZ3Jlc3MgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAqICAgZG93bmxvYWRVcmwgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gKlxuICogICBhc3luYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAqICAgICBjb25zdCBmaWxlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcz8uWzBdO1xuICogICAgIGlmICghZmlsZSkgcmV0dXJuO1xuICpcbiAqICAgICAvLyBVcGxvYWQgY29uIHByb2dyZXNvXG4gKiAgICAgdGhpcy5zdG9yYWdlLnVwbG9hZChgdXBsb2Fkcy8ke2ZpbGUubmFtZX1gLCBmaWxlKS5zdWJzY3JpYmUoe1xuICogICAgICAgbmV4dDogKHByb2dyZXNzKSA9PiB0aGlzLnVwbG9hZFByb2dyZXNzLnNldChwcm9ncmVzcy5wZXJjZW50YWdlKSxcbiAqICAgICAgIGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG4gKiAgICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXREb3dubG9hZFVybChgdXBsb2Fkcy8ke2ZpbGUubmFtZX1gKTtcbiAqICAgICAgICAgdGhpcy5kb3dubG9hZFVybC5zZXQodXJsKTtcbiAqICAgICAgIH1cbiAqICAgICB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChWQUxURUNIX0ZJUkVCQVNFX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2UpIHt9XG5cbiAgLyoqXG4gICAqIFByZWZpamEgZWwgcGF0aCBkZSBzdG9yYWdlIGNvbiBlbCBhcHBJZCBzaSBlc3TDoSBjb25maWd1cmFkby5cbiAgICogU2kgbm8gaGF5IGFwcElkIG8gc2tpcFByZWZpeCBlcyB0cnVlLCByZXRvcm5hIGVsIHBhdGggc2luIG1vZGlmaWNhci5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIG9yaWdpbmFsXG4gICAqIEBwYXJhbSBza2lwUHJlZml4IC0gU2kgZXMgdHJ1ZSwgbm8gYXBsaWNhIGVsIHByZWZpeCAow7p0aWwgcGFyYSBwYXRocyBjb21wYXJ0aWRvcyBjb21vIGF2YXRhcmVzKVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcHJlZml4U3RvcmFnZVBhdGgocGF0aDogc3RyaW5nLCBza2lwUHJlZml4ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGlmIChza2lwUHJlZml4IHx8ICF0aGlzLmNvbmZpZz8uYXBwSWQpIHJldHVybiBwYXRoO1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy5hcHBJZH0vJHtwYXRofWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVBMT0FEXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBTdWJlIHVuIGFyY2hpdm8gY29uIHRyYWNraW5nIGRlIHByb2dyZXNvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZW4gU3RvcmFnZSBkb25kZSBndWFyZGFyIGVsIGFyY2hpdm9cbiAgICogQHBhcmFtIGZpbGUgLSBBcmNoaXZvIGEgc3ViaXIgKEZpbGUgbyBCbG9iKVxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBNZXRhZGF0YSBvcGNpb25hbCAoY29udGVudFR5cGUsIGN1c3RvbU1ldGFkYXRhKVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBlbCBwcm9ncmVzbyB5IGNvbXBsZXRhIGN1YW5kbyB0ZXJtaW5hXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gVXBsb2FkIGLDoXNpY29cbiAgICogc3RvcmFnZS51cGxvYWQoJ2ltYWdlcy9waG90by5qcGcnLCBmaWxlKS5zdWJzY3JpYmUoe1xuICAgKiAgIG5leHQ6IChwcm9ncmVzcykgPT4gY29uc29sZS5sb2coYCR7cHJvZ3Jlc3MucGVyY2VudGFnZX0lYCksXG4gICAqICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdVcGxvYWQgY29tcGxldGFkbycpXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBDb24gbWV0YWRhdGFcbiAgICogc3RvcmFnZS51cGxvYWQoJ2RvY3MvcmVwb3J0LnBkZicsIGZpbGUsIHtcbiAgICogICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAqICAgY3VzdG9tTWV0YWRhdGE6IHsgdXBsb2FkZWRCeTogJ3VzZXIxMjMnIH1cbiAgICogfSkuc3Vic2NyaWJlKC4uLik7XG4gICAqIGBgYFxuICAgKi9cbiAgdXBsb2FkKHBhdGg6IHN0cmluZywgZmlsZTogRmlsZSB8IEJsb2IsIG1ldGFkYXRhPzogU3RvcmFnZU1ldGFkYXRhKTogT2JzZXJ2YWJsZTxVcGxvYWRQcm9ncmVzcz4ge1xuICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCwgbWV0YWRhdGE/LnNraXBQcmVmaXgpO1xuICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgIGNvbnN0IHVwbG9hZE1ldGFkYXRhOiBVcGxvYWRNZXRhZGF0YSA9IHtcbiAgICAgIGNvbnRlbnRUeXBlOiBtZXRhZGF0YT8uY29udGVudFR5cGUgfHwgKGZpbGUgaW5zdGFuY2VvZiBGaWxlID8gZmlsZS50eXBlIDogdW5kZWZpbmVkKSxcbiAgICAgIGN1c3RvbU1ldGFkYXRhOiBtZXRhZGF0YT8uY3VzdG9tTWV0YWRhdGEsXG4gICAgICBjYWNoZUNvbnRyb2w6IG1ldGFkYXRhPy5jYWNoZUNvbnRyb2wsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhc2sgPSB1cGxvYWRCeXRlc1Jlc3VtYWJsZShzdG9yYWdlUmVmLCBmaWxlLCB1cGxvYWRNZXRhZGF0YSk7XG4gICAgY29uc3QgcHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVcGxvYWRQcm9ncmVzcz4oe1xuICAgICAgYnl0ZXNUcmFuc2ZlcnJlZDogMCxcbiAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICBzdGF0ZTogJ3J1bm5pbmcnLFxuICAgIH0pO1xuXG4gICAgdGFzay5vbihcbiAgICAgICdzdGF0ZV9jaGFuZ2VkJyxcbiAgICAgIChzbmFwc2hvdDogVXBsb2FkVGFza1NuYXBzaG90KSA9PiB7XG4gICAgICAgIHByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICBieXRlc1RyYW5zZmVycmVkOiBzbmFwc2hvdC5ieXRlc1RyYW5zZmVycmVkLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IHNuYXBzaG90LnRvdGFsQnl0ZXMsXG4gICAgICAgICAgcGVyY2VudGFnZTogTWF0aC5yb3VuZCgoc25hcHNob3QuYnl0ZXNUcmFuc2ZlcnJlZCAvIHNuYXBzaG90LnRvdGFsQnl0ZXMpICogMTAwKSxcbiAgICAgICAgICBzdGF0ZTogdGhpcy5tYXBUYXNrU3RhdGUoc25hcHNob3Quc3RhdGUpLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICBieXRlc1RyYW5zZmVycmVkOiAwLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgICAgIHN0YXRlOiAnZXJyb3InLFxuICAgICAgICB9KTtcbiAgICAgICAgcHJvZ3Jlc3MkLmVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBwcm9ncmVzcyQubmV4dCh7XG4gICAgICAgICAgYnl0ZXNUcmFuc2ZlcnJlZDogZmlsZS5zaXplLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgc3RhdGU6ICdzdWNjZXNzJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHByb2dyZXNzJC5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gcHJvZ3Jlc3MkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YmUgdW4gYXJjaGl2byB5IHJldG9ybmEgbGEgVVJMIGRlIGRlc2NhcmdhIGFsIGNvbXBsZXRhci5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGVuIFN0b3JhZ2VcbiAgICogQHBhcmFtIGZpbGUgLSBBcmNoaXZvIGEgc3ViaXJcbiAgICogQHBhcmFtIG1ldGFkYXRhIC0gTWV0YWRhdGEgb3BjaW9uYWxcbiAgICogQHJldHVybnMgUmVzdWx0YWRvIGRlbCB1cGxvYWQgY29uIFVSTCBkZSBkZXNjYXJnYVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UudXBsb2FkQW5kR2V0VXJsKCdhdmF0YXJzL3VzZXIxMjMuanBnJywgZmlsZSk7XG4gICAqIGNvbnNvbGUubG9nKCdVUkw6JywgcmVzdWx0LmRvd25sb2FkVXJsKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyB1cGxvYWRBbmRHZXRVcmwoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGZpbGU6IEZpbGUgfCBCbG9iLFxuICAgIG1ldGFkYXRhPzogU3RvcmFnZU1ldGFkYXRhXG4gICk6IFByb21pc2U8VXBsb2FkUmVzdWx0PiB7XG4gICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoLCBtZXRhZGF0YT8uc2tpcFByZWZpeCk7XG4gICAgY29uc29sZS5sb2coJ1tTdG9yYWdlXSB1cGxvYWRBbmRHZXRVcmwgc3RhcnQ6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGgsIHNpemU6IGZpbGUuc2l6ZSB9KTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy51cGxvYWQocGF0aCwgZmlsZSwgbWV0YWRhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgIGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgICAgICAgICAgY29uc3QgZG93bmxvYWRVcmwgPSBhd2FpdCBnZXREb3dubG9hZFVSTChzdG9yYWdlUmVmKTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JlZE1ldGFkYXRhID0gYXdhaXQgZ2V0TWV0YWRhdGEoc3RvcmFnZVJlZik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1N0b3JhZ2VdIHVwbG9hZCBPSzonLCB7XG4gICAgICAgICAgICAgIHBhdGg6IHByZWZpeGVkUGF0aCxcbiAgICAgICAgICAgICAgdXJsOiBkb3dubG9hZFVybC5zbGljZSgwLCA2MCkgKyAn4oCmJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIGRvd25sb2FkVXJsLFxuICAgICAgICAgICAgICBmdWxsUGF0aDogc3RvcmVkTWV0YWRhdGEuZnVsbFBhdGgsXG4gICAgICAgICAgICAgIG5hbWU6IHN0b3JlZE1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgIHNpemU6IHN0b3JlZE1ldGFkYXRhLnNpemUsXG4gICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBzdG9yZWRNZXRhZGF0YS5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHN0b3JlZE1ldGFkYXRhLmN1c3RvbU1ldGFkYXRhIHx8IHt9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTdG9yYWdlXSBnZXREb3dubG9hZFVSTC9tZXRhZGF0YSBmYWlsZWQ6Jywge1xuICAgICAgICAgICAgICBwYXRoOiBwcmVmaXhlZFBhdGgsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWplY3QodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignW1N0b3JhZ2VdIHVwbG9hZCBmYWlsZWQ6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGgsIGVycm9yIH0pO1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJlIHVuIGFyY2hpdm8gZGVzZGUgdW5hIERhdGEgVVJMIChiYXNlNjQpLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZW4gU3RvcmFnZVxuICAgKiBAcGFyYW0gZGF0YVVybCAtIERhdGEgVVJMIChlajogJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwuLi4nKVxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBNZXRhZGF0YSBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBSZXN1bHRhZG8gZGVsIHVwbG9hZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIERlc2RlIGNhbnZhc1xuICAgKiBjb25zdCBkYXRhVXJsID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UudXBsb2FkRnJvbURhdGFVcmwoJ2ltYWdlcy9kcmF3aW5nLnBuZycsIGRhdGFVcmwpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHVwbG9hZEZyb21EYXRhVXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBkYXRhVXJsOiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBTdG9yYWdlTWV0YWRhdGFcbiAgKTogUHJvbWlzZTxVcGxvYWRSZXN1bHQ+IHtcbiAgICAvLyBFeHRyYWVyIGNvbnRlbnQgdHlwZSB5IGRhdG9zIGJhc2U2NFxuICAgIGNvbnN0IG1hdGNoZXMgPSBkYXRhVXJsLm1hdGNoKC9eZGF0YTooW147XSspO2Jhc2U2NCwoLispJC8pO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIFVSTCBpbnbDoWxpZGEnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IG1hdGNoZXNbMV07XG4gICAgY29uc3QgYmFzZTY0RGF0YSA9IG1hdGNoZXNbMl07XG5cbiAgICAvLyBDb252ZXJ0aXIgYmFzZTY0IGEgQmxvYlxuICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjREYXRhKTtcbiAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcblxuICAgIHJldHVybiB0aGlzLnVwbG9hZEFuZEdldFVybChwYXRoLCBibG9iLCB7XG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIC4uLm1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERPV05MT0FEXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhIFVSTCBkZSBkZXNjYXJnYSBkZSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGFyY2hpdm8gZW4gU3RvcmFnZVxuICAgKiBAcmV0dXJucyBVUkwgZGUgZGVzY2FyZ2FcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB1cmwgPSBhd2FpdCBzdG9yYWdlLmdldERvd25sb2FkVXJsKCdpbWFnZXMvcGhvdG8uanBnJyk7XG4gICAqIC8vIFVzYXIgZW4gPGltZyBbc3JjXT1cInVybFwiPlxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldERvd25sb2FkVXJsKHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCk7XG4gICAgICBjb25zdCBzdG9yYWdlUmVmID0gcmVmKHRoaXMuc3RvcmFnZSwgcHJlZml4ZWRQYXRoKTtcbiAgICAgIHJldHVybiBhd2FpdCBnZXREb3dubG9hZFVSTChzdG9yYWdlUmVmKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGEgbWV0YWRhdGEgZGUgdW4gYXJjaGl2by5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGRlbCBhcmNoaXZvXG4gICAqIEByZXR1cm5zIE1ldGFkYXRhIGRlbCBhcmNoaXZvXG4gICAqL1xuICBhc3luYyBnZXRNZXRhZGF0YShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFN0b3JhZ2VNZXRhZGF0YSAmIHsgc2l6ZTogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFBhdGggPSB0aGlzLnByZWZpeFN0b3JhZ2VQYXRoKHBhdGgpO1xuICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IGdldE1ldGFkYXRhKHN0b3JhZ2VSZWYpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudFR5cGU6IG1ldGFkYXRhLmNvbnRlbnRUeXBlLFxuICAgICAgICBjdXN0b21NZXRhZGF0YTogbWV0YWRhdGEuY3VzdG9tTWV0YWRhdGEsXG4gICAgICAgIGNhY2hlQ29udHJvbDogbWV0YWRhdGEuY2FjaGVDb250cm9sLFxuICAgICAgICBzaXplOiBtZXRhZGF0YS5zaXplLFxuICAgICAgICBuYW1lOiBtZXRhZGF0YS5uYW1lLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERFTEVURVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogRWxpbWluYSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGFyY2hpdm8gYSBlbGltaW5hclxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGF3YWl0IHN0b3JhZ2UuZGVsZXRlKCdpbWFnZXMvb2xkLXBob3RvLmpwZycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoKTtcbiAgICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgICAgYXdhaXQgZGVsZXRlT2JqZWN0KHN0b3JhZ2VSZWYpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSBtw7psdGlwbGVzIGFyY2hpdm9zLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aHMgLSBBcnJheSBkZSBydXRhcyBhIGVsaW1pbmFyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogYXdhaXQgc3RvcmFnZS5kZWxldGVNdWx0aXBsZShbXG4gICAqICAgJ2ltYWdlcy9waG90bzEuanBnJyxcbiAgICogICAnaW1hZ2VzL3Bob3RvMi5qcGcnXG4gICAqIF0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGRlbGV0ZU11bHRpcGxlKHBhdGhzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHBhdGhzLm1hcChwYXRoID0+IHRoaXMuZGVsZXRlKHBhdGgpKSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTElTVFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogTGlzdGEgYXJjaGl2b3MgZW4gdW4gZGlyZWN0b3Jpby5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGRlbCBkaXJlY3RvcmlvXG4gICAqIEByZXR1cm5zIExpc3RhIGRlIHJ1dGFzIGRlIGFyY2hpdm9zXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS5saXN0KCdpbWFnZXMvJyk7XG4gICAqIGNvbnNvbGUubG9nKHJlc3VsdC5pdGVtcyk7IC8vIFsnaW1hZ2VzL3Bob3RvMS5qcGcnLCAnaW1hZ2VzL3Bob3RvMi5qcGcnXVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGxpc3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTxTdG9yYWdlTGlzdFJlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFBhdGggPSB0aGlzLnByZWZpeFN0b3JhZ2VQYXRoKHBhdGgpO1xuICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBsaXN0QWxsKHN0b3JhZ2VSZWYpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzdWx0Lml0ZW1zLm1hcChpdGVtID0+IGl0ZW0uZnVsbFBhdGgpLFxuICAgICAgICBuZXh0UGFnZVRva2VuOiB1bmRlZmluZWQsIC8vIGxpc3RBbGwgbm8gc29wb3J0YSBwYWdpbmFjacOzblxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVUSUxJREFERVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdlbmVyYSB1biBub21icmUgZGUgYXJjaGl2byDDum5pY28gY29uIHRpbWVzdGFtcC5cbiAgICpcbiAgICogQHBhcmFtIG9yaWdpbmFsTmFtZSAtIE5vbWJyZSBvcmlnaW5hbCBkZWwgYXJjaGl2b1xuICAgKiBAcGFyYW0gcHJlZml4IC0gUHJlZmlqbyBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBOb21icmUgw7puaWNvXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgdW5pcXVlTmFtZSA9IHN0b3JhZ2UuZ2VuZXJhdGVGaWxlTmFtZSgncGhvdG8uanBnJywgJ3VzZXIxMjMnKTtcbiAgICogLy8gPT4gJ3VzZXIxMjNfMTcwMzA5MTIzNDU2N19waG90by5qcGcnXG4gICAqIGBgYFxuICAgKi9cbiAgZ2VuZXJhdGVGaWxlTmFtZShvcmlnaW5hbE5hbWU6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHNhbml0aXplZE5hbWUgPSBvcmlnaW5hbE5hbWUucmVwbGFjZSgvW15hLXpBLVowLTkuLV0vZywgJ18nKTtcblxuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIHJldHVybiBgJHtwcmVmaXh9XyR7dGltZXN0YW1wfV8ke3Nhbml0aXplZE5hbWV9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RpbWVzdGFtcH1fJHtzYW5pdGl6ZWROYW1lfWA7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhIHVuYSBydXRhIMO6bmljYSBwYXJhIHVuIGFyY2hpdm8uXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBEaXJlY3RvcmlvIGJhc2VcbiAgICogQHBhcmFtIG9yaWdpbmFsTmFtZSAtIE5vbWJyZSBvcmlnaW5hbFxuICAgKiBAcGFyYW0gcHJlZml4IC0gUHJlZmlqbyBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBSdXRhIGNvbXBsZXRhIMO6bmljYVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHBhdGggPSBzdG9yYWdlLmdlbmVyYXRlUGF0aCgndXBsb2FkcycsICdwaG90by5qcGcnLCAndXNlcjEyMycpO1xuICAgKiAvLyA9PiAndXBsb2Fkcy91c2VyMTIzXzE3MDMwOTEyMzQ1NjdfcGhvdG8uanBnJ1xuICAgKiBgYGBcbiAgICovXG4gIGdlbmVyYXRlUGF0aChkaXJlY3Rvcnk6IHN0cmluZywgb3JpZ2luYWxOYW1lOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZU5hbWUgPSB0aGlzLmdlbmVyYXRlRmlsZU5hbWUob3JpZ2luYWxOYW1lLCBwcmVmaXgpO1xuICAgIGNvbnN0IGNsZWFuRGlyID0gZGlyZWN0b3J5LnJlcGxhY2UoL1xcLyskLywgJycpOyAvLyBSZW1vdmVyIC8gZmluYWxcbiAgICByZXR1cm4gYCR7Y2xlYW5EaXJ9LyR7ZmlsZU5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhIGV4dGVuc2nDs24gZGUgdW4gYXJjaGl2by5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVuYW1lIC0gTm9tYnJlIGRlbCBhcmNoaXZvXG4gICAqIEByZXR1cm5zIEV4dGVuc2nDs24gKHNpbiBlbCBwdW50bylcbiAgICovXG4gIGdldEV4dGVuc2lvbihmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZpbGVuYW1lLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJ0cy5wb3AoKSEudG9Mb3dlckNhc2UoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuIGFyY2hpdm8gZXMgdW5hIGltYWdlbiBiYXPDoW5kb3NlIGVuIHN1IGV4dGVuc2nDs24uXG4gICAqL1xuICBpc0ltYWdlKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHQgPSB0aGlzLmdldEV4dGVuc2lvbihmaWxlbmFtZSk7XG4gICAgcmV0dXJuIFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICd3ZWJwJywgJ3N2ZycsICdibXAnXS5pbmNsdWRlcyhleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuIGFyY2hpdm8gZXMgdW4gZG9jdW1lbnRvLlxuICAgKi9cbiAgaXNEb2N1bWVudChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXh0ID0gdGhpcy5nZXRFeHRlbnNpb24oZmlsZW5hbWUpO1xuICAgIHJldHVybiBbJ3BkZicsICdkb2MnLCAnZG9jeCcsICd4bHMnLCAneGxzeCcsICdwcHQnLCAncHB0eCcsICd0eHQnXS5pbmNsdWRlcyhleHQpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVTRVIgQVZBVEFSIEhFTFBFUlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIENvbnN0cnV5ZSBsYSBVUkwgZGUgYXZhdGFyIGRlIHVuIHVzdWFyaW8uXG4gICAqXG4gICAqIExvcyBhdmF0YXJlcyBzZSBhbG1hY2VuYW4gZW4gcGF0aHMgcHJlZGVjaWJsZXM6IGB1c2Vycy97dXNlcklkfS9hdmF0YXIuanBnYFxuICAgKiBFc3RvIHBlcm1pdGUgcXVlIGN1YWxxdWllciBhcHAgcHVlZGEgbW9zdHJhciBhdmF0YXJlcyBzaW4gcGVkaXIgbGEgVVJMIGFsIGJhY2tlbmQsXG4gICAqIHNvbG8gbmVjZXNpdGEgZWwgdXNlcklkLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlcklkIC0gSUQgZGVsIHVzdWFyaW8gKFVMSUQpXG4gICAqIEBwYXJhbSB0eXBlIC0gJ2F2YXRhcicgcGFyYSBpbWFnZW4gY29tcGxldGEsICd0aHVtYicgcGFyYSB0aHVtYm5haWxcbiAgICogQHJldHVybnMgVVJMIGRpcmVjdGEgZGUgRmlyZWJhc2UgU3RvcmFnZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIE1vc3RyYXIgYXZhdGFyIGRlIGN1YWxxdWllciB1c3VhcmlvXG4gICAqIGNvbnN0IGF2YXRhclVybCA9IHN0b3JhZ2UuZ2V0VXNlckF2YXRhclVybCgnMDFBQkNELi4uJyk7XG4gICAqIGNvbnN0IHRodW1iVXJsID0gc3RvcmFnZS5nZXRVc2VyQXZhdGFyVXJsKCcwMUFCQ0QuLi4nLCAndGh1bWInKTtcbiAgICpcbiAgICogLy8gQ29uIGNhY2hlLWJ1c3RpbmdcbiAgICogY29uc3QgZnJlc2hVcmwgPSBzdG9yYWdlLmdldFVzZXJBdmF0YXJVcmwodXNlcklkKSArIGAmdD0ke0RhdGUubm93KCl9YDtcbiAgICogYGBgXG4gICAqL1xuICBnZXRVc2VyQXZhdGFyVXJsKHVzZXJJZDogc3RyaW5nLCB0eXBlOiAnYXZhdGFyJyB8ICd0aHVtYicgPSAnYXZhdGFyJyk6IHN0cmluZyB7XG4gICAgY29uc3QgYnVja2V0ID0gdGhpcy5jb25maWc/LmZpcmViYXNlPy5zdG9yYWdlQnVja2V0IHx8ICdteXZhbHRlY2gtZGV2LmZpcmViYXNlc3RvcmFnZS5hcHAnO1xuICAgIGNvbnN0IHBhdGggPSBgdXNlcnMvJHt1c2VySWR9LyR7dHlwZX0uanBnYDtcbiAgICByZXR1cm4gYGh0dHBzOi8vZmlyZWJhc2VzdG9yYWdlLmdvb2dsZWFwaXMuY29tL3YwL2IvJHtidWNrZXR9L28vJHtlbmNvZGVVUklDb21wb25lbnQocGF0aCl9P2FsdD1tZWRpYWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTcOJVE9ET1MgUFJJVkFET1NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1hcGVhIGVsIGVzdGFkbyBkZSBsYSB0YXJlYSBkZSB1cGxvYWRcbiAgICovXG4gIHByaXZhdGUgbWFwVGFza1N0YXRlKHN0YXRlOiBzdHJpbmcpOiBVcGxvYWRTdGF0ZSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSAncnVubmluZyc6XG4gICAgICAgIHJldHVybiAncnVubmluZyc7XG4gICAgICBjYXNlICdwYXVzZWQnOlxuICAgICAgICByZXR1cm4gJ3BhdXNlZCc7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcbiAgICAgIGNhc2UgJ2NhbmNlbGVkJzpcbiAgICAgICAgcmV0dXJuICdjYW5jZWxlZCc7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdydW5uaW5nJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmllcnRlIGVycm9yZXMgZGUgU3RvcmFnZSBhIG1lbnNhamVzIGVuIGVzcGHDsW9sXG4gICAqL1xuICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSAoZXJyb3IgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGU7XG5cbiAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICBjYXNlICdzdG9yYWdlL29iamVjdC1ub3QtZm91bmQnOlxuICAgICAgICAgIHJldHVybiAnRWwgYXJjaGl2byBubyBleGlzdGUnO1xuICAgICAgICBjYXNlICdzdG9yYWdlL3VuYXV0aG9yaXplZCc6XG4gICAgICAgICAgcmV0dXJuICdObyB0aWVuZXMgcGVybWlzbyBwYXJhIGFjY2VkZXIgYSBlc3RlIGFyY2hpdm8nO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2NhbmNlbGVkJzpcbiAgICAgICAgICByZXR1cm4gJ0xhIG9wZXJhY2nDs24gZnVlIGNhbmNlbGFkYSc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvcXVvdGEtZXhjZWVkZWQnOlxuICAgICAgICAgIHJldHVybiAnU2UgaGEgZXhjZWRpZG8gbGEgY3VvdGEgZGUgYWxtYWNlbmFtaWVudG8nO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2ludmFsaWQtY2hlY2tzdW0nOlxuICAgICAgICAgIHJldHVybiAnRWwgYXJjaGl2byBlc3TDoSBjb3JydXB0byc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvcmV0cnktbGltaXQtZXhjZWVkZWQnOlxuICAgICAgICAgIHJldHVybiAnRXJyb3IgZGUgY29uZXhpw7NuLiBJbnRlbnRhIGRlIG51ZXZvJztcbiAgICAgICAgY2FzZSAnc3RvcmFnZS9pbnZhbGlkLXVybCc6XG4gICAgICAgICAgcmV0dXJuICdVUkwgZGUgYXJjaGl2byBpbnbDoWxpZGEnO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2ludmFsaWQtYXJndW1lbnQnOlxuICAgICAgICAgIHJldHVybiAnQXJndW1lbnRvIGludsOhbGlkbyc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UgfHwgJ0Vycm9yIGRlIGFsbWFjZW5hbWllbnRvIGRlc2Nvbm9jaWRvJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gJ0Vycm9yIGRlIGFsbWFjZW5hbWllbnRvIGRlc2Nvbm9jaWRvJztcbiAgfVxufVxuIl19
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEVBQ1gsT0FBTyxFQUNQLEdBQUcsRUFFSCxvQkFBb0IsR0FHckIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBU25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFvQixPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRjVCLFdBQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU5QixDQUFDO0lBRXhDOzs7Ozs7O09BT0c7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDeEQsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuRCxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELDhFQUE4RTtJQUM5RSxTQUFTO0lBQ1QsOEVBQThFO0lBRTlFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0gsTUFBTSxDQUFDLElBQVksRUFBRSxJQUFpQixFQUFFLFFBQTBC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QXFDLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLHFDQUFxQyxDQUFDO0lBQy9DLENBQUM7K0dBOWRVLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RvcmFnZSBTZXJ2aWNlXG4gKlxuICogU2VydmljaW8gcGFyYSBvcGVyYWNpb25lcyBkZSBGaXJlYmFzZSBTdG9yYWdlLlxuICogU29wb3J0YSB1cGxvYWQgY29uIHRyYWNraW5nIGRlIHByb2dyZXNvLCBkb3dubG9hZCB5IGdlc3Rpw7NuIGRlIGFyY2hpdm9zLlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZGVsZXRlT2JqZWN0LFxuICBnZXREb3dubG9hZFVSTCxcbiAgZ2V0TWV0YWRhdGEsXG4gIGxpc3RBbGwsXG4gIHJlZixcbiAgU3RvcmFnZSxcbiAgdXBsb2FkQnl0ZXNSZXN1bWFibGUsXG4gIFVwbG9hZE1ldGFkYXRhLFxuICBVcGxvYWRUYXNrU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvc3RvcmFnZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBTdG9yYWdlTGlzdFJlc3VsdCxcbiAgU3RvcmFnZU1ldGFkYXRhLFxuICBVcGxvYWRQcm9ncmVzcyxcbiAgVXBsb2FkUmVzdWx0LFxuICBVcGxvYWRTdGF0ZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU2VydmljaW8gcGFyYSBGaXJlYmFzZSBTdG9yYWdlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHsuLi59KVxuICogZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQge1xuICogICBwcml2YXRlIHN0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICpcbiAqICAgdXBsb2FkUHJvZ3Jlc3MgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAqICAgZG93bmxvYWRVcmwgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gKlxuICogICBhc3luYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAqICAgICBjb25zdCBmaWxlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcz8uWzBdO1xuICogICAgIGlmICghZmlsZSkgcmV0dXJuO1xuICpcbiAqICAgICAvLyBVcGxvYWQgY29uIHByb2dyZXNvXG4gKiAgICAgdGhpcy5zdG9yYWdlLnVwbG9hZChgdXBsb2Fkcy8ke2ZpbGUubmFtZX1gLCBmaWxlKS5zdWJzY3JpYmUoe1xuICogICAgICAgbmV4dDogKHByb2dyZXNzKSA9PiB0aGlzLnVwbG9hZFByb2dyZXNzLnNldChwcm9ncmVzcy5wZXJjZW50YWdlKSxcbiAqICAgICAgIGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG4gKiAgICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXREb3dubG9hZFVybChgdXBsb2Fkcy8ke2ZpbGUubmFtZX1gKTtcbiAqICAgICAgICAgdGhpcy5kb3dubG9hZFVybC5zZXQodXJsKTtcbiAqICAgICAgIH1cbiAqICAgICB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChWQUxURUNIX0ZJUkVCQVNFX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2UpIHt9XG5cbiAgLyoqXG4gICAqIFByZWZpamEgZWwgcGF0aCBkZSBzdG9yYWdlIGNvbiBlbCBhcHBJZCBzaSBlc3TDoSBjb25maWd1cmFkby5cbiAgICogU2kgbm8gaGF5IGFwcElkIG8gc2tpcFByZWZpeCBlcyB0cnVlLCByZXRvcm5hIGVsIHBhdGggc2luIG1vZGlmaWNhci5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIG9yaWdpbmFsXG4gICAqIEBwYXJhbSBza2lwUHJlZml4IC0gU2kgZXMgdHJ1ZSwgbm8gYXBsaWNhIGVsIHByZWZpeCAow7p0aWwgcGFyYSBwYXRocyBjb21wYXJ0aWRvcyBjb21vIGF2YXRhcmVzKVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcHJlZml4U3RvcmFnZVBhdGgocGF0aDogc3RyaW5nLCBza2lwUHJlZml4ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGlmIChza2lwUHJlZml4IHx8ICF0aGlzLmNvbmZpZz8uYXBwSWQpIHJldHVybiBwYXRoO1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy5hcHBJZH0vJHtwYXRofWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVBMT0FEXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBTdWJlIHVuIGFyY2hpdm8gY29uIHRyYWNraW5nIGRlIHByb2dyZXNvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZW4gU3RvcmFnZSBkb25kZSBndWFyZGFyIGVsIGFyY2hpdm9cbiAgICogQHBhcmFtIGZpbGUgLSBBcmNoaXZvIGEgc3ViaXIgKEZpbGUgbyBCbG9iKVxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBNZXRhZGF0YSBvcGNpb25hbCAoY29udGVudFR5cGUsIGN1c3RvbU1ldGFkYXRhKVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBlbCBwcm9ncmVzbyB5IGNvbXBsZXRhIGN1YW5kbyB0ZXJtaW5hXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gVXBsb2FkIGLDoXNpY29cbiAgICogc3RvcmFnZS51cGxvYWQoJ2ltYWdlcy9waG90by5qcGcnLCBmaWxlKS5zdWJzY3JpYmUoe1xuICAgKiAgIG5leHQ6IChwcm9ncmVzcykgPT4gY29uc29sZS5sb2coYCR7cHJvZ3Jlc3MucGVyY2VudGFnZX0lYCksXG4gICAqICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdVcGxvYWQgY29tcGxldGFkbycpXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBDb24gbWV0YWRhdGFcbiAgICogc3RvcmFnZS51cGxvYWQoJ2RvY3MvcmVwb3J0LnBkZicsIGZpbGUsIHtcbiAgICogICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAqICAgY3VzdG9tTWV0YWRhdGE6IHsgdXBsb2FkZWRCeTogJ3VzZXIxMjMnIH1cbiAgICogfSkuc3Vic2NyaWJlKC4uLik7XG4gICAqIGBgYFxuICAgKi9cbiAgdXBsb2FkKHBhdGg6IHN0cmluZywgZmlsZTogRmlsZSB8IEJsb2IsIG1ldGFkYXRhPzogU3RvcmFnZU1ldGFkYXRhKTogT2JzZXJ2YWJsZTxVcGxvYWRQcm9ncmVzcz4ge1xuICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCwgbWV0YWRhdGE/LnNraXBQcmVmaXgpO1xuICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgIGNvbnN0IHVwbG9hZE1ldGFkYXRhOiBVcGxvYWRNZXRhZGF0YSA9IHtcbiAgICAgIGNvbnRlbnRUeXBlOiBtZXRhZGF0YT8uY29udGVudFR5cGUgfHwgKGZpbGUgaW5zdGFuY2VvZiBGaWxlID8gZmlsZS50eXBlIDogdW5kZWZpbmVkKSxcbiAgICAgIGN1c3RvbU1ldGFkYXRhOiBtZXRhZGF0YT8uY3VzdG9tTWV0YWRhdGEsXG4gICAgICAvLyBEZWZhdWx0IGFncmVzaXZvOiBnZXREb3dubG9hZFVSTCBkZXZ1ZWx2ZSBVUkxzIGNvbiB0b2tlbiDDum5pY28gcG9yXG4gICAgICAvLyB2ZXJzacOzbiBkZWwgb2JqZXRvIOKGkiByZS1zdWJpciBlbCBhcmNoaXZvIGNhbWJpYSBlbCBVUkwgKGNhY2hlLWJ1c3RcbiAgICAgIC8vIG5hdHVyYWwpLiBFbCBjb25zdW1pZG9yIHB1ZWRlIG92ZXJyaWRlIHBhc2FuZG8gY2FjaGVDb250cm9sIGV4cGzDrWNpdG8uXG4gICAgICBjYWNoZUNvbnRyb2w6IG1ldGFkYXRhPy5jYWNoZUNvbnRyb2wgPz8gJ3B1YmxpYywgbWF4LWFnZT0zMTUzNjAwMCcsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhc2sgPSB1cGxvYWRCeXRlc1Jlc3VtYWJsZShzdG9yYWdlUmVmLCBmaWxlLCB1cGxvYWRNZXRhZGF0YSk7XG4gICAgY29uc3QgcHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVcGxvYWRQcm9ncmVzcz4oe1xuICAgICAgYnl0ZXNUcmFuc2ZlcnJlZDogMCxcbiAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICBzdGF0ZTogJ3J1bm5pbmcnLFxuICAgIH0pO1xuXG4gICAgdGFzay5vbihcbiAgICAgICdzdGF0ZV9jaGFuZ2VkJyxcbiAgICAgIChzbmFwc2hvdDogVXBsb2FkVGFza1NuYXBzaG90KSA9PiB7XG4gICAgICAgIHByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICBieXRlc1RyYW5zZmVycmVkOiBzbmFwc2hvdC5ieXRlc1RyYW5zZmVycmVkLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IHNuYXBzaG90LnRvdGFsQnl0ZXMsXG4gICAgICAgICAgcGVyY2VudGFnZTogTWF0aC5yb3VuZCgoc25hcHNob3QuYnl0ZXNUcmFuc2ZlcnJlZCAvIHNuYXBzaG90LnRvdGFsQnl0ZXMpICogMTAwKSxcbiAgICAgICAgICBzdGF0ZTogdGhpcy5tYXBUYXNrU3RhdGUoc25hcHNob3Quc3RhdGUpLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICBieXRlc1RyYW5zZmVycmVkOiAwLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgICAgIHN0YXRlOiAnZXJyb3InLFxuICAgICAgICB9KTtcbiAgICAgICAgcHJvZ3Jlc3MkLmVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBwcm9ncmVzcyQubmV4dCh7XG4gICAgICAgICAgYnl0ZXNUcmFuc2ZlcnJlZDogZmlsZS5zaXplLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgc3RhdGU6ICdzdWNjZXNzJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHByb2dyZXNzJC5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gcHJvZ3Jlc3MkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YmUgdW4gYXJjaGl2byB5IHJldG9ybmEgbGEgVVJMIGRlIGRlc2NhcmdhIGFsIGNvbXBsZXRhci5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGVuIFN0b3JhZ2VcbiAgICogQHBhcmFtIGZpbGUgLSBBcmNoaXZvIGEgc3ViaXJcbiAgICogQHBhcmFtIG1ldGFkYXRhIC0gTWV0YWRhdGEgb3BjaW9uYWxcbiAgICogQHJldHVybnMgUmVzdWx0YWRvIGRlbCB1cGxvYWQgY29uIFVSTCBkZSBkZXNjYXJnYVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UudXBsb2FkQW5kR2V0VXJsKCdhdmF0YXJzL3VzZXIxMjMuanBnJywgZmlsZSk7XG4gICAqIGNvbnNvbGUubG9nKCdVUkw6JywgcmVzdWx0LmRvd25sb2FkVXJsKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyB1cGxvYWRBbmRHZXRVcmwoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGZpbGU6IEZpbGUgfCBCbG9iLFxuICAgIG1ldGFkYXRhPzogU3RvcmFnZU1ldGFkYXRhXG4gICk6IFByb21pc2U8VXBsb2FkUmVzdWx0PiB7XG4gICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoLCBtZXRhZGF0YT8uc2tpcFByZWZpeCk7XG4gICAgY29uc29sZS5sb2coJ1tTdG9yYWdlXSB1cGxvYWRBbmRHZXRVcmwgc3RhcnQ6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGgsIHNpemU6IGZpbGUuc2l6ZSB9KTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy51cGxvYWQocGF0aCwgZmlsZSwgbWV0YWRhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgIGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgICAgICAgICAgY29uc3QgZG93bmxvYWRVcmwgPSBhd2FpdCBnZXREb3dubG9hZFVSTChzdG9yYWdlUmVmKTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JlZE1ldGFkYXRhID0gYXdhaXQgZ2V0TWV0YWRhdGEoc3RvcmFnZVJlZik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1N0b3JhZ2VdIHVwbG9hZCBPSzonLCB7XG4gICAgICAgICAgICAgIHBhdGg6IHByZWZpeGVkUGF0aCxcbiAgICAgICAgICAgICAgdXJsOiBkb3dubG9hZFVybC5zbGljZSgwLCA2MCkgKyAn4oCmJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIGRvd25sb2FkVXJsLFxuICAgICAgICAgICAgICBmdWxsUGF0aDogc3RvcmVkTWV0YWRhdGEuZnVsbFBhdGgsXG4gICAgICAgICAgICAgIG5hbWU6IHN0b3JlZE1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgIHNpemU6IHN0b3JlZE1ldGFkYXRhLnNpemUsXG4gICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBzdG9yZWRNZXRhZGF0YS5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHN0b3JlZE1ldGFkYXRhLmN1c3RvbU1ldGFkYXRhIHx8IHt9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTdG9yYWdlXSBnZXREb3dubG9hZFVSTC9tZXRhZGF0YSBmYWlsZWQ6Jywge1xuICAgICAgICAgICAgICBwYXRoOiBwcmVmaXhlZFBhdGgsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWplY3QodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignW1N0b3JhZ2VdIHVwbG9hZCBmYWlsZWQ6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGgsIGVycm9yIH0pO1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJlIHVuIGFyY2hpdm8gZGVzZGUgdW5hIERhdGEgVVJMIChiYXNlNjQpLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZW4gU3RvcmFnZVxuICAgKiBAcGFyYW0gZGF0YVVybCAtIERhdGEgVVJMIChlajogJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwuLi4nKVxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBNZXRhZGF0YSBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBSZXN1bHRhZG8gZGVsIHVwbG9hZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIERlc2RlIGNhbnZhc1xuICAgKiBjb25zdCBkYXRhVXJsID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UudXBsb2FkRnJvbURhdGFVcmwoJ2ltYWdlcy9kcmF3aW5nLnBuZycsIGRhdGFVcmwpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHVwbG9hZEZyb21EYXRhVXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBkYXRhVXJsOiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBTdG9yYWdlTWV0YWRhdGFcbiAgKTogUHJvbWlzZTxVcGxvYWRSZXN1bHQ+IHtcbiAgICAvLyBFeHRyYWVyIGNvbnRlbnQgdHlwZSB5IGRhdG9zIGJhc2U2NFxuICAgIGNvbnN0IG1hdGNoZXMgPSBkYXRhVXJsLm1hdGNoKC9eZGF0YTooW147XSspO2Jhc2U2NCwoLispJC8pO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIFVSTCBpbnbDoWxpZGEnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IG1hdGNoZXNbMV07XG4gICAgY29uc3QgYmFzZTY0RGF0YSA9IG1hdGNoZXNbMl07XG5cbiAgICAvLyBDb252ZXJ0aXIgYmFzZTY0IGEgQmxvYlxuICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjREYXRhKTtcbiAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcblxuICAgIHJldHVybiB0aGlzLnVwbG9hZEFuZEdldFVybChwYXRoLCBibG9iLCB7XG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIC4uLm1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERPV05MT0FEXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhIFVSTCBkZSBkZXNjYXJnYSBkZSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGFyY2hpdm8gZW4gU3RvcmFnZVxuICAgKiBAcmV0dXJucyBVUkwgZGUgZGVzY2FyZ2FcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB1cmwgPSBhd2FpdCBzdG9yYWdlLmdldERvd25sb2FkVXJsKCdpbWFnZXMvcGhvdG8uanBnJyk7XG4gICAqIC8vIFVzYXIgZW4gPGltZyBbc3JjXT1cInVybFwiPlxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldERvd25sb2FkVXJsKHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCk7XG4gICAgICBjb25zdCBzdG9yYWdlUmVmID0gcmVmKHRoaXMuc3RvcmFnZSwgcHJlZml4ZWRQYXRoKTtcbiAgICAgIHJldHVybiBhd2FpdCBnZXREb3dubG9hZFVSTChzdG9yYWdlUmVmKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGEgbWV0YWRhdGEgZGUgdW4gYXJjaGl2by5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGRlbCBhcmNoaXZvXG4gICAqIEByZXR1cm5zIE1ldGFkYXRhIGRlbCBhcmNoaXZvXG4gICAqL1xuICBhc3luYyBnZXRNZXRhZGF0YShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFN0b3JhZ2VNZXRhZGF0YSAmIHsgc2l6ZTogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFBhdGggPSB0aGlzLnByZWZpeFN0b3JhZ2VQYXRoKHBhdGgpO1xuICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IGdldE1ldGFkYXRhKHN0b3JhZ2VSZWYpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudFR5cGU6IG1ldGFkYXRhLmNvbnRlbnRUeXBlLFxuICAgICAgICBjdXN0b21NZXRhZGF0YTogbWV0YWRhdGEuY3VzdG9tTWV0YWRhdGEsXG4gICAgICAgIGNhY2hlQ29udHJvbDogbWV0YWRhdGEuY2FjaGVDb250cm9sLFxuICAgICAgICBzaXplOiBtZXRhZGF0YS5zaXplLFxuICAgICAgICBuYW1lOiBtZXRhZGF0YS5uYW1lLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERFTEVURVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogRWxpbWluYSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGFyY2hpdm8gYSBlbGltaW5hclxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGF3YWl0IHN0b3JhZ2UuZGVsZXRlKCdpbWFnZXMvb2xkLXBob3RvLmpwZycpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoKTtcbiAgICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgICAgYXdhaXQgZGVsZXRlT2JqZWN0KHN0b3JhZ2VSZWYpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSBtw7psdGlwbGVzIGFyY2hpdm9zLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aHMgLSBBcnJheSBkZSBydXRhcyBhIGVsaW1pbmFyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogYXdhaXQgc3RvcmFnZS5kZWxldGVNdWx0aXBsZShbXG4gICAqICAgJ2ltYWdlcy9waG90bzEuanBnJyxcbiAgICogICAnaW1hZ2VzL3Bob3RvMi5qcGcnXG4gICAqIF0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGRlbGV0ZU11bHRpcGxlKHBhdGhzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHBhdGhzLm1hcChwYXRoID0+IHRoaXMuZGVsZXRlKHBhdGgpKSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTElTVFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogTGlzdGEgYXJjaGl2b3MgZW4gdW4gZGlyZWN0b3Jpby5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGRlbCBkaXJlY3RvcmlvXG4gICAqIEByZXR1cm5zIExpc3RhIGRlIHJ1dGFzIGRlIGFyY2hpdm9zXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS5saXN0KCdpbWFnZXMvJyk7XG4gICAqIGNvbnNvbGUubG9nKHJlc3VsdC5pdGVtcyk7IC8vIFsnaW1hZ2VzL3Bob3RvMS5qcGcnLCAnaW1hZ2VzL3Bob3RvMi5qcGcnXVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGxpc3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTxTdG9yYWdlTGlzdFJlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFBhdGggPSB0aGlzLnByZWZpeFN0b3JhZ2VQYXRoKHBhdGgpO1xuICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBsaXN0QWxsKHN0b3JhZ2VSZWYpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzdWx0Lml0ZW1zLm1hcChpdGVtID0+IGl0ZW0uZnVsbFBhdGgpLFxuICAgICAgICBuZXh0UGFnZVRva2VuOiB1bmRlZmluZWQsIC8vIGxpc3RBbGwgbm8gc29wb3J0YSBwYWdpbmFjacOzblxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVUSUxJREFERVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdlbmVyYSB1biBub21icmUgZGUgYXJjaGl2byDDum5pY28gY29uIHRpbWVzdGFtcC5cbiAgICpcbiAgICogQHBhcmFtIG9yaWdpbmFsTmFtZSAtIE5vbWJyZSBvcmlnaW5hbCBkZWwgYXJjaGl2b1xuICAgKiBAcGFyYW0gcHJlZml4IC0gUHJlZmlqbyBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBOb21icmUgw7puaWNvXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgdW5pcXVlTmFtZSA9IHN0b3JhZ2UuZ2VuZXJhdGVGaWxlTmFtZSgncGhvdG8uanBnJywgJ3VzZXIxMjMnKTtcbiAgICogLy8gPT4gJ3VzZXIxMjNfMTcwMzA5MTIzNDU2N19waG90by5qcGcnXG4gICAqIGBgYFxuICAgKi9cbiAgZ2VuZXJhdGVGaWxlTmFtZShvcmlnaW5hbE5hbWU6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHNhbml0aXplZE5hbWUgPSBvcmlnaW5hbE5hbWUucmVwbGFjZSgvW15hLXpBLVowLTkuLV0vZywgJ18nKTtcblxuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIHJldHVybiBgJHtwcmVmaXh9XyR7dGltZXN0YW1wfV8ke3Nhbml0aXplZE5hbWV9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RpbWVzdGFtcH1fJHtzYW5pdGl6ZWROYW1lfWA7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhIHVuYSBydXRhIMO6bmljYSBwYXJhIHVuIGFyY2hpdm8uXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBEaXJlY3RvcmlvIGJhc2VcbiAgICogQHBhcmFtIG9yaWdpbmFsTmFtZSAtIE5vbWJyZSBvcmlnaW5hbFxuICAgKiBAcGFyYW0gcHJlZml4IC0gUHJlZmlqbyBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBSdXRhIGNvbXBsZXRhIMO6bmljYVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHBhdGggPSBzdG9yYWdlLmdlbmVyYXRlUGF0aCgndXBsb2FkcycsICdwaG90by5qcGcnLCAndXNlcjEyMycpO1xuICAgKiAvLyA9PiAndXBsb2Fkcy91c2VyMTIzXzE3MDMwOTEyMzQ1NjdfcGhvdG8uanBnJ1xuICAgKiBgYGBcbiAgICovXG4gIGdlbmVyYXRlUGF0aChkaXJlY3Rvcnk6IHN0cmluZywgb3JpZ2luYWxOYW1lOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZU5hbWUgPSB0aGlzLmdlbmVyYXRlRmlsZU5hbWUob3JpZ2luYWxOYW1lLCBwcmVmaXgpO1xuICAgIGNvbnN0IGNsZWFuRGlyID0gZGlyZWN0b3J5LnJlcGxhY2UoL1xcLyskLywgJycpOyAvLyBSZW1vdmVyIC8gZmluYWxcbiAgICByZXR1cm4gYCR7Y2xlYW5EaXJ9LyR7ZmlsZU5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhIGV4dGVuc2nDs24gZGUgdW4gYXJjaGl2by5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVuYW1lIC0gTm9tYnJlIGRlbCBhcmNoaXZvXG4gICAqIEByZXR1cm5zIEV4dGVuc2nDs24gKHNpbiBlbCBwdW50bylcbiAgICovXG4gIGdldEV4dGVuc2lvbihmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZpbGVuYW1lLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJ0cy5wb3AoKSEudG9Mb3dlckNhc2UoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuIGFyY2hpdm8gZXMgdW5hIGltYWdlbiBiYXPDoW5kb3NlIGVuIHN1IGV4dGVuc2nDs24uXG4gICAqL1xuICBpc0ltYWdlKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHQgPSB0aGlzLmdldEV4dGVuc2lvbihmaWxlbmFtZSk7XG4gICAgcmV0dXJuIFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICd3ZWJwJywgJ3N2ZycsICdibXAnXS5pbmNsdWRlcyhleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuIGFyY2hpdm8gZXMgdW4gZG9jdW1lbnRvLlxuICAgKi9cbiAgaXNEb2N1bWVudChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXh0ID0gdGhpcy5nZXRFeHRlbnNpb24oZmlsZW5hbWUpO1xuICAgIHJldHVybiBbJ3BkZicsICdkb2MnLCAnZG9jeCcsICd4bHMnLCAneGxzeCcsICdwcHQnLCAncHB0eCcsICd0eHQnXS5pbmNsdWRlcyhleHQpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVTRVIgQVZBVEFSIEhFTFBFUlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIENvbnN0cnV5ZSBsYSBVUkwgZGUgYXZhdGFyIGRlIHVuIHVzdWFyaW8uXG4gICAqXG4gICAqIExvcyBhdmF0YXJlcyBzZSBhbG1hY2VuYW4gZW4gcGF0aHMgcHJlZGVjaWJsZXM6IGB1c2Vycy97dXNlcklkfS9hdmF0YXIuanBnYFxuICAgKiBFc3RvIHBlcm1pdGUgcXVlIGN1YWxxdWllciBhcHAgcHVlZGEgbW9zdHJhciBhdmF0YXJlcyBzaW4gcGVkaXIgbGEgVVJMIGFsIGJhY2tlbmQsXG4gICAqIHNvbG8gbmVjZXNpdGEgZWwgdXNlcklkLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlcklkIC0gSUQgZGVsIHVzdWFyaW8gKFVMSUQpXG4gICAqIEBwYXJhbSB0eXBlIC0gJ2F2YXRhcicgcGFyYSBpbWFnZW4gY29tcGxldGEsICd0aHVtYicgcGFyYSB0aHVtYm5haWxcbiAgICogQHJldHVybnMgVVJMIGRpcmVjdGEgZGUgRmlyZWJhc2UgU3RvcmFnZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIE1vc3RyYXIgYXZhdGFyIGRlIGN1YWxxdWllciB1c3VhcmlvXG4gICAqIGNvbnN0IGF2YXRhclVybCA9IHN0b3JhZ2UuZ2V0VXNlckF2YXRhclVybCgnMDFBQkNELi4uJyk7XG4gICAqIGNvbnN0IHRodW1iVXJsID0gc3RvcmFnZS5nZXRVc2VyQXZhdGFyVXJsKCcwMUFCQ0QuLi4nLCAndGh1bWInKTtcbiAgICpcbiAgICogLy8gQ29uIGNhY2hlLWJ1c3RpbmdcbiAgICogY29uc3QgZnJlc2hVcmwgPSBzdG9yYWdlLmdldFVzZXJBdmF0YXJVcmwodXNlcklkKSArIGAmdD0ke0RhdGUubm93KCl9YDtcbiAgICogYGBgXG4gICAqL1xuICBnZXRVc2VyQXZhdGFyVXJsKHVzZXJJZDogc3RyaW5nLCB0eXBlOiAnYXZhdGFyJyB8ICd0aHVtYicgPSAnYXZhdGFyJyk6IHN0cmluZyB7XG4gICAgY29uc3QgYnVja2V0ID0gdGhpcy5jb25maWc/LmZpcmViYXNlPy5zdG9yYWdlQnVja2V0IHx8ICdteXZhbHRlY2gtZGV2LmZpcmViYXNlc3RvcmFnZS5hcHAnO1xuICAgIGNvbnN0IHBhdGggPSBgdXNlcnMvJHt1c2VySWR9LyR7dHlwZX0uanBnYDtcbiAgICByZXR1cm4gYGh0dHBzOi8vZmlyZWJhc2VzdG9yYWdlLmdvb2dsZWFwaXMuY29tL3YwL2IvJHtidWNrZXR9L28vJHtlbmNvZGVVUklDb21wb25lbnQocGF0aCl9P2FsdD1tZWRpYWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTcOJVE9ET1MgUFJJVkFET1NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1hcGVhIGVsIGVzdGFkbyBkZSBsYSB0YXJlYSBkZSB1cGxvYWRcbiAgICovXG4gIHByaXZhdGUgbWFwVGFza1N0YXRlKHN0YXRlOiBzdHJpbmcpOiBVcGxvYWRTdGF0ZSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSAncnVubmluZyc6XG4gICAgICAgIHJldHVybiAncnVubmluZyc7XG4gICAgICBjYXNlICdwYXVzZWQnOlxuICAgICAgICByZXR1cm4gJ3BhdXNlZCc7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcbiAgICAgIGNhc2UgJ2NhbmNlbGVkJzpcbiAgICAgICAgcmV0dXJuICdjYW5jZWxlZCc7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdydW5uaW5nJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmllcnRlIGVycm9yZXMgZGUgU3RvcmFnZSBhIG1lbnNhamVzIGVuIGVzcGHDsW9sXG4gICAqL1xuICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSAoZXJyb3IgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGU7XG5cbiAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICBjYXNlICdzdG9yYWdlL29iamVjdC1ub3QtZm91bmQnOlxuICAgICAgICAgIHJldHVybiAnRWwgYXJjaGl2byBubyBleGlzdGUnO1xuICAgICAgICBjYXNlICdzdG9yYWdlL3VuYXV0aG9yaXplZCc6XG4gICAgICAgICAgcmV0dXJuICdObyB0aWVuZXMgcGVybWlzbyBwYXJhIGFjY2VkZXIgYSBlc3RlIGFyY2hpdm8nO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2NhbmNlbGVkJzpcbiAgICAgICAgICByZXR1cm4gJ0xhIG9wZXJhY2nDs24gZnVlIGNhbmNlbGFkYSc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvcXVvdGEtZXhjZWVkZWQnOlxuICAgICAgICAgIHJldHVybiAnU2UgaGEgZXhjZWRpZG8gbGEgY3VvdGEgZGUgYWxtYWNlbmFtaWVudG8nO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2ludmFsaWQtY2hlY2tzdW0nOlxuICAgICAgICAgIHJldHVybiAnRWwgYXJjaGl2byBlc3TDoSBjb3JydXB0byc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvcmV0cnktbGltaXQtZXhjZWVkZWQnOlxuICAgICAgICAgIHJldHVybiAnRXJyb3IgZGUgY29uZXhpw7NuLiBJbnRlbnRhIGRlIG51ZXZvJztcbiAgICAgICAgY2FzZSAnc3RvcmFnZS9pbnZhbGlkLXVybCc6XG4gICAgICAgICAgcmV0dXJuICdVUkwgZGUgYXJjaGl2byBpbnbDoWxpZGEnO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2ludmFsaWQtYXJndW1lbnQnOlxuICAgICAgICAgIHJldHVybiAnQXJndW1lbnRvIGludsOhbGlkbyc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UgfHwgJ0Vycm9yIGRlIGFsbWFjZW5hbWllbnRvIGRlc2Nvbm9jaWRvJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gJ0Vycm9yIGRlIGFsbWFjZW5hbWllbnRvIGRlc2Nvbm9jaWRvJztcbiAgfVxufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.843';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC44NDMnO1xuIl19
5
+ export const VERSION = '2.0.845';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC44NDUnO1xuIl19
@@ -53,7 +53,7 @@ import 'prismjs/components/prism-json';
53
53
  * Current version of valtech-components.
54
54
  * This is automatically updated during the publish process.
55
55
  */
56
- const VERSION = '2.0.843';
56
+ const VERSION = '2.0.845';
57
57
 
58
58
  /**
59
59
  * Servicio para gestionar presets de componentes.
@@ -23241,7 +23241,10 @@ class StorageService {
23241
23241
  const uploadMetadata = {
23242
23242
  contentType: metadata?.contentType || (file instanceof File ? file.type : undefined),
23243
23243
  customMetadata: metadata?.customMetadata,
23244
- cacheControl: metadata?.cacheControl,
23244
+ // Default agresivo: getDownloadURL devuelve URLs con token único por
23245
+ // versión del objeto → re-subir el archivo cambia el URL (cache-bust
23246
+ // natural). El consumidor puede override pasando cacheControl explícito.
23247
+ cacheControl: metadata?.cacheControl ?? 'public, max-age=31536000',
23245
23248
  };
23246
23249
  const task = uploadBytesResumable(storageRef, file, uploadMetadata);
23247
23250
  const progress$ = new BehaviorSubject({
@@ -27890,7 +27893,7 @@ class ArticleComponent {
27890
27893
  </ng-container>
27891
27894
  </div>
27892
27895
  </article>
27893
- `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff0d}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: CodeDisplayComponent, selector: "val-code-display", inputs: ["props"] }, { kind: "component", type: NotesBoxComponent, selector: "val-notes-box", inputs: ["props"] }, { kind: "component", type: PlainCodeBoxComponent, selector: "val-plain-code-box", inputs: ["props"] }] }); }
27896
+ `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff14;border-left-color:var(--ion-color-primary)}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: CodeDisplayComponent, selector: "val-code-display", inputs: ["props"] }, { kind: "component", type: NotesBoxComponent, selector: "val-notes-box", inputs: ["props"] }, { kind: "component", type: PlainCodeBoxComponent, selector: "val-plain-code-box", inputs: ["props"] }] }); }
27894
27897
  }
27895
27898
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ArticleComponent, decorators: [{
27896
27899
  type: Component,
@@ -28067,7 +28070,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
28067
28070
  </ng-container>
28068
28071
  </div>
28069
28072
  </article>
28070
- `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff0d}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"] }]
28073
+ `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-article{width:100%;margin:0 auto;line-height:1.6;color:var(--ion-color-dark, #1f2937);display:block;position:static}.val-article--centered{margin:0 auto}.val-article--light{background-color:var(--ion-color-light, #ffffff);color:var(--ion-color-dark, #1f2937)}.val-article--dark{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article__element{position:relative}.val-article__element:last-child{margin-bottom:0!important}.val-article__spacing-top--none{margin-top:0!important}.val-article__spacing-top--small{margin-top:.5rem!important}.val-article__spacing-top--medium{margin-top:1rem!important}.val-article__spacing-top--large{margin-top:1.5rem!important}.val-article__spacing-top--xlarge{margin-top:2.5rem!important}.val-article__spacing-bottom--none{margin-bottom:0!important}.val-article__spacing-bottom--small{margin-bottom:.5rem!important}.val-article__spacing-bottom--medium{margin-bottom:1rem!important}.val-article__spacing-bottom--large{margin-bottom:1.5rem!important}.val-article__spacing-bottom--xlarge{margin-bottom:2.5rem!important}.val-article__spacing-horizontal--none{margin-left:0!important;margin-right:0!important}.val-article__spacing-horizontal--small{margin-left:.5rem!important;margin-right:.5rem!important}.val-article__spacing-horizontal--medium{margin-left:1rem!important;margin-right:1rem!important}.val-article__spacing-horizontal--large{margin-left:1.5rem!important;margin-right:1.5rem!important}.val-article__spacing-horizontal--xlarge{margin-left:2.5rem!important;margin-right:2.5rem!important}.val-article__quote{border-left:4px solid #0969da;padding:1rem;background-color:var(--ion-color-light-shade, #f8f9fa);border-radius:0 8px 8px 0;font-style:italic}.val-article__quote-content{margin-bottom:.5rem;font-size:1.1em}.val-article__quote-author{font-size:.9em;color:var(--ion-color-medium, #6c757d);font-style:normal;font-weight:500;text-align:right}.val-article__quote-source{font-weight:400;opacity:.8}.val-article__highlight{padding:1rem;background-color:var(--ion-color-warning-tint, #fff3cd);border:1px solid var(--ion-color-warning, #ffc107);border-radius:4px}.val-article__highlight--rounded{border-radius:12px}.val-article__code{border-radius:8px;overflow:hidden;border:1px solid #e1e5e9}.val-article__code-language{background-color:var(--ion-color-medium-tint, #f8f9fa);padding:.5rem 1rem;font-size:.875em;font-weight:500;color:var(--ion-color-dark, #495057);border-bottom:1px solid #e1e5e9;text-transform:uppercase;letter-spacing:.5px}.val-article__code-content{background-color:#f6f8fa;color:#24292e;padding:1rem;margin:0;overflow-x:auto;font-family:SFMono-Regular,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;line-height:1.5}.val-article__code-content code{background:none;padding:0;font-size:inherit;color:inherit}.val-article__code-content--dark{background-color:#161b22;color:#f0f6fc}.val-article__list{padding-left:1.5rem}.val-article__list--ordered{list-style-type:decimal}.val-article__list-item{margin-bottom:.5rem;line-height:1.6;position:relative}.val-article__list-item:last-child{margin-bottom:0}.val-article__list-check{color:var(--ion-color-success, #28a745);font-weight:700;margin-right:.5rem;position:absolute;left:-1.5rem}.val-article .val-article__list:has(.val-article__list-check){list-style:none;padding-left:1rem}.val-article__button-container--left{text-align:left}.val-article__button-container--center{text-align:center}.val-article__button-container--right{text-align:right}.val-article__separator{text-align:center}.val-article__separator-line{border:none;height:1px;background-color:#d0d7de;margin:0}.val-article__separator-line--thin{height:1px}.val-article__separator-line--thick{height:3px}.val-article__separator-dots{color:#d0d7de;font-size:1.5em;letter-spacing:.5em;-webkit-user-select:none;user-select:none}.val-article__separator-space{height:0}.val-article__image{text-align:center}.val-article__image--left{text-align:left}.val-article__image--center{text-align:center}.val-article__image--right{text-align:right}.val-article__image-content{max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease}.val-article__image-content:hover{transform:scale(1.02)}.val-article__image-content--rounded{border-radius:12px}.val-article__image-caption{margin-top:.5rem;font-size:.875em;color:var(--ion-color-medium, #6c757d);font-style:italic;text-align:center}.val-article__video{text-align:center}.val-article__video-content{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px #00000026}.val-article__video-title{margin-top:.5rem;font-size:.9em;color:var(--ion-color-medium, #6c757d);font-weight:500}.val-article__custom *{max-width:100%}@media (max-width: 768px){.val-article__code-content{font-size:.8em;padding:.5rem}.val-article__image-content:hover{transform:none}.val-article__quote,.val-article__highlight{padding:.5rem}}:host-context(body.dark) .val-article--auto,:host-context(.dark) .val-article--auto,:host-context(.ion-palette-dark) .val-article--auto,:host-context(html.ion-palette-dark) .val-article--auto,:host-context([data-theme=dark]) .val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}:host-context(body.dark) .val-article--auto .val-article__quote,:host-context(.dark) .val-article--auto .val-article__quote,:host-context(.ion-palette-dark) .val-article--auto .val-article__quote,:host-context(html.ion-palette-dark) .val-article--auto .val-article__quote,:host-context([data-theme=dark]) .val-article--auto .val-article__quote{background-color:#ffffff14;border-left-color:var(--ion-color-primary)}:host-context(body.dark) .val-article--auto .val-article__highlight,:host-context(.dark) .val-article--auto .val-article__highlight,:host-context(.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context(html.ion-palette-dark) .val-article--auto .val-article__highlight,:host-context([data-theme=dark]) .val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}:host-context(body.dark) .val-article--auto .val-article__code-content,:host-context(.dark) .val-article--auto .val-article__code-content,:host-context(.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context(html.ion-palette-dark) .val-article--auto .val-article__code-content,:host-context([data-theme=dark]) .val-article--auto .val-article__code-content{background-color:#161b22;color:#f0f6fc}.val-article__element{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.val-article__separator-line{background-color:currentColor;opacity:.5}.val-article__quote{border-left-width:6px}}@media (prefers-reduced-motion: reduce){.val-article .val-article__element{animation:none}.val-article__image-content{transition:none}.val-article__image-content:hover{transform:none}}\n"] }]
28071
28074
  }], ctorParameters: () => [], propDecorators: { props: [{
28072
28075
  type: Input
28073
28076
  }] } });