valtech-components 2.0.404 → 2.0.407
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.
- package/README.md +71 -0
- package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +4 -4
- package/esm2022/lib/components/atoms/avatar/types.mjs +1 -1
- package/esm2022/lib/components/atoms/box/box.component.mjs +4 -4
- package/esm2022/lib/components/atoms/box/types.mjs +1 -1
- package/esm2022/lib/components/atoms/button/button.component.mjs +6 -6
- package/esm2022/lib/components/atoms/button/factory.mjs +1 -1
- package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +343 -0
- package/esm2022/lib/components/atoms/countdown/types.mjs +27 -0
- package/esm2022/lib/components/atoms/display/display.component.mjs +4 -4
- package/esm2022/lib/components/atoms/display/types.mjs +1 -1
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +4 -4
- package/esm2022/lib/components/atoms/divider/types.mjs +1 -1
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +152 -0
- package/esm2022/lib/components/atoms/fab/types.mjs +2 -0
- package/esm2022/lib/components/atoms/href/href.component.mjs +4 -4
- package/esm2022/lib/components/atoms/href/types.mjs +1 -1
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +4 -4
- package/esm2022/lib/components/atoms/icon/types.mjs +1 -1
- package/esm2022/lib/components/atoms/image/image.component.mjs +6 -6
- package/esm2022/lib/components/atoms/image/types.mjs +1 -1
- package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +245 -0
- package/esm2022/lib/components/atoms/price-tag/types.mjs +15 -0
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/lib/components/atoms/progress-bar/types.mjs +1 -1
- package/esm2022/lib/components/atoms/progress-ring/progress-ring.component.mjs +149 -0
- package/esm2022/lib/components/atoms/progress-ring/types.mjs +2 -0
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +417 -0
- package/esm2022/lib/components/atoms/qr-code/types.mjs +2 -0
- package/esm2022/lib/components/atoms/skeleton/skeleton.component.mjs +193 -0
- package/esm2022/lib/components/atoms/skeleton/types.mjs +13 -0
- package/esm2022/lib/components/atoms/text/text.component.mjs +4 -4
- package/esm2022/lib/components/atoms/text/types.mjs +1 -1
- package/esm2022/lib/components/atoms/title/title.component.mjs +4 -4
- package/esm2022/lib/components/atoms/title/types.mjs +1 -1
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +139 -0
- package/esm2022/lib/components/molecules/accordion/types.mjs +2 -0
- package/esm2022/lib/components/molecules/action-header/action-header.component.mjs +4 -4
- package/esm2022/lib/components/molecules/action-header/types.mjs +1 -1
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/alert-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +137 -0
- package/esm2022/lib/components/molecules/breadcrumb/types.mjs +2 -0
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +4 -4
- package/esm2022/lib/components/molecules/button-group/types.mjs +1 -1
- package/esm2022/lib/components/molecules/card/card.component.mjs +5 -5
- package/esm2022/lib/components/molecules/card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +174 -0
- package/esm2022/lib/components/molecules/chip-group/types.mjs +2 -0
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +4 -4
- package/esm2022/lib/components/molecules/code-display/types.mjs +1 -1
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +4 -4
- package/esm2022/lib/components/molecules/command-display/types.mjs +1 -1
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +634 -0
- package/esm2022/lib/components/molecules/comment/types.mjs +2 -0
- package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +4 -4
- package/esm2022/lib/components/molecules/content-loader/types.mjs +1 -1
- package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +368 -0
- package/esm2022/lib/components/molecules/currency-input/types.mjs +18 -0
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +418 -0
- package/esm2022/lib/components/molecules/date-range-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +4 -4
- package/esm2022/lib/components/molecules/expandable-text/types.mjs +1 -1
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +279 -0
- package/esm2022/lib/components/molecules/glow-card/types.mjs +11 -0
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +4 -4
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/info/info.component.mjs +4 -4
- package/esm2022/lib/components/molecules/info/types.mjs +1 -1
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +4 -4
- package/esm2022/lib/components/molecules/language-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +4 -4
- package/esm2022/lib/components/molecules/layered-card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/link/link.component.mjs +4 -4
- package/esm2022/lib/components/molecules/link/types.mjs +1 -1
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +4 -4
- package/esm2022/lib/components/molecules/links-cake/types.mjs +1 -1
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +5 -5
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/notes-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/number-from-to/number-from-to.component.mjs +4 -4
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +377 -0
- package/esm2022/lib/components/molecules/number-stepper/types.mjs +2 -0
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +253 -0
- package/esm2022/lib/components/molecules/pagination/types.mjs +2 -0
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +486 -0
- package/esm2022/lib/components/molecules/participant-card/types.mjs +21 -0
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +336 -0
- package/esm2022/lib/components/molecules/phone-input/types.mjs +19 -0
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +4 -4
- package/esm2022/lib/components/molecules/pill/types.mjs +1 -1
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/plain-code-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +5 -5
- package/esm2022/lib/components/molecules/popover-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +4 -4
- package/esm2022/lib/components/molecules/progress-status/types.mjs +1 -1
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +4 -4
- package/esm2022/lib/components/molecules/prompter/types.mjs +1 -1
- package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +155 -0
- package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +484 -0
- package/esm2022/lib/components/molecules/raffle-status-card/types.mjs +23 -0
- package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +148 -0
- package/esm2022/lib/components/molecules/range-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +149 -0
- package/esm2022/lib/components/molecules/rating/types.mjs +2 -0
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +4 -4
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +145 -0
- package/esm2022/lib/components/molecules/segment-control/types.mjs +2 -0
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +5 -5
- package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +277 -0
- package/esm2022/lib/components/molecules/share-buttons/types.mjs +88 -0
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +165 -0
- package/esm2022/lib/components/molecules/stats-card/types.mjs +2 -0
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +239 -0
- package/esm2022/lib/components/molecules/stepper/types.mjs +2 -0
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +135 -0
- package/esm2022/lib/components/molecules/tabs/types.mjs +2 -0
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +204 -0
- package/esm2022/lib/components/molecules/textarea-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +497 -0
- package/esm2022/lib/components/molecules/ticket-grid/types.mjs +11 -0
- package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +140 -0
- package/esm2022/lib/components/molecules/timeline/types.mjs +2 -0
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +4 -4
- package/esm2022/lib/components/molecules/title-block/types.mjs +1 -1
- package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +89 -0
- package/esm2022/lib/components/molecules/toggle-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/winner-display/types.mjs +9 -0
- package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +370 -0
- package/esm2022/lib/components/organisms/article/article.component.mjs +4 -4
- package/esm2022/lib/components/organisms/article/types.mjs +1 -1
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +4 -4
- package/esm2022/lib/components/organisms/banner/types.mjs +1 -1
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +578 -0
- package/esm2022/lib/components/organisms/comment-section/types.mjs +2 -0
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +853 -0
- package/esm2022/lib/components/organisms/data-table/types.mjs +13 -0
- package/esm2022/lib/components/organisms/footer/footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/footer/types.mjs +1 -1
- package/esm2022/lib/components/organisms/form/factory.mjs +1 -1
- package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/form/form.component.mjs +4 -4
- package/esm2022/lib/components/organisms/header/header.component.mjs +4 -4
- package/esm2022/lib/components/organisms/header/types.mjs +1 -1
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +4 -4
- package/esm2022/lib/components/organisms/item-list/types.mjs +1 -1
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +4 -4
- package/esm2022/lib/components/organisms/no-content/types.mjs +1 -1
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +4 -4
- package/esm2022/lib/components/organisms/toolbar/types.mjs +1 -1
- package/esm2022/lib/components/organisms/wizard/types.mjs +1 -1
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +4 -4
- package/esm2022/lib/components/templates/layout/layout.component.mjs +4 -4
- package/esm2022/lib/components/templates/simple/simple.component.mjs +5 -5
- package/esm2022/lib/components/templates/simple/types.mjs +1 -1
- package/esm2022/lib/components/types.mjs +22 -16
- package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +180 -0
- package/esm2022/lib/services/confirmation-dialog/types.mjs +14 -0
- package/esm2022/lib/services/download.service.mjs +4 -4
- package/esm2022/lib/services/icons.service.mjs +4 -4
- package/esm2022/lib/services/in-app-browser.service.mjs +4 -4
- package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +1 -1
- package/esm2022/lib/services/lang-provider/content.mjs +1 -1
- package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +4 -4
- package/esm2022/lib/services/lang-provider/types.mjs +1 -1
- package/esm2022/lib/services/link-processor.service.mjs +4 -4
- package/esm2022/lib/services/local-storage.service.mjs +1 -1
- package/esm2022/lib/services/modal/modal.service.mjs +213 -0
- package/esm2022/lib/services/modal/simple-modal-content.component.mjs +133 -0
- package/esm2022/lib/services/modal/types.mjs +26 -0
- package/esm2022/lib/services/navigation.service.mjs +4 -4
- package/esm2022/lib/services/qr-generator/qr-generator.service.mjs +341 -0
- package/esm2022/lib/services/qr-generator/types.mjs +46 -0
- package/esm2022/lib/services/theme.service.mjs +4 -4
- package/esm2022/lib/services/toast.service.mjs +4 -4
- package/esm2022/lib/services/types.mjs +1 -1
- package/esm2022/lib/shared/constants/storage.mjs +1 -1
- package/esm2022/lib/shared/pipes/process-links.pipe.mjs +4 -4
- package/esm2022/lib/shared/utils/content.mjs +1 -1
- package/esm2022/lib/shared/utils/dom.mjs +1 -1
- package/esm2022/lib/shared/utils/form-defaults.mjs +1 -1
- package/esm2022/lib/shared/utils/simple-content.mjs +1 -1
- package/esm2022/lib/shared/utils/styles.mjs +1 -1
- package/esm2022/lib/shared/utils/text.mjs +1 -1
- package/esm2022/public-api.mjs +73 -3
- package/esm2022/valtech-components.mjs +1 -1
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs +136 -0
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs.map +1 -0
- package/fesm2022/valtech-components.mjs +14848 -4293
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/countdown/countdown.component.d.ts +38 -0
- package/lib/components/atoms/countdown/types.d.ts +108 -0
- package/lib/components/atoms/fab/fab.component.d.ts +16 -0
- package/lib/components/atoms/fab/types.d.ts +45 -0
- package/lib/components/atoms/price-tag/price-tag.component.d.ts +16 -0
- package/lib/components/atoms/price-tag/types.d.ts +59 -0
- package/lib/components/atoms/progress-ring/progress-ring.component.d.ts +20 -0
- package/lib/components/atoms/progress-ring/types.d.ts +24 -0
- package/lib/components/atoms/qr-code/qr-code.component.d.ts +36 -0
- package/lib/components/atoms/qr-code/types.d.ts +124 -0
- package/lib/components/atoms/skeleton/skeleton.component.d.ts +12 -0
- package/lib/components/atoms/skeleton/types.d.ts +29 -0
- package/lib/components/molecules/accordion/accordion.component.d.ts +19 -0
- package/lib/components/molecules/accordion/types.d.ts +47 -0
- package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +22 -0
- package/lib/components/molecules/breadcrumb/types.d.ts +45 -0
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +22 -0
- package/lib/components/molecules/chip-group/types.d.ts +65 -0
- package/lib/components/molecules/comment/comment.component.d.ts +42 -0
- package/lib/components/molecules/comment/types.d.ts +171 -0
- package/lib/components/molecules/currency-input/currency-input.component.d.ts +43 -0
- package/lib/components/molecules/currency-input/types.d.ts +96 -0
- package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +42 -0
- package/lib/components/molecules/date-range-input/types.d.ts +109 -0
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +51 -0
- package/lib/components/molecules/glow-card/types.d.ts +92 -0
- package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +34 -0
- package/lib/components/molecules/number-stepper/types.d.ts +88 -0
- package/lib/components/molecules/pagination/pagination.component.d.ts +15 -0
- package/lib/components/molecules/pagination/types.d.ts +41 -0
- package/lib/components/molecules/participant-card/participant-card.component.d.ts +26 -0
- package/lib/components/molecules/participant-card/types.d.ts +132 -0
- package/lib/components/molecules/phone-input/phone-input.component.d.ts +38 -0
- package/lib/components/molecules/phone-input/types.d.ts +98 -0
- package/lib/components/molecules/quote-box/quote-box.component.d.ts +26 -0
- package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +22 -0
- package/lib/components/molecules/raffle-status-card/types.d.ts +108 -0
- package/lib/components/molecules/range-input/range-input.component.d.ts +30 -0
- package/lib/components/molecules/range-input/types.d.ts +59 -0
- package/lib/components/molecules/rating/rating.component.d.ts +17 -0
- package/lib/components/molecules/rating/types.d.ts +41 -0
- package/lib/components/molecules/segment-control/segment-control.component.d.ts +30 -0
- package/lib/components/molecules/segment-control/types.d.ts +46 -0
- package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +22 -0
- package/lib/components/molecules/share-buttons/types.d.ts +108 -0
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +14 -0
- package/lib/components/molecules/stats-card/types.d.ts +41 -0
- package/lib/components/molecules/stepper/stepper.component.d.ts +21 -0
- package/lib/components/molecules/stepper/types.d.ts +66 -0
- package/lib/components/molecules/tabs/tabs.component.d.ts +17 -0
- package/lib/components/molecules/tabs/types.d.ts +45 -0
- package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +27 -0
- package/lib/components/molecules/textarea-input/types.d.ts +74 -0
- package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +41 -0
- package/lib/components/molecules/ticket-grid/types.d.ts +122 -0
- package/lib/components/molecules/timeline/timeline.component.d.ts +14 -0
- package/lib/components/molecules/timeline/types.d.ts +39 -0
- package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +24 -0
- package/lib/components/molecules/toggle-input/types.d.ts +30 -0
- package/lib/components/molecules/winner-display/types.d.ts +103 -0
- package/lib/components/molecules/winner-display/winner-display.component.d.ts +37 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/components/organisms/comment-section/comment-section.component.d.ts +52 -0
- package/lib/components/organisms/comment-section/types.d.ts +144 -0
- package/lib/components/organisms/data-table/data-table.component.d.ts +46 -0
- package/lib/components/organisms/data-table/types.d.ts +205 -0
- package/lib/components/types.d.ts +21 -15
- package/lib/services/confirmation-dialog/confirmation-dialog.service.d.ts +71 -0
- package/lib/services/confirmation-dialog/types.d.ts +61 -0
- package/lib/services/modal/modal.service.d.ts +98 -0
- package/lib/services/modal/simple-modal-content.component.d.ts +19 -0
- package/lib/services/modal/types.d.ts +155 -0
- package/lib/services/qr-generator/qr-generator.service.d.ts +115 -0
- package/lib/services/qr-generator/types.d.ts +141 -0
- package/package.json +11 -4
- package/public-api.d.ts +72 -2
- package/LICENSE +0 -21
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, Output, EventEmitter, inject, ElementRef, } from '@angular/core';
|
|
3
|
+
import { IonIcon } from '@ionic/angular/standalone';
|
|
4
|
+
import { addIcons } from 'ionicons';
|
|
5
|
+
import { trophyOutline, ticketOutline, giftOutline, locationOutline } from 'ionicons/icons';
|
|
6
|
+
import { LangService } from '../../../services/lang-provider/lang-provider.service';
|
|
7
|
+
import { AvatarComponent } from '../../atoms/avatar/avatar.component';
|
|
8
|
+
import { DEFAULT_WINNER_LABELS, } from './types';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
addIcons({ trophyOutline, ticketOutline, giftOutline, locationOutline });
|
|
11
|
+
/**
|
|
12
|
+
* val-winner-display
|
|
13
|
+
*
|
|
14
|
+
* A component for displaying raffle winners with celebration animations.
|
|
15
|
+
*
|
|
16
|
+
* @example Basic usage
|
|
17
|
+
* ```html
|
|
18
|
+
* <val-winner-display
|
|
19
|
+
* [props]="{
|
|
20
|
+
* winner: {
|
|
21
|
+
* name: 'Juan Pérez',
|
|
22
|
+
* ticketNumber: 42
|
|
23
|
+
* }
|
|
24
|
+
* }"
|
|
25
|
+
* ></val-winner-display>
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example Full celebration mode
|
|
29
|
+
* ```html
|
|
30
|
+
* <val-winner-display
|
|
31
|
+
* [props]="{
|
|
32
|
+
* winner: {
|
|
33
|
+
* name: 'María García',
|
|
34
|
+
* ticketNumber: 156,
|
|
35
|
+
* prize: 'iPhone 15 Pro',
|
|
36
|
+
* prizeValue: 25000,
|
|
37
|
+
* location: 'CDMX, México',
|
|
38
|
+
* avatar: { image: 'avatar.jpg' }
|
|
39
|
+
* },
|
|
40
|
+
* mode: 'celebration',
|
|
41
|
+
* showConfetti: true,
|
|
42
|
+
* animation: 'zoom',
|
|
43
|
+
* color: 'warning'
|
|
44
|
+
* }"
|
|
45
|
+
* (animationComplete)="onReveal($event)"
|
|
46
|
+
* ></val-winner-display>
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export class WinnerDisplayComponent {
|
|
50
|
+
constructor() {
|
|
51
|
+
this.animationComplete = new EventEmitter();
|
|
52
|
+
this.isAnimating = false;
|
|
53
|
+
this.isRevealed = false;
|
|
54
|
+
this.showConfetti = false;
|
|
55
|
+
this.confettiPieces = Array.from({ length: 50 }, (_, i) => i);
|
|
56
|
+
this.revealTimeout = null;
|
|
57
|
+
this.animationTimeout = null;
|
|
58
|
+
this.langService = inject(LangService);
|
|
59
|
+
this.elementRef = inject(ElementRef);
|
|
60
|
+
}
|
|
61
|
+
ngOnInit() {
|
|
62
|
+
if (this.props.autoPlay !== false) {
|
|
63
|
+
this.startReveal();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
ngAfterViewInit() {
|
|
67
|
+
// Additional setup if needed
|
|
68
|
+
}
|
|
69
|
+
ngOnDestroy() {
|
|
70
|
+
if (this.revealTimeout)
|
|
71
|
+
clearTimeout(this.revealTimeout);
|
|
72
|
+
if (this.animationTimeout)
|
|
73
|
+
clearTimeout(this.animationTimeout);
|
|
74
|
+
}
|
|
75
|
+
startReveal() {
|
|
76
|
+
const delay = this.props.revealDelay || 0;
|
|
77
|
+
this.revealTimeout = setTimeout(() => {
|
|
78
|
+
this.isAnimating = true;
|
|
79
|
+
const animationDuration = this.props.animationDuration || 800;
|
|
80
|
+
this.animationTimeout = setTimeout(() => {
|
|
81
|
+
this.isAnimating = false;
|
|
82
|
+
this.isRevealed = true;
|
|
83
|
+
if (this.props.showConfetti) {
|
|
84
|
+
this.showConfetti = true;
|
|
85
|
+
}
|
|
86
|
+
this.animationComplete.emit({
|
|
87
|
+
animation: this.props.animation || 'fade',
|
|
88
|
+
winner: this.props.winner,
|
|
89
|
+
});
|
|
90
|
+
}, animationDuration);
|
|
91
|
+
}, delay);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Manually trigger the reveal animation.
|
|
95
|
+
*/
|
|
96
|
+
reveal() {
|
|
97
|
+
this.isRevealed = false;
|
|
98
|
+
this.showConfetti = false;
|
|
99
|
+
this.startReveal();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Reset to initial state.
|
|
103
|
+
*/
|
|
104
|
+
reset() {
|
|
105
|
+
this.isAnimating = false;
|
|
106
|
+
this.isRevealed = false;
|
|
107
|
+
this.showConfetti = false;
|
|
108
|
+
}
|
|
109
|
+
formatTicketNumber() {
|
|
110
|
+
const num = this.props.winner.ticketNumber;
|
|
111
|
+
if (this.props.numberPadding) {
|
|
112
|
+
return String(num).padStart(this.props.numberPadding, '0');
|
|
113
|
+
}
|
|
114
|
+
return String(num);
|
|
115
|
+
}
|
|
116
|
+
formatPrizeValue() {
|
|
117
|
+
if (!this.props.winner.prizeValue)
|
|
118
|
+
return '';
|
|
119
|
+
return `$${this.props.winner.prizeValue.toLocaleString('es-MX')}`;
|
|
120
|
+
}
|
|
121
|
+
getRandomX(index) {
|
|
122
|
+
return `${(index * 17) % 100}%`;
|
|
123
|
+
}
|
|
124
|
+
getRandomRotation(index) {
|
|
125
|
+
return `${(index * 37) % 360}deg`;
|
|
126
|
+
}
|
|
127
|
+
getWinnerLabel() {
|
|
128
|
+
if (this.props.winnerLabelContentKey && this.props.contentClass) {
|
|
129
|
+
return this.langService.getText(this.props.contentClass, this.props.winnerLabelContentKey, this.props.winnerLabel || DEFAULT_WINNER_LABELS.winner);
|
|
130
|
+
}
|
|
131
|
+
return this.props.winnerLabel || DEFAULT_WINNER_LABELS.winner;
|
|
132
|
+
}
|
|
133
|
+
getTicketLabel() {
|
|
134
|
+
if (this.props.ticketLabelContentKey && this.props.contentClass) {
|
|
135
|
+
return this.langService.getText(this.props.contentClass, this.props.ticketLabelContentKey, this.props.ticketLabel || DEFAULT_WINNER_LABELS.ticket);
|
|
136
|
+
}
|
|
137
|
+
return this.props.ticketLabel || DEFAULT_WINNER_LABELS.ticket;
|
|
138
|
+
}
|
|
139
|
+
getPrizeLabel() {
|
|
140
|
+
if (this.props.prizeLabelContentKey && this.props.contentClass) {
|
|
141
|
+
return this.langService.getText(this.props.contentClass, this.props.prizeLabelContentKey, this.props.prizeLabel || DEFAULT_WINNER_LABELS.prize);
|
|
142
|
+
}
|
|
143
|
+
return this.props.prizeLabel || DEFAULT_WINNER_LABELS.prize;
|
|
144
|
+
}
|
|
145
|
+
getColor() {
|
|
146
|
+
if (this.props.color) {
|
|
147
|
+
return `var(--ion-color-${this.props.color})`;
|
|
148
|
+
}
|
|
149
|
+
return 'var(--ion-color-warning)';
|
|
150
|
+
}
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WinnerDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: WinnerDisplayComponent, isStandalone: true, selector: "val-winner-display", inputs: { props: "props" }, outputs: { animationComplete: "animationComplete" }, ngImport: i0, template: `
|
|
153
|
+
<div
|
|
154
|
+
class="winner-display-container"
|
|
155
|
+
[class]="props.cssClass"
|
|
156
|
+
[class.mode-compact]="props.mode === 'compact'"
|
|
157
|
+
[class.mode-standard]="props.mode === 'standard' || !props.mode"
|
|
158
|
+
[class.mode-full]="props.mode === 'full'"
|
|
159
|
+
[class.mode-celebration]="props.mode === 'celebration'"
|
|
160
|
+
[class.size-small]="props.size === 'small'"
|
|
161
|
+
[class.size-medium]="props.size === 'medium' || !props.size"
|
|
162
|
+
[class.size-large]="props.size === 'large'"
|
|
163
|
+
[class.bg-solid]="props.background === 'solid' || !props.background"
|
|
164
|
+
[class.bg-gradient]="props.background === 'gradient'"
|
|
165
|
+
[class.bg-transparent]="props.background === 'transparent'"
|
|
166
|
+
[class.animating]="isAnimating"
|
|
167
|
+
[class.revealed]="isRevealed"
|
|
168
|
+
[class.animation-fade]="props.animation === 'fade'"
|
|
169
|
+
[class.animation-zoom]="props.animation === 'zoom'"
|
|
170
|
+
[class.animation-slide]="props.animation === 'slide'"
|
|
171
|
+
[class.animation-spotlight]="props.animation === 'spotlight'"
|
|
172
|
+
[style.--winner-color]="getColor()"
|
|
173
|
+
[style.--animation-duration]="(props.animationDuration || 800) + 'ms'"
|
|
174
|
+
>
|
|
175
|
+
<!-- Confetti overlay -->
|
|
176
|
+
@if (props.showConfetti && (props.mode === 'celebration' || props.mode === 'full')) {
|
|
177
|
+
<div class="confetti-container" [class.active]="showConfetti">
|
|
178
|
+
@for (i of confettiPieces; track i) {
|
|
179
|
+
<div
|
|
180
|
+
class="confetti-piece"
|
|
181
|
+
[style.--delay]="i * 0.1 + 's'"
|
|
182
|
+
[style.--x]="getRandomX(i)"
|
|
183
|
+
[style.--rotation]="getRandomRotation(i)"
|
|
184
|
+
></div>
|
|
185
|
+
}
|
|
186
|
+
</div>
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
<!-- Trophy icon -->
|
|
190
|
+
@if (props.showTrophy !== false) {
|
|
191
|
+
<div class="trophy-container">
|
|
192
|
+
<ion-icon name="trophy-outline" class="trophy-icon"></ion-icon>
|
|
193
|
+
</div>
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
<!-- Winner label -->
|
|
197
|
+
<div class="winner-label">{{ getWinnerLabel() }}</div>
|
|
198
|
+
|
|
199
|
+
<!-- Winner info -->
|
|
200
|
+
<div class="winner-info">
|
|
201
|
+
<!-- Avatar -->
|
|
202
|
+
@if (props.winner.avatar && (props.mode === 'full' || props.mode === 'celebration')) {
|
|
203
|
+
<val-avatar [props]="props.winner.avatar" class="winner-avatar"></val-avatar>
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
<!-- Name -->
|
|
207
|
+
<h2 class="winner-name">{{ props.winner.name }}</h2>
|
|
208
|
+
|
|
209
|
+
<!-- Location -->
|
|
210
|
+
@if (props.showLocation !== false && props.winner.location) {
|
|
211
|
+
<div class="winner-location">
|
|
212
|
+
<ion-icon name="location-outline"></ion-icon>
|
|
213
|
+
<span>{{ props.winner.location }}</span>
|
|
214
|
+
</div>
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
<!-- Ticket number -->
|
|
218
|
+
@if (props.showTicketNumber !== false) {
|
|
219
|
+
<div class="ticket-info">
|
|
220
|
+
<ion-icon name="ticket-outline"></ion-icon>
|
|
221
|
+
<span class="ticket-label">{{ getTicketLabel() }}</span>
|
|
222
|
+
<span class="ticket-number">{{ formatTicketNumber() }}</span>
|
|
223
|
+
</div>
|
|
224
|
+
}
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
<!-- Prize info -->
|
|
228
|
+
@if (props.showPrize !== false && props.winner.prize) {
|
|
229
|
+
<div class="prize-info">
|
|
230
|
+
@if (props.winner.prizeImage && (props.mode === 'full' || props.mode === 'celebration')) {
|
|
231
|
+
<div class="prize-image">
|
|
232
|
+
<img [src]="props.winner.prizeImage" [alt]="props.winner.prize" />
|
|
233
|
+
</div>
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
<div class="prize-details">
|
|
237
|
+
<div class="prize-header">
|
|
238
|
+
<ion-icon name="gift-outline"></ion-icon>
|
|
239
|
+
<span class="prize-label">{{ getPrizeLabel() }}</span>
|
|
240
|
+
</div>
|
|
241
|
+
<h3 class="prize-name">{{ props.winner.prize }}</h3>
|
|
242
|
+
|
|
243
|
+
@if (props.winner.prizeDescription) {
|
|
244
|
+
<p class="prize-description">{{ props.winner.prizeDescription }}</p>
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@if (props.showPrizeValue !== false && props.winner.prizeValue) {
|
|
248
|
+
<div class="prize-value">
|
|
249
|
+
{{ formatPrizeValue() }}
|
|
250
|
+
</div>
|
|
251
|
+
}
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
}
|
|
255
|
+
</div>
|
|
256
|
+
`, isInline: true, styles: [":host{display:block}.winner-display-container{--winner-color: var(--ion-color-warning);--animation-duration: .8s;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 24px;border-radius:16px;overflow:hidden}.bg-solid{background:var(--ion-color-light);border:2px solid var(--winner-color)}.bg-gradient{background:linear-gradient(135deg,var(--ion-color-light) 0%,rgba(var(--ion-color-warning-rgb),.1) 100%);border:2px solid var(--winner-color)}.bg-transparent{background:transparent}.trophy-container{margin-bottom:16px}.trophy-icon{font-size:56px;color:var(--winner-color);filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.winner-label{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--winner-color);margin-bottom:8px}.winner-info{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.winner-avatar{margin-bottom:8px}.winner-name{font-size:28px;font-weight:700;color:var(--ion-color-dark);margin:0;line-height:1.2}.winner-location{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--ion-color-medium-shade)}.winner-location ion-icon{font-size:16px}.ticket-info{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(var(--ion-color-dark-rgb),.05);border-radius:24px;margin-top:8px}.ticket-info ion-icon{font-size:20px;color:var(--winner-color)}.ticket-label{font-size:14px;color:var(--ion-color-medium-shade)}.ticket-number{font-size:18px;font-weight:700;color:var(--ion-color-dark);font-variant-numeric:tabular-nums}.prize-info{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;background:var(--ion-color-light-shade);border-radius:12px;width:100%;max-width:400px}.prize-image{width:120px;height:120px;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 4px 12px #0000001a}.prize-image img{width:100%;height:100%;object-fit:cover}.prize-details{display:flex;flex-direction:column;align-items:center;gap:4px}.prize-header{display:flex;align-items:center;gap:4px;color:var(--ion-color-medium-shade);font-size:12px}.prize-header ion-icon{font-size:16px;color:var(--winner-color)}.prize-label{text-transform:uppercase;letter-spacing:1px}.prize-name{font-size:20px;font-weight:600;color:var(--ion-color-dark);margin:0}.prize-description{font-size:14px;color:var(--ion-color-medium-shade);margin:4px 0 0}.prize-value{font-size:24px;font-weight:700;color:var(--winner-color);margin-top:8px}.confetti-container{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .3s}.confetti-container.active{opacity:1}.confetti-piece{position:absolute;width:10px;height:10px;top:-20px;left:var(--x, 50%);background:var(--winner-color);opacity:0;animation:confetti-fall 3s ease-out var(--delay, 0s) forwards}.confetti-piece:nth-child(2n){background:var(--ion-color-primary);width:8px;height:12px}.confetti-piece:nth-child(3n){background:var(--ion-color-danger);border-radius:50%}.confetti-piece:nth-child(5n){background:var(--ion-color-success);width:6px;height:14px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(400px) rotate(var(--rotation, 720deg))}}.animation-fade:not(.revealed) .winner-info,.animation-fade:not(.revealed) .prize-info{opacity:0}.animation-fade.animating .winner-info,.animation-fade.animating .prize-info{animation:fade-in var(--animation-duration) ease-out forwards}.animation-zoom:not(.revealed) .winner-info,.animation-zoom:not(.revealed) .prize-info{opacity:0;transform:scale(.5)}.animation-zoom.animating .winner-info,.animation-zoom.animating .prize-info{animation:zoom-in var(--animation-duration) cubic-bezier(.34,1.56,.64,1) forwards}.animation-slide:not(.revealed) .winner-info,.animation-slide:not(.revealed) .prize-info{opacity:0;transform:translateY(40px)}.animation-slide.animating .winner-info,.animation-slide.animating .prize-info{animation:slide-up var(--animation-duration) ease-out forwards}.animation-slide.animating .prize-info{animation-delay:.2s}.animation-spotlight:not(.revealed) .winner-info,.animation-spotlight:not(.revealed) .prize-info{opacity:0}.animation-spotlight:not(.revealed):before{content:\"\";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.8) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,-50%)}.animation-spotlight.animating:before{animation:spotlight var(--animation-duration) ease-out forwards}.animation-spotlight.animating .winner-info,.animation-spotlight.animating .prize-info{animation:fade-in calc(var(--animation-duration) * .5) ease-out calc(var(--animation-duration) * .5) forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes spotlight{0%{width:0;height:0}to{width:200%;height:200%}}.size-small{padding:20px 16px}.size-small .trophy-icon{font-size:40px}.size-small .winner-label{font-size:12px}.size-small .winner-name{font-size:20px}.size-small .ticket-number,.size-small .prize-name{font-size:16px}.size-small .prize-value{font-size:18px}.size-large{padding:48px 32px}.size-large .trophy-icon{font-size:80px}.size-large .winner-label{font-size:18px;letter-spacing:3px}.size-large .winner-name{font-size:40px}.size-large .ticket-number{font-size:24px}.size-large .prize-image{width:160px;height:160px}.size-large .prize-name{font-size:28px}.size-large .prize-value{font-size:32px}.mode-compact{padding:16px}.mode-compact .trophy-container,.mode-compact .prize-info{display:none}.mode-compact .winner-label{font-size:11px;margin-bottom:4px}.mode-compact .winner-name{font-size:18px}.mode-celebration .trophy-icon{animation:trophy-bounce 1s ease-in-out infinite}.mode-celebration.revealed .winner-name{animation:glow 2s ease-in-out infinite}@keyframes trophy-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glow{0%,to{text-shadow:0 0 10px rgba(var(--ion-color-warning-rgb),.3)}50%{text-shadow:0 0 20px rgba(var(--ion-color-warning-rgb),.6)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
257
|
+
}
|
|
258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WinnerDisplayComponent, decorators: [{
|
|
259
|
+
type: Component,
|
|
260
|
+
args: [{ selector: 'val-winner-display', standalone: true, imports: [CommonModule, IonIcon, AvatarComponent], template: `
|
|
261
|
+
<div
|
|
262
|
+
class="winner-display-container"
|
|
263
|
+
[class]="props.cssClass"
|
|
264
|
+
[class.mode-compact]="props.mode === 'compact'"
|
|
265
|
+
[class.mode-standard]="props.mode === 'standard' || !props.mode"
|
|
266
|
+
[class.mode-full]="props.mode === 'full'"
|
|
267
|
+
[class.mode-celebration]="props.mode === 'celebration'"
|
|
268
|
+
[class.size-small]="props.size === 'small'"
|
|
269
|
+
[class.size-medium]="props.size === 'medium' || !props.size"
|
|
270
|
+
[class.size-large]="props.size === 'large'"
|
|
271
|
+
[class.bg-solid]="props.background === 'solid' || !props.background"
|
|
272
|
+
[class.bg-gradient]="props.background === 'gradient'"
|
|
273
|
+
[class.bg-transparent]="props.background === 'transparent'"
|
|
274
|
+
[class.animating]="isAnimating"
|
|
275
|
+
[class.revealed]="isRevealed"
|
|
276
|
+
[class.animation-fade]="props.animation === 'fade'"
|
|
277
|
+
[class.animation-zoom]="props.animation === 'zoom'"
|
|
278
|
+
[class.animation-slide]="props.animation === 'slide'"
|
|
279
|
+
[class.animation-spotlight]="props.animation === 'spotlight'"
|
|
280
|
+
[style.--winner-color]="getColor()"
|
|
281
|
+
[style.--animation-duration]="(props.animationDuration || 800) + 'ms'"
|
|
282
|
+
>
|
|
283
|
+
<!-- Confetti overlay -->
|
|
284
|
+
@if (props.showConfetti && (props.mode === 'celebration' || props.mode === 'full')) {
|
|
285
|
+
<div class="confetti-container" [class.active]="showConfetti">
|
|
286
|
+
@for (i of confettiPieces; track i) {
|
|
287
|
+
<div
|
|
288
|
+
class="confetti-piece"
|
|
289
|
+
[style.--delay]="i * 0.1 + 's'"
|
|
290
|
+
[style.--x]="getRandomX(i)"
|
|
291
|
+
[style.--rotation]="getRandomRotation(i)"
|
|
292
|
+
></div>
|
|
293
|
+
}
|
|
294
|
+
</div>
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
<!-- Trophy icon -->
|
|
298
|
+
@if (props.showTrophy !== false) {
|
|
299
|
+
<div class="trophy-container">
|
|
300
|
+
<ion-icon name="trophy-outline" class="trophy-icon"></ion-icon>
|
|
301
|
+
</div>
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
<!-- Winner label -->
|
|
305
|
+
<div class="winner-label">{{ getWinnerLabel() }}</div>
|
|
306
|
+
|
|
307
|
+
<!-- Winner info -->
|
|
308
|
+
<div class="winner-info">
|
|
309
|
+
<!-- Avatar -->
|
|
310
|
+
@if (props.winner.avatar && (props.mode === 'full' || props.mode === 'celebration')) {
|
|
311
|
+
<val-avatar [props]="props.winner.avatar" class="winner-avatar"></val-avatar>
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
<!-- Name -->
|
|
315
|
+
<h2 class="winner-name">{{ props.winner.name }}</h2>
|
|
316
|
+
|
|
317
|
+
<!-- Location -->
|
|
318
|
+
@if (props.showLocation !== false && props.winner.location) {
|
|
319
|
+
<div class="winner-location">
|
|
320
|
+
<ion-icon name="location-outline"></ion-icon>
|
|
321
|
+
<span>{{ props.winner.location }}</span>
|
|
322
|
+
</div>
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
<!-- Ticket number -->
|
|
326
|
+
@if (props.showTicketNumber !== false) {
|
|
327
|
+
<div class="ticket-info">
|
|
328
|
+
<ion-icon name="ticket-outline"></ion-icon>
|
|
329
|
+
<span class="ticket-label">{{ getTicketLabel() }}</span>
|
|
330
|
+
<span class="ticket-number">{{ formatTicketNumber() }}</span>
|
|
331
|
+
</div>
|
|
332
|
+
}
|
|
333
|
+
</div>
|
|
334
|
+
|
|
335
|
+
<!-- Prize info -->
|
|
336
|
+
@if (props.showPrize !== false && props.winner.prize) {
|
|
337
|
+
<div class="prize-info">
|
|
338
|
+
@if (props.winner.prizeImage && (props.mode === 'full' || props.mode === 'celebration')) {
|
|
339
|
+
<div class="prize-image">
|
|
340
|
+
<img [src]="props.winner.prizeImage" [alt]="props.winner.prize" />
|
|
341
|
+
</div>
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
<div class="prize-details">
|
|
345
|
+
<div class="prize-header">
|
|
346
|
+
<ion-icon name="gift-outline"></ion-icon>
|
|
347
|
+
<span class="prize-label">{{ getPrizeLabel() }}</span>
|
|
348
|
+
</div>
|
|
349
|
+
<h3 class="prize-name">{{ props.winner.prize }}</h3>
|
|
350
|
+
|
|
351
|
+
@if (props.winner.prizeDescription) {
|
|
352
|
+
<p class="prize-description">{{ props.winner.prizeDescription }}</p>
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
@if (props.showPrizeValue !== false && props.winner.prizeValue) {
|
|
356
|
+
<div class="prize-value">
|
|
357
|
+
{{ formatPrizeValue() }}
|
|
358
|
+
</div>
|
|
359
|
+
}
|
|
360
|
+
</div>
|
|
361
|
+
</div>
|
|
362
|
+
}
|
|
363
|
+
</div>
|
|
364
|
+
`, styles: [":host{display:block}.winner-display-container{--winner-color: var(--ion-color-warning);--animation-duration: .8s;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 24px;border-radius:16px;overflow:hidden}.bg-solid{background:var(--ion-color-light);border:2px solid var(--winner-color)}.bg-gradient{background:linear-gradient(135deg,var(--ion-color-light) 0%,rgba(var(--ion-color-warning-rgb),.1) 100%);border:2px solid var(--winner-color)}.bg-transparent{background:transparent}.trophy-container{margin-bottom:16px}.trophy-icon{font-size:56px;color:var(--winner-color);filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.winner-label{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--winner-color);margin-bottom:8px}.winner-info{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.winner-avatar{margin-bottom:8px}.winner-name{font-size:28px;font-weight:700;color:var(--ion-color-dark);margin:0;line-height:1.2}.winner-location{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--ion-color-medium-shade)}.winner-location ion-icon{font-size:16px}.ticket-info{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(var(--ion-color-dark-rgb),.05);border-radius:24px;margin-top:8px}.ticket-info ion-icon{font-size:20px;color:var(--winner-color)}.ticket-label{font-size:14px;color:var(--ion-color-medium-shade)}.ticket-number{font-size:18px;font-weight:700;color:var(--ion-color-dark);font-variant-numeric:tabular-nums}.prize-info{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;background:var(--ion-color-light-shade);border-radius:12px;width:100%;max-width:400px}.prize-image{width:120px;height:120px;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 4px 12px #0000001a}.prize-image img{width:100%;height:100%;object-fit:cover}.prize-details{display:flex;flex-direction:column;align-items:center;gap:4px}.prize-header{display:flex;align-items:center;gap:4px;color:var(--ion-color-medium-shade);font-size:12px}.prize-header ion-icon{font-size:16px;color:var(--winner-color)}.prize-label{text-transform:uppercase;letter-spacing:1px}.prize-name{font-size:20px;font-weight:600;color:var(--ion-color-dark);margin:0}.prize-description{font-size:14px;color:var(--ion-color-medium-shade);margin:4px 0 0}.prize-value{font-size:24px;font-weight:700;color:var(--winner-color);margin-top:8px}.confetti-container{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .3s}.confetti-container.active{opacity:1}.confetti-piece{position:absolute;width:10px;height:10px;top:-20px;left:var(--x, 50%);background:var(--winner-color);opacity:0;animation:confetti-fall 3s ease-out var(--delay, 0s) forwards}.confetti-piece:nth-child(2n){background:var(--ion-color-primary);width:8px;height:12px}.confetti-piece:nth-child(3n){background:var(--ion-color-danger);border-radius:50%}.confetti-piece:nth-child(5n){background:var(--ion-color-success);width:6px;height:14px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(400px) rotate(var(--rotation, 720deg))}}.animation-fade:not(.revealed) .winner-info,.animation-fade:not(.revealed) .prize-info{opacity:0}.animation-fade.animating .winner-info,.animation-fade.animating .prize-info{animation:fade-in var(--animation-duration) ease-out forwards}.animation-zoom:not(.revealed) .winner-info,.animation-zoom:not(.revealed) .prize-info{opacity:0;transform:scale(.5)}.animation-zoom.animating .winner-info,.animation-zoom.animating .prize-info{animation:zoom-in var(--animation-duration) cubic-bezier(.34,1.56,.64,1) forwards}.animation-slide:not(.revealed) .winner-info,.animation-slide:not(.revealed) .prize-info{opacity:0;transform:translateY(40px)}.animation-slide.animating .winner-info,.animation-slide.animating .prize-info{animation:slide-up var(--animation-duration) ease-out forwards}.animation-slide.animating .prize-info{animation-delay:.2s}.animation-spotlight:not(.revealed) .winner-info,.animation-spotlight:not(.revealed) .prize-info{opacity:0}.animation-spotlight:not(.revealed):before{content:\"\";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.8) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,-50%)}.animation-spotlight.animating:before{animation:spotlight var(--animation-duration) ease-out forwards}.animation-spotlight.animating .winner-info,.animation-spotlight.animating .prize-info{animation:fade-in calc(var(--animation-duration) * .5) ease-out calc(var(--animation-duration) * .5) forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes spotlight{0%{width:0;height:0}to{width:200%;height:200%}}.size-small{padding:20px 16px}.size-small .trophy-icon{font-size:40px}.size-small .winner-label{font-size:12px}.size-small .winner-name{font-size:20px}.size-small .ticket-number,.size-small .prize-name{font-size:16px}.size-small .prize-value{font-size:18px}.size-large{padding:48px 32px}.size-large .trophy-icon{font-size:80px}.size-large .winner-label{font-size:18px;letter-spacing:3px}.size-large .winner-name{font-size:40px}.size-large .ticket-number{font-size:24px}.size-large .prize-image{width:160px;height:160px}.size-large .prize-name{font-size:28px}.size-large .prize-value{font-size:32px}.mode-compact{padding:16px}.mode-compact .trophy-container,.mode-compact .prize-info{display:none}.mode-compact .winner-label{font-size:11px;margin-bottom:4px}.mode-compact .winner-name{font-size:18px}.mode-celebration .trophy-icon{animation:trophy-bounce 1s ease-in-out infinite}.mode-celebration.revealed .winner-name{animation:glow 2s ease-in-out infinite}@keyframes trophy-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glow{0%,to{text-shadow:0 0 10px rgba(var(--ion-color-warning-rgb),.3)}50%{text-shadow:0 0 20px rgba(var(--ion-color-warning-rgb),.6)}}\n"] }]
|
|
365
|
+
}], propDecorators: { props: [{
|
|
366
|
+
type: Input
|
|
367
|
+
}], animationComplete: [{
|
|
368
|
+
type: Output
|
|
369
|
+
}] } });
|
|
370
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lubmVyLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy93aW5uZXItZGlzcGxheS93aW5uZXItZGlzcGxheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBR1osTUFBTSxFQUNOLFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBR0wscUJBQXFCLEdBQ3RCLE1BQU0sU0FBUyxDQUFDOztBQUVqQixRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBaUh6RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFySm5DO1FBd0pZLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBRTlFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsbUJBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakQsa0JBQWEsR0FBeUMsSUFBSSxDQUFDO1FBQzNELHFCQUFnQixHQUF5QyxJQUFJLENBQUM7UUFDOUQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQXVIekM7SUFySEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLDZCQUE2QjtJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFFeEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsQ0FBQztZQUU5RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUV2QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixDQUFDO2dCQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7b0JBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNO29CQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2lCQUMxQixDQUFDLENBQUM7WUFDTCxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN4QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3QyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixPQUFPLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsT0FBTyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FDdkQsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztJQUNoRSxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQ3ZELENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7SUFDaEUsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUNyRCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQzsrR0FuSVUsc0JBQXNCO21HQUF0QixzQkFBc0IsK0pBakp2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3R1QsdW1NQXpHUyxZQUFZLCtCQUFFLE9BQU8sMkpBQUUsZUFBZTs7NEZBa0pyQyxzQkFBc0I7a0JBckpsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxZQUN2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3R1Q7OEJBMENRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBpbmplY3QsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyB0cm9waHlPdXRsaW5lLCB0aWNrZXRPdXRsaW5lLCBnaWZ0T3V0bGluZSwgbG9jYXRpb25PdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBXaW5uZXJEaXNwbGF5TWV0YWRhdGEsXG4gIFdpbm5lckRpc3BsYXlBbmltYXRpb25FdmVudCxcbiAgREVGQVVMVF9XSU5ORVJfTEFCRUxTLFxufSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyB0cm9waHlPdXRsaW5lLCB0aWNrZXRPdXRsaW5lLCBnaWZ0T3V0bGluZSwgbG9jYXRpb25PdXRsaW5lIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtd2lubmVyLWRpc3BsYXknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBBdmF0YXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwid2lubmVyLWRpc3BsYXktY29udGFpbmVyXCJcbiAgICAgIFtjbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiXG4gICAgICBbY2xhc3MubW9kZS1jb21wYWN0XT1cInByb3BzLm1vZGUgPT09ICdjb21wYWN0J1wiXG4gICAgICBbY2xhc3MubW9kZS1zdGFuZGFyZF09XCJwcm9wcy5tb2RlID09PSAnc3RhbmRhcmQnIHx8ICFwcm9wcy5tb2RlXCJcbiAgICAgIFtjbGFzcy5tb2RlLWZ1bGxdPVwicHJvcHMubW9kZSA9PT0gJ2Z1bGwnXCJcbiAgICAgIFtjbGFzcy5tb2RlLWNlbGVicmF0aW9uXT1cInByb3BzLm1vZGUgPT09ICdjZWxlYnJhdGlvbidcIlxuICAgICAgW2NsYXNzLnNpemUtc21hbGxdPVwicHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1tZWRpdW1dPVwicHJvcHMuc2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLnNpemVcIlxuICAgICAgW2NsYXNzLnNpemUtbGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3MuYmctc29saWRdPVwicHJvcHMuYmFja2dyb3VuZCA9PT0gJ3NvbGlkJyB8fCAhcHJvcHMuYmFja2dyb3VuZFwiXG4gICAgICBbY2xhc3MuYmctZ3JhZGllbnRdPVwicHJvcHMuYmFja2dyb3VuZCA9PT0gJ2dyYWRpZW50J1wiXG4gICAgICBbY2xhc3MuYmctdHJhbnNwYXJlbnRdPVwicHJvcHMuYmFja2dyb3VuZCA9PT0gJ3RyYW5zcGFyZW50J1wiXG4gICAgICBbY2xhc3MuYW5pbWF0aW5nXT1cImlzQW5pbWF0aW5nXCJcbiAgICAgIFtjbGFzcy5yZXZlYWxlZF09XCJpc1JldmVhbGVkXCJcbiAgICAgIFtjbGFzcy5hbmltYXRpb24tZmFkZV09XCJwcm9wcy5hbmltYXRpb24gPT09ICdmYWRlJ1wiXG4gICAgICBbY2xhc3MuYW5pbWF0aW9uLXpvb21dPVwicHJvcHMuYW5pbWF0aW9uID09PSAnem9vbSdcIlxuICAgICAgW2NsYXNzLmFuaW1hdGlvbi1zbGlkZV09XCJwcm9wcy5hbmltYXRpb24gPT09ICdzbGlkZSdcIlxuICAgICAgW2NsYXNzLmFuaW1hdGlvbi1zcG90bGlnaHRdPVwicHJvcHMuYW5pbWF0aW9uID09PSAnc3BvdGxpZ2h0J1wiXG4gICAgICBbc3R5bGUuLS13aW5uZXItY29sb3JdPVwiZ2V0Q29sb3IoKVwiXG4gICAgICBbc3R5bGUuLS1hbmltYXRpb24tZHVyYXRpb25dPVwiKHByb3BzLmFuaW1hdGlvbkR1cmF0aW9uIHx8IDgwMCkgKyAnbXMnXCJcbiAgICA+XG4gICAgICA8IS0tIENvbmZldHRpIG92ZXJsYXkgLS0+XG4gICAgICBAaWYgKHByb3BzLnNob3dDb25mZXR0aSAmJiAocHJvcHMubW9kZSA9PT0gJ2NlbGVicmF0aW9uJyB8fCBwcm9wcy5tb2RlID09PSAnZnVsbCcpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb25mZXR0aS1jb250YWluZXJcIiBbY2xhc3MuYWN0aXZlXT1cInNob3dDb25mZXR0aVwiPlxuICAgICAgICAgIEBmb3IgKGkgb2YgY29uZmV0dGlQaWVjZXM7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb25mZXR0aS1waWVjZVwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWRlbGF5XT1cImkgKiAwLjEgKyAncydcIlxuICAgICAgICAgICAgICBbc3R5bGUuLS14XT1cImdldFJhbmRvbVgoaSlcIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1yb3RhdGlvbl09XCJnZXRSYW5kb21Sb3RhdGlvbihpKVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBUcm9waHkgaWNvbiAtLT5cbiAgICAgIEBpZiAocHJvcHMuc2hvd1Ryb3BoeSAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyb3BoeS1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInRyb3BoeS1vdXRsaW5lXCIgY2xhc3M9XCJ0cm9waHktaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8IS0tIFdpbm5lciBsYWJlbCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aW5uZXItbGFiZWxcIj57eyBnZXRXaW5uZXJMYWJlbCgpIH19PC9kaXY+XG5cbiAgICAgIDwhLS0gV2lubmVyIGluZm8gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwid2lubmVyLWluZm9cIj5cbiAgICAgICAgPCEtLSBBdmF0YXIgLS0+XG4gICAgICAgIEBpZiAocHJvcHMud2lubmVyLmF2YXRhciAmJiAocHJvcHMubW9kZSA9PT0gJ2Z1bGwnIHx8IHByb3BzLm1vZGUgPT09ICdjZWxlYnJhdGlvbicpKSB7XG4gICAgICAgICAgPHZhbC1hdmF0YXIgW3Byb3BzXT1cInByb3BzLndpbm5lci5hdmF0YXJcIiBjbGFzcz1cIndpbm5lci1hdmF0YXJcIj48L3ZhbC1hdmF0YXI+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIE5hbWUgLS0+XG4gICAgICAgIDxoMiBjbGFzcz1cIndpbm5lci1uYW1lXCI+e3sgcHJvcHMud2lubmVyLm5hbWUgfX08L2gyPlxuXG4gICAgICAgIDwhLS0gTG9jYXRpb24gLS0+XG4gICAgICAgIEBpZiAocHJvcHMuc2hvd0xvY2F0aW9uICE9PSBmYWxzZSAmJiBwcm9wcy53aW5uZXIubG9jYXRpb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lubmVyLWxvY2F0aW9uXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImxvY2F0aW9uLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPHNwYW4+e3sgcHJvcHMud2lubmVyLmxvY2F0aW9uIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBUaWNrZXQgbnVtYmVyIC0tPlxuICAgICAgICBAaWYgKHByb3BzLnNob3dUaWNrZXROdW1iZXIgIT09IGZhbHNlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1pbmZvXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInRpY2tldC1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGlja2V0LWxhYmVsXCI+e3sgZ2V0VGlja2V0TGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGlja2V0LW51bWJlclwiPnt7IGZvcm1hdFRpY2tldE51bWJlcigpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBQcml6ZSBpbmZvIC0tPlxuICAgICAgQGlmIChwcm9wcy5zaG93UHJpemUgIT09IGZhbHNlICYmIHByb3BzLndpbm5lci5wcml6ZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpemUtaW5mb1wiPlxuICAgICAgICAgIEBpZiAocHJvcHMud2lubmVyLnByaXplSW1hZ2UgJiYgKHByb3BzLm1vZGUgPT09ICdmdWxsJyB8fCBwcm9wcy5tb2RlID09PSAnY2VsZWJyYXRpb24nKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaXplLWltYWdlXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9wcy53aW5uZXIucHJpemVJbWFnZVwiIFthbHRdPVwicHJvcHMud2lubmVyLnByaXplXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcml6ZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpemUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZ2lmdC1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcml6ZS1sYWJlbFwiPnt7IGdldFByaXplTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwicHJpemUtbmFtZVwiPnt7IHByb3BzLndpbm5lci5wcml6ZSB9fTwvaDM+XG5cbiAgICAgICAgICAgIEBpZiAocHJvcHMud2lubmVyLnByaXplRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwcml6ZS1kZXNjcmlwdGlvblwiPnt7IHByb3BzLndpbm5lci5wcml6ZURlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKHByb3BzLnNob3dQcml6ZVZhbHVlICE9PSBmYWxzZSAmJiBwcm9wcy53aW5uZXIucHJpemVWYWx1ZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpemUtdmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyBmb3JtYXRQcml6ZVZhbHVlKCkgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi93aW5uZXItZGlzcGxheS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXdpbm5lci1kaXNwbGF5XG4gKlxuICogQSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgcmFmZmxlIHdpbm5lcnMgd2l0aCBjZWxlYnJhdGlvbiBhbmltYXRpb25zLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXdpbm5lci1kaXNwbGF5XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgd2lubmVyOiB7XG4gKiAgICAgICBuYW1lOiAnSnVhbiBQw6lyZXonLFxuICogICAgICAgdGlja2V0TnVtYmVyOiA0MlxuICogICAgIH1cbiAqICAgfVwiXG4gKiA+PC92YWwtd2lubmVyLWRpc3BsYXk+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBGdWxsIGNlbGVicmF0aW9uIG1vZGVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtd2lubmVyLWRpc3BsYXlcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB3aW5uZXI6IHtcbiAqICAgICAgIG5hbWU6ICdNYXLDrWEgR2FyY8OtYScsXG4gKiAgICAgICB0aWNrZXROdW1iZXI6IDE1NixcbiAqICAgICAgIHByaXplOiAnaVBob25lIDE1IFBybycsXG4gKiAgICAgICBwcml6ZVZhbHVlOiAyNTAwMCxcbiAqICAgICAgIGxvY2F0aW9uOiAnQ0RNWCwgTcOpeGljbycsXG4gKiAgICAgICBhdmF0YXI6IHsgaW1hZ2U6ICdhdmF0YXIuanBnJyB9XG4gKiAgICAgfSxcbiAqICAgICBtb2RlOiAnY2VsZWJyYXRpb24nLFxuICogICAgIHNob3dDb25mZXR0aTogdHJ1ZSxcbiAqICAgICBhbmltYXRpb246ICd6b29tJyxcbiAqICAgICBjb2xvcjogJ3dhcm5pbmcnXG4gKiAgIH1cIlxuICogICAoYW5pbWF0aW9uQ29tcGxldGUpPVwib25SZXZlYWwoJGV2ZW50KVwiXG4gKiA+PC92YWwtd2lubmVyLWRpc3BsYXk+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFdpbm5lckRpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzOiBXaW5uZXJEaXNwbGF5TWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIGFuaW1hdGlvbkNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxXaW5uZXJEaXNwbGF5QW5pbWF0aW9uRXZlbnQ+KCk7XG5cbiAgaXNBbmltYXRpbmcgPSBmYWxzZTtcbiAgaXNSZXZlYWxlZCA9IGZhbHNlO1xuICBzaG93Q29uZmV0dGkgPSBmYWxzZTtcbiAgY29uZmV0dGlQaWVjZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA1MCB9LCAoXywgaSkgPT4gaSk7XG5cbiAgcHJpdmF0ZSByZXZlYWxUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGFuaW1hdGlvblRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbGFuZ1NlcnZpY2UgPSBpbmplY3QoTGFuZ1NlcnZpY2UpO1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b1BsYXkgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0YXJ0UmV2ZWFsKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIEFkZGl0aW9uYWwgc2V0dXAgaWYgbmVlZGVkXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXZlYWxUaW1lb3V0KSBjbGVhclRpbWVvdXQodGhpcy5yZXZlYWxUaW1lb3V0KTtcbiAgICBpZiAodGhpcy5hbmltYXRpb25UaW1lb3V0KSBjbGVhclRpbWVvdXQodGhpcy5hbmltYXRpb25UaW1lb3V0KTtcbiAgfVxuXG4gIHN0YXJ0UmV2ZWFsKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlbGF5ID0gdGhpcy5wcm9wcy5yZXZlYWxEZWxheSB8fCAwO1xuXG4gICAgdGhpcy5yZXZlYWxUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzQW5pbWF0aW5nID0gdHJ1ZTtcblxuICAgICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLnByb3BzLmFuaW1hdGlvbkR1cmF0aW9uIHx8IDgwMDtcblxuICAgICAgdGhpcy5hbmltYXRpb25UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1JldmVhbGVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5zaG93Q29uZmV0dGkpIHtcbiAgICAgICAgICB0aGlzLnNob3dDb25mZXR0aSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFuaW1hdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICAgIGFuaW1hdGlvbjogdGhpcy5wcm9wcy5hbmltYXRpb24gfHwgJ2ZhZGUnLFxuICAgICAgICAgIHdpbm5lcjogdGhpcy5wcm9wcy53aW5uZXIsXG4gICAgICAgIH0pO1xuICAgICAgfSwgYW5pbWF0aW9uRHVyYXRpb24pO1xuICAgIH0sIGRlbGF5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW51YWxseSB0cmlnZ2VyIHRoZSByZXZlYWwgYW5pbWF0aW9uLlxuICAgKi9cbiAgcmV2ZWFsKCk6IHZvaWQge1xuICAgIHRoaXMuaXNSZXZlYWxlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0NvbmZldHRpID0gZmFsc2U7XG4gICAgdGhpcy5zdGFydFJldmVhbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRvIGluaXRpYWwgc3RhdGUuXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzQW5pbWF0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc1JldmVhbGVkID0gZmFsc2U7XG4gICAgdGhpcy5zaG93Q29uZmV0dGkgPSBmYWxzZTtcbiAgfVxuXG4gIGZvcm1hdFRpY2tldE51bWJlcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IG51bSA9IHRoaXMucHJvcHMud2lubmVyLnRpY2tldE51bWJlcjtcbiAgICBpZiAodGhpcy5wcm9wcy5udW1iZXJQYWRkaW5nKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKG51bSkucGFkU3RhcnQodGhpcy5wcm9wcy5udW1iZXJQYWRkaW5nLCAnMCcpO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG4gIH1cblxuICBmb3JtYXRQcml6ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnByb3BzLndpbm5lci5wcml6ZVZhbHVlKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGAkJHt0aGlzLnByb3BzLndpbm5lci5wcml6ZVZhbHVlLnRvTG9jYWxlU3RyaW5nKCdlcy1NWCcpfWA7XG4gIH1cblxuICBnZXRSYW5kb21YKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHsoaW5kZXggKiAxNykgJSAxMDB9JWA7XG4gIH1cblxuICBnZXRSYW5kb21Sb3RhdGlvbihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7KGluZGV4ICogMzcpICUgMzYwfWRlZ2A7XG4gIH1cblxuICBnZXRXaW5uZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLndpbm5lckxhYmVsQ29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgIHRoaXMucHJvcHMud2lubmVyTGFiZWxDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLndpbm5lckxhYmVsIHx8IERFRkFVTFRfV0lOTkVSX0xBQkVMUy53aW5uZXJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLndpbm5lckxhYmVsIHx8IERFRkFVTFRfV0lOTkVSX0xBQkVMUy53aW5uZXI7XG4gIH1cblxuICBnZXRUaWNrZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLnRpY2tldExhYmVsQ29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgIHRoaXMucHJvcHMudGlja2V0TGFiZWxDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLnRpY2tldExhYmVsIHx8IERFRkFVTFRfV0lOTkVSX0xBQkVMUy50aWNrZXRcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLnRpY2tldExhYmVsIHx8IERFRkFVTFRfV0lOTkVSX0xBQkVMUy50aWNrZXQ7XG4gIH1cblxuICBnZXRQcml6ZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMucHJpemVMYWJlbENvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICB0aGlzLnByb3BzLnByaXplTGFiZWxDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLnByaXplTGFiZWwgfHwgREVGQVVMVF9XSU5ORVJfTEFCRUxTLnByaXplXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wcml6ZUxhYmVsIHx8IERFRkFVTFRfV0lOTkVSX0xBQkVMUy5wcml6ZTtcbiAgfVxuXG4gIGdldENvbG9yKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuY29sb3IpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7dGhpcy5wcm9wcy5jb2xvcn0pYDtcbiAgICB9XG4gICAgcmV0dXJuICd2YXIoLS1pb24tY29sb3Itd2FybmluZyknO1xuICB9XG59XG4iXX0=
|
|
@@ -133,8 +133,8 @@ export class ArticleComponent {
|
|
|
133
133
|
width: props.maxWidth ? parseInt(props.maxWidth.replace('px', '')) : undefined,
|
|
134
134
|
};
|
|
135
135
|
}
|
|
136
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
137
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ArticleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ArticleComponent, isStandalone: true, selector: "val-article", inputs: { props: "props" }, ngImport: i0, template: `
|
|
138
138
|
<article
|
|
139
139
|
class="val-article"
|
|
140
140
|
[class]="props.cssClass"
|
|
@@ -298,7 +298,7 @@ export class ArticleComponent {
|
|
|
298
298
|
</article>
|
|
299
299
|
`, isInline: true, styles: [".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;margin:1rem 0;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;margin:.5rem 0;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{margin:1rem 0;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{margin:1rem 0;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{margin:1rem 0}.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{margin:1.5rem 0;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:1.5rem}.val-article__image{margin:1.5rem 0;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{margin:1.5rem 0;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{margin:1rem 0}.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{padding:.5rem;margin:.5rem 0}.val-article__highlight{padding:.5rem}}@media (prefers-color-scheme: dark){.val-article--auto{background-color:var(--ion-color-dark, #1f2937);color:var(--ion-color-light, #ffffff)}.val-article--auto .val-article__quote{background-color:#ffffff0d}.val-article--auto .val-article__highlight{background-color:#ffc1071a;border-color:var(--ion-color-warning-shade, #e0a800)}.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: "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: ["props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }] }); }
|
|
300
300
|
}
|
|
301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ArticleComponent, decorators: [{
|
|
302
302
|
type: Component,
|
|
303
303
|
args: [{ selector: 'val-article', standalone: true, imports: [CommonModule, TitleComponent, TextComponent, ButtonComponent, ImageComponent], template: `
|
|
304
304
|
<article
|
|
@@ -466,4 +466,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
466
466
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
467
467
|
type: Input
|
|
468
468
|
}] } });
|
|
469
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL2FydGljbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQTRMbkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBUTNCLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLE9BQXVCO1FBQzlDLE9BQU8sT0FBTyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsT0FBdUI7UUFDNUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMs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WSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxZQUM3RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0tUO3dEQWlDRCxLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvdHlwZXMnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQXJ0aWNsZUJ1dHRvbkVsZW1lbnQsXG4gIEFydGljbGVDb2RlRWxlbWVudCxcbiAgQXJ0aWNsZUN1c3RvbUVsZW1lbnQsXG4gIEFydGljbGVFbGVtZW50LFxuICBBcnRpY2xlSGlnaGxpZ2h0RWxlbWVudCxcbiAgQXJ0aWNsZUltYWdlRWxlbWVudCxcbiAgQXJ0aWNsZUxpc3RFbGVtZW50LFxuICBBcnRpY2xlTWV0YWRhdGEsXG4gIEFydGljbGVRdW90ZUVsZW1lbnQsXG4gIEFydGljbGVTZXBhcmF0b3JFbGVtZW50LFxuICBBcnRpY2xlU3VidGl0bGVFbGVtZW50LFxuICBBcnRpY2xlVGV4dEVsZW1lbnQsXG4gIEFydGljbGVUaXRsZUVsZW1lbnQsXG4gIEFydGljbGVWaWRlb0VsZW1lbnQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXJ0aWNsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRpdGxlQ29tcG9uZW50LCBUZXh0Q29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIEltYWdlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXJ0aWNsZVxuICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZVwiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndmFsLWFydGljbGUtLWNlbnRlcmVkJzogcHJvcHMuY2VudGVyZWQsXG4gICAgICAgICd2YWwtYXJ0aWNsZS0tbGlnaHQnOiBwcm9wcy50aGVtZSA9PT0gJ2xpZ2h0JyxcbiAgICAgICAgJ3ZhbC1hcnRpY2xlLS1kYXJrJzogcHJvcHMudGhlbWUgPT09ICdkYXJrJyxcbiAgICAgIH1cIlxuICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJwcm9wcy5tYXhXaWR0aFwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBwcm9wcy5lbGVtZW50czsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fZWxlbWVudFwiXG4gICAgICAgIFtjbGFzc109XCJlbGVtZW50LmNzc0NsYXNzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0RWxlbWVudFNwYWNpbmdDbGFzcyhlbGVtZW50KVwiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImVsZW1lbnQudmlzaWJsZSA9PT0gZmFsc2UgPyAnbm9uZScgOiAnYmxvY2snXCJcbiAgICAgID5cbiAgICAgICAgPCEtLSBUw610dWxvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAndGl0bGUnXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwiZ2V0VGl0bGVFbGVtZW50KGVsZW1lbnQpLnByb3BzXCI+PC92YWwtdGl0bGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gU3VidMOtdHVsbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ3N1YnRpdGxlJ1wiPlxuICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cImdldFN1YnRpdGxlRWxlbWVudChlbGVtZW50KS5wcm9wc1wiPjwvdmFsLXRpdGxlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFRleHRvL1DDoXJyYWZvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAndGV4dCcgfHwgZWxlbWVudC50eXBlID09PSAncGFyYWdyYXBoJ1wiPlxuICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiZ2V0VGV4dEVsZW1lbnQoZWxlbWVudCkucHJvcHNcIj48L3ZhbC10ZXh0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIENpdGEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdxdW90ZSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJnZXRRdW90ZVRleHRQcm9wcyhlbGVtZW50KVwiPjwvdmFsLXRleHQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuYXV0aG9yXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fcXVvdGUtYXV0aG9yXCI+XG4gICAgICAgICAgICAgIOKAlCB7eyBnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuYXV0aG9yIH19XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpLnByb3BzLnNvdXJjZVwiIGNsYXNzPVwidmFsLWFydGljbGVfX3F1b3RlLXNvdXJjZVwiPlxuICAgICAgICAgICAgICAgICwge3sgZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQpLnByb3BzLnNvdXJjZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBUZXh0byBkZXN0YWNhZG8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdoaWdobGlnaHQnXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9faGlnaGxpZ2h0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19oaWdobGlnaHQtLXJvdW5kZWQnOiBnZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpLnByb3BzLnJvdW5kZWQsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEhpZ2hsaWdodENvbG9yKGVsZW1lbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cImdldEhpZ2hsaWdodFRleHRQcm9wcyhlbGVtZW50KVwiPjwvdmFsLXRleHQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ8OzZGlnbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2NvZGUnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hcnRpY2xlX19jb2RlXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0Q29kZUVsZW1lbnQoZWxlbWVudCkucHJvcHMubGFuZ3VhZ2VcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19jb2RlLWxhbmd1YWdlXCI+XG4gICAgICAgICAgICAgIHt7IGdldENvZGVFbGVtZW50KGVsZW1lbnQpLnByb3BzLmxhbmd1YWdlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwcmVcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fY29kZS1jb250ZW50XCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fY29kZS1jb250ZW50LS1kYXJrJzogZ2V0Q29kZUVsZW1lbnQoZWxlbWVudCkucHJvcHMudGhlbWUgPT09ICdkYXJrJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+PGNvZGU+e3sgZ2V0Q29kZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuY29kZSB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBMaXN0YSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2xpc3QnXCI+XG4gICAgICAgICAgPHVsICpuZ0lmPVwiZ2V0TGlzdEVsZW1lbnQoZWxlbWVudCkucHJvcHMubGlzdFR5cGUgIT09ICdvcmRlcmVkJ1wiIGNsYXNzPVwidmFsLWFydGljbGVfX2xpc3RcIj5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRMaXN0RWxlbWVudChlbGVtZW50KS5wcm9wcy5pdGVtc1wiIGNsYXNzPVwidmFsLWFydGljbGVfX2xpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLmxpc3RUeXBlID09PSAnY2hlY2tsaXN0J1wiIGNsYXNzPVwidmFsLWFydGljbGVfX2xpc3QtY2hlY2tcIlxuICAgICAgICAgICAgICAgID7inJM8L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8b2xcbiAgICAgICAgICAgICpuZ0lmPVwiZ2V0TGlzdEVsZW1lbnQoZWxlbWVudCkucHJvcHMubGlzdFR5cGUgPT09ICdvcmRlcmVkJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0IHZhbC1hcnRpY2xlX19saXN0LS1vcmRlcmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0TGlzdEVsZW1lbnQoZWxlbWVudCkucHJvcHMuaXRlbXNcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAge3sgaXRlbS50ZXh0IH19XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvb2w+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQm90w7NuIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnYnV0dG9uJ1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX2J1dHRvbi1jb250YWluZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAndmFsLWFydGljbGVfX2J1dHRvbi1jb250YWluZXItLWxlZnQnOiBnZXRCdXR0b25FbGVtZW50KGVsZW1lbnQpLnByb3BzLmFsaWdubWVudCA9PT0gJ2xlZnQnLFxuICAgICAgICAgICAgICAndmFsLWFydGljbGVfX2J1dHRvbi1jb250YWluZXItLWNlbnRlcic6IGdldEJ1dHRvbkVsZW1lbnQoZWxlbWVudCkucHJvcHMuYWxpZ25tZW50ID09PSAnY2VudGVyJyxcbiAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19idXR0b24tY29udGFpbmVyLS1yaWdodCc6IGdldEJ1dHRvbkVsZW1lbnQoZWxlbWVudCkucHJvcHMuYWxpZ25tZW50ID09PSAncmlnaHQnLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cImdldEJ1dHRvblByb3BzKGVsZW1lbnQpXCI+PC92YWwtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFNlcGFyYWRvciAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ3NlcGFyYXRvcidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3NlcGFyYXRvclwiPlxuICAgICAgICAgICAgPGhyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50KS5wcm9wcy5zdHlsZSA9PT0gJ2xpbmUnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yLWxpbmVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19zZXBhcmF0b3ItbGluZS0tdGhpbic6IGdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudCkucHJvcHMudGhpY2tuZXNzID09PSAndGhpbicsXG4gICAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19zZXBhcmF0b3ItbGluZS0tdGhpY2snOiBnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQpLnByb3BzLnRoaWNrbmVzcyA9PT0gJ3RoaWNrJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudCkucHJvcHMuc3R5bGUgPT09ICdkb3RzJ1wiIGNsYXNzPVwidmFsLWFydGljbGVfX3NlcGFyYXRvci1kb3RzXCI+XG4gICAgICAgICAgICAgIOKAoiDigKIg4oCiXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQpLnByb3BzLnN0eWxlID09PSAnc3BhY2UnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yLXNwYWNlXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBJbWFnZW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdpbWFnZSdcIj5cbiAgICAgICAgICA8dmFsLWltYWdlIFtwcm9wc109XCJnZXRJbWFnZU1ldGFkYXRhKGVsZW1lbnQpXCI+PC92YWwtaW1hZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gVmlkZW8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICd2aWRlbydcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX3ZpZGVvXCI+XG4gICAgICAgICAgICA8dmlkZW9cbiAgICAgICAgICAgICAgW3NyY109XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMuc3JjXCJcbiAgICAgICAgICAgICAgW3Bvc3Rlcl09XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMucG9zdGVyXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xzXT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5jb250cm9scyAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICBbYXV0b3BsYXldPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLmF1dG9wbGF5XCJcbiAgICAgICAgICAgICAgW211dGVkXT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5tdXRlZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLm1heFdpZHRoXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fdmlkZW8tY29udGVudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFR1IG5hdmVnYWRvciBubyBzb3BvcnRhIGVsIGVsZW1lbnRvIHZpZGVvLlxuICAgICAgICAgICAgPC92aWRlbz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMudGl0bGVcIiBjbGFzcz1cInZhbC1hcnRpY2xlX192aWRlby10aXRsZVwiPlxuICAgICAgICAgICAgICB7eyBnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMudGl0bGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIENvbnRlbmlkbyBwZXJzb25hbGl6YWRvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnY3VzdG9tJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fY3VzdG9tXCIgW2lubmVySFRNTF09XCJnZXRDdXN0b21FbGVtZW50KGVsZW1lbnQpLnByb3BzLmh0bWxDb250ZW50XCI+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9hcnRpY2xlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9hcnRpY2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLCAvLyBDb21lbnRhZG8gdGVtcG9yYWxtZW50ZSBwYXJhIGRlYnVnXG59KVxuLyoqXG4gKiB2YWwtYXJ0aWNsZVxuICpcbiAqIENvbXBvbmVudGUgcGFyYSBjcmVhciBhcnTDrWN1bG9zLCBibG9ncyB5IGRvY3VtZW50YWNpw7NuIGRlIGZvcm1hIGRlY2xhcmF0aXZhLlxuICogUGVybWl0ZSBjb21iaW5hciBtw7psdGlwbGVzIGVsZW1lbnRvcyAodMOtdHVsb3MsIHRleHRvLCBpbcOhZ2VuZXMsIGPDs2RpZ28sIGV0Yy4pXG4gKiBjb24gZXNwYWNpYWRvIGF1dG9tw6F0aWNvIHkgc29wb3J0ZSBtdWx0aS1pZGlvbWEuXG4gKlxuICogQGV4YW1wbGUgVXNvIGLDoXNpY286XG4gKiBgYGBodG1sXG4gKiA8dmFsLWFydGljbGUgW3Byb3BzXT1cImFydGljbGVDb25maWdcIj48L3ZhbC1hcnRpY2xlPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQ29uIEFydGljbGVCdWlsZGVyOlxuICogYGBgdHlwZXNjcmlwdFxuICogYXJ0aWNsZUNvbmZpZyA9IG5ldyBBcnRpY2xlQnVpbGRlcigpXG4gKiAgIC50aXRsZSh0aXRsZVByb3BzKVxuICogICAucGFyYWdyYXBoKHRleHRQcm9wcylcbiAqICAgLmNvZGUoJ2NvbnNvbGUubG9nKFwiSGVsbG8gV29ybGRcIiknLCAnamF2YXNjcmlwdCcpXG4gKiAgIC5idWlsZCgpO1xuICogYGBgXG4gKlxuICogQGlucHV0IHByb3BzOiBBcnRpY2xlTWV0YWRhdGEgLSBDb25maWd1cmFjacOzbiBjb21wbGV0YSBkZWwgYXJ0w61jdWxvXG4gKi9cbmV4cG9ydCBjbGFzcyBBcnRpY2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIENvbmZpZ3VyYWNpw7NuIGRlbCBhcnTDrWN1bG9cbiAgICogQHR5cGUge0FydGljbGVNZXRhZGF0YX1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzITogQXJ0aWNsZU1ldGFkYXRhO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBWYWxpZGFjacOzbiBiw6FzaWNhXG4gICAgaWYgKCF0aGlzLnByb3BzIHx8ICF0aGlzLnByb3BzLmVsZW1lbnRzKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ3ZhbC1hcnRpY2xlOiBwcm9wcy5lbGVtZW50cyBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jacOzbiBkZSB0cmFja0J5IHBhcmEgb3B0aW1pemFyIGVsIHJlbmRlcmluZyBkZSBlbGVtZW50b3NcbiAgICovXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IGFueSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuaWQgfHwgaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYXMgY2xhc2VzIENTUyBwYXJhIGVsIGVzcGFjaWFkbyBkZWwgZWxlbWVudG9cbiAgICovXG4gIGdldEVsZW1lbnRTcGFjaW5nQ2xhc3MoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNwYWNpbmcgPSBlbGVtZW50LnNwYWNpbmcgfHwgdGhpcy5wcm9wcy5kZWZhdWx0U3BhY2luZztcbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKHNwYWNpbmc/LnRvcCkge1xuICAgICAgY2xhc3Nlcy5wdXNoKGB2YWwtYXJ0aWNsZV9fc3BhY2luZy10b3AtLSR7c3BhY2luZy50b3B9YCk7XG4gICAgfVxuICAgIGlmIChzcGFjaW5nPy5ib3R0b20pIHtcbiAgICAgIGNsYXNzZXMucHVzaChgdmFsLWFydGljbGVfX3NwYWNpbmctYm90dG9tLS0ke3NwYWNpbmcuYm90dG9tfWApO1xuICAgIH1cbiAgICBpZiAoc3BhY2luZz8uaG9yaXpvbnRhbCkge1xuICAgICAgY2xhc3Nlcy5wdXNoKGB2YWwtYXJ0aWNsZV9fc3BhY2luZy1ob3Jpem9udGFsLS0ke3NwYWNpbmcuaG9yaXpvbnRhbH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICAvLyA9PT0gRlVOQ0lPTkVTIERFIFRJUE8gUEFSQSBUWVBFU0NSSVBUID09PVxuXG4gIGdldFRpdGxlRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVUaXRsZUVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVUaXRsZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRTdWJ0aXRsZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlU3VidGl0bGVFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlU3VidGl0bGVFbGVtZW50O1xuICB9XG5cbiAgZ2V0VGV4dEVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlVGV4dEVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVUZXh0RWxlbWVudDtcbiAgfVxuXG4gIGdldFF1b3RlRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVRdW90ZUVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVRdW90ZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRIaWdobGlnaHRFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZUhpZ2hsaWdodEVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVIaWdobGlnaHRFbGVtZW50O1xuICB9XG5cbiAgZ2V0Q29kZUVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlQ29kZUVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVDb2RlRWxlbWVudDtcbiAgfVxuXG4gIGdldExpc3RFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZUxpc3RFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlTGlzdEVsZW1lbnQ7XG4gIH1cblxuICBnZXRCdXR0b25FbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZUJ1dHRvbkVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVCdXR0b25FbGVtZW50O1xuICB9XG5cbiAgZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVTZXBhcmF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlU2VwYXJhdG9yRWxlbWVudDtcbiAgfVxuXG4gIGdldEltYWdlRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVJbWFnZUVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVJbWFnZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRWaWRlb0VsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlVmlkZW9FbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlVmlkZW9FbGVtZW50O1xuICB9XG5cbiAgZ2V0Q3VzdG9tRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVDdXN0b21FbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBBcnRpY2xlQ3VzdG9tRWxlbWVudDtcbiAgfVxuXG4gIC8vID09PSBGVU5DSU9ORVMgQVVYSUxJQVJFUyBQQVJBIFBST1BTID09PVxuXG4gIGdldFF1b3RlVGV4dFByb3BzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KSB7XG4gICAgY29uc3QgcXVvdGVFbGVtZW50ID0gdGhpcy5nZXRRdW90ZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgY29uc3QgeyBhdXRob3IsIHNvdXJjZSwgLi4udGV4dFByb3BzIH0gPSBxdW90ZUVsZW1lbnQucHJvcHM7XG4gICAgcmV0dXJuIHRleHRQcm9wcztcbiAgfVxuXG4gIGdldEhpZ2hsaWdodFRleHRQcm9wcyhlbGVtZW50OiBBcnRpY2xlRWxlbWVudCkge1xuICAgIGNvbnN0IGhpZ2hsaWdodEVsZW1lbnQgPSB0aGlzLmdldEhpZ2hsaWdodEVsZW1lbnQoZWxlbWVudCk7XG4gICAgY29uc3QgeyBiYWNrZ3JvdW5kQ29sb3IsIHJvdW5kZWQsIC4uLnRleHRQcm9wcyB9ID0gaGlnaGxpZ2h0RWxlbWVudC5wcm9wcztcbiAgICByZXR1cm4gdGV4dFByb3BzO1xuICB9XG5cbiAgZ2V0SGlnaGxpZ2h0Q29sb3IoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhpZ2hsaWdodEVsZW1lbnQgPSB0aGlzLmdldEhpZ2hsaWdodEVsZW1lbnQoZWxlbWVudCk7XG4gICAgcmV0dXJuIGhpZ2hsaWdodEVsZW1lbnQucHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tY29sb3ItbGlnaHQpJztcbiAgfVxuXG4gIGdldEJ1dHRvblByb3BzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KSB7XG4gICAgY29uc3QgYnV0dG9uRWxlbWVudCA9IHRoaXMuZ2V0QnV0dG9uRWxlbWVudChlbGVtZW50KTtcbiAgICBjb25zdCB7IGFsaWdubWVudCwgLi4uYnV0dG9uUHJvcHMgfSA9IGJ1dHRvbkVsZW1lbnQucHJvcHM7XG4gICAgcmV0dXJuIGJ1dHRvblByb3BzO1xuICB9XG5cbiAgZ2V0SW1hZ2VNZXRhZGF0YShlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEltYWdlTWV0YWRhdGEge1xuICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuZ2V0SW1hZ2VFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHByb3BzID0gaW1hZ2VFbGVtZW50LnByb3BzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNyYzogcHJvcHMuc3JjLFxuICAgICAgYWx0OiBwcm9wcy5hbHQsXG4gICAgICBtb2RlOiBwcm9wcy5yb3VuZGVkID8gJ3JvdW5kZWQnIDogJ2JveCcsXG4gICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgIHNoYWRlZDogZmFsc2UsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBhbGlnbm1lbnQ6IHByb3BzLmFsaWdubWVudCB8fCAnY2VudGVyJyxcbiAgICAgIGNhcHRpb246IHByb3BzLmNhcHRpb24sXG4gICAgICBjYXB0aW9uU2l6ZTogJ21lZGl1bScgYXMgY29uc3QsXG4gICAgICB3aWR0aDogcHJvcHMubWF4V2lkdGggPyBwYXJzZUludChwcm9wcy5tYXhXaWR0aC5yZXBsYWNlKCdweCcsICcnKSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
469
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBNExuRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFRM0IsZ0JBQWUsQ0FBQztJQUVoQixRQUFRO1FBQ04sb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxLQUFhLEVBQUUsT0FBdUI7UUFDOUMsT0FBTyxPQUFPLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0IsQ0FBQyxPQUF1QjtRQUM1QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUU3QixJQUFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLDZCQUE2QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0NBQW9DLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELDRDQUE0QztJQUU1QyxlQUFlLENBQUMsT0FBdUI7UUFDckMsT0FBTyxPQUE4QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUF1QjtRQUN4QyxPQUFPLE9BQWlDLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUF1QjtRQUNwQyxPQUFPLE9BQTZCLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLE9BQThCLENBQUM7SUFDeEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQXVCO1FBQ3pDLE9BQU8sT0FBa0MsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQXVCO1FBQ3BDLE9BQU8sT0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQXVCO1FBQ3BDLE9BQU8sT0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBdUI7UUFDdEMsT0FBTyxPQUErQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUF1QjtRQUN6QyxPQUFPLE9BQWtDLENBQUM7SUFDNUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLE9BQThCLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLE9BQThCLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQXVCO1FBQ3RDLE9BQU8sT0FBK0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsMENBQTBDO0lBRTFDLGlCQUFpQixDQUFDLE9BQXVCO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxPQUF1QjtRQUMzQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUMxRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBdUI7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLHdCQUF3QixDQUFDO0lBQzVFLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBdUI7UUFDcEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQzFELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUF1QjtRQUN0QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFFakMsT0FBTztZQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkMsSUFBSSxFQUFFLFFBQVE7WUFDZCxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxLQUFLO1lBQ2YsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksUUFBUTtZQUN0QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsV0FBVyxFQUFFLFFBQWlCO1lBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDL0UsQ0FBQztJQUNKLENBQUM7K0dBdklVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG1HQTdMakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtLVCxnL0xBbktTLFlBQVksOFZBQUUsY0FBYyx5RUFBRSxhQUFhLHdFQUFFLGVBQWUsZ0dBQUUsY0FBYzs7NEZBOEwzRSxnQkFBZ0I7a0JBak01QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLFlBQzdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrS1Q7d0RBaUNELEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS90eXBlcyc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBcnRpY2xlQnV0dG9uRWxlbWVudCxcbiAgQXJ0aWNsZUNvZGVFbGVtZW50LFxuICBBcnRpY2xlQ3VzdG9tRWxlbWVudCxcbiAgQXJ0aWNsZUVsZW1lbnQsXG4gIEFydGljbGVIaWdobGlnaHRFbGVtZW50LFxuICBBcnRpY2xlSW1hZ2VFbGVtZW50LFxuICBBcnRpY2xlTGlzdEVsZW1lbnQsXG4gIEFydGljbGVNZXRhZGF0YSxcbiAgQXJ0aWNsZVF1b3RlRWxlbWVudCxcbiAgQXJ0aWNsZVNlcGFyYXRvckVsZW1lbnQsXG4gIEFydGljbGVTdWJ0aXRsZUVsZW1lbnQsXG4gIEFydGljbGVUZXh0RWxlbWVudCxcbiAgQXJ0aWNsZVRpdGxlRWxlbWVudCxcbiAgQXJ0aWNsZVZpZGVvRWxlbWVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hcnRpY2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGl0bGVDb21wb25lbnQsIFRleHRDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudCwgSW1hZ2VDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhcnRpY2xlXG4gICAgICBjbGFzcz1cInZhbC1hcnRpY2xlXCJcbiAgICAgIFtjbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd2YWwtYXJ0aWNsZS0tY2VudGVyZWQnOiBwcm9wcy5jZW50ZXJlZCxcbiAgICAgICAgJ3ZhbC1hcnRpY2xlLS1saWdodCc6IHByb3BzLnRoZW1lID09PSAnbGlnaHQnLFxuICAgICAgICAndmFsLWFydGljbGUtLWRhcmsnOiBwcm9wcy50aGVtZSA9PT0gJ2RhcmsnLFxuICAgICAgfVwiXG4gICAgICBbc3R5bGUubWF4LXdpZHRoXT1cInByb3BzLm1heFdpZHRoXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHByb3BzLmVsZW1lbnRzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19lbGVtZW50XCJcbiAgICAgICAgW2NsYXNzXT1cImVsZW1lbnQuY3NzQ2xhc3NcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRFbGVtZW50U3BhY2luZ0NsYXNzKGVsZW1lbnQpXCJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZWxlbWVudC52aXNpYmxlID09PSBmYWxzZSA/ICdub25lJyA6ICdibG9jaydcIlxuICAgICAgPlxuICAgICAgICA8IS0tIFTDrXR1bG8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICd0aXRsZSdcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJnZXRUaXRsZUVsZW1lbnQoZWxlbWVudCkucHJvcHNcIj48L3ZhbC10aXRsZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBTdWJ0w610dWxvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnc3VidGl0bGUnXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwiZ2V0U3VidGl0bGVFbGVtZW50KGVsZW1lbnQpLnByb3BzXCI+PC92YWwtdGl0bGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gVGV4dG8vUMOhcnJhZm8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICd0ZXh0JyB8fCBlbGVtZW50LnR5cGUgPT09ICdwYXJhZ3JhcGgnXCI+XG4gICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJnZXRUZXh0RWxlbWVudChlbGVtZW50KS5wcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ2l0YSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ3F1b3RlJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fcXVvdGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fcXVvdGUtY29udGVudFwiPlxuICAgICAgICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cImdldFF1b3RlVGV4dFByb3BzKGVsZW1lbnQpXCI+PC92YWwtdGV4dD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImdldFF1b3RlRWxlbWVudChlbGVtZW50KS5wcm9wcy5hdXRob3JcIiBjbGFzcz1cInZhbC1hcnRpY2xlX19xdW90ZS1hdXRob3JcIj5cbiAgICAgICAgICAgICAg4oCUIHt7IGdldFF1b3RlRWxlbWVudChlbGVtZW50KS5wcm9wcy5hdXRob3IgfX1cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuc291cmNlXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fcXVvdGUtc291cmNlXCI+XG4gICAgICAgICAgICAgICAgLCB7eyBnZXRRdW90ZUVsZW1lbnQoZWxlbWVudCkucHJvcHMuc291cmNlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFRleHRvIGRlc3RhY2FkbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2hpZ2hsaWdodCdcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19oaWdobGlnaHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAndmFsLWFydGljbGVfX2hpZ2hsaWdodC0tcm91bmRlZCc6IGdldEhpZ2hsaWdodEVsZW1lbnQoZWxlbWVudCkucHJvcHMucm91bmRlZCxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0SGlnaGxpZ2h0Q29sb3IoZWxlbWVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiZ2V0SGlnaGxpZ2h0VGV4dFByb3BzKGVsZW1lbnQpXCI+PC92YWwtdGV4dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBDw7NkaWdvIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnY29kZSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsLWFydGljbGVfX2NvZGVcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRDb2RlRWxlbWVudChlbGVtZW50KS5wcm9wcy5sYW5ndWFnZVwiIGNsYXNzPVwidmFsLWFydGljbGVfX2NvZGUtbGFuZ3VhZ2VcIj5cbiAgICAgICAgICAgICAge3sgZ2V0Q29kZUVsZW1lbnQoZWxlbWVudCkucHJvcHMubGFuZ3VhZ2UgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHByZVxuICAgICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19jb2RlLWNvbnRlbnRcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3ZhbC1hcnRpY2xlX19jb2RlLWNvbnRlbnQtLWRhcmsnOiBnZXRDb2RlRWxlbWVudChlbGVtZW50KS5wcm9wcy50aGVtZSA9PT0gJ2RhcmsnLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID48Y29kZT57eyBnZXRDb2RlRWxlbWVudChlbGVtZW50KS5wcm9wcy5jb2RlIH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIExpc3RhIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnbGlzdCdcIj5cbiAgICAgICAgICA8dWwgKm5nSWY9XCJnZXRMaXN0RWxlbWVudChlbGVtZW50KS5wcm9wcy5saXN0VHlwZSAhPT0gJ29yZGVyZWQnXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fbGlzdFwiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldExpc3RFbGVtZW50KGVsZW1lbnQpLnByb3BzLml0ZW1zXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ2V0TGlzdEVsZW1lbnQoZWxlbWVudCkucHJvcHMubGlzdFR5cGUgPT09ICdjaGVja2xpc3QnXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fbGlzdC1jaGVja1wiXG4gICAgICAgICAgICAgICAgPuKckzwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGl0ZW0udGV4dCB9fVxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxvbFxuICAgICAgICAgICAgKm5nSWY9XCJnZXRMaXN0RWxlbWVudChlbGVtZW50KS5wcm9wcy5saXN0VHlwZSA9PT0gJ29yZGVyZWQnXCJcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWFydGljbGVfX2xpc3QgdmFsLWFydGljbGVfX2xpc3QtLW9yZGVyZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRMaXN0RWxlbWVudChlbGVtZW50KS5wcm9wcy5pdGVtc1wiIGNsYXNzPVwidmFsLWFydGljbGVfX2xpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC9vbD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBCb3TDs24gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdidXR0b24nXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fYnV0dG9uLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fYnV0dG9uLWNvbnRhaW5lci0tbGVmdCc6IGdldEJ1dHRvbkVsZW1lbnQoZWxlbWVudCkucHJvcHMuYWxpZ25tZW50ID09PSAnbGVmdCcsXG4gICAgICAgICAgICAgICd2YWwtYXJ0aWNsZV9fYnV0dG9uLWNvbnRhaW5lci0tY2VudGVyJzogZ2V0QnV0dG9uRWxlbWVudChlbGVtZW50KS5wcm9wcy5hbGlnbm1lbnQgPT09ICdjZW50ZXInLFxuICAgICAgICAgICAgICAndmFsLWFydGljbGVfX2J1dHRvbi1jb250YWluZXItLXJpZ2h0JzogZ2V0QnV0dG9uRWxlbWVudChlbGVtZW50KS5wcm9wcy5hbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwiZ2V0QnV0dG9uUHJvcHMoZWxlbWVudClcIj48L3ZhbC1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gU2VwYXJhZG9yIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlbWVudC50eXBlID09PSAnc2VwYXJhdG9yJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yXCI+XG4gICAgICAgICAgICA8aHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQpLnByb3BzLnN0eWxlID09PSAnbGluZSdcIlxuICAgICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19zZXBhcmF0b3ItbGluZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAndmFsLWFydGljbGVfX3NlcGFyYXRvci1saW5lLS10aGluJzogZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50KS5wcm9wcy50aGlja25lc3MgPT09ICd0aGluJyxcbiAgICAgICAgICAgICAgICAndmFsLWFydGljbGVfX3NlcGFyYXRvci1saW5lLS10aGljayc6IGdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudCkucHJvcHMudGhpY2tuZXNzID09PSAndGhpY2snLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0U2VwYXJhdG9yRWxlbWVudChlbGVtZW50KS5wcm9wcy5zdHlsZSA9PT0gJ2RvdHMnXCIgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fc2VwYXJhdG9yLWRvdHNcIj5cbiAgICAgICAgICAgICAg4oCiIOKAoiDigKJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cImdldFNlcGFyYXRvckVsZW1lbnQoZWxlbWVudCkucHJvcHMuc3R5bGUgPT09ICdzcGFjZSdcIlxuICAgICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX19zZXBhcmF0b3Itc3BhY2VcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEltYWdlbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ2ltYWdlJ1wiPlxuICAgICAgICAgIDx2YWwtaW1hZ2UgW3Byb3BzXT1cImdldEltYWdlTWV0YWRhdGEoZWxlbWVudClcIj48L3ZhbC1pbWFnZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBWaWRlbyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQudHlwZSA9PT0gJ3ZpZGVvJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtYXJ0aWNsZV9fdmlkZW9cIj5cbiAgICAgICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgICBbc3JjXT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5zcmNcIlxuICAgICAgICAgICAgICBbcG9zdGVyXT1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy5wb3N0ZXJcIlxuICAgICAgICAgICAgICBbY29udHJvbHNdPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLmNvbnRyb2xzICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgIFthdXRvcGxheV09XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMuYXV0b3BsYXlcIlxuICAgICAgICAgICAgICBbbXV0ZWRdPVwiZ2V0VmlkZW9FbGVtZW50KGVsZW1lbnQpLnByb3BzLm11dGVkXCJcbiAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJnZXRWaWRlb0VsZW1lbnQoZWxlbWVudCkucHJvcHMubWF4V2lkdGhcIlxuICAgICAgICAgICAgICBjbGFzcz1cInZhbC1hcnRpY2xlX192aWRlby1jb250ZW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgVHUgbmF2ZWdhZG9yIG5vIHNvcG9ydGEgZWwgZWxlbWVudG8gdmlkZW8uXG4gICAgICAgICAgICA8L3ZpZGVvPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy50aXRsZVwiIGNsYXNzPVwidmFsLWFydGljbGVfX3ZpZGVvLXRpdGxlXCI+XG4gICAgICAgICAgICAgIHt7IGdldFZpZGVvRWxlbWVudChlbGVtZW50KS5wcm9wcy50aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ29udGVuaWRvIHBlcnNvbmFsaXphZG8gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGVtZW50LnR5cGUgPT09ICdjdXN0b20nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hcnRpY2xlX19jdXN0b21cIiBbaW5uZXJIVE1MXT1cImdldEN1c3RvbUVsZW1lbnQoZWxlbWVudCkucHJvcHMuaHRtbENvbnRlbnRcIj48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FydGljbGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FydGljbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsIC8vIENvbWVudGFkbyB0ZW1wb3JhbG1lbnRlIHBhcmEgZGVidWdcbn0pXG4vKipcbiAqIHZhbC1hcnRpY2xlXG4gKlxuICogQ29tcG9uZW50ZSBwYXJhIGNyZWFyIGFydMOtY3Vsb3MsIGJsb2dzIHkgZG9jdW1lbnRhY2nDs24gZGUgZm9ybWEgZGVjbGFyYXRpdmEuXG4gKiBQZXJtaXRlIGNvbWJpbmFyIG3Dumx0aXBsZXMgZWxlbWVudG9zICh0w610dWxvcywgdGV4dG8sIGltw6FnZW5lcywgY8OzZGlnbywgZXRjLilcbiAqIGNvbiBlc3BhY2lhZG8gYXV0b23DoXRpY28geSBzb3BvcnRlIG11bHRpLWlkaW9tYS5cbiAqXG4gKiBAZXhhbXBsZSBVc28gYsOhc2ljbzpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtYXJ0aWNsZSBbcHJvcHNdPVwiYXJ0aWNsZUNvbmZpZ1wiPjwvdmFsLWFydGljbGU+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBDb24gQXJ0aWNsZUJ1aWxkZXI6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhcnRpY2xlQ29uZmlnID0gbmV3IEFydGljbGVCdWlsZGVyKClcbiAqICAgLnRpdGxlKHRpdGxlUHJvcHMpXG4gKiAgIC5wYXJhZ3JhcGgodGV4dFByb3BzKVxuICogICAuY29kZSgnY29uc29sZS5sb2coXCJIZWxsbyBXb3JsZFwiKScsICdqYXZhc2NyaXB0JylcbiAqICAgLmJ1aWxkKCk7XG4gKiBgYGBcbiAqXG4gKiBAaW5wdXQgcHJvcHM6IEFydGljbGVNZXRhZGF0YSAtIENvbmZpZ3VyYWNpw7NuIGNvbXBsZXRhIGRlbCBhcnTDrWN1bG9cbiAqL1xuZXhwb3J0IGNsYXNzIEFydGljbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogQ29uZmlndXJhY2nDs24gZGVsIGFydMOtY3Vsb1xuICAgKiBAdHlwZSB7QXJ0aWNsZU1ldGFkYXRhfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHMhOiBBcnRpY2xlTWV0YWRhdGE7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIFZhbGlkYWNpw7NuIGLDoXNpY2FcbiAgICBpZiAoIXRoaXMucHJvcHMgfHwgIXRoaXMucHJvcHMuZWxlbWVudHMpIHtcbiAgICAgIGNvbnNvbGUud2FybigndmFsLWFydGljbGU6IHByb3BzLmVsZW1lbnRzIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmNpw7NuIGRlIHRyYWNrQnkgcGFyYSBvcHRpbWl6YXIgZWwgcmVuZGVyaW5nIGRlIGVsZW1lbnRvc1xuICAgKi9cbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogYW55IHtcbiAgICByZXR1cm4gZWxlbWVudC5pZCB8fCBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhcyBjbGFzZXMgQ1NTIHBhcmEgZWwgZXNwYWNpYWRvIGRlbCBlbGVtZW50b1xuICAgKi9cbiAgZ2V0RWxlbWVudFNwYWNpbmdDbGFzcyhlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3BhY2luZyA9IGVsZW1lbnQuc3BhY2luZyB8fCB0aGlzLnByb3BzLmRlZmF1bHRTcGFjaW5nO1xuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoc3BhY2luZz8udG9wKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYHZhbC1hcnRpY2xlX19zcGFjaW5nLXRvcC0tJHtzcGFjaW5nLnRvcH1gKTtcbiAgICB9XG4gICAgaWYgKHNwYWNpbmc/LmJvdHRvbSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKGB2YWwtYXJ0aWNsZV9fc3BhY2luZy1ib3R0b20tLSR7c3BhY2luZy5ib3R0b219YCk7XG4gICAgfVxuICAgIGlmIChzcGFjaW5nPy5ob3Jpem9udGFsKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYHZhbC1hcnRpY2xlX19zcGFjaW5nLWhvcml6b250YWwtLSR7c3BhY2luZy5ob3Jpem9udGFsfWApO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIC8vID09PSBGVU5DSU9ORVMgREUgVElQTyBQQVJBIFRZUEVTQ1JJUFQgPT09XG5cbiAgZ2V0VGl0bGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVRpdGxlRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVRpdGxlRWxlbWVudDtcbiAgfVxuXG4gIGdldFN1YnRpdGxlRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVTdWJ0aXRsZUVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVTdWJ0aXRsZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRUZXh0RWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVUZXh0RWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVRleHRFbGVtZW50O1xuICB9XG5cbiAgZ2V0UXVvdGVFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVF1b3RlRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZVF1b3RlRWxlbWVudDtcbiAgfVxuXG4gIGdldEhpZ2hsaWdodEVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlSGlnaGxpZ2h0RWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUhpZ2hsaWdodEVsZW1lbnQ7XG4gIH1cblxuICBnZXRDb2RlRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVDb2RlRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUNvZGVFbGVtZW50O1xuICB9XG5cbiAgZ2V0TGlzdEVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlTGlzdEVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVMaXN0RWxlbWVudDtcbiAgfVxuXG4gIGdldEJ1dHRvbkVsZW1lbnQoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpOiBBcnRpY2xlQnV0dG9uRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUJ1dHRvbkVsZW1lbnQ7XG4gIH1cblxuICBnZXRTZXBhcmF0b3JFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZVNlcGFyYXRvckVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVTZXBhcmF0b3JFbGVtZW50O1xuICB9XG5cbiAgZ2V0SW1hZ2VFbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZUltYWdlRWxlbWVudCB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgQXJ0aWNsZUltYWdlRWxlbWVudDtcbiAgfVxuXG4gIGdldFZpZGVvRWxlbWVudChlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IEFydGljbGVWaWRlb0VsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVWaWRlb0VsZW1lbnQ7XG4gIH1cblxuICBnZXRDdXN0b21FbGVtZW50KGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogQXJ0aWNsZUN1c3RvbUVsZW1lbnQge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEFydGljbGVDdXN0b21FbGVtZW50O1xuICB9XG5cbiAgLy8gPT09IEZVTkNJT05FUyBBVVhJTElBUkVTIFBBUkEgUFJPUFMgPT09XG5cbiAgZ2V0UXVvdGVUZXh0UHJvcHMoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpIHtcbiAgICBjb25zdCBxdW90ZUVsZW1lbnQgPSB0aGlzLmdldFF1b3RlRWxlbWVudChlbGVtZW50KTtcbiAgICBjb25zdCB7IGF1dGhvciwgc291cmNlLCAuLi50ZXh0UHJvcHMgfSA9IHF1b3RlRWxlbWVudC5wcm9wcztcbiAgICByZXR1cm4gdGV4dFByb3BzO1xuICB9XG5cbiAgZ2V0SGlnaGxpZ2h0VGV4dFByb3BzKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KSB7XG4gICAgY29uc3QgaGlnaGxpZ2h0RWxlbWVudCA9IHRoaXMuZ2V0SGlnaGxpZ2h0RWxlbWVudChlbGVtZW50KTtcbiAgICBjb25zdCB7IGJhY2tncm91bmRDb2xvciwgcm91bmRlZCwgLi4udGV4dFByb3BzIH0gPSBoaWdobGlnaHRFbGVtZW50LnByb3BzO1xuICAgIHJldHVybiB0ZXh0UHJvcHM7XG4gIH1cblxuICBnZXRIaWdobGlnaHRDb2xvcihlbGVtZW50OiBBcnRpY2xlRWxlbWVudCk6IHN0cmluZyB7XG4gICAgY29uc3QgaGlnaGxpZ2h0RWxlbWVudCA9IHRoaXMuZ2V0SGlnaGxpZ2h0RWxlbWVudChlbGVtZW50KTtcbiAgICByZXR1cm4gaGlnaGxpZ2h0RWxlbWVudC5wcm9wcy5iYWNrZ3JvdW5kQ29sb3IgfHwgJ3ZhcigtLWlvbi1jb2xvci1saWdodCknO1xuICB9XG5cbiAgZ2V0QnV0dG9uUHJvcHMoZWxlbWVudDogQXJ0aWNsZUVsZW1lbnQpIHtcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy5nZXRCdXR0b25FbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgYWxpZ25tZW50LCAuLi5idXR0b25Qcm9wcyB9ID0gYnV0dG9uRWxlbWVudC5wcm9wcztcbiAgICByZXR1cm4gYnV0dG9uUHJvcHM7XG4gIH1cblxuICBnZXRJbWFnZU1ldGFkYXRhKGVsZW1lbnQ6IEFydGljbGVFbGVtZW50KTogSW1hZ2VNZXRhZGF0YSB7XG4gICAgY29uc3QgaW1hZ2VFbGVtZW50ID0gdGhpcy5nZXRJbWFnZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgY29uc3QgcHJvcHMgPSBpbWFnZUVsZW1lbnQucHJvcHM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3JjOiBwcm9wcy5zcmMsXG4gICAgICBhbHQ6IHByb3BzLmFsdCxcbiAgICAgIG1vZGU6IHByb3BzLnJvdW5kZWQgPyAncm91bmRlZCcgOiAnYm94JyxcbiAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgIGFsaWdubWVudDogcHJvcHMuYWxpZ25tZW50IHx8ICdjZW50ZXInLFxuICAgICAgY2FwdGlvbjogcHJvcHMuY2FwdGlvbixcbiAgICAgIGNhcHRpb25TaXplOiAnbWVkaXVtJyBhcyBjb25zdCxcbiAgICAgIHdpZHRoOiBwcm9wcy5tYXhXaWR0aCA/IHBhcnNlSW50KHByb3BzLm1heFdpZHRoLnJlcGxhY2UoJ3B4JywgJycpKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG59XG4iXX0=
|