cty-mui-angular 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/app-initialize.d.ts +3 -0
- package/common/directives/control-value-accessors/index.d.ts +1 -0
- package/common/directives/control-value-accessors/value-accessor.d.ts +36 -0
- package/common/index.d.ts +19 -0
- package/common/providers/audio-recorder.d.ts +7 -0
- package/common/providers/config.d.ts +9 -0
- package/common/providers/device-info.d.ts +7 -0
- package/common/providers/image-picker.d.ts +7 -0
- package/common/providers/keyboard.d.ts +7 -0
- package/common/providers/media-downloader.d.ts +7 -0
- package/common/providers/network.d.ts +7 -0
- package/common/providers/payment.d.ts +7 -0
- package/common/providers/screen-orientation.d.ts +7 -0
- package/common/providers/share.d.ts +7 -0
- package/common/providers/status-bar.d.ts +7 -0
- package/common/providers/utils.d.ts +10 -0
- package/common/providers/video-capture.d.ts +7 -0
- package/common/providers/volume-control.d.ts +7 -0
- package/common/providers/wechat.d.ts +7 -0
- package/common/types/interfaces.d.ts +6 -0
- package/common/utils/overlay.d.ts +21 -0
- package/common/utils/util.d.ts +1 -0
- package/css/core.css +1 -0
- package/css/core.css.map +1 -0
- package/css/cty-mui.bundle.css +1 -0
- package/css/cty-mui.bundle.css.map +1 -0
- package/css/normalize.css +1 -0
- package/css/normalize.css.map +1 -0
- package/css/variables.css +1 -0
- package/css/variables.css.map +1 -0
- package/css/variables.font.css +1 -0
- package/css/variables.font.css.map +1 -0
- package/cty-mui-module.d.ts +11 -0
- package/directives/angular-component-lib/utils.d.ts +9 -0
- package/directives/proxies-list.d.ts +2 -0
- package/directives/proxies.d.ts +612 -0
- package/esm2022/app-initialize.mjs +26 -0
- package/esm2022/common/cty-mui-angular-common.mjs +5 -0
- package/esm2022/common/directives/control-value-accessors/index.mjs +2 -0
- package/esm2022/common/directives/control-value-accessors/value-accessor.mjs +133 -0
- package/esm2022/common/index.mjs +19 -0
- package/esm2022/common/providers/audio-recorder.mjs +17 -0
- package/esm2022/common/providers/config.mjs +30 -0
- package/esm2022/common/providers/device-info.mjs +17 -0
- package/esm2022/common/providers/image-picker.mjs +17 -0
- package/esm2022/common/providers/keyboard.mjs +17 -0
- package/esm2022/common/providers/media-downloader.mjs +17 -0
- package/esm2022/common/providers/network.mjs +17 -0
- package/esm2022/common/providers/payment.mjs +17 -0
- package/esm2022/common/providers/screen-orientation.mjs +17 -0
- package/esm2022/common/providers/share.mjs +17 -0
- package/esm2022/common/providers/status-bar.mjs +17 -0
- package/esm2022/common/providers/utils.mjs +24 -0
- package/esm2022/common/providers/video-capture.mjs +17 -0
- package/esm2022/common/providers/volume-control.mjs +17 -0
- package/esm2022/common/providers/wechat.mjs +17 -0
- package/esm2022/common/types/interfaces.mjs +2 -0
- package/esm2022/common/utils/overlay.mjs +25 -0
- package/esm2022/common/utils/util.mjs +10 -0
- package/esm2022/cty-mui-angular.mjs +5 -0
- package/esm2022/cty-mui-module.mjs +41 -0
- package/esm2022/directives/angular-component-lib/utils.mjs +59 -0
- package/esm2022/directives/proxies-list.mjs +51 -0
- package/esm2022/directives/proxies.mjs +1336 -0
- package/esm2022/index.mjs +19 -0
- package/esm2022/providers/action-sheet-controller.mjs +18 -0
- package/esm2022/providers/alert-controller.mjs +18 -0
- package/esm2022/providers/camera-photo-controller.mjs +18 -0
- package/esm2022/providers/cascader-controller.mjs +18 -0
- package/esm2022/providers/ionic-controller.mjs +81 -0
- package/esm2022/providers/loading-controller.mjs +18 -0
- package/esm2022/providers/overlay-controller.mjs +18 -0
- package/esm2022/providers/record-controller.mjs +18 -0
- package/esm2022/providers/share-sheet-controller.mjs +18 -0
- package/esm2022/providers/tutorial-controller.mjs +18 -0
- package/esm2022/standalone/cty-mui-angular-standalone.mjs +5 -0
- package/esm2022/standalone/directives/agree.mjs +60 -0
- package/esm2022/standalone/directives/angular-component-lib/utils.mjs +59 -0
- package/esm2022/standalone/directives/index.mjs +6 -0
- package/esm2022/standalone/directives/proxies.mjs +1321 -0
- package/esm2022/standalone/directives/rate.mjs +60 -0
- package/esm2022/standalone/directives/segment-slides.mjs +41 -0
- package/esm2022/standalone/directives/stepper.mjs +61 -0
- package/esm2022/standalone/directives/swiper.mjs +41 -0
- package/esm2022/standalone/index.mjs +21 -0
- package/esm2022/standalone/providers/action-sheet-controller.mjs +20 -0
- package/esm2022/standalone/providers/alert-controller.mjs +20 -0
- package/esm2022/standalone/providers/camera-photo-controller.mjs +20 -0
- package/esm2022/standalone/providers/cascader-controller.mjs +20 -0
- package/esm2022/standalone/providers/cty-mui-angular.mjs +23 -0
- package/esm2022/standalone/providers/image-viewer-controller.mjs +20 -0
- package/esm2022/standalone/providers/ionic-controller.mjs +81 -0
- package/esm2022/standalone/providers/loading-controller.mjs +20 -0
- package/esm2022/standalone/providers/overlay-controller.mjs +20 -0
- package/esm2022/standalone/providers/record-controller.mjs +20 -0
- package/esm2022/standalone/providers/share-sheet-controller.mjs +20 -0
- package/esm2022/standalone/providers/tutorial-controller.mjs +20 -0
- package/fesm2022/cty-mui-angular-common.mjs +406 -0
- package/fesm2022/cty-mui-angular-common.mjs.map +1 -0
- package/fesm2022/cty-mui-angular-standalone.mjs +1834 -0
- package/fesm2022/cty-mui-angular-standalone.mjs.map +1 -0
- package/fesm2022/cty-mui-angular.mjs +1671 -0
- package/fesm2022/cty-mui-angular.mjs.map +1 -0
- package/index.d.ts +14 -0
- package/package.json +48 -0
- package/providers/action-sheet-controller.d.ts +8 -0
- package/providers/alert-controller.d.ts +8 -0
- package/providers/camera-photo-controller.d.ts +8 -0
- package/providers/cascader-controller.d.ts +8 -0
- package/providers/ionic-controller.d.ts +16 -0
- package/providers/loading-controller.d.ts +8 -0
- package/providers/overlay-controller.d.ts +8 -0
- package/providers/record-controller.d.ts +8 -0
- package/providers/share-sheet-controller.d.ts +8 -0
- package/providers/tutorial-controller.d.ts +8 -0
- package/standalone/directives/agree.d.ts +19 -0
- package/standalone/directives/angular-component-lib/utils.d.ts +9 -0
- package/standalone/directives/index.d.ts +5 -0
- package/standalone/directives/proxies.d.ts +550 -0
- package/standalone/directives/rate.d.ts +19 -0
- package/standalone/directives/segment-slides.d.ts +17 -0
- package/standalone/directives/stepper.d.ts +29 -0
- package/standalone/directives/swiper.d.ts +18 -0
- package/standalone/index.d.ts +16 -0
- package/standalone/providers/action-sheet-controller.d.ts +8 -0
- package/standalone/providers/alert-controller.d.ts +8 -0
- package/standalone/providers/camera-photo-controller.d.ts +8 -0
- package/standalone/providers/cascader-controller.d.ts +8 -0
- package/standalone/providers/cty-mui-angular.d.ts +3 -0
- package/standalone/providers/image-viewer-controller.d.ts +8 -0
- package/standalone/providers/ionic-controller.d.ts +16 -0
- package/standalone/providers/loading-controller.d.ts +8 -0
- package/standalone/providers/overlay-controller.d.ts +8 -0
- package/standalone/providers/record-controller.d.ts +8 -0
- package/standalone/providers/share-sheet-controller.d.ts +8 -0
- package/standalone/providers/tutorial-controller.d.ts +8 -0
|
@@ -0,0 +1,1321 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* auto-generated angular directive proxies */
|
|
4
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
+
import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
|
|
6
|
+
import { defineCustomElement as defineCtyActionSheet } from 'cty-mui-core/components/cty-action-sheet.js';
|
|
7
|
+
import { defineCustomElement as defineCtyAlert } from 'cty-mui-core/components/cty-alert.js';
|
|
8
|
+
import { defineCustomElement as defineCtyAnswerSheet } from 'cty-mui-core/components/cty-answer-sheet.js';
|
|
9
|
+
import { defineCustomElement as defineCtyArticleCard } from 'cty-mui-core/components/cty-article-card.js';
|
|
10
|
+
import { defineCustomElement as defineCtyAudio } from 'cty-mui-core/components/cty-audio.js';
|
|
11
|
+
import { defineCustomElement as defineCtyBanner } from 'cty-mui-core/components/cty-banner.js';
|
|
12
|
+
import { defineCustomElement as defineCtyCameraPhoto } from 'cty-mui-core/components/cty-camera-photo.js';
|
|
13
|
+
import { defineCustomElement as defineCtyCanvasBoard } from 'cty-mui-core/components/cty-canvas-board.js';
|
|
14
|
+
import { defineCustomElement as defineCtyCanvasVideo } from 'cty-mui-core/components/cty-canvas-video.js';
|
|
15
|
+
import { defineCustomElement as defineCtyCascader } from 'cty-mui-core/components/cty-cascader.js';
|
|
16
|
+
import { defineCustomElement as defineCtyCircle } from 'cty-mui-core/components/cty-circle.js';
|
|
17
|
+
import { defineCustomElement as defineCtyCountDown } from 'cty-mui-core/components/cty-count-down.js';
|
|
18
|
+
import { defineCustomElement as defineCtyCropImage } from 'cty-mui-core/components/cty-crop-image.js';
|
|
19
|
+
import { defineCustomElement as defineCtyDivider } from 'cty-mui-core/components/cty-divider.js';
|
|
20
|
+
import { defineCustomElement as defineCtyEmpty } from 'cty-mui-core/components/cty-empty.js';
|
|
21
|
+
import { defineCustomElement as defineCtyFloatingBubble } from 'cty-mui-core/components/cty-floating-bubble.js';
|
|
22
|
+
import { defineCustomElement as defineCtyFloatingPanel } from 'cty-mui-core/components/cty-floating-panel.js';
|
|
23
|
+
import { defineCustomElement as defineCtyIcon } from 'cty-mui-core/components/cty-icon.js';
|
|
24
|
+
import { defineCustomElement as defineCtyImageUpload } from 'cty-mui-core/components/cty-image-upload.js';
|
|
25
|
+
import { defineCustomElement as defineCtyImageViewer } from 'cty-mui-core/components/cty-image-viewer.js';
|
|
26
|
+
import { defineCustomElement as defineCtyIndexBar } from 'cty-mui-core/components/cty-index-bar.js';
|
|
27
|
+
import { defineCustomElement as defineCtyKeyboard } from 'cty-mui-core/components/cty-keyboard.js';
|
|
28
|
+
import { defineCustomElement as defineCtyLoading } from 'cty-mui-core/components/cty-loading.js';
|
|
29
|
+
import { defineCustomElement as defineCtyMediaCapture } from 'cty-mui-core/components/cty-media-capture.js';
|
|
30
|
+
import { defineCustomElement as defineCtyNavBar } from 'cty-mui-core/components/cty-nav-bar.js';
|
|
31
|
+
import { defineCustomElement as defineCtyNoticeBar } from 'cty-mui-core/components/cty-notice-bar.js';
|
|
32
|
+
import { defineCustomElement as defineCtyOverlay } from 'cty-mui-core/components/cty-overlay.js';
|
|
33
|
+
import { defineCustomElement as defineCtyPdfViewer } from 'cty-mui-core/components/cty-pdf-viewer.js';
|
|
34
|
+
import { defineCustomElement as defineCtyPermissionPurpose } from 'cty-mui-core/components/cty-permission-purpose.js';
|
|
35
|
+
import { defineCustomElement as defineCtyProgress } from 'cty-mui-core/components/cty-progress.js';
|
|
36
|
+
import { defineCustomElement as defineCtyQuickAccess } from 'cty-mui-core/components/cty-quick-access.js';
|
|
37
|
+
import { defineCustomElement as defineCtyRecord } from 'cty-mui-core/components/cty-record.js';
|
|
38
|
+
import { defineCustomElement as defineCtyShareSheet } from 'cty-mui-core/components/cty-share-sheet.js';
|
|
39
|
+
import { defineCustomElement as defineCtyStep } from 'cty-mui-core/components/cty-step.js';
|
|
40
|
+
import { defineCustomElement as defineCtySteps } from 'cty-mui-core/components/cty-steps.js';
|
|
41
|
+
import { defineCustomElement as defineCtySwipe } from 'cty-mui-core/components/cty-swipe.js';
|
|
42
|
+
import { defineCustomElement as defineCtySwipeItem } from 'cty-mui-core/components/cty-swipe-item.js';
|
|
43
|
+
import { defineCustomElement as defineCtyTextEllipsis } from 'cty-mui-core/components/cty-text-ellipsis.js';
|
|
44
|
+
import { defineCustomElement as defineCtyTour } from 'cty-mui-core/components/cty-tour.js';
|
|
45
|
+
import { defineCustomElement as defineCtyTutorial } from 'cty-mui-core/components/cty-tutorial.js';
|
|
46
|
+
import { defineCustomElement as defineCtyVideo } from 'cty-mui-core/components/cty-video.js';
|
|
47
|
+
import { defineCustomElement as defineCtyVirtualList } from 'cty-mui-core/components/cty-virtual-list.js';
|
|
48
|
+
import * as i0 from "@angular/core";
|
|
49
|
+
let CtyActionSheet = class CtyActionSheet {
|
|
50
|
+
z;
|
|
51
|
+
el;
|
|
52
|
+
constructor(c, r, z) {
|
|
53
|
+
this.z = z;
|
|
54
|
+
c.detach();
|
|
55
|
+
this.el = r.nativeElement;
|
|
56
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyTap', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
57
|
+
}
|
|
58
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyActionSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyActionSheet, isStandalone: true, selector: "cty-action-sheet", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", cancelText: "cancelText", closeIcon: "closeIcon", closeable: "closeable", cssClass: "cssClass", enterAnimation: "enterAnimation", leaveAnimation: "leaveAnimation", options: "options", root: "root", subtitle: "subtitle", title: "title", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60
|
+
};
|
|
61
|
+
CtyActionSheet = __decorate([
|
|
62
|
+
ProxyCmp({
|
|
63
|
+
defineCustomElementFn: defineCtyActionSheet,
|
|
64
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'closeIcon', 'closeable', 'cssClass', 'enterAnimation', 'leaveAnimation', 'options', 'root', 'subtitle', 'title', 'trigger'],
|
|
65
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
66
|
+
})
|
|
67
|
+
], CtyActionSheet);
|
|
68
|
+
export { CtyActionSheet };
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyActionSheet, decorators: [{
|
|
70
|
+
type: Component,
|
|
71
|
+
args: [{
|
|
72
|
+
selector: 'cty-action-sheet',
|
|
73
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
74
|
+
template: '<ng-content></ng-content>',
|
|
75
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
76
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'closeIcon', 'closeable', 'cssClass', 'enterAnimation', 'leaveAnimation', 'options', 'root', 'subtitle', 'title', 'trigger'],
|
|
77
|
+
standalone: true
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
80
|
+
let CtyAlert = class CtyAlert {
|
|
81
|
+
z;
|
|
82
|
+
el;
|
|
83
|
+
constructor(c, r, z) {
|
|
84
|
+
this.z = z;
|
|
85
|
+
c.detach();
|
|
86
|
+
this.el = r.nativeElement;
|
|
87
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyTap', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
88
|
+
}
|
|
89
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyAlert, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
90
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyAlert, isStandalone: true, selector: "cty-alert", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", buttons: "buttons", closeable: "closeable", content: "content", cssClass: "cssClass", enterAnimation: "enterAnimation", img: "img", leaveAnimation: "leaveAnimation", root: "root", title: "title", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
91
|
+
};
|
|
92
|
+
CtyAlert = __decorate([
|
|
93
|
+
ProxyCmp({
|
|
94
|
+
defineCustomElementFn: defineCtyAlert,
|
|
95
|
+
inputs: ['animated', 'backdropDismiss', 'buttons', 'closeable', 'content', 'cssClass', 'enterAnimation', 'img', 'leaveAnimation', 'root', 'title', 'trigger'],
|
|
96
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
97
|
+
})
|
|
98
|
+
], CtyAlert);
|
|
99
|
+
export { CtyAlert };
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyAlert, decorators: [{
|
|
101
|
+
type: Component,
|
|
102
|
+
args: [{
|
|
103
|
+
selector: 'cty-alert',
|
|
104
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
105
|
+
template: '<ng-content></ng-content>',
|
|
106
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
107
|
+
inputs: ['animated', 'backdropDismiss', 'buttons', 'closeable', 'content', 'cssClass', 'enterAnimation', 'img', 'leaveAnimation', 'root', 'title', 'trigger'],
|
|
108
|
+
standalone: true
|
|
109
|
+
}]
|
|
110
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
111
|
+
let CtyAnswerSheet = class CtyAnswerSheet {
|
|
112
|
+
z;
|
|
113
|
+
el;
|
|
114
|
+
constructor(c, r, z) {
|
|
115
|
+
this.z = z;
|
|
116
|
+
c.detach();
|
|
117
|
+
this.el = r.nativeElement;
|
|
118
|
+
proxyOutputs(this, this.el, ['ctyTap']);
|
|
119
|
+
}
|
|
120
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyAnswerSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyAnswerSheet, isStandalone: true, selector: "cty-answer-sheet", inputs: { answers: "answers", categories: "categories", displayTotal: "displayTotal", distinguish: "distinguish", placement: "placement", props: "props", results: "results", totalText: "totalText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
122
|
+
};
|
|
123
|
+
CtyAnswerSheet = __decorate([
|
|
124
|
+
ProxyCmp({
|
|
125
|
+
defineCustomElementFn: defineCtyAnswerSheet,
|
|
126
|
+
inputs: ['answers', 'categories', 'displayTotal', 'distinguish', 'placement', 'props', 'results', 'totalText']
|
|
127
|
+
})
|
|
128
|
+
], CtyAnswerSheet);
|
|
129
|
+
export { CtyAnswerSheet };
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyAnswerSheet, decorators: [{
|
|
131
|
+
type: Component,
|
|
132
|
+
args: [{
|
|
133
|
+
selector: 'cty-answer-sheet',
|
|
134
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
135
|
+
template: '<ng-content></ng-content>',
|
|
136
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
137
|
+
inputs: ['answers', 'categories', 'displayTotal', 'distinguish', 'placement', 'props', 'results', 'totalText'],
|
|
138
|
+
standalone: true
|
|
139
|
+
}]
|
|
140
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
141
|
+
let CtyArticleCard = class CtyArticleCard {
|
|
142
|
+
z;
|
|
143
|
+
el;
|
|
144
|
+
constructor(c, r, z) {
|
|
145
|
+
this.z = z;
|
|
146
|
+
c.detach();
|
|
147
|
+
this.el = r.nativeElement;
|
|
148
|
+
}
|
|
149
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyArticleCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyArticleCard, isStandalone: true, selector: "cty-article-card", inputs: { layout: "layout", thumbnails: "thumbnails", title: "title" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
151
|
+
};
|
|
152
|
+
CtyArticleCard = __decorate([
|
|
153
|
+
ProxyCmp({
|
|
154
|
+
defineCustomElementFn: defineCtyArticleCard,
|
|
155
|
+
inputs: ['layout', 'thumbnails', 'title']
|
|
156
|
+
})
|
|
157
|
+
], CtyArticleCard);
|
|
158
|
+
export { CtyArticleCard };
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyArticleCard, decorators: [{
|
|
160
|
+
type: Component,
|
|
161
|
+
args: [{
|
|
162
|
+
selector: 'cty-article-card',
|
|
163
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
164
|
+
template: '<ng-content></ng-content>',
|
|
165
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
166
|
+
inputs: ['layout', 'thumbnails', 'title'],
|
|
167
|
+
standalone: true
|
|
168
|
+
}]
|
|
169
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
170
|
+
let CtyAudio = class CtyAudio {
|
|
171
|
+
z;
|
|
172
|
+
el;
|
|
173
|
+
constructor(c, r, z) {
|
|
174
|
+
this.z = z;
|
|
175
|
+
c.detach();
|
|
176
|
+
this.el = r.nativeElement;
|
|
177
|
+
proxyOutputs(this, this.el, ['ctyEnd', 'ctyTimeupdate', 'ctyProgress', 'ctyCanplay', 'ctyPlay', 'ctyPause', 'ctyError']);
|
|
178
|
+
}
|
|
179
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyAudio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyAudio, isStandalone: true, selector: "cty-audio", inputs: { allowBackward: "allowBackward", allowForward: "allowForward", autoplay: "autoplay", cycleRate: "cycleRate", initialTime: "initialTime", playCtrl: "playCtrl", rate: "rate", rateVisible: "rateVisible", rates: "rates", trafficMsg: "trafficMsg", unAllowForwardMsg: "unAllowForwardMsg", unAllowRateMsg: "unAllowRateMsg", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
181
|
+
};
|
|
182
|
+
CtyAudio = __decorate([
|
|
183
|
+
ProxyCmp({
|
|
184
|
+
defineCustomElementFn: defineCtyAudio,
|
|
185
|
+
inputs: ['allowBackward', 'allowForward', 'autoplay', 'cycleRate', 'initialTime', 'playCtrl', 'rate', 'rateVisible', 'rates', 'trafficMsg', 'unAllowForwardMsg', 'unAllowRateMsg', 'url'],
|
|
186
|
+
methods: ['switchAudio', 'play', 'pause', 'setPlayRate', 'getAudioElement']
|
|
187
|
+
})
|
|
188
|
+
], CtyAudio);
|
|
189
|
+
export { CtyAudio };
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyAudio, decorators: [{
|
|
191
|
+
type: Component,
|
|
192
|
+
args: [{
|
|
193
|
+
selector: 'cty-audio',
|
|
194
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
195
|
+
template: '<ng-content></ng-content>',
|
|
196
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
197
|
+
inputs: ['allowBackward', 'allowForward', 'autoplay', 'cycleRate', 'initialTime', 'playCtrl', 'rate', 'rateVisible', 'rates', 'trafficMsg', 'unAllowForwardMsg', 'unAllowRateMsg', 'url'],
|
|
198
|
+
standalone: true
|
|
199
|
+
}]
|
|
200
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
201
|
+
let CtyBanner = class CtyBanner {
|
|
202
|
+
z;
|
|
203
|
+
el;
|
|
204
|
+
constructor(c, r, z) {
|
|
205
|
+
this.z = z;
|
|
206
|
+
c.detach();
|
|
207
|
+
this.el = r.nativeElement;
|
|
208
|
+
proxyOutputs(this, this.el, ['ctySwipeChange', 'ctySwipeTap']);
|
|
209
|
+
}
|
|
210
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyBanner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
211
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyBanner, isStandalone: true, selector: "cty-banner", inputs: { autoplay: "autoplay", banners: "banners", duration: "duration", indicator: "indicator", initialIndex: "initialIndex", loop: "loop", props: "props", touchable: "touchable", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
212
|
+
};
|
|
213
|
+
CtyBanner = __decorate([
|
|
214
|
+
ProxyCmp({
|
|
215
|
+
defineCustomElementFn: defineCtyBanner,
|
|
216
|
+
inputs: ['autoplay', 'banners', 'duration', 'indicator', 'initialIndex', 'loop', 'props', 'touchable', 'vertical'],
|
|
217
|
+
methods: ['swipeNext', 'swipePrev', 'swipeTo']
|
|
218
|
+
})
|
|
219
|
+
], CtyBanner);
|
|
220
|
+
export { CtyBanner };
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyBanner, decorators: [{
|
|
222
|
+
type: Component,
|
|
223
|
+
args: [{
|
|
224
|
+
selector: 'cty-banner',
|
|
225
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
226
|
+
template: '<ng-content></ng-content>',
|
|
227
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
228
|
+
inputs: ['autoplay', 'banners', 'duration', 'indicator', 'initialIndex', 'loop', 'props', 'touchable', 'vertical'],
|
|
229
|
+
standalone: true
|
|
230
|
+
}]
|
|
231
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
232
|
+
let CtyCameraPhoto = class CtyCameraPhoto {
|
|
233
|
+
z;
|
|
234
|
+
el;
|
|
235
|
+
constructor(c, r, z) {
|
|
236
|
+
this.z = z;
|
|
237
|
+
c.detach();
|
|
238
|
+
this.el = r.nativeElement;
|
|
239
|
+
proxyOutputs(this, this.el, ['ctyTapStart', 'ctyTap', 'ctyDismiss', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
240
|
+
}
|
|
241
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCameraPhoto, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
242
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyCameraPhoto, isStandalone: true, selector: "cty-camera-photo", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", cancelText: "cancelText", clipCancelText: "clipCancelText", clipCconfirmText: "clipCconfirmText", clipImageBg: "clipImageBg", clipImageQuality: "clipImageQuality", clipImageSuffix: "clipImageSuffix", clipImageWidth: "clipImageWidth", clipMaxScale: "clipMaxScale", clipMinScale: "clipMinScale", clipPt: "clipPt", closeIcon: "closeIcon", closeable: "closeable", count: "count", cssClass: "cssClass", enterAnimation: "enterAnimation", file: "file", leaveAnimation: "leaveAnimation", options: "options", overlay: "overlay", permissionPurpose: "permissionPurpose", photoOption: "photoOption", root: "root", title: "title", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
243
|
+
};
|
|
244
|
+
CtyCameraPhoto = __decorate([
|
|
245
|
+
ProxyCmp({
|
|
246
|
+
defineCustomElementFn: defineCtyCameraPhoto,
|
|
247
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'clipCancelText', 'clipCconfirmText', 'clipImageBg', 'clipImageQuality', 'clipImageSuffix', 'clipImageWidth', 'clipMaxScale', 'clipMinScale', 'clipPt', 'closeIcon', 'closeable', 'count', 'cssClass', 'enterAnimation', 'file', 'leaveAnimation', 'options', 'overlay', 'permissionPurpose', 'photoOption', 'root', 'title', 'trigger'],
|
|
248
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
249
|
+
})
|
|
250
|
+
], CtyCameraPhoto);
|
|
251
|
+
export { CtyCameraPhoto };
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCameraPhoto, decorators: [{
|
|
253
|
+
type: Component,
|
|
254
|
+
args: [{
|
|
255
|
+
selector: 'cty-camera-photo',
|
|
256
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
257
|
+
template: '<ng-content></ng-content>',
|
|
258
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
259
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'clipCancelText', 'clipCconfirmText', 'clipImageBg', 'clipImageQuality', 'clipImageSuffix', 'clipImageWidth', 'clipMaxScale', 'clipMinScale', 'clipPt', 'closeIcon', 'closeable', 'count', 'cssClass', 'enterAnimation', 'file', 'leaveAnimation', 'options', 'overlay', 'permissionPurpose', 'photoOption', 'root', 'title', 'trigger'],
|
|
260
|
+
standalone: true
|
|
261
|
+
}]
|
|
262
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
263
|
+
let CtyCanvasBoard = class CtyCanvasBoard {
|
|
264
|
+
z;
|
|
265
|
+
el;
|
|
266
|
+
constructor(c, r, z) {
|
|
267
|
+
this.z = z;
|
|
268
|
+
c.detach();
|
|
269
|
+
this.el = r.nativeElement;
|
|
270
|
+
proxyOutputs(this, this.el, ['ctyClear', 'ctyStart', 'ctyMove', 'ctyEnd', 'ctyConfirm']);
|
|
271
|
+
}
|
|
272
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCanvasBoard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
273
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyCanvasBoard, isStandalone: true, selector: "cty-canvas-board", inputs: { bgColor: "bgColor", bgIcon: "bgIcon", clearIcon: "clearIcon", clearLabel: "clearLabel", confirmLabel: "confirmLabel", dpr: "dpr", eraserIcon: "eraserIcon", footerOpn: "footerOpn", headerOpn: "headerOpn", lineCap: "lineCap", lineWidths: "lineWidths", pencilIcon: "pencilIcon", quality: "quality", redoIcon: "redoIcon", showButtons: "showButtons", strokeColor: "strokeColor", strokeWidth: "strokeWidth", suffix: "suffix", undoIcon: "undoIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
274
|
+
};
|
|
275
|
+
CtyCanvasBoard = __decorate([
|
|
276
|
+
ProxyCmp({
|
|
277
|
+
defineCustomElementFn: defineCtyCanvasBoard,
|
|
278
|
+
inputs: ['bgColor', 'bgIcon', 'clearIcon', 'clearLabel', 'confirmLabel', 'dpr', 'eraserIcon', 'footerOpn', 'headerOpn', 'lineCap', 'lineWidths', 'pencilIcon', 'quality', 'redoIcon', 'showButtons', 'strokeColor', 'strokeWidth', 'suffix', 'undoIcon'],
|
|
279
|
+
methods: ['undo', 'redo', 'clear', 'getDataURL']
|
|
280
|
+
})
|
|
281
|
+
], CtyCanvasBoard);
|
|
282
|
+
export { CtyCanvasBoard };
|
|
283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCanvasBoard, decorators: [{
|
|
284
|
+
type: Component,
|
|
285
|
+
args: [{
|
|
286
|
+
selector: 'cty-canvas-board',
|
|
287
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
288
|
+
template: '<ng-content></ng-content>',
|
|
289
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
290
|
+
inputs: ['bgColor', 'bgIcon', 'clearIcon', 'clearLabel', 'confirmLabel', 'dpr', 'eraserIcon', 'footerOpn', 'headerOpn', 'lineCap', 'lineWidths', 'pencilIcon', 'quality', 'redoIcon', 'showButtons', 'strokeColor', 'strokeWidth', 'suffix', 'undoIcon'],
|
|
291
|
+
standalone: true
|
|
292
|
+
}]
|
|
293
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
294
|
+
let CtyCanvasVideo = class CtyCanvasVideo {
|
|
295
|
+
z;
|
|
296
|
+
el;
|
|
297
|
+
constructor(c, r, z) {
|
|
298
|
+
this.z = z;
|
|
299
|
+
c.detach();
|
|
300
|
+
this.el = r.nativeElement;
|
|
301
|
+
proxyOutputs(this, this.el, ['ctySlideChange', 'ctySlidePrev', 'ctySlideNext', 'ctyLongPress', 'ctyVideoUpdate', 'ctyVideoEnd', 'ctyTapName', 'ctyTapAvatar', 'ctyTapLike', 'ctyTapCollect', 'ctyTapShare']);
|
|
302
|
+
}
|
|
303
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCanvasVideo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
304
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyCanvasVideo, isStandalone: true, selector: "cty-canvas-video", inputs: { autoplay: "autoplay", avatarButton: "avatarButton", next: "next", preload: "preload", props: "props", slice: "slice", videos: "videos" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
305
|
+
};
|
|
306
|
+
CtyCanvasVideo = __decorate([
|
|
307
|
+
ProxyCmp({
|
|
308
|
+
defineCustomElementFn: defineCtyCanvasVideo,
|
|
309
|
+
inputs: ['autoplay', 'avatarButton', 'next', 'preload', 'props', 'slice', 'videos'],
|
|
310
|
+
methods: ['slideToPrev', 'slideToNext']
|
|
311
|
+
})
|
|
312
|
+
], CtyCanvasVideo);
|
|
313
|
+
export { CtyCanvasVideo };
|
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCanvasVideo, decorators: [{
|
|
315
|
+
type: Component,
|
|
316
|
+
args: [{
|
|
317
|
+
selector: 'cty-canvas-video',
|
|
318
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
319
|
+
template: '<ng-content></ng-content>',
|
|
320
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
321
|
+
inputs: ['autoplay', 'avatarButton', 'next', 'preload', 'props', 'slice', 'videos'],
|
|
322
|
+
standalone: true
|
|
323
|
+
}]
|
|
324
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
325
|
+
let CtyCascader = class CtyCascader {
|
|
326
|
+
z;
|
|
327
|
+
el;
|
|
328
|
+
constructor(c, r, z) {
|
|
329
|
+
this.z = z;
|
|
330
|
+
c.detach();
|
|
331
|
+
this.el = r.nativeElement;
|
|
332
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyChange', 'ctyComfirm', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
333
|
+
}
|
|
334
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCascader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
335
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyCascader, isStandalone: true, selector: "cty-cascader", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", cancelText: "cancelText", cascade: "cascade", childrenKey: "childrenKey", columns: "columns", columnsCount: "columnsCount", confirmText: "confirmText", cssClass: "cssClass", defaultValues: "defaultValues", enterAnimation: "enterAnimation", leaveAnimation: "leaveAnimation", optionCount: "optionCount", optionHeight: "optionHeight", root: "root", textKey: "textKey", title: "title", trigger: "trigger", type: "type", valueKey: "valueKey" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
336
|
+
};
|
|
337
|
+
CtyCascader = __decorate([
|
|
338
|
+
ProxyCmp({
|
|
339
|
+
defineCustomElementFn: defineCtyCascader,
|
|
340
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'cascade', 'childrenKey', 'columns', 'columnsCount', 'confirmText', 'cssClass', 'defaultValues', 'enterAnimation', 'leaveAnimation', 'optionCount', 'optionHeight', 'root', 'textKey', 'title', 'trigger', 'type', 'valueKey'],
|
|
341
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
342
|
+
})
|
|
343
|
+
], CtyCascader);
|
|
344
|
+
export { CtyCascader };
|
|
345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCascader, decorators: [{
|
|
346
|
+
type: Component,
|
|
347
|
+
args: [{
|
|
348
|
+
selector: 'cty-cascader',
|
|
349
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
350
|
+
template: '<ng-content></ng-content>',
|
|
351
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
352
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'cascade', 'childrenKey', 'columns', 'columnsCount', 'confirmText', 'cssClass', 'defaultValues', 'enterAnimation', 'leaveAnimation', 'optionCount', 'optionHeight', 'root', 'textKey', 'title', 'trigger', 'type', 'valueKey'],
|
|
353
|
+
standalone: true
|
|
354
|
+
}]
|
|
355
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
356
|
+
let CtyCircle = class CtyCircle {
|
|
357
|
+
z;
|
|
358
|
+
el;
|
|
359
|
+
constructor(c, r, z) {
|
|
360
|
+
this.z = z;
|
|
361
|
+
c.detach();
|
|
362
|
+
this.el = r.nativeElement;
|
|
363
|
+
}
|
|
364
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCircle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
365
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyCircle, isStandalone: true, selector: "cty-circle", inputs: { clockwise: "clockwise", color: "color", rad: "rad", rate: "rate", text: "text", width: "width", zeroTransparent: "zeroTransparent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
366
|
+
};
|
|
367
|
+
CtyCircle = __decorate([
|
|
368
|
+
ProxyCmp({
|
|
369
|
+
defineCustomElementFn: defineCtyCircle,
|
|
370
|
+
inputs: ['clockwise', 'color', 'rad', 'rate', 'text', 'width', 'zeroTransparent']
|
|
371
|
+
})
|
|
372
|
+
], CtyCircle);
|
|
373
|
+
export { CtyCircle };
|
|
374
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCircle, decorators: [{
|
|
375
|
+
type: Component,
|
|
376
|
+
args: [{
|
|
377
|
+
selector: 'cty-circle',
|
|
378
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
379
|
+
template: '<ng-content></ng-content>',
|
|
380
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
381
|
+
inputs: ['clockwise', 'color', 'rad', 'rate', 'text', 'width', 'zeroTransparent'],
|
|
382
|
+
standalone: true
|
|
383
|
+
}]
|
|
384
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
385
|
+
let CtyCountDown = class CtyCountDown {
|
|
386
|
+
z;
|
|
387
|
+
el;
|
|
388
|
+
constructor(c, r, z) {
|
|
389
|
+
this.z = z;
|
|
390
|
+
c.detach();
|
|
391
|
+
this.el = r.nativeElement;
|
|
392
|
+
proxyOutputs(this, this.el, ['ctyChange', 'ctyFinish']);
|
|
393
|
+
}
|
|
394
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCountDown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
395
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyCountDown, isStandalone: true, selector: "cty-count-down", inputs: { autoStart: "autoStart", dateFormatUnit: "dateFormatUnit", format: "format", millisecond: "millisecond", time: "time", unit: "unit" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
396
|
+
};
|
|
397
|
+
CtyCountDown = __decorate([
|
|
398
|
+
ProxyCmp({
|
|
399
|
+
defineCustomElementFn: defineCtyCountDown,
|
|
400
|
+
inputs: ['autoStart', 'dateFormatUnit', 'format', 'millisecond', 'time', 'unit'],
|
|
401
|
+
methods: ['start', 'reset', 'pause']
|
|
402
|
+
})
|
|
403
|
+
], CtyCountDown);
|
|
404
|
+
export { CtyCountDown };
|
|
405
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCountDown, decorators: [{
|
|
406
|
+
type: Component,
|
|
407
|
+
args: [{
|
|
408
|
+
selector: 'cty-count-down',
|
|
409
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
410
|
+
template: '<ng-content></ng-content>',
|
|
411
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
412
|
+
inputs: ['autoStart', 'dateFormatUnit', 'format', 'millisecond', 'time', 'unit'],
|
|
413
|
+
standalone: true
|
|
414
|
+
}]
|
|
415
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
416
|
+
let CtyCropImage = class CtyCropImage {
|
|
417
|
+
z;
|
|
418
|
+
el;
|
|
419
|
+
constructor(c, r, z) {
|
|
420
|
+
this.z = z;
|
|
421
|
+
c.detach();
|
|
422
|
+
this.el = r.nativeElement;
|
|
423
|
+
proxyOutputs(this, this.el, ['ctyCancel', 'ctyConfirm']);
|
|
424
|
+
}
|
|
425
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCropImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
426
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyCropImage, isStandalone: true, selector: "cty-crop-image", inputs: { cancelText: "cancelText", confirmText: "confirmText", imageBackground: "imageBackground", imageWidth: "imageWidth", maxScale: "maxScale", minScale: "minScale", quality: "quality", suffix: "suffix", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
427
|
+
};
|
|
428
|
+
CtyCropImage = __decorate([
|
|
429
|
+
ProxyCmp({
|
|
430
|
+
defineCustomElementFn: defineCtyCropImage,
|
|
431
|
+
inputs: ['cancelText', 'confirmText', 'imageBackground', 'imageWidth', 'maxScale', 'minScale', 'quality', 'suffix', 'url'],
|
|
432
|
+
methods: ['getCanvasImg']
|
|
433
|
+
})
|
|
434
|
+
], CtyCropImage);
|
|
435
|
+
export { CtyCropImage };
|
|
436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyCropImage, decorators: [{
|
|
437
|
+
type: Component,
|
|
438
|
+
args: [{
|
|
439
|
+
selector: 'cty-crop-image',
|
|
440
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
441
|
+
template: '<ng-content></ng-content>',
|
|
442
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
443
|
+
inputs: ['cancelText', 'confirmText', 'imageBackground', 'imageWidth', 'maxScale', 'minScale', 'quality', 'suffix', 'url'],
|
|
444
|
+
standalone: true
|
|
445
|
+
}]
|
|
446
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
447
|
+
let CtyDivider = class CtyDivider {
|
|
448
|
+
z;
|
|
449
|
+
el;
|
|
450
|
+
constructor(c, r, z) {
|
|
451
|
+
this.z = z;
|
|
452
|
+
c.detach();
|
|
453
|
+
this.el = r.nativeElement;
|
|
454
|
+
}
|
|
455
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
456
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyDivider, isStandalone: true, selector: "cty-divider", inputs: { placement: "placement", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
457
|
+
};
|
|
458
|
+
CtyDivider = __decorate([
|
|
459
|
+
ProxyCmp({
|
|
460
|
+
defineCustomElementFn: defineCtyDivider,
|
|
461
|
+
inputs: ['placement', 'vertical']
|
|
462
|
+
})
|
|
463
|
+
], CtyDivider);
|
|
464
|
+
export { CtyDivider };
|
|
465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyDivider, decorators: [{
|
|
466
|
+
type: Component,
|
|
467
|
+
args: [{
|
|
468
|
+
selector: 'cty-divider',
|
|
469
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
470
|
+
template: '<ng-content></ng-content>',
|
|
471
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
472
|
+
inputs: ['placement', 'vertical'],
|
|
473
|
+
standalone: true
|
|
474
|
+
}]
|
|
475
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
476
|
+
let CtyEmpty = class CtyEmpty {
|
|
477
|
+
z;
|
|
478
|
+
el;
|
|
479
|
+
constructor(c, r, z) {
|
|
480
|
+
this.z = z;
|
|
481
|
+
c.detach();
|
|
482
|
+
this.el = r.nativeElement;
|
|
483
|
+
}
|
|
484
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyEmpty, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
485
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyEmpty, isStandalone: true, selector: "cty-empty", inputs: { description: "description", image: "image" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
486
|
+
};
|
|
487
|
+
CtyEmpty = __decorate([
|
|
488
|
+
ProxyCmp({
|
|
489
|
+
defineCustomElementFn: defineCtyEmpty,
|
|
490
|
+
inputs: ['description', 'image']
|
|
491
|
+
})
|
|
492
|
+
], CtyEmpty);
|
|
493
|
+
export { CtyEmpty };
|
|
494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyEmpty, decorators: [{
|
|
495
|
+
type: Component,
|
|
496
|
+
args: [{
|
|
497
|
+
selector: 'cty-empty',
|
|
498
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
499
|
+
template: '<ng-content></ng-content>',
|
|
500
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
501
|
+
inputs: ['description', 'image'],
|
|
502
|
+
standalone: true
|
|
503
|
+
}]
|
|
504
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
505
|
+
let CtyFloatingBubble = class CtyFloatingBubble {
|
|
506
|
+
z;
|
|
507
|
+
el;
|
|
508
|
+
constructor(c, r, z) {
|
|
509
|
+
this.z = z;
|
|
510
|
+
c.detach();
|
|
511
|
+
this.el = r.nativeElement;
|
|
512
|
+
proxyOutputs(this, this.el, ['ctyMoveStart', 'ctyMove', 'ctyMoveEnd', 'ctyClick']);
|
|
513
|
+
}
|
|
514
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyFloatingBubble, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
515
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyFloatingBubble, isStandalone: true, selector: "cty-floating-bubble", inputs: { axis: "axis", gap: "gap", icon: "icon", magnetic: "magnetic", offset: "offset" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
516
|
+
};
|
|
517
|
+
CtyFloatingBubble = __decorate([
|
|
518
|
+
ProxyCmp({
|
|
519
|
+
defineCustomElementFn: defineCtyFloatingBubble,
|
|
520
|
+
inputs: ['axis', 'gap', 'icon', 'magnetic', 'offset']
|
|
521
|
+
})
|
|
522
|
+
], CtyFloatingBubble);
|
|
523
|
+
export { CtyFloatingBubble };
|
|
524
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyFloatingBubble, decorators: [{
|
|
525
|
+
type: Component,
|
|
526
|
+
args: [{
|
|
527
|
+
selector: 'cty-floating-bubble',
|
|
528
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
529
|
+
template: '<ng-content></ng-content>',
|
|
530
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
531
|
+
inputs: ['axis', 'gap', 'icon', 'magnetic', 'offset'],
|
|
532
|
+
standalone: true
|
|
533
|
+
}]
|
|
534
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
535
|
+
let CtyFloatingPanel = class CtyFloatingPanel {
|
|
536
|
+
z;
|
|
537
|
+
el;
|
|
538
|
+
constructor(c, r, z) {
|
|
539
|
+
this.z = z;
|
|
540
|
+
c.detach();
|
|
541
|
+
this.el = r.nativeElement;
|
|
542
|
+
proxyOutputs(this, this.el, ['ctyHeightChange']);
|
|
543
|
+
}
|
|
544
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyFloatingPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
545
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyFloatingPanel, isStandalone: true, selector: "cty-floating-panel", inputs: { anchors: "anchors", contentDraggable: "contentDraggable", damp: "damp", endAnchor: "endAnchor", icon: "icon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
546
|
+
};
|
|
547
|
+
CtyFloatingPanel = __decorate([
|
|
548
|
+
ProxyCmp({
|
|
549
|
+
defineCustomElementFn: defineCtyFloatingPanel,
|
|
550
|
+
inputs: ['anchors', 'contentDraggable', 'damp', 'endAnchor', 'icon']
|
|
551
|
+
})
|
|
552
|
+
], CtyFloatingPanel);
|
|
553
|
+
export { CtyFloatingPanel };
|
|
554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyFloatingPanel, decorators: [{
|
|
555
|
+
type: Component,
|
|
556
|
+
args: [{
|
|
557
|
+
selector: 'cty-floating-panel',
|
|
558
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
559
|
+
template: '<ng-content></ng-content>',
|
|
560
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
561
|
+
inputs: ['anchors', 'contentDraggable', 'damp', 'endAnchor', 'icon'],
|
|
562
|
+
standalone: true
|
|
563
|
+
}]
|
|
564
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
565
|
+
let CtyIcon = class CtyIcon {
|
|
566
|
+
z;
|
|
567
|
+
el;
|
|
568
|
+
constructor(c, r, z) {
|
|
569
|
+
this.z = z;
|
|
570
|
+
c.detach();
|
|
571
|
+
this.el = r.nativeElement;
|
|
572
|
+
}
|
|
573
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
574
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyIcon, isStandalone: true, selector: "cty-icon", inputs: { color: "color", flipRtl: "flipRtl", lazy: "lazy", name: "name", sanitize: "sanitize", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
575
|
+
};
|
|
576
|
+
CtyIcon = __decorate([
|
|
577
|
+
ProxyCmp({
|
|
578
|
+
defineCustomElementFn: defineCtyIcon,
|
|
579
|
+
inputs: ['color', 'flipRtl', 'lazy', 'name', 'sanitize', 'size']
|
|
580
|
+
})
|
|
581
|
+
], CtyIcon);
|
|
582
|
+
export { CtyIcon };
|
|
583
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyIcon, decorators: [{
|
|
584
|
+
type: Component,
|
|
585
|
+
args: [{
|
|
586
|
+
selector: 'cty-icon',
|
|
587
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
588
|
+
template: '<ng-content></ng-content>',
|
|
589
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
590
|
+
inputs: ['color', 'flipRtl', 'lazy', 'name', 'sanitize', 'size'],
|
|
591
|
+
standalone: true
|
|
592
|
+
}]
|
|
593
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
594
|
+
let CtyImageUpload = class CtyImageUpload {
|
|
595
|
+
z;
|
|
596
|
+
el;
|
|
597
|
+
constructor(c, r, z) {
|
|
598
|
+
this.z = z;
|
|
599
|
+
c.detach();
|
|
600
|
+
this.el = r.nativeElement;
|
|
601
|
+
proxyOutputs(this, this.el, ['ctyImagePicker', 'ctyAddImageTap', 'ctyImageTap', 'ctyDeleteImage', 'ctImageViewerDismiss']);
|
|
602
|
+
}
|
|
603
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyImageUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
604
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyImageUpload, isStandalone: true, selector: "cty-image-upload", inputs: { addIcon: "addIcon", addImage: "addImage", cameraPhotoOptions: "cameraPhotoOptions", count: "count", deleteable: "deleteable", imageViewer: "imageViewer", imageViewerOptions: "imageViewerOptions", images: "images" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
605
|
+
};
|
|
606
|
+
CtyImageUpload = __decorate([
|
|
607
|
+
ProxyCmp({
|
|
608
|
+
defineCustomElementFn: defineCtyImageUpload,
|
|
609
|
+
inputs: ['addIcon', 'addImage', 'cameraPhotoOptions', 'count', 'deleteable', 'imageViewer', 'imageViewerOptions', 'images']
|
|
610
|
+
})
|
|
611
|
+
], CtyImageUpload);
|
|
612
|
+
export { CtyImageUpload };
|
|
613
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyImageUpload, decorators: [{
|
|
614
|
+
type: Component,
|
|
615
|
+
args: [{
|
|
616
|
+
selector: 'cty-image-upload',
|
|
617
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
618
|
+
template: '<ng-content></ng-content>',
|
|
619
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
620
|
+
inputs: ['addIcon', 'addImage', 'cameraPhotoOptions', 'count', 'deleteable', 'imageViewer', 'imageViewerOptions', 'images'],
|
|
621
|
+
standalone: true
|
|
622
|
+
}]
|
|
623
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
624
|
+
let CtyImageViewer = class CtyImageViewer {
|
|
625
|
+
z;
|
|
626
|
+
el;
|
|
627
|
+
constructor(c, r, z) {
|
|
628
|
+
this.z = z;
|
|
629
|
+
c.detach();
|
|
630
|
+
this.el = r.nativeElement;
|
|
631
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctySlideChange', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
632
|
+
}
|
|
633
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyImageViewer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
634
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyImageViewer, isStandalone: true, selector: "cty-image-viewer", inputs: { animated: "animated", attrs: "attrs", backdropDismiss: "backdropDismiss", closeable: "closeable", cssClass: "cssClass", enterAnimation: "enterAnimation", images: "images", initialSlide: "initialSlide", leaveAnimation: "leaveAnimation", loop: "loop", pager: "pager", root: "root", speed: "speed", trigger: "trigger", zoom: "zoom" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
635
|
+
};
|
|
636
|
+
CtyImageViewer = __decorate([
|
|
637
|
+
ProxyCmp({
|
|
638
|
+
defineCustomElementFn: defineCtyImageViewer,
|
|
639
|
+
inputs: ['animated', 'attrs', 'backdropDismiss', 'closeable', 'cssClass', 'enterAnimation', 'images', 'initialSlide', 'leaveAnimation', 'loop', 'pager', 'root', 'speed', 'trigger', 'zoom'],
|
|
640
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss', 'slideTo']
|
|
641
|
+
})
|
|
642
|
+
], CtyImageViewer);
|
|
643
|
+
export { CtyImageViewer };
|
|
644
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyImageViewer, decorators: [{
|
|
645
|
+
type: Component,
|
|
646
|
+
args: [{
|
|
647
|
+
selector: 'cty-image-viewer',
|
|
648
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
649
|
+
template: '<ng-content></ng-content>',
|
|
650
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
651
|
+
inputs: ['animated', 'attrs', 'backdropDismiss', 'closeable', 'cssClass', 'enterAnimation', 'images', 'initialSlide', 'leaveAnimation', 'loop', 'pager', 'root', 'speed', 'trigger', 'zoom'],
|
|
652
|
+
standalone: true
|
|
653
|
+
}]
|
|
654
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
655
|
+
let CtyIndexBar = class CtyIndexBar {
|
|
656
|
+
z;
|
|
657
|
+
el;
|
|
658
|
+
constructor(c, r, z) {
|
|
659
|
+
this.z = z;
|
|
660
|
+
c.detach();
|
|
661
|
+
this.el = r.nativeElement;
|
|
662
|
+
proxyOutputs(this, this.el, ['ctyScrollToPoint']);
|
|
663
|
+
}
|
|
664
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyIndexBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
665
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyIndexBar, isStandalone: true, selector: "cty-index-bar", inputs: { alphabet: "alphabet", alphabets: "alphabets", duration: "duration", indexList: "indexList", offsetDiff: "offsetDiff", sticky: "sticky", stickyTop: "stickyTop", sum: "sum" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
666
|
+
};
|
|
667
|
+
CtyIndexBar = __decorate([
|
|
668
|
+
ProxyCmp({
|
|
669
|
+
defineCustomElementFn: defineCtyIndexBar,
|
|
670
|
+
inputs: ['alphabet', 'alphabets', 'duration', 'indexList', 'offsetDiff', 'sticky', 'stickyTop', 'sum'],
|
|
671
|
+
methods: ['scrollToIndex']
|
|
672
|
+
})
|
|
673
|
+
], CtyIndexBar);
|
|
674
|
+
export { CtyIndexBar };
|
|
675
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyIndexBar, decorators: [{
|
|
676
|
+
type: Component,
|
|
677
|
+
args: [{
|
|
678
|
+
selector: 'cty-index-bar',
|
|
679
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
680
|
+
template: '<ng-content></ng-content>',
|
|
681
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
682
|
+
inputs: ['alphabet', 'alphabets', 'duration', 'indexList', 'offsetDiff', 'sticky', 'stickyTop', 'sum'],
|
|
683
|
+
standalone: true
|
|
684
|
+
}]
|
|
685
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
686
|
+
let CtyKeyboard = class CtyKeyboard {
|
|
687
|
+
z;
|
|
688
|
+
el;
|
|
689
|
+
constructor(c, r, z) {
|
|
690
|
+
this.z = z;
|
|
691
|
+
c.detach();
|
|
692
|
+
this.el = r.nativeElement;
|
|
693
|
+
}
|
|
694
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyKeyboard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
695
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyKeyboard, isStandalone: true, selector: "cty-keyboard", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
696
|
+
};
|
|
697
|
+
CtyKeyboard = __decorate([
|
|
698
|
+
ProxyCmp({
|
|
699
|
+
defineCustomElementFn: defineCtyKeyboard
|
|
700
|
+
})
|
|
701
|
+
], CtyKeyboard);
|
|
702
|
+
export { CtyKeyboard };
|
|
703
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyKeyboard, decorators: [{
|
|
704
|
+
type: Component,
|
|
705
|
+
args: [{
|
|
706
|
+
selector: 'cty-keyboard',
|
|
707
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
708
|
+
template: '<ng-content></ng-content>',
|
|
709
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
710
|
+
inputs: [],
|
|
711
|
+
standalone: true
|
|
712
|
+
}]
|
|
713
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
714
|
+
let CtyLoading = class CtyLoading {
|
|
715
|
+
z;
|
|
716
|
+
el;
|
|
717
|
+
constructor(c, r, z) {
|
|
718
|
+
this.z = z;
|
|
719
|
+
c.detach();
|
|
720
|
+
this.el = r.nativeElement;
|
|
721
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
722
|
+
}
|
|
723
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyLoading, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
724
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyLoading, isStandalone: true, selector: "cty-loading", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", cssClass: "cssClass", enterAnimation: "enterAnimation", img: "img", leaveAnimation: "leaveAnimation", root: "root", spinner: "spinner", trigger: "trigger", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
725
|
+
};
|
|
726
|
+
CtyLoading = __decorate([
|
|
727
|
+
ProxyCmp({
|
|
728
|
+
defineCustomElementFn: defineCtyLoading,
|
|
729
|
+
inputs: ['animated', 'backdropDismiss', 'cssClass', 'enterAnimation', 'img', 'leaveAnimation', 'root', 'spinner', 'trigger', 'vertical'],
|
|
730
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
731
|
+
})
|
|
732
|
+
], CtyLoading);
|
|
733
|
+
export { CtyLoading };
|
|
734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyLoading, decorators: [{
|
|
735
|
+
type: Component,
|
|
736
|
+
args: [{
|
|
737
|
+
selector: 'cty-loading',
|
|
738
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
739
|
+
template: '<ng-content></ng-content>',
|
|
740
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
741
|
+
inputs: ['animated', 'backdropDismiss', 'cssClass', 'enterAnimation', 'img', 'leaveAnimation', 'root', 'spinner', 'trigger', 'vertical'],
|
|
742
|
+
standalone: true
|
|
743
|
+
}]
|
|
744
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
745
|
+
let CtyMediaCapture = class CtyMediaCapture {
|
|
746
|
+
z;
|
|
747
|
+
el;
|
|
748
|
+
constructor(c, r, z) {
|
|
749
|
+
this.z = z;
|
|
750
|
+
c.detach();
|
|
751
|
+
this.el = r.nativeElement;
|
|
752
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyComplete', 'ctyStart', 'ctyStop']);
|
|
753
|
+
}
|
|
754
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyMediaCapture, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
755
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyMediaCapture, isStandalone: true, selector: "cty-media-capture", inputs: { autoplay: "autoplay", captureTime: "captureTime", closeIcon: "closeIcon", confirmText: "confirmText", controls: "controls", loop: "loop", options: "options", poster: "poster", revocationIcon: "revocationIcon", timeLimit: "timeLimit" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
756
|
+
};
|
|
757
|
+
CtyMediaCapture = __decorate([
|
|
758
|
+
ProxyCmp({
|
|
759
|
+
defineCustomElementFn: defineCtyMediaCapture,
|
|
760
|
+
inputs: ['autoplay', 'captureTime', 'closeIcon', 'confirmText', 'controls', 'loop', 'options', 'poster', 'revocationIcon', 'timeLimit'],
|
|
761
|
+
methods: ['startVideoCapture', 'stopVideoCapture']
|
|
762
|
+
})
|
|
763
|
+
], CtyMediaCapture);
|
|
764
|
+
export { CtyMediaCapture };
|
|
765
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyMediaCapture, decorators: [{
|
|
766
|
+
type: Component,
|
|
767
|
+
args: [{
|
|
768
|
+
selector: 'cty-media-capture',
|
|
769
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
770
|
+
template: '<ng-content></ng-content>',
|
|
771
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
772
|
+
inputs: ['autoplay', 'captureTime', 'closeIcon', 'confirmText', 'controls', 'loop', 'options', 'poster', 'revocationIcon', 'timeLimit'],
|
|
773
|
+
standalone: true
|
|
774
|
+
}]
|
|
775
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
776
|
+
let CtyNavBar = class CtyNavBar {
|
|
777
|
+
z;
|
|
778
|
+
el;
|
|
779
|
+
constructor(c, r, z) {
|
|
780
|
+
this.z = z;
|
|
781
|
+
c.detach();
|
|
782
|
+
this.el = r.nativeElement;
|
|
783
|
+
proxyOutputs(this, this.el, ['ctyDismiss']);
|
|
784
|
+
}
|
|
785
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyNavBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
786
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyNavBar, isStandalone: true, selector: "cty-nav-bar", inputs: { arrow: "arrow", end: "end", start: "start", title: "title", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
787
|
+
};
|
|
788
|
+
CtyNavBar = __decorate([
|
|
789
|
+
ProxyCmp({
|
|
790
|
+
defineCustomElementFn: defineCtyNavBar,
|
|
791
|
+
inputs: ['arrow', 'end', 'start', 'title', 'type']
|
|
792
|
+
})
|
|
793
|
+
], CtyNavBar);
|
|
794
|
+
export { CtyNavBar };
|
|
795
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyNavBar, decorators: [{
|
|
796
|
+
type: Component,
|
|
797
|
+
args: [{
|
|
798
|
+
selector: 'cty-nav-bar',
|
|
799
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
800
|
+
template: '<ng-content></ng-content>',
|
|
801
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
802
|
+
inputs: ['arrow', 'end', 'start', 'title', 'type'],
|
|
803
|
+
standalone: true
|
|
804
|
+
}]
|
|
805
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
806
|
+
let CtyNoticeBar = class CtyNoticeBar {
|
|
807
|
+
z;
|
|
808
|
+
el;
|
|
809
|
+
constructor(c, r, z) {
|
|
810
|
+
this.z = z;
|
|
811
|
+
c.detach();
|
|
812
|
+
this.el = r.nativeElement;
|
|
813
|
+
proxyOutputs(this, this.el, ['ctyIconTap']);
|
|
814
|
+
}
|
|
815
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyNoticeBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
816
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyNoticeBar, isStandalone: true, selector: "cty-notice-bar", inputs: { endIcon: "endIcon", scrollable: "scrollable", speed: "speed", startIcon: "startIcon", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
817
|
+
};
|
|
818
|
+
CtyNoticeBar = __decorate([
|
|
819
|
+
ProxyCmp({
|
|
820
|
+
defineCustomElementFn: defineCtyNoticeBar,
|
|
821
|
+
inputs: ['endIcon', 'scrollable', 'speed', 'startIcon', 'text']
|
|
822
|
+
})
|
|
823
|
+
], CtyNoticeBar);
|
|
824
|
+
export { CtyNoticeBar };
|
|
825
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyNoticeBar, decorators: [{
|
|
826
|
+
type: Component,
|
|
827
|
+
args: [{
|
|
828
|
+
selector: 'cty-notice-bar',
|
|
829
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
830
|
+
template: '<ng-content></ng-content>',
|
|
831
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
832
|
+
inputs: ['endIcon', 'scrollable', 'speed', 'startIcon', 'text'],
|
|
833
|
+
standalone: true
|
|
834
|
+
}]
|
|
835
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
836
|
+
let CtyOverlay = class CtyOverlay {
|
|
837
|
+
z;
|
|
838
|
+
el;
|
|
839
|
+
constructor(c, r, z) {
|
|
840
|
+
this.z = z;
|
|
841
|
+
c.detach();
|
|
842
|
+
this.el = r.nativeElement;
|
|
843
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
844
|
+
}
|
|
845
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyOverlay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
846
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyOverlay, isStandalone: true, selector: "cty-overlay", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", cssClass: "cssClass", enterAnimation: "enterAnimation", html: "html", leaveAnimation: "leaveAnimation", position: "position", root: "root", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
847
|
+
};
|
|
848
|
+
CtyOverlay = __decorate([
|
|
849
|
+
ProxyCmp({
|
|
850
|
+
defineCustomElementFn: defineCtyOverlay,
|
|
851
|
+
inputs: ['animated', 'backdropDismiss', 'cssClass', 'enterAnimation', 'html', 'leaveAnimation', 'position', 'root', 'trigger'],
|
|
852
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
853
|
+
})
|
|
854
|
+
], CtyOverlay);
|
|
855
|
+
export { CtyOverlay };
|
|
856
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyOverlay, decorators: [{
|
|
857
|
+
type: Component,
|
|
858
|
+
args: [{
|
|
859
|
+
selector: 'cty-overlay',
|
|
860
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
861
|
+
template: '<ng-content></ng-content>',
|
|
862
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
863
|
+
inputs: ['animated', 'backdropDismiss', 'cssClass', 'enterAnimation', 'html', 'leaveAnimation', 'position', 'root', 'trigger'],
|
|
864
|
+
standalone: true
|
|
865
|
+
}]
|
|
866
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
867
|
+
let CtyPdfViewer = class CtyPdfViewer {
|
|
868
|
+
z;
|
|
869
|
+
el;
|
|
870
|
+
constructor(c, r, z) {
|
|
871
|
+
this.z = z;
|
|
872
|
+
c.detach();
|
|
873
|
+
this.el = r.nativeElement;
|
|
874
|
+
proxyOutputs(this, this.el, ['ctyInit', 'ctyEnd']);
|
|
875
|
+
}
|
|
876
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyPdfViewer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
877
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyPdfViewer, isStandalone: true, selector: "cty-pdf-viewer", inputs: { url: "url", viewerUrl: "viewerUrl" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
878
|
+
};
|
|
879
|
+
CtyPdfViewer = __decorate([
|
|
880
|
+
ProxyCmp({
|
|
881
|
+
defineCustomElementFn: defineCtyPdfViewer,
|
|
882
|
+
inputs: ['url', 'viewerUrl']
|
|
883
|
+
})
|
|
884
|
+
], CtyPdfViewer);
|
|
885
|
+
export { CtyPdfViewer };
|
|
886
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyPdfViewer, decorators: [{
|
|
887
|
+
type: Component,
|
|
888
|
+
args: [{
|
|
889
|
+
selector: 'cty-pdf-viewer',
|
|
890
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
891
|
+
template: '<ng-content></ng-content>',
|
|
892
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
893
|
+
inputs: ['url', 'viewerUrl'],
|
|
894
|
+
standalone: true
|
|
895
|
+
}]
|
|
896
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
897
|
+
let CtyPermissionPurpose = class CtyPermissionPurpose {
|
|
898
|
+
z;
|
|
899
|
+
el;
|
|
900
|
+
constructor(c, r, z) {
|
|
901
|
+
this.z = z;
|
|
902
|
+
c.detach();
|
|
903
|
+
this.el = r.nativeElement;
|
|
904
|
+
proxyOutputs(this, this.el, ['ctyDismiss']);
|
|
905
|
+
}
|
|
906
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyPermissionPurpose, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
907
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyPermissionPurpose, isStandalone: true, selector: "cty-permission-purpose", inputs: { backdropDismiss: "backdropDismiss", description: "description" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
908
|
+
};
|
|
909
|
+
CtyPermissionPurpose = __decorate([
|
|
910
|
+
ProxyCmp({
|
|
911
|
+
defineCustomElementFn: defineCtyPermissionPurpose,
|
|
912
|
+
inputs: ['backdropDismiss', 'description']
|
|
913
|
+
})
|
|
914
|
+
], CtyPermissionPurpose);
|
|
915
|
+
export { CtyPermissionPurpose };
|
|
916
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyPermissionPurpose, decorators: [{
|
|
917
|
+
type: Component,
|
|
918
|
+
args: [{
|
|
919
|
+
selector: 'cty-permission-purpose',
|
|
920
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
921
|
+
template: '<ng-content></ng-content>',
|
|
922
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
923
|
+
inputs: ['backdropDismiss', 'description'],
|
|
924
|
+
standalone: true
|
|
925
|
+
}]
|
|
926
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
927
|
+
let CtyProgress = class CtyProgress {
|
|
928
|
+
z;
|
|
929
|
+
el;
|
|
930
|
+
constructor(c, r, z) {
|
|
931
|
+
this.z = z;
|
|
932
|
+
c.detach();
|
|
933
|
+
this.el = r.nativeElement;
|
|
934
|
+
}
|
|
935
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyProgress, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
936
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyProgress, isStandalone: true, selector: "cty-progress", inputs: { percentage: "percentage", pivot: "pivot", pivotText: "pivotText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
937
|
+
};
|
|
938
|
+
CtyProgress = __decorate([
|
|
939
|
+
ProxyCmp({
|
|
940
|
+
defineCustomElementFn: defineCtyProgress,
|
|
941
|
+
inputs: ['percentage', 'pivot', 'pivotText']
|
|
942
|
+
})
|
|
943
|
+
], CtyProgress);
|
|
944
|
+
export { CtyProgress };
|
|
945
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyProgress, decorators: [{
|
|
946
|
+
type: Component,
|
|
947
|
+
args: [{
|
|
948
|
+
selector: 'cty-progress',
|
|
949
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
950
|
+
template: '<ng-content></ng-content>',
|
|
951
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
952
|
+
inputs: ['percentage', 'pivot', 'pivotText'],
|
|
953
|
+
standalone: true
|
|
954
|
+
}]
|
|
955
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
956
|
+
let CtyQuickAccess = class CtyQuickAccess {
|
|
957
|
+
z;
|
|
958
|
+
el;
|
|
959
|
+
constructor(c, r, z) {
|
|
960
|
+
this.z = z;
|
|
961
|
+
c.detach();
|
|
962
|
+
this.el = r.nativeElement;
|
|
963
|
+
proxyOutputs(this, this.el, ['ctyTap', 'ctySlide', 'ctySlideEnd', 'ctyInit']);
|
|
964
|
+
}
|
|
965
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyQuickAccess, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
966
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyQuickAccess, isStandalone: true, selector: "cty-quick-access", inputs: { col: "col", options: "options", paper: "paper", props: "props", quickThreshold: "quickThreshold", row: "row", slideThreshold: "slideThreshold", transition: "transition" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
967
|
+
};
|
|
968
|
+
CtyQuickAccess = __decorate([
|
|
969
|
+
ProxyCmp({
|
|
970
|
+
defineCustomElementFn: defineCtyQuickAccess,
|
|
971
|
+
inputs: ['col', 'options', 'paper', 'props', 'quickThreshold', 'row', 'slideThreshold', 'transition'],
|
|
972
|
+
methods: ['getCurrentPage']
|
|
973
|
+
})
|
|
974
|
+
], CtyQuickAccess);
|
|
975
|
+
export { CtyQuickAccess };
|
|
976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyQuickAccess, decorators: [{
|
|
977
|
+
type: Component,
|
|
978
|
+
args: [{
|
|
979
|
+
selector: 'cty-quick-access',
|
|
980
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
981
|
+
template: '<ng-content></ng-content>',
|
|
982
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
983
|
+
inputs: ['col', 'options', 'paper', 'props', 'quickThreshold', 'row', 'slideThreshold', 'transition'],
|
|
984
|
+
standalone: true
|
|
985
|
+
}]
|
|
986
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
987
|
+
let CtyRecord = class CtyRecord {
|
|
988
|
+
z;
|
|
989
|
+
el;
|
|
990
|
+
constructor(c, r, z) {
|
|
991
|
+
this.z = z;
|
|
992
|
+
c.detach();
|
|
993
|
+
this.el = r.nativeElement;
|
|
994
|
+
proxyOutputs(this, this.el, ['ctyRecordStart', 'ctyRecording', 'ctyRecordEnd', 'ctyRecordComplete', 'ctyDismiss', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
995
|
+
}
|
|
996
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyRecord, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
997
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyRecord, isStandalone: true, selector: "cty-record", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", circleColor: "circleColor", circleWidth: "circleWidth", closeable: "closeable", cssClass: "cssClass", enterAnimation: "enterAnimation", leaveAnimation: "leaveAnimation", maxSeconds: "maxSeconds", minSeconds: "minSeconds", root: "root", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
998
|
+
};
|
|
999
|
+
CtyRecord = __decorate([
|
|
1000
|
+
ProxyCmp({
|
|
1001
|
+
defineCustomElementFn: defineCtyRecord,
|
|
1002
|
+
inputs: ['animated', 'backdropDismiss', 'circleColor', 'circleWidth', 'closeable', 'cssClass', 'enterAnimation', 'leaveAnimation', 'maxSeconds', 'minSeconds', 'root', 'trigger'],
|
|
1003
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss', 'resetRecordState', 'startRecord', 'stopRecording']
|
|
1004
|
+
})
|
|
1005
|
+
], CtyRecord);
|
|
1006
|
+
export { CtyRecord };
|
|
1007
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyRecord, decorators: [{
|
|
1008
|
+
type: Component,
|
|
1009
|
+
args: [{
|
|
1010
|
+
selector: 'cty-record',
|
|
1011
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1012
|
+
template: '<ng-content></ng-content>',
|
|
1013
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1014
|
+
inputs: ['animated', 'backdropDismiss', 'circleColor', 'circleWidth', 'closeable', 'cssClass', 'enterAnimation', 'leaveAnimation', 'maxSeconds', 'minSeconds', 'root', 'trigger'],
|
|
1015
|
+
standalone: true
|
|
1016
|
+
}]
|
|
1017
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1018
|
+
let CtyShareSheet = class CtyShareSheet {
|
|
1019
|
+
z;
|
|
1020
|
+
el;
|
|
1021
|
+
constructor(c, r, z) {
|
|
1022
|
+
this.z = z;
|
|
1023
|
+
c.detach();
|
|
1024
|
+
this.el = r.nativeElement;
|
|
1025
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyTap', 'ctyShareSuccess', 'ctyShareFail', 'ctyGuide', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
1026
|
+
}
|
|
1027
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyShareSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1028
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyShareSheet, isStandalone: true, selector: "cty-share-sheet", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", cancelText: "cancelText", cssClass: "cssClass", description: "description", enterAnimation: "enterAnimation", guide: "guide", guideImg: "guideImg", hiddenSheet: "hiddenSheet", leaveAnimation: "leaveAnimation", legacyCopy: "legacyCopy", options: "options", permissionDescription: "permissionDescription", permissionPurpose: "permissionPurpose", root: "root", shareOption: "shareOption", title: "title", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1029
|
+
};
|
|
1030
|
+
CtyShareSheet = __decorate([
|
|
1031
|
+
ProxyCmp({
|
|
1032
|
+
defineCustomElementFn: defineCtyShareSheet,
|
|
1033
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'cssClass', 'description', 'enterAnimation', 'guide', 'guideImg', 'hiddenSheet', 'leaveAnimation', 'legacyCopy', 'options', 'permissionDescription', 'permissionPurpose', 'root', 'shareOption', 'title', 'trigger'],
|
|
1034
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
1035
|
+
})
|
|
1036
|
+
], CtyShareSheet);
|
|
1037
|
+
export { CtyShareSheet };
|
|
1038
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyShareSheet, decorators: [{
|
|
1039
|
+
type: Component,
|
|
1040
|
+
args: [{
|
|
1041
|
+
selector: 'cty-share-sheet',
|
|
1042
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1043
|
+
template: '<ng-content></ng-content>',
|
|
1044
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1045
|
+
inputs: ['animated', 'backdropDismiss', 'cancelText', 'cssClass', 'description', 'enterAnimation', 'guide', 'guideImg', 'hiddenSheet', 'leaveAnimation', 'legacyCopy', 'options', 'permissionDescription', 'permissionPurpose', 'root', 'shareOption', 'title', 'trigger'],
|
|
1046
|
+
standalone: true
|
|
1047
|
+
}]
|
|
1048
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1049
|
+
let CtyStep = class CtyStep {
|
|
1050
|
+
z;
|
|
1051
|
+
el;
|
|
1052
|
+
constructor(c, r, z) {
|
|
1053
|
+
this.z = z;
|
|
1054
|
+
c.detach();
|
|
1055
|
+
this.el = r.nativeElement;
|
|
1056
|
+
}
|
|
1057
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyStep, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1058
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyStep, isStandalone: true, selector: "cty-step", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1059
|
+
};
|
|
1060
|
+
CtyStep = __decorate([
|
|
1061
|
+
ProxyCmp({
|
|
1062
|
+
defineCustomElementFn: defineCtyStep
|
|
1063
|
+
})
|
|
1064
|
+
], CtyStep);
|
|
1065
|
+
export { CtyStep };
|
|
1066
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyStep, decorators: [{
|
|
1067
|
+
type: Component,
|
|
1068
|
+
args: [{
|
|
1069
|
+
selector: 'cty-step',
|
|
1070
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1071
|
+
template: '<ng-content></ng-content>',
|
|
1072
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1073
|
+
inputs: [],
|
|
1074
|
+
standalone: true
|
|
1075
|
+
}]
|
|
1076
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1077
|
+
let CtySteps = class CtySteps {
|
|
1078
|
+
z;
|
|
1079
|
+
el;
|
|
1080
|
+
constructor(c, r, z) {
|
|
1081
|
+
this.z = z;
|
|
1082
|
+
c.detach();
|
|
1083
|
+
this.el = r.nativeElement;
|
|
1084
|
+
proxyOutputs(this, this.el, ['ctyStepTap', 'ctyChange']);
|
|
1085
|
+
}
|
|
1086
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtySteps, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1087
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtySteps, isStandalone: true, selector: "cty-steps", inputs: { active: "active", activeIcon: "activeIcon", direction: "direction", finishIcon: "finishIcon", inactiveIcon: "inactiveIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1088
|
+
};
|
|
1089
|
+
CtySteps = __decorate([
|
|
1090
|
+
ProxyCmp({
|
|
1091
|
+
defineCustomElementFn: defineCtySteps,
|
|
1092
|
+
inputs: ['active', 'activeIcon', 'direction', 'finishIcon', 'inactiveIcon'],
|
|
1093
|
+
methods: ['onClickStep']
|
|
1094
|
+
})
|
|
1095
|
+
], CtySteps);
|
|
1096
|
+
export { CtySteps };
|
|
1097
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtySteps, decorators: [{
|
|
1098
|
+
type: Component,
|
|
1099
|
+
args: [{
|
|
1100
|
+
selector: 'cty-steps',
|
|
1101
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1102
|
+
template: '<ng-content></ng-content>',
|
|
1103
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1104
|
+
inputs: ['active', 'activeIcon', 'direction', 'finishIcon', 'inactiveIcon'],
|
|
1105
|
+
standalone: true
|
|
1106
|
+
}]
|
|
1107
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1108
|
+
let CtySwipe = class CtySwipe {
|
|
1109
|
+
z;
|
|
1110
|
+
el;
|
|
1111
|
+
constructor(c, r, z) {
|
|
1112
|
+
this.z = z;
|
|
1113
|
+
c.detach();
|
|
1114
|
+
this.el = r.nativeElement;
|
|
1115
|
+
proxyOutputs(this, this.el, ['ctyChange', 'ctyDragStart', 'ctyDragEnd']);
|
|
1116
|
+
}
|
|
1117
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtySwipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1118
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtySwipe, isStandalone: true, selector: "cty-swipe", inputs: { autoplay: "autoplay", duration: "duration", indicator: "indicator", initialSwipe: "initialSwipe", loop: "loop", touchable: "touchable", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1119
|
+
};
|
|
1120
|
+
CtySwipe = __decorate([
|
|
1121
|
+
ProxyCmp({
|
|
1122
|
+
defineCustomElementFn: defineCtySwipe,
|
|
1123
|
+
inputs: ['autoplay', 'duration', 'indicator', 'initialSwipe', 'loop', 'touchable', 'vertical'],
|
|
1124
|
+
methods: ['prev', 'next', 'swipeTo']
|
|
1125
|
+
})
|
|
1126
|
+
], CtySwipe);
|
|
1127
|
+
export { CtySwipe };
|
|
1128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtySwipe, decorators: [{
|
|
1129
|
+
type: Component,
|
|
1130
|
+
args: [{
|
|
1131
|
+
selector: 'cty-swipe',
|
|
1132
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1133
|
+
template: '<ng-content></ng-content>',
|
|
1134
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1135
|
+
inputs: ['autoplay', 'duration', 'indicator', 'initialSwipe', 'loop', 'touchable', 'vertical'],
|
|
1136
|
+
standalone: true
|
|
1137
|
+
}]
|
|
1138
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1139
|
+
let CtySwipeItem = class CtySwipeItem {
|
|
1140
|
+
z;
|
|
1141
|
+
el;
|
|
1142
|
+
constructor(c, r, z) {
|
|
1143
|
+
this.z = z;
|
|
1144
|
+
c.detach();
|
|
1145
|
+
this.el = r.nativeElement;
|
|
1146
|
+
}
|
|
1147
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtySwipeItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1148
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtySwipeItem, isStandalone: true, selector: "cty-swipe-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1149
|
+
};
|
|
1150
|
+
CtySwipeItem = __decorate([
|
|
1151
|
+
ProxyCmp({
|
|
1152
|
+
defineCustomElementFn: defineCtySwipeItem,
|
|
1153
|
+
methods: ['setOffset']
|
|
1154
|
+
})
|
|
1155
|
+
], CtySwipeItem);
|
|
1156
|
+
export { CtySwipeItem };
|
|
1157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtySwipeItem, decorators: [{
|
|
1158
|
+
type: Component,
|
|
1159
|
+
args: [{
|
|
1160
|
+
selector: 'cty-swipe-item',
|
|
1161
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1162
|
+
template: '<ng-content></ng-content>',
|
|
1163
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1164
|
+
inputs: [],
|
|
1165
|
+
standalone: true
|
|
1166
|
+
}]
|
|
1167
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1168
|
+
let CtyTextEllipsis = class CtyTextEllipsis {
|
|
1169
|
+
z;
|
|
1170
|
+
el;
|
|
1171
|
+
constructor(c, r, z) {
|
|
1172
|
+
this.z = z;
|
|
1173
|
+
c.detach();
|
|
1174
|
+
this.el = r.nativeElement;
|
|
1175
|
+
proxyOutputs(this, this.el, ['ctyExpandChange']);
|
|
1176
|
+
}
|
|
1177
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyTextEllipsis, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1178
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyTextEllipsis, isStandalone: true, selector: "cty-text-ellipsis", inputs: { collapseText: "collapseText", content: "content", dots: "dots", expandText: "expandText", position: "position", rows: "rows" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1179
|
+
};
|
|
1180
|
+
CtyTextEllipsis = __decorate([
|
|
1181
|
+
ProxyCmp({
|
|
1182
|
+
defineCustomElementFn: defineCtyTextEllipsis,
|
|
1183
|
+
inputs: ['collapseText', 'content', 'dots', 'expandText', 'position', 'rows']
|
|
1184
|
+
})
|
|
1185
|
+
], CtyTextEllipsis);
|
|
1186
|
+
export { CtyTextEllipsis };
|
|
1187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyTextEllipsis, decorators: [{
|
|
1188
|
+
type: Component,
|
|
1189
|
+
args: [{
|
|
1190
|
+
selector: 'cty-text-ellipsis',
|
|
1191
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1192
|
+
template: '<ng-content></ng-content>',
|
|
1193
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1194
|
+
inputs: ['collapseText', 'content', 'dots', 'expandText', 'position', 'rows'],
|
|
1195
|
+
standalone: true
|
|
1196
|
+
}]
|
|
1197
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1198
|
+
let CtyTour = class CtyTour {
|
|
1199
|
+
z;
|
|
1200
|
+
el;
|
|
1201
|
+
constructor(c, r, z) {
|
|
1202
|
+
this.z = z;
|
|
1203
|
+
c.detach();
|
|
1204
|
+
this.el = r.nativeElement;
|
|
1205
|
+
proxyOutputs(this, this.el, ['ctyChange', 'ctyDismiss']);
|
|
1206
|
+
}
|
|
1207
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyTour, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1208
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyTour, isStandalone: true, selector: "cty-tour", inputs: { arrow: "arrow", backdropDismiss: "backdropDismiss", closeable: "closeable", completeText: "completeText", cssClass: "cssClass", initialIndex: "initialIndex", nextText: "nextText", placement: "placement", popoverAttrs: "popoverAttrs", prevText: "prevText", showPrev: "showPrev", steps: "steps" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1209
|
+
};
|
|
1210
|
+
CtyTour = __decorate([
|
|
1211
|
+
ProxyCmp({
|
|
1212
|
+
defineCustomElementFn: defineCtyTour,
|
|
1213
|
+
inputs: ['arrow', 'backdropDismiss', 'closeable', 'completeText', 'cssClass', 'initialIndex', 'nextText', 'placement', 'popoverAttrs', 'prevText', 'showPrev', 'steps'],
|
|
1214
|
+
methods: ['present', 'dismiss', 'prevStep', 'nextStep', 'complete']
|
|
1215
|
+
})
|
|
1216
|
+
], CtyTour);
|
|
1217
|
+
export { CtyTour };
|
|
1218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyTour, decorators: [{
|
|
1219
|
+
type: Component,
|
|
1220
|
+
args: [{
|
|
1221
|
+
selector: 'cty-tour',
|
|
1222
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1223
|
+
template: '<ng-content></ng-content>',
|
|
1224
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1225
|
+
inputs: ['arrow', 'backdropDismiss', 'closeable', 'completeText', 'cssClass', 'initialIndex', 'nextText', 'placement', 'popoverAttrs', 'prevText', 'showPrev', 'steps'],
|
|
1226
|
+
standalone: true
|
|
1227
|
+
}]
|
|
1228
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1229
|
+
let CtyTutorial = class CtyTutorial {
|
|
1230
|
+
z;
|
|
1231
|
+
el;
|
|
1232
|
+
constructor(c, r, z) {
|
|
1233
|
+
this.z = z;
|
|
1234
|
+
c.detach();
|
|
1235
|
+
this.el = r.nativeElement;
|
|
1236
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctySlideChange', 'ctySlideTap', 'ctyDidPresent', 'ctyWillPresent', 'ctyWillDismiss', 'ctyDidDismiss']);
|
|
1237
|
+
}
|
|
1238
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyTutorial, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1239
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyTutorial, isStandalone: true, selector: "cty-tutorial", inputs: { animated: "animated", autoplay: "autoplay", backdropDismiss: "backdropDismiss", banners: "banners", closeable: "closeable", cssClass: "cssClass", duration: "duration", enterAnimation: "enterAnimation", indicator: "indicator", initialIndex: "initialIndex", leaveAnimation: "leaveAnimation", loop: "loop", props: "props", root: "root", touchable: "touchable", trigger: "trigger", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1240
|
+
};
|
|
1241
|
+
CtyTutorial = __decorate([
|
|
1242
|
+
ProxyCmp({
|
|
1243
|
+
defineCustomElementFn: defineCtyTutorial,
|
|
1244
|
+
inputs: ['animated', 'autoplay', 'backdropDismiss', 'banners', 'closeable', 'cssClass', 'duration', 'enterAnimation', 'indicator', 'initialIndex', 'leaveAnimation', 'loop', 'props', 'root', 'touchable', 'trigger', 'vertical'],
|
|
1245
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
|
|
1246
|
+
})
|
|
1247
|
+
], CtyTutorial);
|
|
1248
|
+
export { CtyTutorial };
|
|
1249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyTutorial, decorators: [{
|
|
1250
|
+
type: Component,
|
|
1251
|
+
args: [{
|
|
1252
|
+
selector: 'cty-tutorial',
|
|
1253
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1254
|
+
template: '<ng-content></ng-content>',
|
|
1255
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1256
|
+
inputs: ['animated', 'autoplay', 'backdropDismiss', 'banners', 'closeable', 'cssClass', 'duration', 'enterAnimation', 'indicator', 'initialIndex', 'leaveAnimation', 'loop', 'props', 'root', 'touchable', 'trigger', 'vertical'],
|
|
1257
|
+
standalone: true
|
|
1258
|
+
}]
|
|
1259
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1260
|
+
let CtyVideo = class CtyVideo {
|
|
1261
|
+
z;
|
|
1262
|
+
el;
|
|
1263
|
+
constructor(c, r, z) {
|
|
1264
|
+
this.z = z;
|
|
1265
|
+
c.detach();
|
|
1266
|
+
this.el = r.nativeElement;
|
|
1267
|
+
proxyOutputs(this, this.el, ['ctyDismiss', 'ctyVideoCanplay', 'ctyVideoTimeupdate', 'ctyVideoPlaying', 'ctyVideoPlay', 'ctyVideoPause', 'ctyVideoStalled', 'ctyVideoWaiting', 'ctyVideoEnded', 'ctyVideoError', 'ctyVideoChangeVolume', 'ctyVideoProgress', 'ctyVideoScreenChange', 'ctyVideoIAEnter', 'ctyVideoIAAction', 'ctyVideoCtrlChange', 'ctyVideoRateChange']);
|
|
1268
|
+
}
|
|
1269
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyVideo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1270
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyVideo, isStandalone: true, selector: "cty-video", inputs: { allowBackward: "allowBackward", allowForward: "allowForward", autoplay: "autoplay", controls: "controls", defaultFullscreen: "defaultFullscreen", directRate: "directRate", direction: "direction", errorMsg: "errorMsg", exitFullscreenIcon: "exitFullscreenIcon", footerCtrl: "footerCtrl", fullscreenIcon: "fullscreenIcon", fullscreenOnly: "fullscreenOnly", headerCtrl: "headerCtrl", interactiveActions: "interactiveActions", landscapeEnterTimer: "landscapeEnterTimer", landscapeLeaveTimer: "landscapeLeaveTimer", loading: "loading", loadingImg: "loadingImg", markers: "markers", orientation: "orientation", player: "player", poster: "poster", preload: "preload", progressPosition: "progressPosition", rate: "rate", rates: "rates", startTime: "startTime", title: "title", togglePlayTimer: "togglePlayTimer", trafficAutoplay: "trafficAutoplay", trafficMsg: "trafficMsg", unAllowForwardMsg: "unAllowForwardMsg", unAllowRateMsg: "unAllowRateMsg", updateNow: "updateNow", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1271
|
+
};
|
|
1272
|
+
CtyVideo = __decorate([
|
|
1273
|
+
ProxyCmp({
|
|
1274
|
+
defineCustomElementFn: defineCtyVideo,
|
|
1275
|
+
inputs: ['allowBackward', 'allowForward', 'autoplay', 'controls', 'defaultFullscreen', 'directRate', 'direction', 'errorMsg', 'exitFullscreenIcon', 'footerCtrl', 'fullscreenIcon', 'fullscreenOnly', 'headerCtrl', 'interactiveActions', 'landscapeEnterTimer', 'landscapeLeaveTimer', 'loading', 'loadingImg', 'markers', 'orientation', 'player', 'poster', 'preload', 'progressPosition', 'rate', 'rates', 'startTime', 'title', 'togglePlayTimer', 'trafficAutoplay', 'trafficMsg', 'unAllowForwardMsg', 'unAllowRateMsg', 'updateNow', 'url'],
|
|
1276
|
+
methods: ['play', 'setCtrlShow', 'pause', 'setVideoCurrentTime', 'toggleVideo', 'toggleVolume', 'setPlayRate', 'getVideoElement']
|
|
1277
|
+
})
|
|
1278
|
+
], CtyVideo);
|
|
1279
|
+
export { CtyVideo };
|
|
1280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyVideo, decorators: [{
|
|
1281
|
+
type: Component,
|
|
1282
|
+
args: [{
|
|
1283
|
+
selector: 'cty-video',
|
|
1284
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1285
|
+
template: '<ng-content></ng-content>',
|
|
1286
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1287
|
+
inputs: ['allowBackward', 'allowForward', 'autoplay', 'controls', 'defaultFullscreen', 'directRate', 'direction', 'errorMsg', 'exitFullscreenIcon', 'footerCtrl', 'fullscreenIcon', 'fullscreenOnly', 'headerCtrl', 'interactiveActions', 'landscapeEnterTimer', 'landscapeLeaveTimer', 'loading', 'loadingImg', 'markers', 'orientation', 'player', 'poster', 'preload', 'progressPosition', 'rate', 'rates', 'startTime', 'title', 'togglePlayTimer', 'trafficAutoplay', 'trafficMsg', 'unAllowForwardMsg', 'unAllowRateMsg', 'updateNow', 'url'],
|
|
1288
|
+
standalone: true
|
|
1289
|
+
}]
|
|
1290
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1291
|
+
let CtyVirtualList = class CtyVirtualList {
|
|
1292
|
+
z;
|
|
1293
|
+
el;
|
|
1294
|
+
constructor(c, r, z) {
|
|
1295
|
+
this.z = z;
|
|
1296
|
+
c.detach();
|
|
1297
|
+
this.el = r.nativeElement;
|
|
1298
|
+
proxyOutputs(this, this.el, ['ctyScroll']);
|
|
1299
|
+
}
|
|
1300
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyVirtualList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1301
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CtyVirtualList, isStandalone: true, selector: "cty-virtual-list", inputs: { containerHeight: "containerHeight", direction: "direction", itemKey: "itemKey", itemRender: "itemRender", items: "items", preloadItemCount: "preloadItemCount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1302
|
+
};
|
|
1303
|
+
CtyVirtualList = __decorate([
|
|
1304
|
+
ProxyCmp({
|
|
1305
|
+
defineCustomElementFn: defineCtyVirtualList,
|
|
1306
|
+
inputs: ['containerHeight', 'direction', 'itemKey', 'itemRender', 'items', 'preloadItemCount']
|
|
1307
|
+
})
|
|
1308
|
+
], CtyVirtualList);
|
|
1309
|
+
export { CtyVirtualList };
|
|
1310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CtyVirtualList, decorators: [{
|
|
1311
|
+
type: Component,
|
|
1312
|
+
args: [{
|
|
1313
|
+
selector: 'cty-virtual-list',
|
|
1314
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1315
|
+
template: '<ng-content></ng-content>',
|
|
1316
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1317
|
+
inputs: ['containerHeight', 'direction', 'itemKey', 'itemRender', 'items', 'preloadItemCount'],
|
|
1318
|
+
standalone: true
|
|
1319
|
+
}]
|
|
1320
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3N0YW5kYWxvbmUvc3JjL2RpcmVjdGl2ZXMvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUl2RSxPQUFPLEVBQUUsbUJBQW1CLElBQUksb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0YsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLElBQUksb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0YsT0FBTyxF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SUFaMUIsUUFBUSxDQUFDO1FBQ1IscUJBQXFCLEVBQUUsb0JBQW9CO1FBQzNDLE1BQU0sRUFBRSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQztLQUMvRixDQUFDO0dBU1csY0FBYyxDQU8xQjtTQVBZLGNBQWM7NEZBQWQsY0FBYztrQkFSMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUM7b0JBQzlGLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRzIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUFjdGlvblNoZWV0IH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWFjdGlvbi1zaGVldC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUFsZXJ0IH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWFsZXJ0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5QW5zd2VyU2hlZXQgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktYW5zd2VyLXNoZWV0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5QXJ0aWNsZUNhcmQgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktYXJ0aWNsZS1jYXJkLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5QXVkaW8gfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktYXVkaW8uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlCYW5uZXIgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktYmFubmVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5Q2FtZXJhUGhvdG8gfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktY2FtZXJhLXBob3RvLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5Q2FudmFzQm9hcmQgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktY2FudmFzLWJvYXJkLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5Q2FudmFzVmlkZW8gfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktY2FudmFzLXZpZGVvLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5Q2FzY2FkZXIgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktY2FzY2FkZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlDaXJjbGUgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktY2lyY2xlLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5Q291bnREb3duIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWNvdW50LWRvd24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlDcm9wSW1hZ2UgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktY3JvcC1pbWFnZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eURpdmlkZXIgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktZGl2aWRlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUVtcHR5IH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWVtcHR5LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5RmxvYXRpbmdCdWJibGUgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktZmxvYXRpbmctYnViYmxlLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5RmxvYXRpbmdQYW5lbCB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1mbG9hdGluZy1wYW5lbC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUljb24gfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktaWNvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUltYWdlVXBsb2FkIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWltYWdlLXVwbG9hZC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUltYWdlVmlld2VyIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWltYWdlLXZpZXdlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUluZGV4QmFyIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWluZGV4LWJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eUtleWJvYXJkIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LWtleWJvYXJkLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5TG9hZGluZyB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1sb2FkaW5nLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5TWVkaWFDYXB0dXJlIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LW1lZGlhLWNhcHR1cmUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlOYXZCYXIgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktbmF2LWJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eU5vdGljZUJhciB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1ub3RpY2UtYmFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5T3ZlcmxheSB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1vdmVybGF5LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5UGRmVmlld2VyIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LXBkZi12aWV3ZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlQZXJtaXNzaW9uUHVycG9zZSB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1wZXJtaXNzaW9uLXB1cnBvc2UuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlQcm9ncmVzcyB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1wcm9ncmVzcy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eVF1aWNrQWNjZXNzIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LXF1aWNrLWFjY2Vzcy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eVJlY29yZCB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1yZWNvcmQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlTaGFyZVNoZWV0IH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LXNoYXJlLXNoZWV0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5U3RlcCB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1zdGVwLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5U3RlcHMgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktc3RlcHMuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlTd2lwZSB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1zd2lwZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eVN3aXBlSXRlbSB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS1zd2lwZS1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5VGV4dEVsbGlwc2lzIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LXRleHQtZWxsaXBzaXMuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlUb3VyIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LXRvdXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVDdHlUdXRvcmlhbCB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzL2N0eS10dXRvcmlhbC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUN0eVZpZGVvIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMvY3R5LXZpZGVvLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQ3R5VmlydHVhbExpc3QgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cy9jdHktdmlydHVhbC1saXN0LmpzJztcbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5QWN0aW9uU2hlZXQsXG4gIGlucHV0czogWydhbmltYXRlZCcsICdiYWNrZHJvcERpc21pc3MnLCAnY2FuY2VsVGV4dCcsICdjbG9zZUljb24nLCAnY2xvc2VhYmxlJywgJ2Nzc0NsYXNzJywgJ2VudGVyQW5pbWF0aW9uJywgJ2xlYXZlQW5pbWF0aW9uJywgJ29wdGlvbnMnLCAncm9vdCcsICdzdWJ0aXRsZScsICd0aXRsZScsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktYWN0aW9uLXNoZWV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRlZCcsICdiYWNrZHJvcERpc21pc3MnLCAnY2FuY2VsVGV4dCcsICdjbG9zZUljb24nLCAnY2xvc2VhYmxlJywgJ2Nzc0NsYXNzJywgJ2VudGVyQW5pbWF0aW9uJywgJ2xlYXZlQW5pbWF0aW9uJywgJ29wdGlvbnMnLCAncm9vdCcsICdzdWJ0aXRsZScsICd0aXRsZScsICd0cmlnZ2VyJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5QWN0aW9uU2hlZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlBY3Rpb25TaGVldEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eURpc21pc3MnLCAnY3R5VGFwJywgJ2N0eURpZFByZXNlbnQnLCAnY3R5V2lsbFByZXNlbnQnLCAnY3R5V2lsbERpc21pc3MnLCAnY3R5RGlkRGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQWN0aW9uU2hlZXRUYXBFdmVudERldGFpbCBhcyBJQ3R5QWN0aW9uU2hlZXRBY3Rpb25TaGVldFRhcEV2ZW50RGV0YWlsIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5QWN0aW9uU2hlZXQgZXh0ZW5kcyBDb21wb25lbnRzLkN0eUFjdGlvblNoZWV0IHtcblxuICBjdHlEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVRhcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElDdHlBY3Rpb25TaGVldEFjdGlvblNoZWV0VGFwRXZlbnREZXRhaWw+PjtcblxuICBjdHlEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eURpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlBbGVydCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2JhY2tkcm9wRGlzbWlzcycsICdidXR0b25zJywgJ2Nsb3NlYWJsZScsICdjb250ZW50JywgJ2Nzc0NsYXNzJywgJ2VudGVyQW5pbWF0aW9uJywgJ2ltZycsICdsZWF2ZUFuaW1hdGlvbicsICdyb290JywgJ3RpdGxlJywgJ3RyaWdnZXInXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAnb25EaWREaXNtaXNzJywgJ29uV2lsbERpc21pc3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1hbGVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2J1dHRvbnMnLCAnY2xvc2VhYmxlJywgJ2NvbnRlbnQnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnaW1nJywgJ2xlYXZlQW5pbWF0aW9uJywgJ3Jvb3QnLCAndGl0bGUnLCAndHJpZ2dlciddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUFsZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5QWxlcnRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlEaXNtaXNzJywgJ2N0eVRhcCcsICdjdHlEaWRQcmVzZW50JywgJ2N0eVdpbGxQcmVzZW50JywgJ2N0eVdpbGxEaXNtaXNzJywgJ2N0eURpZERpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEFsZXJ0VGFwRXZlbnREZXRhaWwgYXMgSUN0eUFsZXJ0QWxlcnRUYXBFdmVudERldGFpbCB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eUFsZXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5DdHlBbGVydCB7XG5cbiAgY3R5RGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlUYXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQ3R5QWxlcnRBbGVydFRhcEV2ZW50RGV0YWlsPj47XG5cbiAgY3R5RGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlEaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5QW5zd2VyU2hlZXQsXG4gIGlucHV0czogWydhbnN3ZXJzJywgJ2NhdGVnb3JpZXMnLCAnZGlzcGxheVRvdGFsJywgJ2Rpc3Rpbmd1aXNoJywgJ3BsYWNlbWVudCcsICdwcm9wcycsICdyZXN1bHRzJywgJ3RvdGFsVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LWFuc3dlci1zaGVldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5zd2VycycsICdjYXRlZ29yaWVzJywgJ2Rpc3BsYXlUb3RhbCcsICdkaXN0aW5ndWlzaCcsICdwbGFjZW1lbnQnLCAncHJvcHMnLCAncmVzdWx0cycsICd0b3RhbFRleHQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlBbnN3ZXJTaGVldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eUFuc3dlclNoZWV0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5VGFwJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBBbnN3ZXJFbnRyeSBhcyBJQ3R5QW5zd2VyU2hlZXRBbnN3ZXJFbnRyeSB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eUFuc3dlclNoZWV0IGV4dGVuZHMgQ29tcG9uZW50cy5DdHlBbnN3ZXJTaGVldCB7XG5cbiAgY3R5VGFwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUFuc3dlclNoZWV0QW5zd2VyRW50cnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eUFydGljbGVDYXJkLFxuICBpbnB1dHM6IFsnbGF5b3V0JywgJ3RodW1ibmFpbHMnLCAndGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1hcnRpY2xlLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xheW91dCcsICd0aHVtYm5haWxzJywgJ3RpdGxlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5QXJ0aWNsZUNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlBcnRpY2xlQ2FyZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eUFydGljbGVDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlBcnRpY2xlQ2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5QXVkaW8sXG4gIGlucHV0czogWydhbGxvd0JhY2t3YXJkJywgJ2FsbG93Rm9yd2FyZCcsICdhdXRvcGxheScsICdjeWNsZVJhdGUnLCAnaW5pdGlhbFRpbWUnLCAncGxheUN0cmwnLCAncmF0ZScsICdyYXRlVmlzaWJsZScsICdyYXRlcycsICd0cmFmZmljTXNnJywgJ3VuQWxsb3dGb3J3YXJkTXNnJywgJ3VuQWxsb3dSYXRlTXNnJywgJ3VybCddLFxuICBtZXRob2RzOiBbJ3N3aXRjaEF1ZGlvJywgJ3BsYXknLCAncGF1c2UnLCAnc2V0UGxheVJhdGUnLCAnZ2V0QXVkaW9FbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktYXVkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93QmFja3dhcmQnLCAnYWxsb3dGb3J3YXJkJywgJ2F1dG9wbGF5JywgJ2N5Y2xlUmF0ZScsICdpbml0aWFsVGltZScsICdwbGF5Q3RybCcsICdyYXRlJywgJ3JhdGVWaXNpYmxlJywgJ3JhdGVzJywgJ3RyYWZmaWNNc2cnLCAndW5BbGxvd0ZvcndhcmRNc2cnLCAndW5BbGxvd1JhdGVNc2cnLCAndXJsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5QXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlBdWRpb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eUVuZCcsICdjdHlUaW1ldXBkYXRlJywgJ2N0eVByb2dyZXNzJywgJ2N0eUNhbnBsYXknLCAnY3R5UGxheScsICdjdHlQYXVzZScsICdjdHlFcnJvciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlBdWRpbyBleHRlbmRzIENvbXBvbmVudHMuQ3R5QXVkaW8ge1xuXG4gIGN0eUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlUaW1ldXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVByb2dyZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TnVtYmVyPj47XG5cbiAgY3R5Q2FucGxheTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlQbGF5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVBhdXNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eUVycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5QmFubmVyLFxuICBpbnB1dHM6IFsnYXV0b3BsYXknLCAnYmFubmVycycsICdkdXJhdGlvbicsICdpbmRpY2F0b3InLCAnaW5pdGlhbEluZGV4JywgJ2xvb3AnLCAncHJvcHMnLCAndG91Y2hhYmxlJywgJ3ZlcnRpY2FsJ10sXG4gIG1ldGhvZHM6IFsnc3dpcGVOZXh0JywgJ3N3aXBlUHJldicsICdzd2lwZVRvJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktYmFubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheScsICdiYW5uZXJzJywgJ2R1cmF0aW9uJywgJ2luZGljYXRvcicsICdpbml0aWFsSW5kZXgnLCAnbG9vcCcsICdwcm9wcycsICd0b3VjaGFibGUnLCAndmVydGljYWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlCYW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlCYW5uZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlTd2lwZUNoYW5nZScsICdjdHlTd2lwZVRhcCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLkN0eUJhbm5lciB7XG5cbiAgY3R5U3dpcGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxuICBjdHlTd2lwZVRhcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5Q2FtZXJhUGhvdG8sXG4gIGlucHV0czogWydhbmltYXRlZCcsICdiYWNrZHJvcERpc21pc3MnLCAnY2FuY2VsVGV4dCcsICdjbGlwQ2FuY2VsVGV4dCcsICdjbGlwQ2NvbmZpcm1UZXh0JywgJ2NsaXBJbWFnZUJnJywgJ2NsaXBJbWFnZVF1YWxpdHknLCAnY2xpcEltYWdlU3VmZml4JywgJ2NsaXBJbWFnZVdpZHRoJywgJ2NsaXBNYXhTY2FsZScsICdjbGlwTWluU2NhbGUnLCAnY2xpcFB0JywgJ2Nsb3NlSWNvbicsICdjbG9zZWFibGUnLCAnY291bnQnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnZmlsZScsICdsZWF2ZUFuaW1hdGlvbicsICdvcHRpb25zJywgJ292ZXJsYXknLCAncGVybWlzc2lvblB1cnBvc2UnLCAncGhvdG9PcHRpb24nLCAncm9vdCcsICd0aXRsZScsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktY2FtZXJhLXBob3RvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRlZCcsICdiYWNrZHJvcERpc21pc3MnLCAnY2FuY2VsVGV4dCcsICdjbGlwQ2FuY2VsVGV4dCcsICdjbGlwQ2NvbmZpcm1UZXh0JywgJ2NsaXBJbWFnZUJnJywgJ2NsaXBJbWFnZVF1YWxpdHknLCAnY2xpcEltYWdlU3VmZml4JywgJ2NsaXBJbWFnZVdpZHRoJywgJ2NsaXBNYXhTY2FsZScsICdjbGlwTWluU2NhbGUnLCAnY2xpcFB0JywgJ2Nsb3NlSWNvbicsICdjbG9zZWFibGUnLCAnY291bnQnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnZmlsZScsICdsZWF2ZUFuaW1hdGlvbicsICdvcHRpb25zJywgJ292ZXJsYXknLCAncGVybWlzc2lvblB1cnBvc2UnLCAncGhvdG9PcHRpb24nLCAncm9vdCcsICd0aXRsZScsICd0cmlnZ2VyJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5Q2FtZXJhUGhvdG8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlDYW1lcmFQaG90b0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eVRhcFN0YXJ0JywgJ2N0eVRhcCcsICdjdHlEaXNtaXNzJywgJ2N0eURpZFByZXNlbnQnLCAnY3R5V2lsbFByZXNlbnQnLCAnY3R5V2lsbERpc21pc3MnLCAnY3R5RGlkRGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VSZXN1bHQgYXMgSUN0eUNhbWVyYVBob3RvUmVzb3VyY2VSZXN1bHQgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlDYW1lcmFQaG90byBleHRlbmRzIENvbXBvbmVudHMuQ3R5Q2FtZXJhUGhvdG8ge1xuXG4gIGN0eVRhcFN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbiAgY3R5VGFwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyBpbWFnZUxpc3Q6IElDdHlDYW1lcmFQaG90b1Jlc291cmNlUmVzdWx0W10gfT4+O1xuXG4gIGN0eURpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5RGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlEaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5Q2FudmFzQm9hcmQsXG4gIGlucHV0czogWydiZ0NvbG9yJywgJ2JnSWNvbicsICdjbGVhckljb24nLCAnY2xlYXJMYWJlbCcsICdjb25maXJtTGFiZWwnLCAnZHByJywgJ2VyYXNlckljb24nLCAnZm9vdGVyT3BuJywgJ2hlYWRlck9wbicsICdsaW5lQ2FwJywgJ2xpbmVXaWR0aHMnLCAncGVuY2lsSWNvbicsICdxdWFsaXR5JywgJ3JlZG9JY29uJywgJ3Nob3dCdXR0b25zJywgJ3N0cm9rZUNvbG9yJywgJ3N0cm9rZVdpZHRoJywgJ3N1ZmZpeCcsICd1bmRvSWNvbiddLFxuICBtZXRob2RzOiBbJ3VuZG8nLCAncmVkbycsICdjbGVhcicsICdnZXREYXRhVVJMJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktY2FudmFzLWJvYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiZ0NvbG9yJywgJ2JnSWNvbicsICdjbGVhckljb24nLCAnY2xlYXJMYWJlbCcsICdjb25maXJtTGFiZWwnLCAnZHByJywgJ2VyYXNlckljb24nLCAnZm9vdGVyT3BuJywgJ2hlYWRlck9wbicsICdsaW5lQ2FwJywgJ2xpbmVXaWR0aHMnLCAncGVuY2lsSWNvbicsICdxdWFsaXR5JywgJ3JlZG9JY29uJywgJ3Nob3dCdXR0b25zJywgJ3N0cm9rZUNvbG9yJywgJ3N0cm9rZVdpZHRoJywgJ3N1ZmZpeCcsICd1bmRvSWNvbiddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUNhbnZhc0JvYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5Q2FudmFzQm9hcmRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlDbGVhcicsICdjdHlTdGFydCcsICdjdHlNb3ZlJywgJ2N0eUVuZCcsICdjdHlDb25maXJtJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eUNhbnZhc0JvYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlDYW52YXNCb2FyZCB7XG5cbiAgY3R5Q2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5U3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxUb3VjaEV2ZW50IHwgTW91c2VFdmVudD4+O1xuXG4gIGN0eU1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxUb3VjaEV2ZW50IHwgTW91c2VFdmVudD4+O1xuXG4gIGN0eUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PFRvdWNoRXZlbnQgfCBNb3VzZUV2ZW50Pj47XG5cbiAgY3R5Q29uZmlybTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5Q2FudmFzVmlkZW8sXG4gIGlucHV0czogWydhdXRvcGxheScsICdhdmF0YXJCdXR0b24nLCAnbmV4dCcsICdwcmVsb2FkJywgJ3Byb3BzJywgJ3NsaWNlJywgJ3ZpZGVvcyddLFxuICBtZXRob2RzOiBbJ3NsaWRlVG9QcmV2JywgJ3NsaWRlVG9OZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktY2FudmFzLXZpZGVvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdmF0YXJCdXR0b24nLCAnbmV4dCcsICdwcmVsb2FkJywgJ3Byb3BzJywgJ3NsaWNlJywgJ3ZpZGVvcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUNhbnZhc1ZpZGVvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5Q2FudmFzVmlkZW9FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlTbGlkZUNoYW5nZScsICdjdHlTbGlkZVByZXYnLCAnY3R5U2xpZGVOZXh0JywgJ2N0eUxvbmdQcmVzcycsICdjdHlWaWRlb1VwZGF0ZScsICdjdHlWaWRlb0VuZCcsICdjdHlUYXBOYW1lJywgJ2N0eVRhcEF2YXRhcicsICdjdHlUYXBMaWtlJywgJ2N0eVRhcENvbGxlY3QnLCAnY3R5VGFwU2hhcmUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFZpZGVvQ3VzdG9tRXZlbnREZXRhaWwgYXMgSUN0eUNhbnZhc1ZpZGVvVmlkZW9DdXN0b21FdmVudERldGFpbCB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgVmlkZW9Db21tb25DdXN0b21FdmVudERldGFpbCBhcyBJQ3R5Q2FudmFzVmlkZW9WaWRlb0NvbW1vbkN1c3RvbUV2ZW50RGV0YWlsIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBWaWRlb1N0YXRlRGV0YWlsIGFzIElDdHlDYW52YXNWaWRlb1ZpZGVvU3RhdGVEZXRhaWwgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlDYW52YXNWaWRlbyBleHRlbmRzIENvbXBvbmVudHMuQ3R5Q2FudmFzVmlkZW8ge1xuXG4gIGN0eVNsaWRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUNhbnZhc1ZpZGVvVmlkZW9DdXN0b21FdmVudERldGFpbD4+O1xuXG4gIGN0eVNsaWRlUHJldjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlTbGlkZU5leHQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5TG9uZ1ByZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUNhbnZhc1ZpZGVvVmlkZW9Db21tb25DdXN0b21FdmVudERldGFpbD4+O1xuXG4gIGN0eVZpZGVvVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUNhbnZhc1ZpZGVvVmlkZW9TdGF0ZURldGFpbD4+O1xuXG4gIGN0eVZpZGVvRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVRhcE5hbWU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQ3R5Q2FudmFzVmlkZW9WaWRlb0NvbW1vbkN1c3RvbUV2ZW50RGV0YWlsPj47XG5cbiAgY3R5VGFwQXZhdGFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUNhbnZhc1ZpZGVvVmlkZW9Db21tb25DdXN0b21FdmVudERldGFpbD4+O1xuXG4gIGN0eVRhcExpa2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQ3R5Q2FudmFzVmlkZW9WaWRlb0NvbW1vbkN1c3RvbUV2ZW50RGV0YWlsPj47XG5cbiAgY3R5VGFwQ29sbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElDdHlDYW52YXNWaWRlb1ZpZGVvQ29tbW9uQ3VzdG9tRXZlbnREZXRhaWw+PjtcblxuICBjdHlUYXBTaGFyZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElDdHlDYW52YXNWaWRlb1ZpZGVvQ29tbW9uQ3VzdG9tRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eUNhc2NhZGVyLFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2NhbmNlbFRleHQnLCAnY2FzY2FkZScsICdjaGlsZHJlbktleScsICdjb2x1bW5zJywgJ2NvbHVtbnNDb3VudCcsICdjb25maXJtVGV4dCcsICdjc3NDbGFzcycsICdkZWZhdWx0VmFsdWVzJywgJ2VudGVyQW5pbWF0aW9uJywgJ2xlYXZlQW5pbWF0aW9uJywgJ29wdGlvbkNvdW50JywgJ29wdGlvbkhlaWdodCcsICdyb290JywgJ3RleHRLZXknLCAndGl0bGUnLCAndHJpZ2dlcicsICd0eXBlJywgJ3ZhbHVlS2V5J10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktY2FzY2FkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2JhY2tkcm9wRGlzbWlzcycsICdjYW5jZWxUZXh0JywgJ2Nhc2NhZGUnLCAnY2hpbGRyZW5LZXknLCAnY29sdW1ucycsICdjb2x1bW5zQ291bnQnLCAnY29uZmlybVRleHQnLCAnY3NzQ2xhc3MnLCAnZGVmYXVsdFZhbHVlcycsICdlbnRlckFuaW1hdGlvbicsICdsZWF2ZUFuaW1hdGlvbicsICdvcHRpb25Db3VudCcsICdvcHRpb25IZWlnaHQnLCAncm9vdCcsICd0ZXh0S2V5JywgJ3RpdGxlJywgJ3RyaWdnZXInLCAndHlwZScsICd2YWx1ZUtleSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUNhc2NhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5Q2FzY2FkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlEaXNtaXNzJywgJ2N0eUNoYW5nZScsICdjdHlDb21maXJtJywgJ2N0eURpZFByZXNlbnQnLCAnY3R5V2lsbFByZXNlbnQnLCAnY3R5V2lsbERpc21pc3MnLCAnY3R5RGlkRGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ2FzY2FkZXJPcHRpb24gYXMgSUN0eUNhc2NhZGVyQ2FzY2FkZXJPcHRpb24gfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlDYXNjYWRlciBleHRlbmRzIENvbXBvbmVudHMuQ3R5Q2FzY2FkZXIge1xuXG4gIGN0eURpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8KHN0cmluZyB8IG51bWJlcilbXT4+O1xuXG4gIGN0eUNvbWZpcm06IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlczogKHN0cmluZyB8IG51bWJlcilbXTsgaW5kZXhlczogbnVtYmVyW107IG9wdGlvbnM6IElDdHlDYXNjYWRlckNhc2NhZGVyT3B0aW9uW107IH0+PjtcblxuICBjdHlEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eURpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlDaXJjbGUsXG4gIGlucHV0czogWydjbG9ja3dpc2UnLCAnY29sb3InLCAncmFkJywgJ3JhdGUnLCAndGV4dCcsICd3aWR0aCcsICd6ZXJvVHJhbnNwYXJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1jaXJjbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb2Nrd2lzZScsICdjb2xvcicsICdyYWQnLCAncmF0ZScsICd0ZXh0JywgJ3dpZHRoJywgJ3plcm9UcmFuc3BhcmVudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUNpcmNsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eUNpcmNsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eUNpcmNsZSBleHRlbmRzIENvbXBvbmVudHMuQ3R5Q2lyY2xlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlDb3VudERvd24sXG4gIGlucHV0czogWydhdXRvU3RhcnQnLCAnZGF0ZUZvcm1hdFVuaXQnLCAnZm9ybWF0JywgJ21pbGxpc2Vjb25kJywgJ3RpbWUnLCAndW5pdCddLFxuICBtZXRob2RzOiBbJ3N0YXJ0JywgJ3Jlc2V0JywgJ3BhdXNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktY291bnQtZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b1N0YXJ0JywgJ2RhdGVGb3JtYXRVbml0JywgJ2Zvcm1hdCcsICdtaWxsaXNlY29uZCcsICd0aW1lJywgJ3VuaXQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlDb3VudERvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlDb3VudERvd25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlDaGFuZ2UnLCAnY3R5RmluaXNoJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBEYXRlRm9ybWF0IGFzIElDdHlDb3VudERvd25EYXRlRm9ybWF0IH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5Q291bnREb3duIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlDb3VudERvd24ge1xuXG4gIGN0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElDdHlDb3VudERvd25EYXRlRm9ybWF0Pj47XG5cbiAgY3R5RmluaXNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5Q3JvcEltYWdlLFxuICBpbnB1dHM6IFsnY2FuY2VsVGV4dCcsICdjb25maXJtVGV4dCcsICdpbWFnZUJhY2tncm91bmQnLCAnaW1hZ2VXaWR0aCcsICdtYXhTY2FsZScsICdtaW5TY2FsZScsICdxdWFsaXR5JywgJ3N1ZmZpeCcsICd1cmwnXSxcbiAgbWV0aG9kczogWydnZXRDYW52YXNJbWcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1jcm9wLWltYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYW5jZWxUZXh0JywgJ2NvbmZpcm1UZXh0JywgJ2ltYWdlQmFja2dyb3VuZCcsICdpbWFnZVdpZHRoJywgJ21heFNjYWxlJywgJ21pblNjYWxlJywgJ3F1YWxpdHknLCAnc3VmZml4JywgJ3VybCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUNyb3BJbWFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eUNyb3BJbWFnZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eUNhbmNlbCcsICdjdHlDb25maXJtJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVJlc3VsdCBhcyBJQ3R5Q3JvcEltYWdlUmVzb3VyY2VSZXN1bHQgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlDcm9wSW1hZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkN0eUNyb3BJbWFnZSB7XG5cbiAgY3R5Q2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eUNvbmZpcm06IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQ3R5Q3JvcEltYWdlUmVzb3VyY2VSZXN1bHQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eURpdmlkZXIsXG4gIGlucHV0czogWydwbGFjZW1lbnQnLCAndmVydGljYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwbGFjZW1lbnQnLCAndmVydGljYWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5RGl2aWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eURpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLkN0eURpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eUVtcHR5LFxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaW1hZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1lbXB0eScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaW1hZ2UnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlFbXB0eSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eUVtcHR5RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5RW1wdHkgZXh0ZW5kcyBDb21wb25lbnRzLkN0eUVtcHR5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlGbG9hdGluZ0J1YmJsZSxcbiAgaW5wdXRzOiBbJ2F4aXMnLCAnZ2FwJywgJ2ljb24nLCAnbWFnbmV0aWMnLCAnb2Zmc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktZmxvYXRpbmctYnViYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydheGlzJywgJ2dhcCcsICdpY29uJywgJ21hZ25ldGljJywgJ29mZnNldCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUZsb2F0aW5nQnViYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5RmxvYXRpbmdCdWJibGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlNb3ZlU3RhcnQnLCAnY3R5TW92ZScsICdjdHlNb3ZlRW5kJywgJ2N0eUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBGbG9hdGluZ0J1YmJsZU9mZnNldCBhcyBJQ3R5RmxvYXRpbmdCdWJibGVGbG9hdGluZ0J1YmJsZU9mZnNldCB9IGZyb20gJ2N0eS1tdWktY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eUZsb2F0aW5nQnViYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlGbG9hdGluZ0J1YmJsZSB7XG5cbiAgY3R5TW92ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUZsb2F0aW5nQnViYmxlRmxvYXRpbmdCdWJibGVPZmZzZXQ+PjtcblxuICBjdHlNb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUZsb2F0aW5nQnViYmxlRmxvYXRpbmdCdWJibGVPZmZzZXQ+PjtcblxuICBjdHlNb3ZlRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUZsb2F0aW5nQnViYmxlRmxvYXRpbmdCdWJibGVPZmZzZXQ+PjtcblxuICBjdHlDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElDdHlGbG9hdGluZ0J1YmJsZUZsb2F0aW5nQnViYmxlT2Zmc2V0Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlGbG9hdGluZ1BhbmVsLFxuICBpbnB1dHM6IFsnYW5jaG9ycycsICdjb250ZW50RHJhZ2dhYmxlJywgJ2RhbXAnLCAnZW5kQW5jaG9yJywgJ2ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1mbG9hdGluZy1wYW5lbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5jaG9ycycsICdjb250ZW50RHJhZ2dhYmxlJywgJ2RhbXAnLCAnZW5kQW5jaG9yJywgJ2ljb24nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlGbG9hdGluZ1BhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5RmxvYXRpbmdQYW5lbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eUhlaWdodENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlGbG9hdGluZ1BhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlGbG9hdGluZ1BhbmVsIHtcblxuICBjdHlIZWlnaHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eUljb24sXG4gIGlucHV0czogWydjb2xvcicsICdmbGlwUnRsJywgJ2xhenknLCAnbmFtZScsICdzYW5pdGl6ZScsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnZmxpcFJ0bCcsICdsYXp5JywgJ25hbWUnLCAnc2FuaXRpemUnLCAnc2l6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlJY29uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5SWNvbiBleHRlbmRzIENvbXBvbmVudHMuQ3R5SWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5SW1hZ2VVcGxvYWQsXG4gIGlucHV0czogWydhZGRJY29uJywgJ2FkZEltYWdlJywgJ2NhbWVyYVBob3RvT3B0aW9ucycsICdjb3VudCcsICdkZWxldGVhYmxlJywgJ2ltYWdlVmlld2VyJywgJ2ltYWdlVmlld2VyT3B0aW9ucycsICdpbWFnZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1pbWFnZS11cGxvYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FkZEljb24nLCAnYWRkSW1hZ2UnLCAnY2FtZXJhUGhvdG9PcHRpb25zJywgJ2NvdW50JywgJ2RlbGV0ZWFibGUnLCAnaW1hZ2VWaWV3ZXInLCAnaW1hZ2VWaWV3ZXJPcHRpb25zJywgJ2ltYWdlcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUltYWdlVXBsb2FkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5SW1hZ2VVcGxvYWRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlJbWFnZVBpY2tlcicsICdjdHlBZGRJbWFnZVRhcCcsICdjdHlJbWFnZVRhcCcsICdjdHlEZWxldGVJbWFnZScsICdjdEltYWdlVmlld2VyRGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgSW1hZ2VPcHRpb24gYXMgSUN0eUltYWdlVXBsb2FkSW1hZ2VPcHRpb24gfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlJbWFnZVVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuQ3R5SW1hZ2VVcGxvYWQge1xuXG4gIGN0eUltYWdlUGlja2VyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eUltYWdlVXBsb2FkSW1hZ2VPcHRpb25bXT4+O1xuXG4gIGN0eUFkZEltYWdlVGFwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eUltYWdlVGFwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbiAgY3R5RGVsZXRlSW1hZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQ3R5SW1hZ2VVcGxvYWRJbWFnZU9wdGlvbltdPj47XG5cbiAgY3RJbWFnZVZpZXdlckRpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlJbWFnZVZpZXdlcixcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2F0dHJzJywgJ2JhY2tkcm9wRGlzbWlzcycsICdjbG9zZWFibGUnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnaW1hZ2VzJywgJ2luaXRpYWxTbGlkZScsICdsZWF2ZUFuaW1hdGlvbicsICdsb29wJywgJ3BhZ2VyJywgJ3Jvb3QnLCAnc3BlZWQnLCAndHJpZ2dlcicsICd6b29tJ10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJywgJ3NsaWRlVG8nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1pbWFnZS12aWV3ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2F0dHJzJywgJ2JhY2tkcm9wRGlzbWlzcycsICdjbG9zZWFibGUnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnaW1hZ2VzJywgJ2luaXRpYWxTbGlkZScsICdsZWF2ZUFuaW1hdGlvbicsICdsb29wJywgJ3BhZ2VyJywgJ3Jvb3QnLCAnc3BlZWQnLCAndHJpZ2dlcicsICd6b29tJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5SW1hZ2VWaWV3ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlJbWFnZVZpZXdlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eURpc21pc3MnLCAnY3R5U2xpZGVDaGFuZ2UnLCAnY3R5RGlkUHJlc2VudCcsICdjdHlXaWxsUHJlc2VudCcsICdjdHlXaWxsRGlzbWlzcycsICdjdHlEaWREaXNtaXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eUltYWdlVmlld2VyIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlJbWFnZVZpZXdlciB7XG5cbiAgY3R5RGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlTbGlkZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuXG4gIGN0eURpZFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5V2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5V2lsbERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5RGlkRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eUluZGV4QmFyLFxuICBpbnB1dHM6IFsnYWxwaGFiZXQnLCAnYWxwaGFiZXRzJywgJ2R1cmF0aW9uJywgJ2luZGV4TGlzdCcsICdvZmZzZXREaWZmJywgJ3N0aWNreScsICdzdGlja3lUb3AnLCAnc3VtJ10sXG4gIG1ldGhvZHM6IFsnc2Nyb2xsVG9JbmRleCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LWluZGV4LWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxwaGFiZXQnLCAnYWxwaGFiZXRzJywgJ2R1cmF0aW9uJywgJ2luZGV4TGlzdCcsICdvZmZzZXREaWZmJywgJ3N0aWNreScsICdzdGlja3lUb3AnLCAnc3VtJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5SW5kZXhCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlJbmRleEJhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eVNjcm9sbFRvUG9pbnQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5SW5kZXhCYXIgZXh0ZW5kcyBDb21wb25lbnRzLkN0eUluZGV4QmFyIHtcblxuICBjdHlTY3JvbGxUb1BvaW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlLZXlib2FyZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1rZXlib2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUtleWJvYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5S2V5Ym9hcmRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlLZXlib2FyZCBleHRlbmRzIENvbXBvbmVudHMuQ3R5S2V5Ym9hcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eUxvYWRpbmcsXG4gIGlucHV0czogWydhbmltYXRlZCcsICdiYWNrZHJvcERpc21pc3MnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnaW1nJywgJ2xlYXZlQW5pbWF0aW9uJywgJ3Jvb3QnLCAnc3Bpbm5lcicsICd0cmlnZ2VyJywgJ3ZlcnRpY2FsJ10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktbG9hZGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2Nzc0NsYXNzJywgJ2VudGVyQW5pbWF0aW9uJywgJ2ltZycsICdsZWF2ZUFuaW1hdGlvbicsICdyb290JywgJ3NwaW5uZXInLCAndHJpZ2dlcicsICd2ZXJ0aWNhbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eUxvYWRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlMb2FkaW5nRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5RGlzbWlzcycsICdjdHlEaWRQcmVzZW50JywgJ2N0eVdpbGxQcmVzZW50JywgJ2N0eVdpbGxEaXNtaXNzJywgJ2N0eURpZERpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5TG9hZGluZyBleHRlbmRzIENvbXBvbmVudHMuQ3R5TG9hZGluZyB7XG5cbiAgY3R5RGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eURpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlNZWRpYUNhcHR1cmUsXG4gIGlucHV0czogWydhdXRvcGxheScsICdjYXB0dXJlVGltZScsICdjbG9zZUljb24nLCAnY29uZmlybVRleHQnLCAnY29udHJvbHMnLCAnbG9vcCcsICdvcHRpb25zJywgJ3Bvc3RlcicsICdyZXZvY2F0aW9uSWNvbicsICd0aW1lTGltaXQnXSxcbiAgbWV0aG9kczogWydzdGFydFZpZGVvQ2FwdHVyZScsICdzdG9wVmlkZW9DYXB0dXJlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktbWVkaWEtY2FwdHVyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b3BsYXknLCAnY2FwdHVyZVRpbWUnLCAnY2xvc2VJY29uJywgJ2NvbmZpcm1UZXh0JywgJ2NvbnRyb2xzJywgJ2xvb3AnLCAnb3B0aW9ucycsICdwb3N0ZXInLCAncmV2b2NhdGlvbkljb24nLCAndGltZUxpbWl0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5TWVkaWFDYXB0dXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5TWVkaWFDYXB0dXJlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5RGlzbWlzcycsICdjdHlDb21wbGV0ZScsICdjdHlTdGFydCcsICdjdHlTdG9wJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVJlc3VsdCBhcyBJQ3R5TWVkaWFDYXB0dXJlUmVzb3VyY2VSZXN1bHQgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlNZWRpYUNhcHR1cmUgZXh0ZW5kcyBDb21wb25lbnRzLkN0eU1lZGlhQ2FwdHVyZSB7XG5cbiAgY3R5RGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElDdHlNZWRpYUNhcHR1cmVSZXNvdXJjZVJlc3VsdD4+O1xuXG4gIGN0eVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVN0b3A6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlOYXZCYXIsXG4gIGlucHV0czogWydhcnJvdycsICdlbmQnLCAnc3RhcnQnLCAndGl0bGUnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LW5hdi1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fycm93JywgJ2VuZCcsICdzdGFydCcsICd0aXRsZScsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5TmF2QmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5TmF2QmFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5RGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlOYXZCYXIgZXh0ZW5kcyBDb21wb25lbnRzLkN0eU5hdkJhciB7XG5cbiAgY3R5RGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eU5vdGljZUJhcixcbiAgaW5wdXRzOiBbJ2VuZEljb24nLCAnc2Nyb2xsYWJsZScsICdzcGVlZCcsICdzdGFydEljb24nLCAndGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LW5vdGljZS1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2VuZEljb24nLCAnc2Nyb2xsYWJsZScsICdzcGVlZCcsICdzdGFydEljb24nLCAndGV4dCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eU5vdGljZUJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eU5vdGljZUJhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eUljb25UYXAnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5Tm90aWNlQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlOb3RpY2VCYXIge1xuXG4gIGN0eUljb25UYXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eU92ZXJsYXksXG4gIGlucHV0czogWydhbmltYXRlZCcsICdiYWNrZHJvcERpc21pc3MnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnaHRtbCcsICdsZWF2ZUFuaW1hdGlvbicsICdwb3NpdGlvbicsICdyb290JywgJ3RyaWdnZXInXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAnb25EaWREaXNtaXNzJywgJ29uV2lsbERpc21pc3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1vdmVybGF5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRlZCcsICdiYWNrZHJvcERpc21pc3MnLCAnY3NzQ2xhc3MnLCAnZW50ZXJBbmltYXRpb24nLCAnaHRtbCcsICdsZWF2ZUFuaW1hdGlvbicsICdwb3NpdGlvbicsICdyb290JywgJ3RyaWdnZXInXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlPdmVybGF5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5T3ZlcmxheUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eURpc21pc3MnLCAnY3R5RGlkUHJlc2VudCcsICdjdHlXaWxsUHJlc2VudCcsICdjdHlXaWxsRGlzbWlzcycsICdjdHlEaWREaXNtaXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eU92ZXJsYXkgZXh0ZW5kcyBDb21wb25lbnRzLkN0eU92ZXJsYXkge1xuXG4gIGN0eURpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5RGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlEaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5UGRmVmlld2VyLFxuICBpbnB1dHM6IFsndXJsJywgJ3ZpZXdlclVybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LXBkZi12aWV3ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3VybCcsICd2aWV3ZXJVcmwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlQZGZWaWV3ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlQZGZWaWV3ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlJbml0JywgJ2N0eUVuZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlQZGZWaWV3ZXIgZXh0ZW5kcyBDb21wb25lbnRzLkN0eVBkZlZpZXdlciB7XG5cbiAgY3R5SW5pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNZXNzYWdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eVBlcm1pc3Npb25QdXJwb3NlLFxuICBpbnB1dHM6IFsnYmFja2Ryb3BEaXNtaXNzJywgJ2Rlc2NyaXB0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktcGVybWlzc2lvbi1wdXJwb3NlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZHJvcERpc21pc3MnLCAnZGVzY3JpcHRpb24nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlQZXJtaXNzaW9uUHVycG9zZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eVBlcm1pc3Npb25QdXJwb3NlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5RGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlQZXJtaXNzaW9uUHVycG9zZSBleHRlbmRzIENvbXBvbmVudHMuQ3R5UGVybWlzc2lvblB1cnBvc2Uge1xuXG4gIGN0eURpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlQcm9ncmVzcyxcbiAgaW5wdXRzOiBbJ3BlcmNlbnRhZ2UnLCAncGl2b3QnLCAncGl2b3RUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktcHJvZ3Jlc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BlcmNlbnRhZ2UnLCAncGl2b3QnLCAncGl2b3RUZXh0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5UHJvZ3Jlc3Mge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlQcm9ncmVzc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eVByb2dyZXNzIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlQcm9ncmVzcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5UXVpY2tBY2Nlc3MsXG4gIGlucHV0czogWydjb2wnLCAnb3B0aW9ucycsICdwYXBlcicsICdwcm9wcycsICdxdWlja1RocmVzaG9sZCcsICdyb3cnLCAnc2xpZGVUaHJlc2hvbGQnLCAndHJhbnNpdGlvbiddLFxuICBtZXRob2RzOiBbJ2dldEN1cnJlbnRQYWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktcXVpY2stYWNjZXNzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2wnLCAnb3B0aW9ucycsICdwYXBlcicsICdwcm9wcycsICdxdWlja1RocmVzaG9sZCcsICdyb3cnLCAnc2xpZGVUaHJlc2hvbGQnLCAndHJhbnNpdGlvbiddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eVF1aWNrQWNjZXNzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5UXVpY2tBY2Nlc3NFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlUYXAnLCAnY3R5U2xpZGUnLCAnY3R5U2xpZGVFbmQnLCAnY3R5SW5pdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlRdWlja0FjY2VzcyBleHRlbmRzIENvbXBvbmVudHMuQ3R5UXVpY2tBY2Nlc3Mge1xuXG4gIGN0eVRhcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG9iamVjdD4+O1xuXG4gIGN0eVNsaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVNsaWRlRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbiAgY3R5SW5pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5UmVjb3JkLFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2NpcmNsZUNvbG9yJywgJ2NpcmNsZVdpZHRoJywgJ2Nsb3NlYWJsZScsICdjc3NDbGFzcycsICdlbnRlckFuaW1hdGlvbicsICdsZWF2ZUFuaW1hdGlvbicsICdtYXhTZWNvbmRzJywgJ21pblNlY29uZHMnLCAncm9vdCcsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJywgJ3Jlc2V0UmVjb3JkU3RhdGUnLCAnc3RhcnRSZWNvcmQnLCAnc3RvcFJlY29yZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LXJlY29yZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2NpcmNsZUNvbG9yJywgJ2NpcmNsZVdpZHRoJywgJ2Nsb3NlYWJsZScsICdjc3NDbGFzcycsICdlbnRlckFuaW1hdGlvbicsICdsZWF2ZUFuaW1hdGlvbicsICdtYXhTZWNvbmRzJywgJ21pblNlY29uZHMnLCAncm9vdCcsICd0cmlnZ2VyJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5UmVjb3JkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5UmVjb3JkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5UmVjb3JkU3RhcnQnLCAnY3R5UmVjb3JkaW5nJywgJ2N0eVJlY29yZEVuZCcsICdjdHlSZWNvcmRDb21wbGV0ZScsICdjdHlEaXNtaXNzJywgJ2N0eURpZFByZXNlbnQnLCAnY3R5V2lsbFByZXNlbnQnLCAnY3R5V2lsbERpc21pc3MnLCAnY3R5RGlkRGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlSZWNvcmQgZXh0ZW5kcyBDb21wb25lbnRzLkN0eVJlY29yZCB7XG5cbiAgY3R5UmVjb3JkU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5UmVjb3JkaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVJlY29yZEVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG9iamVjdD4+O1xuXG4gIGN0eVJlY29yZENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8b2JqZWN0Pj47XG5cbiAgY3R5RGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eURpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlTaGFyZVNoZWV0LFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2NhbmNlbFRleHQnLCAnY3NzQ2xhc3MnLCAnZGVzY3JpcHRpb24nLCAnZW50ZXJBbmltYXRpb24nLCAnZ3VpZGUnLCAnZ3VpZGVJbWcnLCAnaGlkZGVuU2hlZXQnLCAnbGVhdmVBbmltYXRpb24nLCAnbGVnYWN5Q29weScsICdvcHRpb25zJywgJ3Blcm1pc3Npb25EZXNjcmlwdGlvbicsICdwZXJtaXNzaW9uUHVycG9zZScsICdyb290JywgJ3NoYXJlT3B0aW9uJywgJ3RpdGxlJywgJ3RyaWdnZXInXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAnb25EaWREaXNtaXNzJywgJ29uV2lsbERpc21pc3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1zaGFyZS1zaGVldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2NhbmNlbFRleHQnLCAnY3NzQ2xhc3MnLCAnZGVzY3JpcHRpb24nLCAnZW50ZXJBbmltYXRpb24nLCAnZ3VpZGUnLCAnZ3VpZGVJbWcnLCAnaGlkZGVuU2hlZXQnLCAnbGVhdmVBbmltYXRpb24nLCAnbGVnYWN5Q29weScsICdvcHRpb25zJywgJ3Blcm1pc3Npb25EZXNjcmlwdGlvbicsICdwZXJtaXNzaW9uUHVycG9zZScsICdyb290JywgJ3NoYXJlT3B0aW9uJywgJ3RpdGxlJywgJ3RyaWdnZXInXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlTaGFyZVNoZWV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5U2hhcmVTaGVldEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eURpc21pc3MnLCAnY3R5VGFwJywgJ2N0eVNoYXJlU3VjY2VzcycsICdjdHlTaGFyZUZhaWwnLCAnY3R5R3VpZGUnLCAnY3R5RGlkUHJlc2VudCcsICdjdHlXaWxsUHJlc2VudCcsICdjdHlXaWxsRGlzbWlzcycsICdjdHlEaWREaXNtaXNzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaGFyZVNoZWV0RXZlbnREZXRhaWwgYXMgSUN0eVNoYXJlU2hlZXRTaGFyZVNoZWV0RXZlbnREZXRhaWwgfSBmcm9tICdjdHktbXVpLWNvcmUvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFNoYXJlU2hlZXRGYWlsRXZlbnREZXRhaWwgYXMgSUN0eVNoYXJlU2hlZXRTaGFyZVNoZWV0RmFpbEV2ZW50RGV0YWlsIH0gZnJvbSAnY3R5LW11aS1jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5U2hhcmVTaGVldCBleHRlbmRzIENvbXBvbmVudHMuQ3R5U2hhcmVTaGVldCB7XG5cbiAgY3R5RGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlUYXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQ3R5U2hhcmVTaGVldFNoYXJlU2hlZXRFdmVudERldGFpbD4+O1xuXG4gIGN0eVNoYXJlU3VjY2VzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElDdHlTaGFyZVNoZWV0U2hhcmVTaGVldEV2ZW50RGV0YWlsPj47XG5cbiAgY3R5U2hhcmVGYWlsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUN0eVNoYXJlU2hlZXRTaGFyZVNoZWV0RmFpbEV2ZW50RGV0YWlsPj47XG5cbiAgY3R5R3VpZGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5RGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlXaWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlEaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5U3RlcFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS1zdGVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3R5U3RlcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eVN0ZXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlTdGVwIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlTdGVwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlTdGVwcyxcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhY3RpdmVJY29uJywgJ2RpcmVjdGlvbicsICdmaW5pc2hJY29uJywgJ2luYWN0aXZlSWNvbiddLFxuICBtZXRob2RzOiBbJ29uQ2xpY2tTdGVwJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktc3RlcHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhY3RpdmVJY29uJywgJ2RpcmVjdGlvbicsICdmaW5pc2hJY29uJywgJ2luYWN0aXZlSWNvbiddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eVN0ZXBzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5U3RlcHNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlTdGVwVGFwJywgJ2N0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlTdGVwcyBleHRlbmRzIENvbXBvbmVudHMuQ3R5U3RlcHMge1xuXG4gIGN0eVN0ZXBUYXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxuICBjdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN0eVN3aXBlLFxuICBpbnB1dHM6IFsnYXV0b3BsYXknLCAnZHVyYXRpb24nLCAnaW5kaWNhdG9yJywgJ2luaXRpYWxTd2lwZScsICdsb29wJywgJ3RvdWNoYWJsZScsICd2ZXJ0aWNhbCddLFxuICBtZXRob2RzOiBbJ3ByZXYnLCAnbmV4dCcsICdzd2lwZVRvJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktc3dpcGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5JywgJ2R1cmF0aW9uJywgJ2luZGljYXRvcicsICdpbml0aWFsU3dpcGUnLCAnbG9vcCcsICd0b3VjaGFibGUnLCAndmVydGljYWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlTd2lwZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eVN3aXBlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5Q2hhbmdlJywgJ2N0eURyYWdTdGFydCcsICdjdHlEcmFnRW5kJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eVN3aXBlIGV4dGVuZHMgQ29tcG9uZW50cy5DdHlTd2lwZSB7XG5cbiAgY3R5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbiAgY3R5RHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbiAgY3R5RHJhZ0VuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5U3dpcGVJdGVtLFxuICBtZXRob2RzOiBbJ3NldE9mZnNldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LXN3aXBlLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlTd2lwZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxDdHlTd2lwZUl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlTd2lwZUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkN0eVN3aXBlSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5VGV4dEVsbGlwc2lzLFxuICBpbnB1dHM6IFsnY29sbGFwc2VUZXh0JywgJ2NvbnRlbnQnLCAnZG90cycsICdleHBhbmRUZXh0JywgJ3Bvc2l0aW9uJywgJ3Jvd3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS10ZXh0LWVsbGlwc2lzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZVRleHQnLCAnY29udGVudCcsICdkb3RzJywgJ2V4cGFuZFRleHQnLCAncG9zaXRpb24nLCAncm93cyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eVRleHRFbGxpcHNpcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eVRleHRFbGxpcHNpc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eUV4cGFuZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlUZXh0RWxsaXBzaXMgZXh0ZW5kcyBDb21wb25lbnRzLkN0eVRleHRFbGxpcHNpcyB7XG5cbiAgY3R5RXhwYW5kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQ3R5VG91cixcbiAgaW5wdXRzOiBbJ2Fycm93JywgJ2JhY2tkcm9wRGlzbWlzcycsICdjbG9zZWFibGUnLCAnY29tcGxldGVUZXh0JywgJ2Nzc0NsYXNzJywgJ2luaXRpYWxJbmRleCcsICduZXh0VGV4dCcsICdwbGFjZW1lbnQnLCAncG9wb3ZlckF0dHJzJywgJ3ByZXZUZXh0JywgJ3Nob3dQcmV2JywgJ3N0ZXBzJ10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ3ByZXZTdGVwJywgJ25leHRTdGVwJywgJ2NvbXBsZXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktdG91cicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJyb3cnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2Nsb3NlYWJsZScsICdjb21wbGV0ZVRleHQnLCAnY3NzQ2xhc3MnLCAnaW5pdGlhbEluZGV4JywgJ25leHRUZXh0JywgJ3BsYWNlbWVudCcsICdwb3BvdmVyQXR0cnMnLCAncHJldlRleHQnLCAnc2hvd1ByZXYnLCAnc3RlcHMnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlUb3VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5VG91ckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0eUNoYW5nZScsICdjdHlEaXNtaXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eVRvdXIgZXh0ZW5kcyBDb21wb25lbnRzLkN0eVRvdXIge1xuXG4gIGN0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuXG4gIGN0eURpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlUdXRvcmlhbCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2F1dG9wbGF5JywgJ2JhY2tkcm9wRGlzbWlzcycsICdiYW5uZXJzJywgJ2Nsb3NlYWJsZScsICdjc3NDbGFzcycsICdkdXJhdGlvbicsICdlbnRlckFuaW1hdGlvbicsICdpbmRpY2F0b3InLCAnaW5pdGlhbEluZGV4JywgJ2xlYXZlQW5pbWF0aW9uJywgJ2xvb3AnLCAncHJvcHMnLCAncm9vdCcsICd0b3VjaGFibGUnLCAndHJpZ2dlcicsICd2ZXJ0aWNhbCddLFxuICBtZXRob2RzOiBbJ3ByZXNlbnQnLCAnZGlzbWlzcycsICdvbkRpZERpc21pc3MnLCAnb25XaWxsRGlzbWlzcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3R5LXR1dG9yaWFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRlZCcsICdhdXRvcGxheScsICdiYWNrZHJvcERpc21pc3MnLCAnYmFubmVycycsICdjbG9zZWFibGUnLCAnY3NzQ2xhc3MnLCAnZHVyYXRpb24nLCAnZW50ZXJBbmltYXRpb24nLCAnaW5kaWNhdG9yJywgJ2luaXRpYWxJbmRleCcsICdsZWF2ZUFuaW1hdGlvbicsICdsb29wJywgJ3Byb3BzJywgJ3Jvb3QnLCAndG91Y2hhYmxlJywgJ3RyaWdnZXInLCAndmVydGljYWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlUdXRvcmlhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eVR1dG9yaWFsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5RGlzbWlzcycsICdjdHlTbGlkZUNoYW5nZScsICdjdHlTbGlkZVRhcCcsICdjdHlEaWRQcmVzZW50JywgJ2N0eVdpbGxQcmVzZW50JywgJ2N0eVdpbGxEaXNtaXNzJywgJ2N0eURpZERpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ3R5VHV0b3JpYWwgZXh0ZW5kcyBDb21wb25lbnRzLkN0eVR1dG9yaWFsIHtcblxuICBjdHlEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVNsaWRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbiAgY3R5U2xpZGVUYXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxuICBjdHlEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eURpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlWaWRlbyxcbiAgaW5wdXRzOiBbJ2FsbG93QmFja3dhcmQnLCAnYWxsb3dGb3J3YXJkJywgJ2F1dG9wbGF5JywgJ2NvbnRyb2xzJywgJ2RlZmF1bHRGdWxsc2NyZWVuJywgJ2RpcmVjdFJhdGUnLCAnZGlyZWN0aW9uJywgJ2Vycm9yTXNnJywgJ2V4aXRGdWxsc2NyZWVuSWNvbicsICdmb290ZXJDdHJsJywgJ2Z1bGxzY3JlZW5JY29uJywgJ2Z1bGxzY3JlZW5Pbmx5JywgJ2hlYWRlckN0cmwnLCAnaW50ZXJhY3RpdmVBY3Rpb25zJywgJ2xhbmRzY2FwZUVudGVyVGltZXInLCAnbGFuZHNjYXBlTGVhdmVUaW1lcicsICdsb2FkaW5nJywgJ2xvYWRpbmdJbWcnLCAnbWFya2VycycsICdvcmllbnRhdGlvbicsICdwbGF5ZXInLCAncG9zdGVyJywgJ3ByZWxvYWQnLCAncHJvZ3Jlc3NQb3NpdGlvbicsICdyYXRlJywgJ3JhdGVzJywgJ3N0YXJ0VGltZScsICd0aXRsZScsICd0b2dnbGVQbGF5VGltZXInLCAndHJhZmZpY0F1dG9wbGF5JywgJ3RyYWZmaWNNc2cnLCAndW5BbGxvd0ZvcndhcmRNc2cnLCAndW5BbGxvd1JhdGVNc2cnLCAndXBkYXRlTm93JywgJ3VybCddLFxuICBtZXRob2RzOiBbJ3BsYXknLCAnc2V0Q3RybFNob3cnLCAncGF1c2UnLCAnc2V0VmlkZW9DdXJyZW50VGltZScsICd0b2dnbGVWaWRlbycsICd0b2dnbGVWb2x1bWUnLCAnc2V0UGxheVJhdGUnLCAnZ2V0VmlkZW9FbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdHktdmlkZW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93QmFja3dhcmQnLCAnYWxsb3dGb3J3YXJkJywgJ2F1dG9wbGF5JywgJ2NvbnRyb2xzJywgJ2RlZmF1bHRGdWxsc2NyZWVuJywgJ2RpcmVjdFJhdGUnLCAnZGlyZWN0aW9uJywgJ2Vycm9yTXNnJywgJ2V4aXRGdWxsc2NyZWVuSWNvbicsICdmb290ZXJDdHJsJywgJ2Z1bGxzY3JlZW5JY29uJywgJ2Z1bGxzY3JlZW5Pbmx5JywgJ2hlYWRlckN0cmwnLCAnaW50ZXJhY3RpdmVBY3Rpb25zJywgJ2xhbmRzY2FwZUVudGVyVGltZXInLCAnbGFuZHNjYXBlTGVhdmVUaW1lcicsICdsb2FkaW5nJywgJ2xvYWRpbmdJbWcnLCAnbWFya2VycycsICdvcmllbnRhdGlvbicsICdwbGF5ZXInLCAncG9zdGVyJywgJ3ByZWxvYWQnLCAncHJvZ3Jlc3NQb3NpdGlvbicsICdyYXRlJywgJ3JhdGVzJywgJ3N0YXJ0VGltZScsICd0aXRsZScsICd0b2dnbGVQbGF5VGltZXInLCAndHJhZmZpY0F1dG9wbGF5JywgJ3RyYWZmaWNNc2cnLCAndW5BbGxvd0ZvcndhcmRNc2cnLCAndW5BbGxvd1JhdGVNc2cnLCAndXBkYXRlTm93JywgJ3VybCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN0eVZpZGVvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQ3R5VmlkZW9FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdHlEaXNtaXNzJywgJ2N0eVZpZGVvQ2FucGxheScsICdjdHlWaWRlb1RpbWV1cGRhdGUnLCAnY3R5VmlkZW9QbGF5aW5nJywgJ2N0eVZpZGVvUGxheScsICdjdHlWaWRlb1BhdXNlJywgJ2N0eVZpZGVvU3RhbGxlZCcsICdjdHlWaWRlb1dhaXRpbmcnLCAnY3R5VmlkZW9FbmRlZCcsICdjdHlWaWRlb0Vycm9yJywgJ2N0eVZpZGVvQ2hhbmdlVm9sdW1lJywgJ2N0eVZpZGVvUHJvZ3Jlc3MnLCAnY3R5VmlkZW9TY3JlZW5DaGFuZ2UnLCAnY3R5VmlkZW9JQUVudGVyJywgJ2N0eVZpZGVvSUFBY3Rpb24nLCAnY3R5VmlkZW9DdHJsQ2hhbmdlJywgJ2N0eVZpZGVvUmF0ZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDdHlWaWRlbyBleHRlbmRzIENvbXBvbmVudHMuQ3R5VmlkZW8ge1xuXG4gIGN0eURpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbiAgY3R5VmlkZW9DYW5wbGF5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVZpZGVvVGltZXVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuXG4gIGN0eVZpZGVvUGxheWluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlWaWRlb1BsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5VmlkZW9QYXVzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlWaWRlb1N0YWxsZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5VmlkZW9XYWl0aW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbiAgY3R5VmlkZW9FbmRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlWaWRlb0Vycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG4gIGN0eVZpZGVvQ2hhbmdlVm9sdW1lOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIGN0eVZpZGVvUHJvZ3Jlc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxuICBjdHlWaWRlb1NjcmVlbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxuICBjdHlWaWRlb0lBRW50ZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgY3R5VmlkZW9JQUFjdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxuICBjdHlWaWRlb0N0cmxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbiAgY3R5VmlkZW9SYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVDdHlWaXJ0dWFsTGlzdCxcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lckhlaWdodCcsICdkaXJlY3Rpb24nLCAnaXRlbUtleScsICdpdGVtUmVuZGVyJywgJ2l0ZW1zJywgJ3ByZWxvYWRJdGVtQ291bnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N0eS12aXJ0dWFsLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lckhlaWdodCcsICdkaXJlY3Rpb24nLCAnaXRlbUtleScsICdpdGVtUmVuZGVyJywgJ2l0ZW1zJywgJ3ByZWxvYWRJdGVtQ291bnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDdHlWaXJ0dWFsTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEN0eVZpcnR1YWxMaXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3R5U2Nyb2xsJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN0eVZpcnR1YWxMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5DdHlWaXJ0dWFsTGlzdCB7XG5cbiAgY3R5U2Nyb2xsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbiJdfQ==
|