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