@recursyve/nice-ui-kit.v2 16.0.0-beta.144 → 18.0.0-beta.144
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/esm2022/lib/api/exceptions/exception.factory.mjs +1 -1
- package/esm2022/lib/api/interceptors/transform-response.interceptor.mjs +4 -4
- package/esm2022/lib/api/nice.api.mjs +1 -1
- package/esm2022/lib/components/alert/alert.component.mjs +5 -5
- package/esm2022/lib/components/alert/alert.module.mjs +5 -5
- package/esm2022/lib/components/alert/alert.service.mjs +4 -4
- package/esm2022/lib/components/assets-carousel/assets-carousel.component.mjs +7 -7
- package/esm2022/lib/components/assets-carousel/assets-carousel.module.mjs +5 -5
- package/esm2022/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.mjs +5 -5
- package/esm2022/lib/components/async-typeahead/async-typeahead.component.mjs +8 -8
- package/esm2022/lib/components/async-typeahead/async-typeahead.module.mjs +5 -5
- package/esm2022/lib/components/async-typeahead/providers/async-typeahead.service.mjs +6 -6
- package/esm2022/lib/components/base-form/base-form.component.mjs +5 -5
- package/esm2022/lib/components/base-form/base-form.module.mjs +5 -5
- package/esm2022/lib/components/base-form/form-submit.directive.mjs +4 -4
- package/esm2022/lib/components/base-form/nice-base.form.mjs +1 -1
- package/esm2022/lib/components/card/card.component.mjs +4 -4
- package/esm2022/lib/components/card/card.module.mjs +5 -5
- package/esm2022/lib/components/carousel/carousel.component.mjs +6 -6
- package/esm2022/lib/components/carousel/carousel.module.mjs +5 -5
- package/esm2022/lib/components/carousel/picture-modal/picture-modal.component.mjs +4 -4
- package/esm2022/lib/components/carousel/picture-modal/picture-modal.service.mjs +5 -5
- package/esm2022/lib/components/carousel/pipe/carousel-layout.pipe.mjs +4 -4
- package/esm2022/lib/components/collapsable/collapsable.component.mjs +4 -4
- package/esm2022/lib/components/collapsable/collapsable.module.mjs +5 -5
- package/esm2022/lib/components/date-range-picker/components/header/header.component.mjs +6 -6
- package/esm2022/lib/components/date-range-picker/components/range-preset/range-preset.component.mjs +5 -5
- package/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +7 -7
- package/esm2022/lib/components/date-range-picker/date-range-picker.module.mjs +5 -5
- package/esm2022/lib/components/date-range-picker/providers/date-range-picker.service.mjs +4 -4
- package/esm2022/lib/components/drawer/drawer.component.mjs +5 -5
- package/esm2022/lib/components/drawer/drawer.module.mjs +5 -5
- package/esm2022/lib/components/drawer/drawer.service.mjs +5 -5
- package/esm2022/lib/components/export-bottom-sheet/export-bottom-sheet.component.mjs +6 -6
- package/esm2022/lib/components/export-bottom-sheet/export-bottom-sheet.module.mjs +5 -5
- package/esm2022/lib/components/export-bottom-sheet/providers/export-bottom-sheet.service.mjs +7 -7
- package/esm2022/lib/components/form-error/control-status.directive.mjs +5 -5
- package/esm2022/lib/components/form-error/form-error.component.mjs +4 -4
- package/esm2022/lib/components/form-error/form-error.module.mjs +5 -5
- package/esm2022/lib/components/horizontal-stepper/horizontal-stepper.component.mjs +4 -4
- package/esm2022/lib/components/horizontal-stepper/horizontal-stepper.module.mjs +5 -5
- package/esm2022/lib/components/horizontal-stepper/step.component.mjs +4 -4
- package/esm2022/lib/components/image-cropper/image-cropper.component.mjs +12 -12
- package/esm2022/lib/components/image-cropper/image-cropper.module.mjs +5 -5
- package/esm2022/lib/components/image-cropper/resize-canvas.mjs +1 -1
- package/esm2022/lib/components/layout/layout.component.mjs +6 -6
- package/esm2022/lib/components/layout/layout.module.mjs +5 -5
- package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +4 -4
- package/esm2022/lib/components/loading-spinner/loading-spinner.module.mjs +5 -5
- package/esm2022/lib/components/loading-spinner/loading.directive.mjs +6 -6
- package/esm2022/lib/components/loading-toast/loading-toast.component.mjs +6 -6
- package/esm2022/lib/components/loading-toast/loading-toast.directive.mjs +6 -6
- package/esm2022/lib/components/loading-toast/loading-toast.module.mjs +5 -5
- package/esm2022/lib/components/loading-toast/loading-toast.service.mjs +6 -6
- package/esm2022/lib/components/lottie/lottie.component.mjs +6 -6
- package/esm2022/lib/components/lottie/lottie.module.mjs +5 -5
- package/esm2022/lib/components/navigation/components/hint-component-base.mjs +5 -5
- package/esm2022/lib/components/navigation/directives/show-hint.directive.mjs +5 -5
- package/esm2022/lib/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
- package/esm2022/lib/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
- package/esm2022/lib/components/navigation/horizontal/components/divider/divider.component.mjs +5 -5
- package/esm2022/lib/components/navigation/horizontal/components/spacer/spacer.component.mjs +5 -5
- package/esm2022/lib/components/navigation/horizontal/horizontal.component.mjs +5 -5
- package/esm2022/lib/components/navigation/navigation.component.mjs +5 -5
- package/esm2022/lib/components/navigation/navigation.module.mjs +5 -5
- package/esm2022/lib/components/navigation/navigation.service.mjs +5 -5
- package/esm2022/lib/components/navigation/pipes/should-hide.pipe.mjs +5 -5
- package/esm2022/lib/components/navigation/pipes/should-show-hint.pipe.mjs +5 -5
- package/esm2022/lib/components/navigation/pipes/translate-with-context.pipe.mjs +5 -5
- package/esm2022/lib/components/navigation/providers/hint.service.mjs +4 -4
- package/esm2022/lib/components/navigation/providers/translation-context.service.mjs +4 -4
- package/esm2022/lib/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
- package/esm2022/lib/components/navigation/vertical/components/basic/basic.component.mjs +5 -5
- package/esm2022/lib/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
- package/esm2022/lib/components/navigation/vertical/components/divider/divider.component.mjs +5 -5
- package/esm2022/lib/components/navigation/vertical/components/group/group.component.mjs +5 -5
- package/esm2022/lib/components/navigation/vertical/components/spacer/spacer.component.mjs +5 -5
- package/esm2022/lib/components/navigation/vertical/vertical.component.mjs +5 -5
- package/esm2022/lib/components/search-bar/search-bar.component.mjs +5 -5
- package/esm2022/lib/components/search-bar/search-bar.module.mjs +5 -5
- package/esm2022/lib/components/sweet-alert/sweet-alert.component.mjs +6 -6
- package/esm2022/lib/components/sweet-alert/sweet-alert.directive.mjs +5 -5
- package/esm2022/lib/components/sweet-alert/sweet-alert.module.mjs +5 -5
- package/esm2022/lib/components/sweet-alert/sweet-alert.service.mjs +6 -6
- package/esm2022/lib/components/toast/rxjs/show-success-or-error-toast.operator.mjs +1 -1
- package/esm2022/lib/components/toast/toast.component.mjs +6 -6
- package/esm2022/lib/components/toast/toast.module.mjs +5 -5
- package/esm2022/lib/components/toast/toast.service.mjs +6 -6
- package/esm2022/lib/components/toggle-button-group/toggle-button-group.component.mjs +4 -4
- package/esm2022/lib/components/toggle-button-group/toggle-button-group.module.mjs +5 -5
- package/esm2022/lib/components/toggle-button-group/toggle-button.component.mjs +4 -4
- package/esm2022/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +4 -4
- package/esm2022/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +4 -4
- package/esm2022/lib/components/translation-form/components/translation-form.component.mjs +5 -5
- package/esm2022/lib/components/translation-form/components/translation-form.module.mjs +5 -5
- package/esm2022/lib/components/translation-form/directives/translation-context.directive.mjs +5 -5
- package/esm2022/lib/components/translation-form/providers/nice-translation-form.service.mjs +4 -4
- package/esm2022/lib/components/translation-form/toggle/translation-toggle.component.mjs +5 -5
- package/esm2022/lib/components/translation-form/validators/require-for-languages.validator.mjs +5 -5
- package/esm2022/lib/components/typeahead/directives/options-scroll.directive.mjs +5 -5
- package/esm2022/lib/components/typeahead/directives/options-scroll.module.mjs +5 -5
- package/esm2022/lib/components/typeahead/typeahead.component.mjs +8 -8
- package/esm2022/lib/components/typeahead/typeahead.module.mjs +5 -5
- package/esm2022/lib/directives/autofocus/autofocus.directive.mjs +5 -5
- package/esm2022/lib/directives/autofocus/autofocus.module.mjs +5 -5
- package/esm2022/lib/directives/autogrow/autogrow.directive.mjs +5 -5
- package/esm2022/lib/directives/autogrow/autogrow.module.mjs +5 -5
- package/esm2022/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.mjs +5 -5
- package/esm2022/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.mjs +5 -5
- package/esm2022/lib/directives/chip-list/chip-list-items/chip-list-items.component.mjs +6 -6
- package/esm2022/lib/directives/chip-list/chip-list.directive.mjs +6 -6
- package/esm2022/lib/directives/chip-list/chip-list.module.mjs +5 -5
- package/esm2022/lib/directives/draggable-list/draggable-list.directive.mjs +6 -6
- package/esm2022/lib/directives/draggable-list/draggable-list.module.mjs +5 -5
- package/esm2022/lib/directives/dropzone/dropzone.directive.mjs +4 -4
- package/esm2022/lib/directives/dropzone/dropzone.module.mjs +5 -5
- package/esm2022/lib/directives/image-error-placeholder/image-error-placeholder.directive.mjs +5 -5
- package/esm2022/lib/directives/image-error-placeholder/image-error-placeholder.module.mjs +5 -5
- package/esm2022/lib/directives/material/material.module.mjs +5 -5
- package/esm2022/lib/directives/material/nice-material-style.directive.mjs +5 -5
- package/esm2022/lib/directives/material/nice-rounded-style.directive.mjs +5 -5
- package/esm2022/lib/directives/modals/modal-on-click.directive.mjs +5 -5
- package/esm2022/lib/directives/modals/modal-opener.directive.mjs +5 -5
- package/esm2022/lib/directives/rerender/rerender.directive.mjs +5 -5
- package/esm2022/lib/directives/resolve/resolve.directive.mjs +5 -5
- package/esm2022/lib/directives/scroll-reset/scroll-reset.directive.mjs +5 -5
- package/esm2022/lib/directives/scroll-reset/scroll-reset.module.mjs +5 -5
- package/esm2022/lib/directives/scrollbar/scrollbar.directive.mjs +5 -5
- package/esm2022/lib/directives/scrollbar/scrollbar.module.mjs +5 -5
- package/esm2022/lib/directives/stop-propagation/click-stop-propagation.directive.mjs +4 -4
- package/esm2022/lib/directives/stop-propagation/stop-propagation.module.mjs +5 -5
- package/esm2022/lib/directives/window/prevent-close-window.directive.mjs +4 -4
- package/esm2022/lib/directives/window/window-directive.module.mjs +5 -5
- package/esm2022/lib/nice.module.mjs +7 -7
- package/esm2022/lib/pipes/boolean.pipe.mjs +5 -5
- package/esm2022/lib/pipes/capitalize-first-letter.pipe.mjs +4 -4
- package/esm2022/lib/pipes/ceil.pipe.mjs +4 -4
- package/esm2022/lib/pipes/entries.pipe.mjs +4 -4
- package/esm2022/lib/pipes/find-by-key.pipe.mjs +4 -4
- package/esm2022/lib/pipes/first-letter.pipe.mjs +4 -4
- package/esm2022/lib/pipes/floor.pipe.mjs +4 -4
- package/esm2022/lib/pipes/join-if-defined.pipe.mjs +4 -4
- package/esm2022/lib/pipes/link.pipe.mjs +4 -4
- package/esm2022/lib/pipes/localized-boolean.pipe.mjs +5 -5
- package/esm2022/lib/pipes/localized-currency.pipe.mjs +5 -5
- package/esm2022/lib/pipes/localized-date-only.pipe.mjs +5 -5
- package/esm2022/lib/pipes/localized-date.pipe.mjs +5 -5
- package/esm2022/lib/pipes/minutes-to-time.pipe.mjs +4 -4
- package/esm2022/lib/pipes/number-to-ordinal-indicator.pipe.mjs +4 -4
- package/esm2022/lib/pipes/pad.pipe.mjs +4 -4
- package/esm2022/lib/pipes/phone.pipe.mjs +5 -5
- package/esm2022/lib/pipes/pipes.module.mjs +5 -5
- package/esm2022/lib/pipes/postal-code.pipe.mjs +5 -5
- package/esm2022/lib/pipes/range.pipe.mjs +4 -4
- package/esm2022/lib/pipes/round.pipe.mjs +4 -4
- package/esm2022/lib/pipes/sanitize-bypass.pipe.mjs +5 -5
- package/esm2022/lib/pipes/seconds-to-time.pipe.mjs +4 -4
- package/esm2022/lib/pipes/track-by-prop.pipe.mjs +4 -4
- package/esm2022/lib/providers/config/config.module.mjs +6 -6
- package/esm2022/lib/providers/config/config.service.mjs +6 -6
- package/esm2022/lib/providers/media-watcher/media-watcher.module.mjs +6 -6
- package/esm2022/lib/providers/media-watcher/media-watcher.service.mjs +5 -5
- package/esm2022/lib/providers/overlay/dynamic-overlay-container.service.mjs +4 -4
- package/esm2022/lib/providers/overlay/dynamic-overlay.service.mjs +6 -6
- package/esm2022/lib/providers/splash-screen/splash-screen.module.mjs +6 -6
- package/esm2022/lib/providers/splash-screen/splash-screen.service.mjs +6 -6
- package/esm2022/lib/providers/utils/utils.module.mjs +6 -6
- package/esm2022/lib/providers/utils/utils.service.mjs +4 -4
- package/esm2022/lib/utils/array.utils.mjs +1 -1
- package/esm2022/lib/utils/case.utils.mjs +1 -1
- package/esm2022/lib/utils/colors.utils.mjs +1 -1
- package/esm2022/lib/utils/date.utils.mjs +1 -1
- package/esm2022/lib/utils/file.utils.mjs +1 -1
- package/esm2022/lib/utils/font-awesome.utils.mjs +1 -1
- package/esm2022/lib/utils/form-data.utils.mjs +1 -1
- package/esm2022/lib/utils/lexorank.utils.mjs +1 -1
- package/esm2022/lib/utils/object.utils.mjs +1 -1
- package/esm2022/lib/utils/query-params.utils.mjs +1 -1
- package/esm2022/lib/utils/url.utils.mjs +1 -1
- package/fesm2022/recursyve-nice-ui-kit.v2.mjs +658 -658
- package/fesm2022/recursyve-nice-ui-kit.v2.mjs.map +1 -1
- package/package.json +9 -9
- package/src/lib/components/base-form/base-form.theme.scss +3 -3
- package/src/lib/components/date-range-picker/date-range-picker.theme.scss +1 -1
- package/src/lib/components/horizontal-stepper/horizontal-stepper.theme.scss +2 -2
- package/src/lib/components/toggle-button-group/toggle-button-group.theme.scss +3 -3
- package/src/lib/nice.theme.scss +17 -17
|
@@ -220,16 +220,16 @@ export class NiceAssetsCarouselComponent {
|
|
|
220
220
|
return null;
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
224
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
223
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselComponent, deps: [{ token: NICE_ASSETS_CAROUSEL_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NiceAssetsCarouselComponent, selector: "nice-assets-carousel", inputs: { color: "color", edit: "edit", loading: "loading", accept: "accept", customActions: "customActions", imagesProcessor: "imagesProcessor", multipleUpload: "multipleUpload", visiblePreviewAsset: "visiblePreviewAsset", showAddAssetContainer: "showAddAssetContainer", assets: "assets" }, outputs: { activeChange: "activeChange", removedAsset: "removedAsset" }, providers: [
|
|
225
225
|
{
|
|
226
226
|
provide: NG_VALUE_ACCESSOR,
|
|
227
227
|
useExisting: forwardRef(() => NiceAssetsCarouselComponent),
|
|
228
228
|
multi: true
|
|
229
229
|
}
|
|
230
|
-
], queries: [{ propertyName: "activeContent", first: true, predicate: NiceAssetsCarouselActiveContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "activeVideoElement", first: true, predicate: ["activeVideo"], descendants: true }, { propertyName: "assetsElement", predicate: ["assets"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"carousel-container\" niceDropzone (filesDropped)=\"onFilesDrop($event)\">\n <div\n class=\"active-image\"\n matRipple\n [class.empty-state]=\"!_activeAsset\"\n (click)=\"edit && fileInput.click();\n $event.stopPropagation()\"\n >\n <div *ngIf=\"loading\" style=\"min-height: inherit\" class=\"flex flex-row justify-center items-center h-full\">\n <mat-spinner [diameter]=\"32\"></mat-spinner>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container\n *ngIf=\"_activeAsset && activeContent\"\n [ngTemplateOutlet]=\"activeContent\"\n [ngTemplateOutletContext]=\"{ $implicit: _activeAsset}\"\n ></ng-container>\n <img\n *ngIf=\"_activeAsset?.type === 'image'\"\n (mouseover)=\"showOverlay=true\"\n [src]=\"_activeAsset.url ?? _activeAsset.base64\"\n draggable=\"false\"\n class=\"relative\"\n alt=\"active-image\"\n >\n <video #activeVideo *ngIf=\"_activeAsset?.type === 'video'\" draggable=\"false\" loop [src]=\"_activeAsset.url ?? _activeAsset.base64\"></video>\n\n <div class=\"empty-state-content\" *ngIf=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n <div class=\"text\">\n {{ \"nice_ui_kit.assets_carousel.upload_here\" | translate }}\n </div>\n </div>\n\n <div *ngIf=\"_activeAsset && showOverlay && edit\" class=\"active-image-overlay\">\n <div\n (mouseout)=\"showOverlay=false\"\n class=\"flex flex-col justify-center items-center w-full h-full\"\n >\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"edit\" class=\"active-buttons\">\n <button mat-icon-button (click)=\"fileInput.click(); $event.stopPropagation()\">\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.matIcon\">{{ options.actionButtons.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.svgIcon\" [svgIcon]=\"options.actionButtons.addPhoto.svgIcon\"></mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"assetActions\" (click)=\"$event.stopPropagation()\" [disabled]=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.matIcon\">{{ options.actionButtons.moreOptions.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.svgIcon\" [svgIcon]=\"options.actionButtons.moreOptions.svgIcon\"></mat-icon>\n </button>\n <mat-menu class=\"nice-asset-options-menu\" [xPosition]=\"'before'\" #assetActions=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let action of customActions\"\n (click)=\"clickCustom(action)\"\n >\n <mat-icon *ngIf=\"action.icon.matIcon\">{{ action.icon.matIcon }}</mat-icon>\n <mat-icon [svgIcon]=\"action.icon.svgIcon\" *ngIf=\"action.icon.svgIcon\"></mat-icon>\n <span>{{ action.name | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"clickRemove()\">\n <mat-icon *ngIf=\"options.actionButtons.remove.matIcon\">{{ options.actionButtons.remove.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.remove.svgIcon\" [svgIcon]=\"options.actionButtons.remove.svgIcon\"></mat-icon>\n <span>{{ \"nice_ui_kit.assets_carousel.delete\" | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </ng-container>\n </div>\n\n <div class=\"carousel\">\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button left-arrow\" mat-icon-button [disabled]=\"!_active\" (click)=\"clickLeft()\">\n <mat-icon *ngIf=\"options.leftArrow.matIcon\">{{ options.leftArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.leftArrow.svgIcon\" [svgIcon]=\"options.leftArrow.svgIcon\"></mat-icon>\n </button>\n <div class=\"asset-list-container\">\n <div *ngIf=\"showAddAssetContainer && edit\" class=\"add-asset-container\">\n <div class=\"add-asset\" matRipple (click)=\"fileInput.click()\">\n <mat-icon *ngIf=\"options.addPhoto.matIcon\">{{ options.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.addPhoto.svgIcon\" [svgIcon]=\"options.addPhoto.svgIcon\"></mat-icon>\n </div>\n </div>\n <div class=\"asset-list\" [ngStyle]=\"listStyle\">\n <div\n #assets\n class=\"asset\"\n *ngFor=\"let asset of _assets; let i = index\"\n (click)=\"clickAsset(i)\"\n [ngClass]=\"color\"\n [class.active]=\"_active === i\"\n >\n <ng-container>\n <img\n *ngIf=\"asset.type === 'image'\"\n draggable=\"false\"\n [src]=\"asset.url ?? asset.base64\"\n alt=\"add-image\"\n />\n <video\n *ngIf=\"asset.type === 'video'\"\n draggable=\"false\"\n loop\n [src]=\"asset.url ?? asset.base64\"\n ></video>\n </ng-container>\n </div>\n </div>\n </div>\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button right-arrow\" mat-icon-button [disabled]=\"_lastAsset\" (click)=\"clickRight()\">\n <mat-icon *ngIf=\"options.rightArrow.matIcon\">{{ options.rightArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.rightArrow.svgIcon\" [svgIcon]=\"options.rightArrow.svgIcon\"></mat-icon>\n </button>\n </div>\n</div>\n\n<input #fileInput type=\"file\" hidden [accept]=\"accept\" (change)=\"onFilesChange($event)\" [multiple]=\"multipleUpload\">\n", styles: [":root{--nice-assets-carousel-asset-width: 90px;--nice-assets-carousel-asset-height: 60px;--nice-assets-carousel-asset-gap: .75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]",
|
|
230
|
+
], queries: [{ propertyName: "activeContent", first: true, predicate: NiceAssetsCarouselActiveContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "activeVideoElement", first: true, predicate: ["activeVideo"], descendants: true }, { propertyName: "assetsElement", predicate: ["assets"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"carousel-container\" niceDropzone (filesDropped)=\"onFilesDrop($event)\">\n <div\n class=\"active-image\"\n matRipple\n [class.empty-state]=\"!_activeAsset\"\n (click)=\"edit && fileInput.click();\n $event.stopPropagation()\"\n >\n <div *ngIf=\"loading\" style=\"min-height: inherit\" class=\"flex flex-row justify-center items-center h-full\">\n <mat-spinner [diameter]=\"32\"></mat-spinner>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container\n *ngIf=\"_activeAsset && activeContent\"\n [ngTemplateOutlet]=\"activeContent\"\n [ngTemplateOutletContext]=\"{ $implicit: _activeAsset}\"\n ></ng-container>\n <img\n *ngIf=\"_activeAsset?.type === 'image'\"\n (mouseover)=\"showOverlay=true\"\n [src]=\"_activeAsset.url ?? _activeAsset.base64\"\n draggable=\"false\"\n class=\"relative\"\n alt=\"active-image\"\n >\n <video #activeVideo *ngIf=\"_activeAsset?.type === 'video'\" draggable=\"false\" loop [src]=\"_activeAsset.url ?? _activeAsset.base64\"></video>\n\n <div class=\"empty-state-content\" *ngIf=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n <div class=\"text\">\n {{ \"nice_ui_kit.assets_carousel.upload_here\" | translate }}\n </div>\n </div>\n\n <div *ngIf=\"_activeAsset && showOverlay && edit\" class=\"active-image-overlay\">\n <div\n (mouseout)=\"showOverlay=false\"\n class=\"flex flex-col justify-center items-center w-full h-full\"\n >\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"edit\" class=\"active-buttons\">\n <button mat-icon-button (click)=\"fileInput.click(); $event.stopPropagation()\">\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.matIcon\">{{ options.actionButtons.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.svgIcon\" [svgIcon]=\"options.actionButtons.addPhoto.svgIcon\"></mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"assetActions\" (click)=\"$event.stopPropagation()\" [disabled]=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.matIcon\">{{ options.actionButtons.moreOptions.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.svgIcon\" [svgIcon]=\"options.actionButtons.moreOptions.svgIcon\"></mat-icon>\n </button>\n <mat-menu class=\"nice-asset-options-menu\" [xPosition]=\"'before'\" #assetActions=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let action of customActions\"\n (click)=\"clickCustom(action)\"\n >\n <mat-icon *ngIf=\"action.icon.matIcon\">{{ action.icon.matIcon }}</mat-icon>\n <mat-icon [svgIcon]=\"action.icon.svgIcon\" *ngIf=\"action.icon.svgIcon\"></mat-icon>\n <span>{{ action.name | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"clickRemove()\">\n <mat-icon *ngIf=\"options.actionButtons.remove.matIcon\">{{ options.actionButtons.remove.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.remove.svgIcon\" [svgIcon]=\"options.actionButtons.remove.svgIcon\"></mat-icon>\n <span>{{ \"nice_ui_kit.assets_carousel.delete\" | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </ng-container>\n </div>\n\n <div class=\"carousel\">\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button left-arrow\" mat-icon-button [disabled]=\"!_active\" (click)=\"clickLeft()\">\n <mat-icon *ngIf=\"options.leftArrow.matIcon\">{{ options.leftArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.leftArrow.svgIcon\" [svgIcon]=\"options.leftArrow.svgIcon\"></mat-icon>\n </button>\n <div class=\"asset-list-container\">\n <div *ngIf=\"showAddAssetContainer && edit\" class=\"add-asset-container\">\n <div class=\"add-asset\" matRipple (click)=\"fileInput.click()\">\n <mat-icon *ngIf=\"options.addPhoto.matIcon\">{{ options.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.addPhoto.svgIcon\" [svgIcon]=\"options.addPhoto.svgIcon\"></mat-icon>\n </div>\n </div>\n <div class=\"asset-list\" [ngStyle]=\"listStyle\">\n <div\n #assets\n class=\"asset\"\n *ngFor=\"let asset of _assets; let i = index\"\n (click)=\"clickAsset(i)\"\n [ngClass]=\"color\"\n [class.active]=\"_active === i\"\n >\n <ng-container>\n <img\n *ngIf=\"asset.type === 'image'\"\n draggable=\"false\"\n [src]=\"asset.url ?? asset.base64\"\n alt=\"add-image\"\n />\n <video\n *ngIf=\"asset.type === 'video'\"\n draggable=\"false\"\n loop\n [src]=\"asset.url ?? asset.base64\"\n ></video>\n </ng-container>\n </div>\n </div>\n </div>\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button right-arrow\" mat-icon-button [disabled]=\"_lastAsset\" (click)=\"clickRight()\">\n <mat-icon *ngIf=\"options.rightArrow.matIcon\">{{ options.rightArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.rightArrow.svgIcon\" [svgIcon]=\"options.rightArrow.svgIcon\"></mat-icon>\n </button>\n </div>\n</div>\n\n<input #fileInput type=\"file\" hidden [accept]=\"accept\" (change)=\"onFilesChange($event)\" [multiple]=\"multipleUpload\">\n", styles: [":root{--nice-assets-carousel-asset-width: 90px;--nice-assets-carousel-asset-height: 60px;--nice-assets-carousel-asset-gap: .75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i6.NiceDropzoneDirective, selector: "[niceDropzone]", outputs: ["filesDropped"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None }); }
|
|
231
231
|
}
|
|
232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselComponent, decorators: [{
|
|
233
233
|
type: Component,
|
|
234
234
|
args: [{ selector: "nice-assets-carousel", encapsulation: ViewEncapsulation.None, animations: niceAnimations, providers: [
|
|
235
235
|
{
|
|
@@ -238,12 +238,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
|
|
|
238
238
|
multi: true
|
|
239
239
|
}
|
|
240
240
|
], template: "<div class=\"carousel-container\" niceDropzone (filesDropped)=\"onFilesDrop($event)\">\n <div\n class=\"active-image\"\n matRipple\n [class.empty-state]=\"!_activeAsset\"\n (click)=\"edit && fileInput.click();\n $event.stopPropagation()\"\n >\n <div *ngIf=\"loading\" style=\"min-height: inherit\" class=\"flex flex-row justify-center items-center h-full\">\n <mat-spinner [diameter]=\"32\"></mat-spinner>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container\n *ngIf=\"_activeAsset && activeContent\"\n [ngTemplateOutlet]=\"activeContent\"\n [ngTemplateOutletContext]=\"{ $implicit: _activeAsset}\"\n ></ng-container>\n <img\n *ngIf=\"_activeAsset?.type === 'image'\"\n (mouseover)=\"showOverlay=true\"\n [src]=\"_activeAsset.url ?? _activeAsset.base64\"\n draggable=\"false\"\n class=\"relative\"\n alt=\"active-image\"\n >\n <video #activeVideo *ngIf=\"_activeAsset?.type === 'video'\" draggable=\"false\" loop [src]=\"_activeAsset.url ?? _activeAsset.base64\"></video>\n\n <div class=\"empty-state-content\" *ngIf=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n <div class=\"text\">\n {{ \"nice_ui_kit.assets_carousel.upload_here\" | translate }}\n </div>\n </div>\n\n <div *ngIf=\"_activeAsset && showOverlay && edit\" class=\"active-image-overlay\">\n <div\n (mouseout)=\"showOverlay=false\"\n class=\"flex flex-col justify-center items-center w-full h-full\"\n >\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"edit\" class=\"active-buttons\">\n <button mat-icon-button (click)=\"fileInput.click(); $event.stopPropagation()\">\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.matIcon\">{{ options.actionButtons.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.svgIcon\" [svgIcon]=\"options.actionButtons.addPhoto.svgIcon\"></mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"assetActions\" (click)=\"$event.stopPropagation()\" [disabled]=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.matIcon\">{{ options.actionButtons.moreOptions.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.svgIcon\" [svgIcon]=\"options.actionButtons.moreOptions.svgIcon\"></mat-icon>\n </button>\n <mat-menu class=\"nice-asset-options-menu\" [xPosition]=\"'before'\" #assetActions=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let action of customActions\"\n (click)=\"clickCustom(action)\"\n >\n <mat-icon *ngIf=\"action.icon.matIcon\">{{ action.icon.matIcon }}</mat-icon>\n <mat-icon [svgIcon]=\"action.icon.svgIcon\" *ngIf=\"action.icon.svgIcon\"></mat-icon>\n <span>{{ action.name | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"clickRemove()\">\n <mat-icon *ngIf=\"options.actionButtons.remove.matIcon\">{{ options.actionButtons.remove.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.remove.svgIcon\" [svgIcon]=\"options.actionButtons.remove.svgIcon\"></mat-icon>\n <span>{{ \"nice_ui_kit.assets_carousel.delete\" | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </ng-container>\n </div>\n\n <div class=\"carousel\">\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button left-arrow\" mat-icon-button [disabled]=\"!_active\" (click)=\"clickLeft()\">\n <mat-icon *ngIf=\"options.leftArrow.matIcon\">{{ options.leftArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.leftArrow.svgIcon\" [svgIcon]=\"options.leftArrow.svgIcon\"></mat-icon>\n </button>\n <div class=\"asset-list-container\">\n <div *ngIf=\"showAddAssetContainer && edit\" class=\"add-asset-container\">\n <div class=\"add-asset\" matRipple (click)=\"fileInput.click()\">\n <mat-icon *ngIf=\"options.addPhoto.matIcon\">{{ options.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.addPhoto.svgIcon\" [svgIcon]=\"options.addPhoto.svgIcon\"></mat-icon>\n </div>\n </div>\n <div class=\"asset-list\" [ngStyle]=\"listStyle\">\n <div\n #assets\n class=\"asset\"\n *ngFor=\"let asset of _assets; let i = index\"\n (click)=\"clickAsset(i)\"\n [ngClass]=\"color\"\n [class.active]=\"_active === i\"\n >\n <ng-container>\n <img\n *ngIf=\"asset.type === 'image'\"\n draggable=\"false\"\n [src]=\"asset.url ?? asset.base64\"\n alt=\"add-image\"\n />\n <video\n *ngIf=\"asset.type === 'video'\"\n draggable=\"false\"\n loop\n [src]=\"asset.url ?? asset.base64\"\n ></video>\n </ng-container>\n </div>\n </div>\n </div>\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button right-arrow\" mat-icon-button [disabled]=\"_lastAsset\" (click)=\"clickRight()\">\n <mat-icon *ngIf=\"options.rightArrow.matIcon\">{{ options.rightArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.rightArrow.svgIcon\" [svgIcon]=\"options.rightArrow.svgIcon\"></mat-icon>\n </button>\n </div>\n</div>\n\n<input #fileInput type=\"file\" hidden [accept]=\"accept\" (change)=\"onFilesChange($event)\" [multiple]=\"multipleUpload\">\n", styles: [":root{--nice-assets-carousel-asset-width: 90px;--nice-assets-carousel-asset-height: 60px;--nice-assets-carousel-asset-gap: .75rem}\n"] }]
|
|
241
|
-
}], ctorParameters:
|
|
241
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
242
242
|
type: Optional
|
|
243
243
|
}, {
|
|
244
244
|
type: Inject,
|
|
245
245
|
args: [NICE_ASSETS_CAROUSEL_OPTIONS]
|
|
246
|
-
}] }]
|
|
246
|
+
}] }], propDecorators: { inputElement: [{
|
|
247
247
|
type: ViewChild,
|
|
248
248
|
args: ["fileInput"]
|
|
249
249
|
}], color: [{
|
|
@@ -280,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
|
|
|
280
280
|
}], assets: [{
|
|
281
281
|
type: Input
|
|
282
282
|
}] } });
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3NldHMtY2Fyb3VzZWwvYXNzZXRzLWNhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3NldHMtY2Fyb3VzZWwvYXNzZXRzLWNhcm91c2VsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7Ozs7Ozs7O0FBNENqSCxNQUFNLE9BQU8sMkJBQTJCO0lBeURwQyxJQUNXLGtCQUFrQixDQUFDLGtCQUFnRDtRQUMxRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkQsT0FBTztTQUNWO1FBRUQs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ZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBDYW5Db2xvciwgVGhlbWVQYWxldHRlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IG5pY2VBbmltYXRpb25zIH0gZnJvbSBcIi4uLy4uL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IEZpbGVVdGlscyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuaW1wb3J0IHsgTklDRV9BU1NFVFNfQ0FST1VTRUxfT1BUSU9OUyB9IGZyb20gXCIuL2Fzc2V0cy1jYXJvdXNlbC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUFzc2V0c0Nhcm91c2VsQWN0aXZlQ29udGVudERpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYXNzZXRzLWNhcm91c2VsLWFjdGl2ZS1jb250ZW50LmRpcmVjdGl2ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VBc3NldHMge1xuICAgIHR5cGU6IFwiaW1hZ2VcIiB8IFwidmlkZW9cIjtcbiAgICBpZD86IG51bWJlciB8IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgYmFzZTY0Pzogc3RyaW5nO1xuICAgIGZpbGU/OiBGaWxlO1xufVxuXG5leHBvcnQgdHlwZSBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uID0geyBtYXRJY29uOiBzdHJpbmc7IHN2Z0ljb24/OiBzdHJpbmc7IH0gfCB7IG1hdEljb24/OiBzdHJpbmc7IHN2Z0ljb246IHN0cmluZzsgfTtcblxuZXhwb3J0IGludGVyZmFjZSBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25zIHtcbiAgICBpY29uOiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb246IChhY3RpdmU6IG51bWJlcikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOaWNlQXNzZXRzQ2Fyb3VzZWxPcHRpb25zIHtcbiAgICBhY3Rpb25CdXR0b25zPzoge1xuICAgICAgICBtb3JlT3B0aW9ucz86IE5pY2VBc3NldHNDYXJvdXNlbEFjdGlvbkljb247XG4gICAgICAgIGFkZFBob3RvPzogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uSWNvbjtcbiAgICAgICAgcmVtb3ZlPzogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uSWNvbjtcbiAgICB9O1xuICAgIGFkZFBob3RvPzogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uSWNvbjtcbiAgICBsZWZ0QXJyb3c/OiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uO1xuICAgIHJpZ2h0QXJyb3c/OiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uO1xuICAgIHVwbG9hZD86IE5pY2VBc3NldHNDYXJvdXNlbEFjdGlvbkljb247XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYXNzZXRzLWNhcm91c2VsXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiYXNzZXRzLWNhcm91c2VsLnRlbXBsYXRlLmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcImFzc2V0cy1jYXJvdXNlbC50aGVtZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogbmljZUFuaW1hdGlvbnMsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmljZUFzc2V0c0Nhcm91c2VsQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VBc3NldHNDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQ2FuQ29sb3Ige1xuICAgIHB1YmxpYyBfYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbiA9IDA7XG4gICAgcHVibGljIF9hY3RpdmUgPSAwO1xuICAgIHB1YmxpYyBfYXNzZXRzOiBOaWNlQXNzZXRzW10gPSBbXTtcbiAgICBwdWJsaWMgX2FjdGl2ZUFzc2V0OiBOaWNlQXNzZXRzO1xuICAgIHB1YmxpYyBfbGFzdEFzc2V0ID0gdHJ1ZTtcbiAgICBwdWJsaWMgX3Nob3VsZFRyYW5zZm9ybSA9IGZhbHNlO1xuICAgIHB1YmxpYyBfYWN0aXZlVmlkZW9FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxWaWRlb0VsZW1lbnQ+O1xuICAgIHB1YmxpYyBfYXNzZXRzRWxlbWVudDogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcbiAgICBwdWJsaWMgZGVmYXVsdENvbG9yOiBUaGVtZVBhbGV0dGUgPSBcInByaW1hcnlcIjtcblxuICAgIEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIilcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9IHRoaXMuZGVmYXVsdENvbG9yO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWNjZXB0OiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tQWN0aW9uczogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uc1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZXNQcm9jZXNzb3I6IChmaWxlczogRmlsZVtdKSA9PiBQcm9taXNlPEZpbGVbXT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZVVwbG9hZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmlzaWJsZVByZXZpZXdBc3NldCA9IDQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93QWRkQXNzZXRDb250YWluZXIgPSB0cnVlO1xuXG4gICAgQENvbnRlbnRDaGlsZChOaWNlQXNzZXRzQ2Fyb3VzZWxBY3RpdmVDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGFjdGl2ZUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlZEFzc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxOaWNlQXNzZXRzPigpO1xuXG4gICAgcHVibGljIGxpc3RTdHlsZTogeyB0cmFuc2Zvcm06IHN0cmluZyB9ID0geyB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgwcHgpXCIgfTtcblxuICAgIHB1YmxpYyBzaG93T3ZlcmxheTogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgX2ltYWdlc01pbWVUeXBlcyA9IFtcImltYWdlL3BuZ1wiLCBcImltYWdlL2pwZWdcIiwgXCJpbWFnZS93ZWJwXCIsIFwiaW1hZ2UvYXZpZlwiXTtcbiAgICBwcml2YXRlIHByb3BhZ2F0ZTogKGFzc2V0czogTmljZUFzc2V0c1tdKSA9PiB2b2lkO1xuXG4gICAgQFZpZXdDaGlsZChcImFjdGl2ZVZpZGVvXCIpXG4gICAgcHVibGljIHNldCBhY3RpdmVWaWRlb0VsZW1lbnQoYWN0aXZlVmlkZW9FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxWaWRlb0VsZW1lbnQ+KSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudCA9IGFjdGl2ZVZpZGVvRWxlbWVudDtcblxuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudCB8fCAhdGhpcy5fYXNzZXRzRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGFydFN5bmNWaWRlbygpO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGRyZW4oXCJhc3NldHNcIilcbiAgICBwdWJsaWMgc2V0IGFzc2V0c0VsZW1lbnQoYXNzZXRzRWxlbWVudDogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+Pikge1xuICAgICAgICB0aGlzLl9hc3NldHNFbGVtZW50ID0gYXNzZXRzRWxlbWVudDtcblxuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudCB8fCAhdGhpcy5fYXNzZXRzRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGFydFN5bmNWaWRlbygpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBhc3NldHMoYXNzZXRzOiBOaWNlQXNzZXRzW10pIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKGFzc2V0cyA/PyBbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXQgYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVRyYW5zbGF0aW9uUG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgdGhpcy5saXN0U3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoY2FsYygodmFyKC0tbmljZS1hc3NldHMtY2Fyb3VzZWwtYXNzZXQtd2lkdGgpICsgdmFyKC0tbmljZS1hc3NldHMtY2Fyb3VzZWwtYXNzZXQtZ2FwKSkgKiAke3Bvc2l0aW9ufSkpYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBhY3RpdmVBc3NldChwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIGlmIChwb3NpdGlvbiA8IDApIHtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IHBvc2l0aW9uO1xuICAgICAgICB0aGlzLl9hY3RpdmVBc3NldCA9IHRoaXMuX2Fzc2V0c1t0aGlzLl9hY3RpdmVdO1xuICAgICAgICB0aGlzLl9sYXN0QXNzZXQgPSB0aGlzLl9hY3RpdmUgPT09IHRoaXMuX2Fzc2V0cy5sZW5ndGggLSAxIHx8ICF0aGlzLl9hc3NldHMubGVuZ3RoO1xuICAgICAgICB0aGlzLl9zaG91bGRUcmFuc2Zvcm1cbiAgICAgICAgICAgID0gKCh0aGlzLmVkaXQgJiYgdGhpcy5zaG93QWRkQXNzZXRDb250YWluZXIpICYmIHRoaXMuX2FjdGl2ZSA+PSAodGhpcy52aXNpYmxlUHJldmlld0Fzc2V0IC0gMSkpXG4gICAgICAgICAgICB8fCB0aGlzLl9hY3RpdmUgPj0gdGhpcy52aXNpYmxlUHJldmlld0Fzc2V0O1xuICAgICAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHRoaXMuX2FjdGl2ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChOSUNFX0FTU0VUU19DQVJPVVNFTF9PUFRJT05TKSBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogTmljZUFzc2V0c0Nhcm91c2VsT3B0aW9ucykge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgYWRkUGhvdG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwicGhvdG9fY2FtZXJhXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbW9yZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwibW9yZV92ZXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJY29uOiBcImRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFkZFBob3RvOiB7XG4gICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwicGhvdG9fY2FtZXJhXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxlZnRBcnJvdzoge1xuICAgICAgICAgICAgICAgICAgICBtYXRJY29uOiBcImNoZXZyb25fbGVmdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByaWdodEFycm93OiB7XG4gICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwiY2hldnJvbl9yaWdodFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB1cGxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgbWF0SWNvbjogXCJmaWxlX3VwbG9hZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2VwdCA9IFsuLi50aGlzLl9pbWFnZXNNaW1lVHlwZXNdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFwiYWNjZXB0XCIgaW4gY2hhbmdlcyAmJiB0aGlzLmFjY2VwdCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFjY2VwdC5pbmRleE9mKFwiaW1hZ2UvKlwiKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2VwdC5wdXNoKC4uLnRoaXMuX2ltYWdlc01pbWVUeXBlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZShhc3NldHM6IE5pY2VBc3NldHNbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hc3NldHMgPSBhc3NldHMgPz8gW107XG5cbiAgICAgICAgaWYgKHRoaXMuX2Fzc2V0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUFzc2V0ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RBc3NldCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYXNzZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUFzc2V0ID0gdGhpcy5fYXNzZXRzW3RoaXMuX2FjdGl2ZV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGFzc2V0czogTmljZUFzc2V0c1tdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoYXNzZXRzOiBOaWNlQXNzZXRzW10pID0+IHZvaWQpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgY2xpY2tMZWZ0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUFzc2V0ID0gdGhpcy5fYWN0aXZlIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVUcmFuc2xhdGlvblBvc2l0aW9uIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUcmFuc2xhdGlvblBvc2l0aW9uID0gdGhpcy5fYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbiArIDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tSaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xhc3RBc3NldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVBc3NldCA9IHRoaXMuX2FjdGl2ZSArIDE7XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbiA9IHRoaXMuX2FjdGl2ZVRyYW5zbGF0aW9uUG9zaXRpb24gLSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrQXNzZXQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBsZXQgdmlzaWJsZUFzc2V0cyA9ICh0aGlzLmVkaXQgJiYgdGhpcy5zaG93QWRkQXNzZXRDb250YWluZXIpID8gKHRoaXMudmlzaWJsZVByZXZpZXdBc3NldCAtIDIpIDogKHRoaXMudmlzaWJsZVByZXZpZXdBc3NldCAtIDEpO1xuICAgICAgICBpZiAoaW5kZXggPCB2aXNpYmxlQXNzZXRzKSB7XG4gICAgICAgICAgICB2aXNpYmxlQXNzZXRzID0gaW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUcmFuc2xhdGlvblBvc2l0aW9uID0gKGluZGV4IC0gdmlzaWJsZUFzc2V0cykgKiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlQXNzZXQgPSBpbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25GaWxlc0NoYW5nZShldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpPy5maWxlcztcblxuICAgICAgICBhd2FpdCB0aGlzLm9uRmlsZXNEcm9wKGZpbGVzKTtcblxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25GaWxlc0Ryb3AoZmlsZUxpc3Q6IEZpbGVMaXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCBmaWxlcyA9IHRoaXMuZmlsdGVyT3V0VW5zdXBwb3J0ZWRGaWxlcyhmaWxlTGlzdCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VzUHJvY2Vzc29yKSB7XG4gICAgICAgICAgICBmaWxlcyA9IGF3YWl0IHRoaXMuZ2V0UHJvY2Vzc2VkRmlsZXMoZmlsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFmaWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2V0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZS5zcGxpdChcIi9cIikuc2hpZnQoKSBhcyBcImltYWdlXCIgfCBcInZpZGVvXCIsXG4gICAgICAgICAgICAgICAgYmFzZTY0OiBhd2FpdCBGaWxlVXRpbHMuZ2V0RGF0YVVybChmaWxlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsaWNrQXNzZXQodGhpcy5fYXNzZXRzLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZT8uKHRoaXMuX2Fzc2V0cyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrUmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZWRBc3NldC5lbWl0KHRoaXMuX2Fzc2V0c1t0aGlzLl9hY3RpdmVdKTtcbiAgICAgICAgdGhpcy5fYXNzZXRzLnNwbGljZSh0aGlzLl9hY3RpdmUsIDEpO1xuXG4gICAgICAgIGlmICh0aGlzLl9sYXN0QXNzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tBc3NldCh0aGlzLl9hc3NldHMubGVuZ3RoIC0gMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrQXNzZXQodGhpcy5fYWN0aXZlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvcGFnYXRlPy4odGhpcy5fYXNzZXRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tDdXN0b20oYWN0aW9uOiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25zKTogdm9pZCB7XG4gICAgICAgIGFjdGlvbi5hY3Rpb24odGhpcy5fYWN0aXZlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRTeW5jVmlkZW8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICh0aGlzLl9hc3NldHNFbGVtZW50LmdldCh0aGlzLl9hY3RpdmUpLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTFZpZGVvRWxlbWVudCkucGF1c2UoKTtcbiAgICAgICAgKHRoaXMuX2Fzc2V0c0VsZW1lbnQuZ2V0KHRoaXMuX2FjdGl2ZSkubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MVmlkZW9FbGVtZW50KS5jdXJyZW50VGltZSA9IDA7XG5cbiAgICAgICAgdGhpcy5fYWN0aXZlVmlkZW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSAwO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudC5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgICAgYXdhaXQgKHRoaXMuX2Fzc2V0c0VsZW1lbnQuZ2V0KHRoaXMuX2FjdGl2ZSkubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MVmlkZW9FbGVtZW50KS5wbGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJPdXRVbnN1cHBvcnRlZEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IEZpbGVbXSB7XG4gICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gZmlsZUxpc3QuaXRlbShpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjY2VwdC5zb21lKChhY2NlcHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWNjZXB0LmVuZHNXaXRoKFwiKlwiKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZS50eXBlLnN0YXJ0c1dpdGgoYWNjZXB0LnJlcGxhY2UoXCIqXCIsIFwiXCIpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjZXB0ID09PSBmaWxlLnR5cGU7XG4gICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgICAgIGZpbGVzLnB1c2goZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRQcm9jZXNzZWRGaWxlcyhmaWxlczogRmlsZVtdKTogUHJvbWlzZTxGaWxlW10gfCBudWxsPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIWZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5pbWFnZXNQcm9jZXNzb3IoZmlsZXMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXJcIiBuaWNlRHJvcHpvbmUgKGZpbGVzRHJvcHBlZCk9XCJvbkZpbGVzRHJvcCgkZXZlbnQpXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFjdGl2ZS1pbWFnZVwiXG4gICAgICAgIG1hdFJpcHBsZVxuICAgICAgICBbY2xhc3MuZW1wdHktc3RhdGVdPVwiIV9hY3RpdmVBc3NldFwiXG4gICAgICAgIChjbGljayk9XCJlZGl0ICYmIGZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgID5cbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBzdHlsZT1cIm1pbi1oZWlnaHQ6IGluaGVyaXRcIiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGgtZnVsbFwiPlxuICAgICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIzMlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIl9hY3RpdmVBc3NldCAmJiBhY3RpdmVDb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3RpdmVDb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9hY3RpdmVBc3NldH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiX2FjdGl2ZUFzc2V0Py50eXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cInNob3dPdmVybGF5PXRydWVcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiX2FjdGl2ZUFzc2V0LnVybCA/PyBfYWN0aXZlQXNzZXQuYmFzZTY0XCJcbiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgYWx0PVwiYWN0aXZlLWltYWdlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDx2aWRlbyAjYWN0aXZlVmlkZW8gKm5nSWY9XCJfYWN0aXZlQXNzZXQ/LnR5cGUgPT09ICd2aWRlbydcIiBkcmFnZ2FibGU9XCJmYWxzZVwiIGxvb3AgW3NyY109XCJfYWN0aXZlQXNzZXQudXJsID8/IF9hY3RpdmVBc3NldC5iYXNlNjRcIj48L3ZpZGVvPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUtY29udGVudFwiICpuZ0lmPVwiIV9hY3RpdmVBc3NldFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMudXBsb2FkLm1hdEljb25cIj57eyBvcHRpb25zLnVwbG9hZC5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLnVwbG9hZC5zdmdJY29uXCIgW3N2Z0ljb25dPVwib3B0aW9ucy51cGxvYWQuc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgXCJuaWNlX3VpX2tpdC5hc3NldHNfY2Fyb3VzZWwudXBsb2FkX2hlcmVcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJfYWN0aXZlQXNzZXQgJiYgc2hvd092ZXJsYXkgJiYgZWRpdFwiIGNsYXNzPVwiYWN0aXZlLWltYWdlLW92ZXJsYXlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIChtb3VzZW91dCk9XCJzaG93T3ZlcmxheT1mYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgdy1mdWxsIGgtZnVsbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLnVwbG9hZC5tYXRJY29uXCI+e3sgb3B0aW9ucy51cGxvYWQubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMudXBsb2FkLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLnVwbG9hZC5zdmdJY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZWRpdFwiIGNsYXNzPVwiYWN0aXZlLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMuYWRkUGhvdG8ubWF0SWNvblwiPnt7IG9wdGlvbnMuYWN0aW9uQnV0dG9ucy5hZGRQaG90by5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib3B0aW9ucy5hY3Rpb25CdXR0b25zLmFkZFBob3RvLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMuYWRkUGhvdG8uc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFzc2V0QWN0aW9uc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbZGlzYWJsZWRdPVwiIV9hY3RpdmVBc3NldFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMubW9yZU9wdGlvbnMubWF0SWNvblwiPnt7IG9wdGlvbnMuYWN0aW9uQnV0dG9ucy5tb3JlT3B0aW9ucy5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib3B0aW9ucy5hY3Rpb25CdXR0b25zLm1vcmVPcHRpb25zLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMubW9yZU9wdGlvbnMuc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPG1hdC1tZW51IGNsYXNzPVwibmljZS1hc3NldC1vcHRpb25zLW1lbnVcIiBbeFBvc2l0aW9uXT1cIidiZWZvcmUnXCIgI2Fzc2V0QWN0aW9ucz1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjdXN0b21BY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0N1c3RvbShhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLmljb24ubWF0SWNvblwiPnt7IGFjdGlvbi5pY29uLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImFjdGlvbi5pY29uLnN2Z0ljb25cIiAqbmdJZj1cImFjdGlvbi5pY29uLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNsaWNrUmVtb3ZlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMuYWN0aW9uQnV0dG9ucy5yZW1vdmUubWF0SWNvblwiPnt7IG9wdGlvbnMuYWN0aW9uQnV0dG9ucy5yZW1vdmUubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMucmVtb3ZlLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMucmVtb3ZlLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXCJuaWNlX3VpX2tpdC5hc3NldHNfY2Fyb3VzZWwuZGVsZXRlXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWxcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dBZGRBc3NldENvbnRhaW5lciB8fCBfYWN0aXZlQXNzZXRcIiBjbGFzcz1cImFjdGlvbi1idXR0b24gbGVmdC1hcnJvd1wiIG1hdC1pY29uLWJ1dHRvbiBbZGlzYWJsZWRdPVwiIV9hY3RpdmVcIiAoY2xpY2spPVwiY2xpY2tMZWZ0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMubGVmdEFycm93Lm1hdEljb25cIj57eyBvcHRpb25zLmxlZnRBcnJvdy5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFycm93c1wiICpuZ0lmPVwib3B0aW9ucy5sZWZ0QXJyb3cuc3ZnSWNvblwiIFtzdmdJY29uXT1cIm9wdGlvbnMubGVmdEFycm93LnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0FkZEFzc2V0Q29udGFpbmVyICYmIGVkaXRcIiBjbGFzcz1cImFkZC1hc3NldC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkLWFzc2V0XCIgbWF0UmlwcGxlIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFkZFBob3RvLm1hdEljb25cIj57eyBvcHRpb25zLmFkZFBob3RvLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFkZFBob3RvLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFkZFBob3RvLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtbGlzdFwiIFtuZ1N0eWxlXT1cImxpc3RTdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2Fzc2V0c1xuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFzc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFzc2V0IG9mIF9hc3NldHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tBc3NldChpKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJfYWN0aXZlID09PSBpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhc3NldC50eXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJhc3NldC51cmwgPz8gYXNzZXQuYmFzZTY0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJhZGQtaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXNzZXQudHlwZSA9PT0gJ3ZpZGVvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFzc2V0LnVybCA/PyBhc3NldC5iYXNlNjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0FkZEFzc2V0Q29udGFpbmVyIHx8IF9hY3RpdmVBc3NldFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvbiByaWdodC1hcnJvd1wiIG1hdC1pY29uLWJ1dHRvbiBbZGlzYWJsZWRdPVwiX2xhc3RBc3NldFwiIChjbGljayk9XCJjbGlja1JpZ2h0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMucmlnaHRBcnJvdy5tYXRJY29uXCI+e3sgb3B0aW9ucy5yaWdodEFycm93Lm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYXJyb3dzXCIgKm5nSWY9XCJvcHRpb25zLnJpZ2h0QXJyb3cuc3ZnSWNvblwiIFtzdmdJY29uXT1cIm9wdGlvbnMucmlnaHRBcnJvdy5zdmdJY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBoaWRkZW4gW2FjY2VwdF09XCJhY2NlcHRcIiAoY2hhbmdlKT1cIm9uRmlsZXNDaGFuZ2UoJGV2ZW50KVwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVVwbG9hZFwiPlxuIl19
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3NldHMtY2Fyb3VzZWwvYXNzZXRzLWNhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3NldHMtY2Fyb3VzZWwvYXNzZXRzLWNhcm91c2VsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7Ozs7Ozs7O0FBNENqSCxNQUFNLE9BQU8sMkJBQTJCO0lBeURwQyxJQUNXLGtCQUFrQixDQUFDLGtCQUFnRDtRQUMxRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwRCxPQUFPO1FBQ1gs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O2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFJQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyx3Q0FBd0MsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSXRFLFlBQVk7c0JBRGxCLE1BQU07Z0JBSUEsWUFBWTtzQkFEbEIsTUFBTTtnQkFXSSxrQkFBa0I7c0JBRDVCLFNBQVM7dUJBQUMsYUFBYTtnQkFZYixhQUFhO3NCQUR2QixZQUFZO3VCQUFDLFFBQVE7Z0JBWVgsTUFBTTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBDYW5Db2xvciwgVGhlbWVQYWxldHRlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IG5pY2VBbmltYXRpb25zIH0gZnJvbSBcIi4uLy4uL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IEZpbGVVdGlscyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuaW1wb3J0IHsgTklDRV9BU1NFVFNfQ0FST1VTRUxfT1BUSU9OUyB9IGZyb20gXCIuL2Fzc2V0cy1jYXJvdXNlbC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUFzc2V0c0Nhcm91c2VsQWN0aXZlQ29udGVudERpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYXNzZXRzLWNhcm91c2VsLWFjdGl2ZS1jb250ZW50LmRpcmVjdGl2ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VBc3NldHMge1xuICAgIHR5cGU6IFwiaW1hZ2VcIiB8IFwidmlkZW9cIjtcbiAgICBpZD86IG51bWJlciB8IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgYmFzZTY0Pzogc3RyaW5nO1xuICAgIGZpbGU/OiBGaWxlO1xufVxuXG5leHBvcnQgdHlwZSBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uID0geyBtYXRJY29uOiBzdHJpbmc7IHN2Z0ljb24/OiBzdHJpbmc7IH0gfCB7IG1hdEljb24/OiBzdHJpbmc7IHN2Z0ljb246IHN0cmluZzsgfTtcblxuZXhwb3J0IGludGVyZmFjZSBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25zIHtcbiAgICBpY29uOiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb246IChhY3RpdmU6IG51bWJlcikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOaWNlQXNzZXRzQ2Fyb3VzZWxPcHRpb25zIHtcbiAgICBhY3Rpb25CdXR0b25zPzoge1xuICAgICAgICBtb3JlT3B0aW9ucz86IE5pY2VBc3NldHNDYXJvdXNlbEFjdGlvbkljb247XG4gICAgICAgIGFkZFBob3RvPzogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uSWNvbjtcbiAgICAgICAgcmVtb3ZlPzogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uSWNvbjtcbiAgICB9O1xuICAgIGFkZFBob3RvPzogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uSWNvbjtcbiAgICBsZWZ0QXJyb3c/OiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uO1xuICAgIHJpZ2h0QXJyb3c/OiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25JY29uO1xuICAgIHVwbG9hZD86IE5pY2VBc3NldHNDYXJvdXNlbEFjdGlvbkljb247XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYXNzZXRzLWNhcm91c2VsXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiYXNzZXRzLWNhcm91c2VsLnRlbXBsYXRlLmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcImFzc2V0cy1jYXJvdXNlbC50aGVtZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogbmljZUFuaW1hdGlvbnMsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmljZUFzc2V0c0Nhcm91c2VsQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VBc3NldHNDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQ2FuQ29sb3Ige1xuICAgIHB1YmxpYyBfYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbiA9IDA7XG4gICAgcHVibGljIF9hY3RpdmUgPSAwO1xuICAgIHB1YmxpYyBfYXNzZXRzOiBOaWNlQXNzZXRzW10gPSBbXTtcbiAgICBwdWJsaWMgX2FjdGl2ZUFzc2V0OiBOaWNlQXNzZXRzO1xuICAgIHB1YmxpYyBfbGFzdEFzc2V0ID0gdHJ1ZTtcbiAgICBwdWJsaWMgX3Nob3VsZFRyYW5zZm9ybSA9IGZhbHNlO1xuICAgIHB1YmxpYyBfYWN0aXZlVmlkZW9FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxWaWRlb0VsZW1lbnQ+O1xuICAgIHB1YmxpYyBfYXNzZXRzRWxlbWVudDogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcbiAgICBwdWJsaWMgZGVmYXVsdENvbG9yOiBUaGVtZVBhbGV0dGUgPSBcInByaW1hcnlcIjtcblxuICAgIEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIilcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9IHRoaXMuZGVmYXVsdENvbG9yO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWNjZXB0OiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tQWN0aW9uczogTmljZUFzc2V0c0Nhcm91c2VsQWN0aW9uc1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZXNQcm9jZXNzb3I6IChmaWxlczogRmlsZVtdKSA9PiBQcm9taXNlPEZpbGVbXT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZVVwbG9hZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmlzaWJsZVByZXZpZXdBc3NldCA9IDQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93QWRkQXNzZXRDb250YWluZXIgPSB0cnVlO1xuXG4gICAgQENvbnRlbnRDaGlsZChOaWNlQXNzZXRzQ2Fyb3VzZWxBY3RpdmVDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGFjdGl2ZUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlZEFzc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxOaWNlQXNzZXRzPigpO1xuXG4gICAgcHVibGljIGxpc3RTdHlsZTogeyB0cmFuc2Zvcm06IHN0cmluZyB9ID0geyB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgwcHgpXCIgfTtcblxuICAgIHB1YmxpYyBzaG93T3ZlcmxheTogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgX2ltYWdlc01pbWVUeXBlcyA9IFtcImltYWdlL3BuZ1wiLCBcImltYWdlL2pwZWdcIiwgXCJpbWFnZS93ZWJwXCIsIFwiaW1hZ2UvYXZpZlwiXTtcbiAgICBwcml2YXRlIHByb3BhZ2F0ZTogKGFzc2V0czogTmljZUFzc2V0c1tdKSA9PiB2b2lkO1xuXG4gICAgQFZpZXdDaGlsZChcImFjdGl2ZVZpZGVvXCIpXG4gICAgcHVibGljIHNldCBhY3RpdmVWaWRlb0VsZW1lbnQoYWN0aXZlVmlkZW9FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxWaWRlb0VsZW1lbnQ+KSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudCA9IGFjdGl2ZVZpZGVvRWxlbWVudDtcblxuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudCB8fCAhdGhpcy5fYXNzZXRzRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGFydFN5bmNWaWRlbygpO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGRyZW4oXCJhc3NldHNcIilcbiAgICBwdWJsaWMgc2V0IGFzc2V0c0VsZW1lbnQoYXNzZXRzRWxlbWVudDogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+Pikge1xuICAgICAgICB0aGlzLl9hc3NldHNFbGVtZW50ID0gYXNzZXRzRWxlbWVudDtcblxuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudCB8fCAhdGhpcy5fYXNzZXRzRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGFydFN5bmNWaWRlbygpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBhc3NldHMoYXNzZXRzOiBOaWNlQXNzZXRzW10pIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKGFzc2V0cyA/PyBbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXQgYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVRyYW5zbGF0aW9uUG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgdGhpcy5saXN0U3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoY2FsYygodmFyKC0tbmljZS1hc3NldHMtY2Fyb3VzZWwtYXNzZXQtd2lkdGgpICsgdmFyKC0tbmljZS1hc3NldHMtY2Fyb3VzZWwtYXNzZXQtZ2FwKSkgKiAke3Bvc2l0aW9ufSkpYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBhY3RpdmVBc3NldChwb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIGlmIChwb3NpdGlvbiA8IDApIHtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IHBvc2l0aW9uO1xuICAgICAgICB0aGlzLl9hY3RpdmVBc3NldCA9IHRoaXMuX2Fzc2V0c1t0aGlzLl9hY3RpdmVdO1xuICAgICAgICB0aGlzLl9sYXN0QXNzZXQgPSB0aGlzLl9hY3RpdmUgPT09IHRoaXMuX2Fzc2V0cy5sZW5ndGggLSAxIHx8ICF0aGlzLl9hc3NldHMubGVuZ3RoO1xuICAgICAgICB0aGlzLl9zaG91bGRUcmFuc2Zvcm1cbiAgICAgICAgICAgID0gKCh0aGlzLmVkaXQgJiYgdGhpcy5zaG93QWRkQXNzZXRDb250YWluZXIpICYmIHRoaXMuX2FjdGl2ZSA+PSAodGhpcy52aXNpYmxlUHJldmlld0Fzc2V0IC0gMSkpXG4gICAgICAgICAgICB8fCB0aGlzLl9hY3RpdmUgPj0gdGhpcy52aXNpYmxlUHJldmlld0Fzc2V0O1xuICAgICAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHRoaXMuX2FjdGl2ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChOSUNFX0FTU0VUU19DQVJPVVNFTF9PUFRJT05TKSBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogTmljZUFzc2V0c0Nhcm91c2VsT3B0aW9ucykge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIGFjdGlvbkJ1dHRvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgYWRkUGhvdG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwicGhvdG9fY2FtZXJhXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbW9yZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwibW9yZV92ZXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJY29uOiBcImRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFkZFBob3RvOiB7XG4gICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwicGhvdG9fY2FtZXJhXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxlZnRBcnJvdzoge1xuICAgICAgICAgICAgICAgICAgICBtYXRJY29uOiBcImNoZXZyb25fbGVmdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByaWdodEFycm93OiB7XG4gICAgICAgICAgICAgICAgICAgIG1hdEljb246IFwiY2hldnJvbl9yaWdodFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB1cGxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgbWF0SWNvbjogXCJmaWxlX3VwbG9hZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2VwdCA9IFsuLi50aGlzLl9pbWFnZXNNaW1lVHlwZXNdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFwiYWNjZXB0XCIgaW4gY2hhbmdlcyAmJiB0aGlzLmFjY2VwdCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFjY2VwdC5pbmRleE9mKFwiaW1hZ2UvKlwiKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2VwdC5wdXNoKC4uLnRoaXMuX2ltYWdlc01pbWVUeXBlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZShhc3NldHM6IE5pY2VBc3NldHNbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hc3NldHMgPSBhc3NldHMgPz8gW107XG5cbiAgICAgICAgaWYgKHRoaXMuX2Fzc2V0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUFzc2V0ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RBc3NldCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYXNzZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUFzc2V0ID0gdGhpcy5fYXNzZXRzW3RoaXMuX2FjdGl2ZV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGFzc2V0czogTmljZUFzc2V0c1tdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoYXNzZXRzOiBOaWNlQXNzZXRzW10pID0+IHZvaWQpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgY2xpY2tMZWZ0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUFzc2V0ID0gdGhpcy5fYWN0aXZlIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVUcmFuc2xhdGlvblBvc2l0aW9uIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUcmFuc2xhdGlvblBvc2l0aW9uID0gdGhpcy5fYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbiArIDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tSaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xhc3RBc3NldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVBc3NldCA9IHRoaXMuX2FjdGl2ZSArIDE7XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVHJhbnNsYXRpb25Qb3NpdGlvbiA9IHRoaXMuX2FjdGl2ZVRyYW5zbGF0aW9uUG9zaXRpb24gLSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrQXNzZXQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBsZXQgdmlzaWJsZUFzc2V0cyA9ICh0aGlzLmVkaXQgJiYgdGhpcy5zaG93QWRkQXNzZXRDb250YWluZXIpID8gKHRoaXMudmlzaWJsZVByZXZpZXdBc3NldCAtIDIpIDogKHRoaXMudmlzaWJsZVByZXZpZXdBc3NldCAtIDEpO1xuICAgICAgICBpZiAoaW5kZXggPCB2aXNpYmxlQXNzZXRzKSB7XG4gICAgICAgICAgICB2aXNpYmxlQXNzZXRzID0gaW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUcmFuc2xhdGlvblBvc2l0aW9uID0gKGluZGV4IC0gdmlzaWJsZUFzc2V0cykgKiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlQXNzZXQgPSBpbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25GaWxlc0NoYW5nZShldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpPy5maWxlcztcblxuICAgICAgICBhd2FpdCB0aGlzLm9uRmlsZXNEcm9wKGZpbGVzKTtcblxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25GaWxlc0Ryb3AoZmlsZUxpc3Q6IEZpbGVMaXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCBmaWxlcyA9IHRoaXMuZmlsdGVyT3V0VW5zdXBwb3J0ZWRGaWxlcyhmaWxlTGlzdCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VzUHJvY2Vzc29yKSB7XG4gICAgICAgICAgICBmaWxlcyA9IGF3YWl0IHRoaXMuZ2V0UHJvY2Vzc2VkRmlsZXMoZmlsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFmaWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2V0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZS5zcGxpdChcIi9cIikuc2hpZnQoKSBhcyBcImltYWdlXCIgfCBcInZpZGVvXCIsXG4gICAgICAgICAgICAgICAgYmFzZTY0OiBhd2FpdCBGaWxlVXRpbHMuZ2V0RGF0YVVybChmaWxlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsaWNrQXNzZXQodGhpcy5fYXNzZXRzLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZT8uKHRoaXMuX2Fzc2V0cyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrUmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZWRBc3NldC5lbWl0KHRoaXMuX2Fzc2V0c1t0aGlzLl9hY3RpdmVdKTtcbiAgICAgICAgdGhpcy5fYXNzZXRzLnNwbGljZSh0aGlzLl9hY3RpdmUsIDEpO1xuXG4gICAgICAgIGlmICh0aGlzLl9sYXN0QXNzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tBc3NldCh0aGlzLl9hc3NldHMubGVuZ3RoIC0gMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrQXNzZXQodGhpcy5fYWN0aXZlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvcGFnYXRlPy4odGhpcy5fYXNzZXRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tDdXN0b20oYWN0aW9uOiBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3Rpb25zKTogdm9pZCB7XG4gICAgICAgIGFjdGlvbi5hY3Rpb24odGhpcy5fYWN0aXZlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRTeW5jVmlkZW8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICh0aGlzLl9hc3NldHNFbGVtZW50LmdldCh0aGlzLl9hY3RpdmUpLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTFZpZGVvRWxlbWVudCkucGF1c2UoKTtcbiAgICAgICAgKHRoaXMuX2Fzc2V0c0VsZW1lbnQuZ2V0KHRoaXMuX2FjdGl2ZSkubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MVmlkZW9FbGVtZW50KS5jdXJyZW50VGltZSA9IDA7XG5cbiAgICAgICAgdGhpcy5fYWN0aXZlVmlkZW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY3VycmVudFRpbWUgPSAwO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX2FjdGl2ZVZpZGVvRWxlbWVudC5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgICAgYXdhaXQgKHRoaXMuX2Fzc2V0c0VsZW1lbnQuZ2V0KHRoaXMuX2FjdGl2ZSkubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MVmlkZW9FbGVtZW50KS5wbGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJPdXRVbnN1cHBvcnRlZEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IEZpbGVbXSB7XG4gICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gZmlsZUxpc3QuaXRlbShpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjY2VwdC5zb21lKChhY2NlcHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWNjZXB0LmVuZHNXaXRoKFwiKlwiKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZS50eXBlLnN0YXJ0c1dpdGgoYWNjZXB0LnJlcGxhY2UoXCIqXCIsIFwiXCIpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjZXB0ID09PSBmaWxlLnR5cGU7XG4gICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgICAgIGZpbGVzLnB1c2goZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRQcm9jZXNzZWRGaWxlcyhmaWxlczogRmlsZVtdKTogUHJvbWlzZTxGaWxlW10gfCBudWxsPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIWZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5pbWFnZXNQcm9jZXNzb3IoZmlsZXMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXJcIiBuaWNlRHJvcHpvbmUgKGZpbGVzRHJvcHBlZCk9XCJvbkZpbGVzRHJvcCgkZXZlbnQpXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFjdGl2ZS1pbWFnZVwiXG4gICAgICAgIG1hdFJpcHBsZVxuICAgICAgICBbY2xhc3MuZW1wdHktc3RhdGVdPVwiIV9hY3RpdmVBc3NldFwiXG4gICAgICAgIChjbGljayk9XCJlZGl0ICYmIGZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgID5cbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBzdHlsZT1cIm1pbi1oZWlnaHQ6IGluaGVyaXRcIiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGgtZnVsbFwiPlxuICAgICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIzMlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIl9hY3RpdmVBc3NldCAmJiBhY3RpdmVDb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3RpdmVDb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9hY3RpdmVBc3NldH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiX2FjdGl2ZUFzc2V0Py50eXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cInNob3dPdmVybGF5PXRydWVcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiX2FjdGl2ZUFzc2V0LnVybCA/PyBfYWN0aXZlQXNzZXQuYmFzZTY0XCJcbiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgYWx0PVwiYWN0aXZlLWltYWdlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDx2aWRlbyAjYWN0aXZlVmlkZW8gKm5nSWY9XCJfYWN0aXZlQXNzZXQ/LnR5cGUgPT09ICd2aWRlbydcIiBkcmFnZ2FibGU9XCJmYWxzZVwiIGxvb3AgW3NyY109XCJfYWN0aXZlQXNzZXQudXJsID8/IF9hY3RpdmVBc3NldC5iYXNlNjRcIj48L3ZpZGVvPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUtY29udGVudFwiICpuZ0lmPVwiIV9hY3RpdmVBc3NldFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMudXBsb2FkLm1hdEljb25cIj57eyBvcHRpb25zLnVwbG9hZC5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLnVwbG9hZC5zdmdJY29uXCIgW3N2Z0ljb25dPVwib3B0aW9ucy51cGxvYWQuc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgXCJuaWNlX3VpX2tpdC5hc3NldHNfY2Fyb3VzZWwudXBsb2FkX2hlcmVcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJfYWN0aXZlQXNzZXQgJiYgc2hvd092ZXJsYXkgJiYgZWRpdFwiIGNsYXNzPVwiYWN0aXZlLWltYWdlLW92ZXJsYXlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIChtb3VzZW91dCk9XCJzaG93T3ZlcmxheT1mYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgdy1mdWxsIGgtZnVsbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLnVwbG9hZC5tYXRJY29uXCI+e3sgb3B0aW9ucy51cGxvYWQubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMudXBsb2FkLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLnVwbG9hZC5zdmdJY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZWRpdFwiIGNsYXNzPVwiYWN0aXZlLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMuYWRkUGhvdG8ubWF0SWNvblwiPnt7IG9wdGlvbnMuYWN0aW9uQnV0dG9ucy5hZGRQaG90by5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib3B0aW9ucy5hY3Rpb25CdXR0b25zLmFkZFBob3RvLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMuYWRkUGhvdG8uc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFzc2V0QWN0aW9uc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbZGlzYWJsZWRdPVwiIV9hY3RpdmVBc3NldFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMubW9yZU9wdGlvbnMubWF0SWNvblwiPnt7IG9wdGlvbnMuYWN0aW9uQnV0dG9ucy5tb3JlT3B0aW9ucy5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib3B0aW9ucy5hY3Rpb25CdXR0b25zLm1vcmVPcHRpb25zLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMubW9yZU9wdGlvbnMuc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPG1hdC1tZW51IGNsYXNzPVwibmljZS1hc3NldC1vcHRpb25zLW1lbnVcIiBbeFBvc2l0aW9uXT1cIidiZWZvcmUnXCIgI2Fzc2V0QWN0aW9ucz1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjdXN0b21BY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0N1c3RvbShhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLmljb24ubWF0SWNvblwiPnt7IGFjdGlvbi5pY29uLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImFjdGlvbi5pY29uLnN2Z0ljb25cIiAqbmdJZj1cImFjdGlvbi5pY29uLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNsaWNrUmVtb3ZlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMuYWN0aW9uQnV0dG9ucy5yZW1vdmUubWF0SWNvblwiPnt7IG9wdGlvbnMuYWN0aW9uQnV0dG9ucy5yZW1vdmUubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMucmVtb3ZlLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFjdGlvbkJ1dHRvbnMucmVtb3ZlLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXCJuaWNlX3VpX2tpdC5hc3NldHNfY2Fyb3VzZWwuZGVsZXRlXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWxcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dBZGRBc3NldENvbnRhaW5lciB8fCBfYWN0aXZlQXNzZXRcIiBjbGFzcz1cImFjdGlvbi1idXR0b24gbGVmdC1hcnJvd1wiIG1hdC1pY29uLWJ1dHRvbiBbZGlzYWJsZWRdPVwiIV9hY3RpdmVcIiAoY2xpY2spPVwiY2xpY2tMZWZ0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMubGVmdEFycm93Lm1hdEljb25cIj57eyBvcHRpb25zLmxlZnRBcnJvdy5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFycm93c1wiICpuZ0lmPVwib3B0aW9ucy5sZWZ0QXJyb3cuc3ZnSWNvblwiIFtzdmdJY29uXT1cIm9wdGlvbnMubGVmdEFycm93LnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFzc2V0LWxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0FkZEFzc2V0Q29udGFpbmVyICYmIGVkaXRcIiBjbGFzcz1cImFkZC1hc3NldC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkLWFzc2V0XCIgbWF0UmlwcGxlIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFkZFBob3RvLm1hdEljb25cIj57eyBvcHRpb25zLmFkZFBob3RvLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb25zLmFkZFBob3RvLnN2Z0ljb25cIiBbc3ZnSWNvbl09XCJvcHRpb25zLmFkZFBob3RvLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtbGlzdFwiIFtuZ1N0eWxlXT1cImxpc3RTdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2Fzc2V0c1xuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFzc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFzc2V0IG9mIF9hc3NldHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tBc3NldChpKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJfYWN0aXZlID09PSBpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhc3NldC50eXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJhc3NldC51cmwgPz8gYXNzZXQuYmFzZTY0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJhZGQtaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXNzZXQudHlwZSA9PT0gJ3ZpZGVvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFzc2V0LnVybCA/PyBhc3NldC5iYXNlNjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0FkZEFzc2V0Q29udGFpbmVyIHx8IF9hY3RpdmVBc3NldFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvbiByaWdodC1hcnJvd1wiIG1hdC1pY29uLWJ1dHRvbiBbZGlzYWJsZWRdPVwiX2xhc3RBc3NldFwiIChjbGljayk9XCJjbGlja1JpZ2h0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnMucmlnaHRBcnJvdy5tYXRJY29uXCI+e3sgb3B0aW9ucy5yaWdodEFycm93Lm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYXJyb3dzXCIgKm5nSWY9XCJvcHRpb25zLnJpZ2h0QXJyb3cuc3ZnSWNvblwiIFtzdmdJY29uXT1cIm9wdGlvbnMucmlnaHRBcnJvdy5zdmdJY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBoaWRkZW4gW2FjY2VwdF09XCJhY2NlcHRcIiAoY2hhbmdlKT1cIm9uRmlsZXNDaGFuZ2UoJGV2ZW50KVwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVVwbG9hZFwiPlxuIl19
|
|
@@ -49,8 +49,8 @@ export class NiceAssetsCarouselModule {
|
|
|
49
49
|
]
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
53
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselModule, declarations: [NiceAssetsCarouselComponent, NiceAssetsCarouselActiveContentDirective], imports: [CommonModule,
|
|
54
54
|
MatIconModule,
|
|
55
55
|
MatButtonModule,
|
|
56
56
|
MatMenuModule,
|
|
@@ -58,7 +58,7 @@ export class NiceAssetsCarouselModule {
|
|
|
58
58
|
NiceDropzoneModule,
|
|
59
59
|
TranslateModule,
|
|
60
60
|
MatProgressSpinnerModule], exports: [NiceAssetsCarouselComponent, NiceAssetsCarouselActiveContentDirective] }); }
|
|
61
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
61
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselModule, imports: [CommonModule,
|
|
62
62
|
MatIconModule,
|
|
63
63
|
MatButtonModule,
|
|
64
64
|
MatMenuModule,
|
|
@@ -67,7 +67,7 @@ export class NiceAssetsCarouselModule {
|
|
|
67
67
|
TranslateModule,
|
|
68
68
|
MatProgressSpinnerModule] }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselModule, decorators: [{
|
|
71
71
|
type: NgModule,
|
|
72
72
|
args: [{
|
|
73
73
|
imports: [
|
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
|
|
|
85
85
|
exports: [NiceAssetsCarouselComponent, NiceAssetsCarouselActiveContentDirective]
|
|
86
86
|
}]
|
|
87
87
|
}] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWNhcm91c2VsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3NldHMtY2Fyb3VzZWwvYXNzZXRzLWNhcm91c2VsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQTZCLE1BQU0sNkJBQTZCLENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sdURBQXVELENBQUM7O0FBaUJqSCxNQUFNLE9BQU8sd0JBQXdCO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBbUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsT0FBTyxHQUFHO2dCQUNOLGFBQWEsRUFBRSxFQUFFO2FBQ3BCLENBQUM7UUFDTixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLFVBQVUsR0FBRyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLDRCQUE0QjtvQkFDckMsUUFBUSxFQUFFLE9BQU87aUJBQ3BCO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzsrR0F0Q1Esd0JBQXdCO2dIQUF4Qix3QkFBd0IsaUJBSmxCLDJCQUEyQixFQUFFLHdDQUF3QyxhQVRoRixZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2Ysd0JBQXdCLGFBSWxCLDJCQUEyQixFQUFFLHdDQUF3QztnSEFFdEUsd0JBQXdCLFlBYjdCLFlBQVk7WUFDWixhQUFhO1lBQ2IsZUFBZTtZQUNmLGFBQWE7WUFDYixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZix3QkFBd0I7OzRGQU1uQix3QkFBd0I7a0JBZnBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysd0JBQXdCO3FCQUMzQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSx3Q0FBd0MsQ0FBQztvQkFDckYsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsd0NBQXdDLENBQUM7aUJBQ25GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0UmlwcGxlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IE5pY2VEcm9wem9uZU1vZHVsZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2Ryb3B6b25lXCI7XG5cbmltcG9ydCB7IE5pY2VBc3NldHNDYXJvdXNlbENvbXBvbmVudCwgTmljZUFzc2V0c0Nhcm91c2VsT3B0aW9ucyB9IGZyb20gXCIuL2Fzc2V0cy1jYXJvdXNlbC5jb21wb25lbnRcIjtcbmltcG9ydCB7IE5JQ0VfQVNTRVRTX0NBUk9VU0VMX09QVElPTlMgfSBmcm9tIFwiLi9hc3NldHMtY2Fyb3VzZWwuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VBc3NldHNDYXJvdXNlbEFjdGl2ZUNvbnRlbnREaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL2Fzc2V0cy1jYXJvdXNlbC1hY3RpdmUtY29udGVudC5kaXJlY3RpdmVcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRNZW51TW9kdWxlLFxuICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgIE5pY2VEcm9wem9uZU1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW05pY2VBc3NldHNDYXJvdXNlbENvbXBvbmVudCwgTmljZUFzc2V0c0Nhcm91c2VsQWN0aXZlQ29udGVudERpcmVjdGl2ZV0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBleHBvcnRzOiBbTmljZUFzc2V0c0Nhcm91c2VsQ29tcG9uZW50LCBOaWNlQXNzZXRzQ2Fyb3VzZWxBY3RpdmVDb250ZW50RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQXNzZXRzQ2Fyb3VzZWxNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChvcHRpb25zPzogTmljZUFzc2V0c0Nhcm91c2VsT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TmljZUFzc2V0c0Nhcm91c2VsTW9kdWxlPiB7XG4gICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25CdXR0b25zOiB7fVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMuYWN0aW9uQnV0dG9ucy5tb3JlT3B0aW9ucykge1xuICAgICAgICAgICAgb3B0aW9ucy5hY3Rpb25CdXR0b25zLm1vcmVPcHRpb25zID0geyBtYXRJY29uOiBcIm1vcmVfdmVydFwiIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLmFjdGlvbkJ1dHRvbnMuYWRkUGhvdG8pIHtcbiAgICAgICAgICAgIG9wdGlvbnMuYWN0aW9uQnV0dG9ucy5hZGRQaG90byA9IHsgbWF0SWNvbjogXCJwaG90b19jYW1lcmFcIiB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0aW9ucy5hY3Rpb25CdXR0b25zLnJlbW92ZSkge1xuICAgICAgICAgICAgb3B0aW9ucy5hY3Rpb25CdXR0b25zLnJlbW92ZSA9IHsgbWF0SWNvbjogXCJkZWxldGVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0aW9ucy5hZGRQaG90bykge1xuICAgICAgICAgICAgb3B0aW9ucy5hZGRQaG90byA9IHsgbWF0SWNvbjogXCJwaG90b19jYW1lcmFcIiB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0aW9ucy5sZWZ0QXJyb3cpIHtcbiAgICAgICAgICAgIG9wdGlvbnMubGVmdEFycm93ID0geyBtYXRJY29uOiBcImNoZXZyb25fbGVmdFwiIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLnJpZ2h0QXJyb3cpIHtcbiAgICAgICAgICAgIG9wdGlvbnMucmlnaHRBcnJvdyA9IHsgbWF0SWNvbjogXCJjaGV2cm9uX3JpZ2h0XCIgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMudXBsb2FkKSB7XG4gICAgICAgICAgICBvcHRpb25zLnVwbG9hZCA9IHsgbWF0SWNvbjogXCJmaWxlX3VwbG9hZFwiIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5pY2VBc3NldHNDYXJvdXNlbE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTklDRV9BU1NFVFNfQ0FST1VTRUxfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
@@ -4,11 +4,11 @@ export class NiceAssetsCarouselActiveContentDirective {
|
|
|
4
4
|
constructor(template) {
|
|
5
5
|
this.template = template;
|
|
6
6
|
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselActiveContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NiceAssetsCarouselActiveContentDirective, selector: "[niceAssetsCarouselActiveContent]", ngImport: i0 }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAssetsCarouselActiveContentDirective, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
12
|
args: [{ selector: "[niceAssetsCarouselActiveContent]" }]
|
|
13
|
-
}], ctorParameters:
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWNhcm91c2VsLWFjdGl2ZS1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3NldHMtY2Fyb3VzZWwvZGlyZWN0aXZlcy9hc3NldHMtY2Fyb3VzZWwtYWN0aXZlLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd2RCxNQUFNLE9BQU8sd0NBQXdDO0lBQ2pELFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQzdDLENBQUM7K0dBRlEsd0NBQXdDO21HQUF4Qyx3Q0FBd0M7OzRGQUF4Qyx3Q0FBd0M7a0JBRHBELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsbUNBQW1DLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBcIltuaWNlQXNzZXRzQ2Fyb3VzZWxBY3RpdmVDb250ZW50XVwiIH0pXG5leHBvcnQgY2xhc3MgTmljZUFzc2V0c0Nhcm91c2VsQWN0aXZlQ29udGVudERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgfVxufVxuIl19
|