ngx-color 7.3.3 → 8.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 (211) hide show
  1. package/README.md +2 -1
  2. package/alpha.component.d.ts +1 -1
  3. package/checkboard.component.d.ts +1 -1
  4. package/color-wrap.component.d.ts +1 -1
  5. package/coordinates.directive.d.ts +1 -1
  6. package/editable-input.component.d.ts +1 -1
  7. package/esm2020/alpha.component.mjs +13 -61
  8. package/esm2020/checkboard.component.mjs +9 -25
  9. package/esm2020/color-wrap.component.mjs +8 -8
  10. package/esm2020/coordinates.directive.mjs +7 -7
  11. package/esm2020/editable-input.component.mjs +11 -25
  12. package/esm2020/hue.component.mjs +13 -54
  13. package/esm2020/raised.component.mjs +10 -49
  14. package/esm2020/saturation.component.mjs +13 -57
  15. package/esm2020/shade.component.mjs +11 -51
  16. package/esm2020/swatch.component.mjs +13 -28
  17. package/fesm2015/ngx-color.mjs +92 -349
  18. package/fesm2015/ngx-color.mjs.map +1 -1
  19. package/fesm2020/ngx-color.mjs +92 -349
  20. package/fesm2020/ngx-color.mjs.map +1 -1
  21. package/hue.component.d.ts +1 -1
  22. package/{ngx-color.d.ts → index.d.ts} +0 -0
  23. package/package.json +6 -119
  24. package/raised.component.d.ts +1 -1
  25. package/saturation.component.d.ts +1 -1
  26. package/shade.component.d.ts +1 -1
  27. package/swatch.component.d.ts +1 -1
  28. package/alpha/alpha-picker.component.d.ts +0 -28
  29. package/alpha/ngx-color-alpha.d.ts +0 -5
  30. package/alpha/package.json +0 -17
  31. package/alpha/public_api.d.ts +0 -1
  32. package/block/block-swatches.component.d.ts +0 -24
  33. package/block/block.component.d.ts +0 -36
  34. package/block/ngx-color-block.d.ts +0 -5
  35. package/block/package.json +0 -16
  36. package/block/public_api.d.ts +0 -2
  37. package/chrome/chrome-fields.component.d.ts +0 -22
  38. package/chrome/chrome.component.d.ts +0 -25
  39. package/chrome/ngx-color-chrome.d.ts +0 -5
  40. package/chrome/package.json +0 -16
  41. package/chrome/public_api.d.ts +0 -2
  42. package/circle/circle-swatch.component.d.ts +0 -19
  43. package/circle/circle.component.d.ts +0 -32
  44. package/circle/ngx-color-circle.d.ts +0 -5
  45. package/circle/package.json +0 -19
  46. package/circle/public_api.d.ts +0 -2
  47. package/compact/compact-color.component.d.ts +0 -19
  48. package/compact/compact-fields.component.d.ts +0 -32
  49. package/compact/compact.component.d.ts +0 -30
  50. package/compact/ngx-color-compact.d.ts +0 -5
  51. package/compact/package.json +0 -16
  52. package/compact/public_api.d.ts +0 -3
  53. package/esm2020/alpha/alpha-picker.component.mjs +0 -116
  54. package/esm2020/alpha/ngx-color-alpha.mjs +0 -5
  55. package/esm2020/alpha/public_api.mjs +0 -2
  56. package/esm2020/block/block-swatches.component.mjs +0 -74
  57. package/esm2020/block/block.component.mjs +0 -199
  58. package/esm2020/block/ngx-color-block.mjs +0 -5
  59. package/esm2020/block/public_api.mjs +0 -3
  60. package/esm2020/chrome/chrome-fields.component.mjs +0 -356
  61. package/esm2020/chrome/chrome.component.mjs +0 -249
  62. package/esm2020/chrome/ngx-color-chrome.mjs +0 -5
  63. package/esm2020/chrome/public_api.mjs +0 -3
  64. package/esm2020/circle/circle-swatch.component.mjs +0 -85
  65. package/esm2020/circle/circle.component.mjs +0 -148
  66. package/esm2020/circle/ngx-color-circle.mjs +0 -5
  67. package/esm2020/circle/public_api.mjs +0 -3
  68. package/esm2020/compact/compact-color.component.mjs +0 -91
  69. package/esm2020/compact/compact-fields.component.mjs +0 -186
  70. package/esm2020/compact/compact.component.mjs +0 -177
  71. package/esm2020/compact/ngx-color-compact.mjs +0 -5
  72. package/esm2020/compact/public_api.mjs +0 -4
  73. package/esm2020/github/github-swatch.component.mjs +0 -67
  74. package/esm2020/github/github.component.mjs +0 -179
  75. package/esm2020/github/ngx-color-github.mjs +0 -5
  76. package/esm2020/github/public_api.mjs +0 -3
  77. package/esm2020/hue/hue-picker.component.mjs +0 -113
  78. package/esm2020/hue/ngx-color-hue.mjs +0 -5
  79. package/esm2020/hue/public_api.mjs +0 -2
  80. package/esm2020/material/material.component.mjs +0 -211
  81. package/esm2020/material/ngx-color-material.mjs +0 -5
  82. package/esm2020/material/public_api.mjs +0 -2
  83. package/esm2020/photoshop/ngx-color-photoshop.mjs +0 -5
  84. package/esm2020/photoshop/photoshop-button.component.mjs +0 -63
  85. package/esm2020/photoshop/photoshop-fields.component.mjs +0 -241
  86. package/esm2020/photoshop/photoshop-previews.component.mjs +0 -68
  87. package/esm2020/photoshop/photoshop.component.mjs +0 -258
  88. package/esm2020/photoshop/public_api.mjs +0 -5
  89. package/esm2020/shade/ngx-color-shade.mjs +0 -5
  90. package/esm2020/shade/public_api.mjs +0 -2
  91. package/esm2020/shade/shade-picker.component.mjs +0 -105
  92. package/esm2020/sketch/ngx-color-sketch.mjs +0 -5
  93. package/esm2020/sketch/public_api.mjs +0 -4
  94. package/esm2020/sketch/sketch-fields.component.mjs +0 -243
  95. package/esm2020/sketch/sketch-preset-colors.component.mjs +0 -98
  96. package/esm2020/sketch/sketch.component.mjs +0 -283
  97. package/esm2020/slider/ngx-color-slider.mjs +0 -5
  98. package/esm2020/slider/public_api.mjs +0 -4
  99. package/esm2020/slider/slider-swatch.component.mjs +0 -80
  100. package/esm2020/slider/slider-swatches.component.mjs +0 -135
  101. package/esm2020/slider/slider.component.mjs +0 -116
  102. package/esm2020/swatches/ngx-color-swatches.mjs +0 -5
  103. package/esm2020/swatches/public_api.mjs +0 -4
  104. package/esm2020/swatches/swatches-color.component.mjs +0 -123
  105. package/esm2020/swatches/swatches-group.component.mjs +0 -64
  106. package/esm2020/swatches/swatches.component.mjs +0 -258
  107. package/esm2020/twitter/ngx-color-twitter.mjs +0 -5
  108. package/esm2020/twitter/public_api.mjs +0 -2
  109. package/esm2020/twitter/twitter.component.mjs +0 -255
  110. package/fesm2015/ngx-color-alpha.mjs +0 -123
  111. package/fesm2015/ngx-color-alpha.mjs.map +0 -1
  112. package/fesm2015/ngx-color-block.mjs +0 -275
  113. package/fesm2015/ngx-color-block.mjs.map +0 -1
  114. package/fesm2015/ngx-color-chrome.mjs +0 -606
  115. package/fesm2015/ngx-color-chrome.mjs.map +0 -1
  116. package/fesm2015/ngx-color-circle.mjs +0 -237
  117. package/fesm2015/ngx-color-circle.mjs.map +0 -1
  118. package/fesm2015/ngx-color-compact.mjs +0 -451
  119. package/fesm2015/ngx-color-compact.mjs.map +0 -1
  120. package/fesm2015/ngx-color-github.mjs +0 -250
  121. package/fesm2015/ngx-color-github.mjs.map +0 -1
  122. package/fesm2015/ngx-color-hue.mjs +0 -120
  123. package/fesm2015/ngx-color-hue.mjs.map +0 -1
  124. package/fesm2015/ngx-color-material.mjs +0 -218
  125. package/fesm2015/ngx-color-material.mjs.map +0 -1
  126. package/fesm2015/ngx-color-photoshop.mjs +0 -626
  127. package/fesm2015/ngx-color-photoshop.mjs.map +0 -1
  128. package/fesm2015/ngx-color-shade.mjs +0 -112
  129. package/fesm2015/ngx-color-shade.mjs.map +0 -1
  130. package/fesm2015/ngx-color-sketch.mjs +0 -620
  131. package/fesm2015/ngx-color-sketch.mjs.map +0 -1
  132. package/fesm2015/ngx-color-slider.mjs +0 -331
  133. package/fesm2015/ngx-color-slider.mjs.map +0 -1
  134. package/fesm2015/ngx-color-swatches.mjs +0 -441
  135. package/fesm2015/ngx-color-swatches.mjs.map +0 -1
  136. package/fesm2015/ngx-color-twitter.mjs +0 -262
  137. package/fesm2015/ngx-color-twitter.mjs.map +0 -1
  138. package/fesm2020/ngx-color-alpha.mjs +0 -123
  139. package/fesm2020/ngx-color-alpha.mjs.map +0 -1
  140. package/fesm2020/ngx-color-block.mjs +0 -275
  141. package/fesm2020/ngx-color-block.mjs.map +0 -1
  142. package/fesm2020/ngx-color-chrome.mjs +0 -606
  143. package/fesm2020/ngx-color-chrome.mjs.map +0 -1
  144. package/fesm2020/ngx-color-circle.mjs +0 -237
  145. package/fesm2020/ngx-color-circle.mjs.map +0 -1
  146. package/fesm2020/ngx-color-compact.mjs +0 -451
  147. package/fesm2020/ngx-color-compact.mjs.map +0 -1
  148. package/fesm2020/ngx-color-github.mjs +0 -250
  149. package/fesm2020/ngx-color-github.mjs.map +0 -1
  150. package/fesm2020/ngx-color-hue.mjs +0 -120
  151. package/fesm2020/ngx-color-hue.mjs.map +0 -1
  152. package/fesm2020/ngx-color-material.mjs +0 -218
  153. package/fesm2020/ngx-color-material.mjs.map +0 -1
  154. package/fesm2020/ngx-color-photoshop.mjs +0 -626
  155. package/fesm2020/ngx-color-photoshop.mjs.map +0 -1
  156. package/fesm2020/ngx-color-shade.mjs +0 -112
  157. package/fesm2020/ngx-color-shade.mjs.map +0 -1
  158. package/fesm2020/ngx-color-sketch.mjs +0 -620
  159. package/fesm2020/ngx-color-sketch.mjs.map +0 -1
  160. package/fesm2020/ngx-color-slider.mjs +0 -331
  161. package/fesm2020/ngx-color-slider.mjs.map +0 -1
  162. package/fesm2020/ngx-color-swatches.mjs +0 -441
  163. package/fesm2020/ngx-color-swatches.mjs.map +0 -1
  164. package/fesm2020/ngx-color-twitter.mjs +0 -262
  165. package/fesm2020/ngx-color-twitter.mjs.map +0 -1
  166. package/github/github-swatch.component.d.ts +0 -19
  167. package/github/github.component.d.ts +0 -28
  168. package/github/ngx-color-github.d.ts +0 -5
  169. package/github/package.json +0 -16
  170. package/github/public_api.d.ts +0 -2
  171. package/hue/hue-picker.component.d.ts +0 -29
  172. package/hue/ngx-color-hue.d.ts +0 -5
  173. package/hue/package.json +0 -15
  174. package/hue/public_api.d.ts +0 -1
  175. package/material/material.component.d.ts +0 -39
  176. package/material/ngx-color-material.d.ts +0 -5
  177. package/material/package.json +0 -15
  178. package/material/public_api.d.ts +0 -1
  179. package/photoshop/ngx-color-photoshop.d.ts +0 -5
  180. package/photoshop/package.json +0 -15
  181. package/photoshop/photoshop-button.component.d.ts +0 -9
  182. package/photoshop/photoshop-fields.component.d.ts +0 -22
  183. package/photoshop/photoshop-previews.component.d.ts +0 -11
  184. package/photoshop/photoshop.component.d.ts +0 -33
  185. package/photoshop/public_api.d.ts +0 -4
  186. package/shade/ngx-color-shade.d.ts +0 -5
  187. package/shade/package.json +0 -17
  188. package/shade/public_api.d.ts +0 -1
  189. package/shade/shade-picker.component.d.ts +0 -27
  190. package/sketch/ngx-color-sketch.d.ts +0 -5
  191. package/sketch/package.json +0 -15
  192. package/sketch/public_api.d.ts +0 -3
  193. package/sketch/sketch-fields.component.d.ts +0 -23
  194. package/sketch/sketch-preset-colors.component.d.ts +0 -24
  195. package/sketch/sketch.component.d.ts +0 -32
  196. package/slider/ngx-color-slider.d.ts +0 -5
  197. package/slider/package.json +0 -15
  198. package/slider/public_api.d.ts +0 -3
  199. package/slider/slider-swatch.component.d.ts +0 -16
  200. package/slider/slider-swatches.component.d.ts +0 -15
  201. package/slider/slider.component.d.ts +0 -22
  202. package/swatches/ngx-color-swatches.d.ts +0 -5
  203. package/swatches/package.json +0 -18
  204. package/swatches/public_api.d.ts +0 -3
  205. package/swatches/swatches-color.component.d.ts +0 -18
  206. package/swatches/swatches-group.component.d.ts +0 -10
  207. package/swatches/swatches.component.d.ts +0 -29
  208. package/twitter/ngx-color-twitter.d.ts +0 -5
  209. package/twitter/package.json +0 -15
  210. package/twitter/public_api.d.ts +0 -1
  211. package/twitter/twitter.component.d.ts +0 -31
@@ -1,258 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, forwardRef, Input, NgModule } from '@angular/core';
3
- import { amber, blue, blueGrey, brown, cyan, deepOrange, deepPurple, green, indigo, lightBlue, lightGreen, lime, orange, pink, purple, red, teal, yellow, } from 'material-colors';
4
- import { ColorWrap, RaisedModule, SwatchModule } from 'ngx-color';
5
- import { SwatchesColorComponent } from './swatches-color.component';
6
- import { SwatchesGroupComponent } from './swatches-group.component';
7
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "ngx-color";
10
- import * as i2 from "@angular/common";
11
- export class SwatchesComponent extends ColorWrap {
12
- constructor() {
13
- super();
14
- /** Pixel value for picker width */
15
- this.width = 320;
16
- /** Color squares to display */
17
- this.height = 240;
18
- /** An array of color groups, each with an array of colors */
19
- this.colors = [
20
- [
21
- red['900'],
22
- red['700'],
23
- red['500'],
24
- red['300'],
25
- red['100'],
26
- ],
27
- [
28
- pink['900'],
29
- pink['700'],
30
- pink['500'],
31
- pink['300'],
32
- pink['100'],
33
- ],
34
- [
35
- purple['900'],
36
- purple['700'],
37
- purple['500'],
38
- purple['300'],
39
- purple['100'],
40
- ],
41
- [
42
- deepPurple['900'],
43
- deepPurple['700'],
44
- deepPurple['500'],
45
- deepPurple['300'],
46
- deepPurple['100'],
47
- ],
48
- [
49
- indigo['900'],
50
- indigo['700'],
51
- indigo['500'],
52
- indigo['300'],
53
- indigo['100'],
54
- ],
55
- [
56
- blue['900'],
57
- blue['700'],
58
- blue['500'],
59
- blue['300'],
60
- blue['100'],
61
- ],
62
- [
63
- lightBlue['900'],
64
- lightBlue['700'],
65
- lightBlue['500'],
66
- lightBlue['300'],
67
- lightBlue['100'],
68
- ],
69
- [
70
- cyan['900'],
71
- cyan['700'],
72
- cyan['500'],
73
- cyan['300'],
74
- cyan['100'],
75
- ],
76
- [
77
- teal['900'],
78
- teal['700'],
79
- teal['500'],
80
- teal['300'],
81
- teal['100'],
82
- ],
83
- [
84
- '#194D33',
85
- green['700'],
86
- green['500'],
87
- green['300'],
88
- green['100'],
89
- ],
90
- [
91
- lightGreen['900'],
92
- lightGreen['700'],
93
- lightGreen['500'],
94
- lightGreen['300'],
95
- lightGreen['100'],
96
- ],
97
- [
98
- lime['900'],
99
- lime['700'],
100
- lime['500'],
101
- lime['300'],
102
- lime['100'],
103
- ],
104
- [
105
- yellow['900'],
106
- yellow['700'],
107
- yellow['500'],
108
- yellow['300'],
109
- yellow['100'],
110
- ],
111
- [
112
- amber['900'],
113
- amber['700'],
114
- amber['500'],
115
- amber['300'],
116
- amber['100'],
117
- ],
118
- [
119
- orange['900'],
120
- orange['700'],
121
- orange['500'],
122
- orange['300'],
123
- orange['100'],
124
- ],
125
- [
126
- deepOrange['900'],
127
- deepOrange['700'],
128
- deepOrange['500'],
129
- deepOrange['300'],
130
- deepOrange['100'],
131
- ],
132
- [
133
- brown['900'],
134
- brown['700'],
135
- brown['500'],
136
- brown['300'],
137
- brown['100'],
138
- ],
139
- [
140
- blueGrey['900'],
141
- blueGrey['700'],
142
- blueGrey['500'],
143
- blueGrey['300'],
144
- blueGrey['100'],
145
- ],
146
- ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF'],
147
- ];
148
- this.zDepth = 1;
149
- this.radius = 1;
150
- this.background = '#fff';
151
- }
152
- handlePickerChange({ data, $event }) {
153
- this.handleChange(data, $event);
154
- }
155
- }
156
- SwatchesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SwatchesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
157
- SwatchesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: SwatchesComponent, selector: "color-swatches", inputs: { width: "width", height: "height", colors: "colors", zDepth: "zDepth", radius: "radius", background: "background" }, providers: [
158
- {
159
- provide: NG_VALUE_ACCESSOR,
160
- useExisting: forwardRef(() => SwatchesComponent),
161
- multi: true,
162
- },
163
- {
164
- provide: ColorWrap,
165
- useExisting: forwardRef(() => SwatchesComponent),
166
- },
167
- ], usesInheritance: true, ngImport: i0, template: `
168
- <div class="swatches-picker {{ className }}"
169
- [style.width.px]="width" [style.height.px]="height">
170
- <color-raised [zDepth]="zDepth" [background]="background" [radius]="radius">
171
- <div class="swatches-overflow" [style.height.px]="height">
172
- <div class="swatches-body">
173
- <color-swatches-group
174
- *ngFor="let group of colors"
175
- [group]="group" [active]="hex"
176
- (onClick)="handlePickerChange($event)"
177
- ></color-swatches-group>
178
- </div>
179
- </div>
180
- </color-raised>
181
- </div>
182
- `, isInline: true, styles: [".swatches-overflow{overflow-y:scroll}.swatches-overflow{padding:16px 0 6px 16px}\n"], components: [{ type: i0.forwardRef(function () { return i1.RaisedComponent; }), selector: "color-raised", inputs: ["zDepth", "radius", "background"] }, { type: i0.forwardRef(function () { return SwatchesGroupComponent; }), selector: "color-swatches-group", inputs: ["group", "active"], outputs: ["onClick", "onSwatchHover"] }], directives: [{ type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SwatchesComponent, decorators: [{
184
- type: Component,
185
- args: [{
186
- selector: 'color-swatches',
187
- template: `
188
- <div class="swatches-picker {{ className }}"
189
- [style.width.px]="width" [style.height.px]="height">
190
- <color-raised [zDepth]="zDepth" [background]="background" [radius]="radius">
191
- <div class="swatches-overflow" [style.height.px]="height">
192
- <div class="swatches-body">
193
- <color-swatches-group
194
- *ngFor="let group of colors"
195
- [group]="group" [active]="hex"
196
- (onClick)="handlePickerChange($event)"
197
- ></color-swatches-group>
198
- </div>
199
- </div>
200
- </color-raised>
201
- </div>
202
- `,
203
- styles: [
204
- `
205
- .swatches-overflow {
206
- overflow-y: scroll;
207
- }
208
- .swatches-overflow {
209
- padding: 16px 0 6px 16px;
210
- }
211
- `,
212
- ],
213
- changeDetection: ChangeDetectionStrategy.OnPush,
214
- preserveWhitespaces: false,
215
- providers: [
216
- {
217
- provide: NG_VALUE_ACCESSOR,
218
- useExisting: forwardRef(() => SwatchesComponent),
219
- multi: true,
220
- },
221
- {
222
- provide: ColorWrap,
223
- useExisting: forwardRef(() => SwatchesComponent),
224
- },
225
- ]
226
- }]
227
- }], ctorParameters: function () { return []; }, propDecorators: { width: [{
228
- type: Input
229
- }], height: [{
230
- type: Input
231
- }], colors: [{
232
- type: Input
233
- }], zDepth: [{
234
- type: Input
235
- }], radius: [{
236
- type: Input
237
- }], background: [{
238
- type: Input
239
- }] } });
240
- export class ColorSwatchesModule {
241
- }
242
- ColorSwatchesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorSwatchesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
243
- ColorSwatchesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorSwatchesModule, declarations: [SwatchesComponent, SwatchesGroupComponent,
244
- SwatchesColorComponent], imports: [CommonModule, SwatchModule, RaisedModule], exports: [SwatchesComponent, SwatchesGroupComponent, SwatchesColorComponent] });
245
- ColorSwatchesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorSwatchesModule, imports: [[CommonModule, SwatchModule, RaisedModule]] });
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorSwatchesModule, decorators: [{
247
- type: NgModule,
248
- args: [{
249
- declarations: [
250
- SwatchesComponent,
251
- SwatchesGroupComponent,
252
- SwatchesColorComponent,
253
- ],
254
- exports: [SwatchesComponent, SwatchesGroupComponent, SwatchesColorComponent],
255
- imports: [CommonModule, SwatchModule, RaisedModule],
256
- }]
257
- }] });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhdGNoZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zd2F0Y2hlcy9zd2F0Y2hlcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixJQUFJLEVBQ0osTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osTUFBTSxHQUNQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFVLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBNENuRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBUztJQTRJOUM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTVJVixtQ0FBbUM7UUFDMUIsVUFBSyxHQUFvQixHQUFHLENBQUM7UUFDdEMsK0JBQStCO1FBQ3RCLFdBQU0sR0FBb0IsR0FBRyxDQUFDO1FBQ3ZDLDZEQUE2RDtRQUU3RCxXQUFNLEdBQWU7WUFDbkI7Z0JBQ0UsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDVixHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNWLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ1YsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDVixHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ1g7WUFDRDtnQkFDRSxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDWjtZQUNEO2dCQUNFLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNkO1lBQ0Q7Z0JBQ0UsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQzthQUNsQjtZQUNEO2dCQUNFLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ1o7WUFDRDtnQkFDRSxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ2pCO1lBQ0Q7Z0JBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ1o7WUFDRDtnQkFDRSxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDWjtZQUNEO2dCQUNFLFNBQVM7Z0JBQ1QsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDWixLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNaLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ1osS0FBSyxDQUFDLEtBQUssQ0FBQzthQUNiO1lBQ0Q7Z0JBQ0UsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQzthQUNsQjtZQUNEO2dCQUNFLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNaO1lBQ0Q7Z0JBQ0UsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ2Q7WUFDRDtnQkFDRSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNaLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ1osS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDWixLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNaLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDYjtZQUNEO2dCQUNFLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNkO1lBQ0Q7Z0JBQ0UsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQzthQUNsQjtZQUNEO2dCQUNFLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ1osS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDWixLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNaLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ1osS0FBSyxDQUFDLEtBQUssQ0FBQzthQUNiO1lBQ0Q7Z0JBQ0UsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDZixRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUNmLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ2YsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDZixRQUFRLENBQUMsS0FBSyxDQUFDO2FBQ2hCO1lBQ0QsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO1NBQ3hELENBQUM7UUFDTyxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxlQUFVLEdBQUcsTUFBTSxDQUFDO0lBSTdCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7OEdBbEpVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHVLQVpqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7U0FDakQ7S0FDRixpREF0Q1M7Ozs7Ozs7Ozs7Ozs7OztHQWVULHFUQWlMQyxzQkFBc0I7MkZBeEpiLGlCQUFpQjtrQkExQzdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDtvQkFDRCxNQUFNLEVBQUU7d0JBQ047Ozs7Ozs7S0FPQztxQkFDRjtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsbUJBQW1CLEVBQUUsS0FBSztvQkFDMUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsU0FBUzs0QkFDbEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7eUJBQ2pEO3FCQUNGO2lCQUNGOzBFQUdVLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQWtJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7O0FBb0JSLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkE5Sm5CLGlCQUFpQixFQXdKMUIsc0JBQXNCO1FBQ3RCLHNCQUFzQixhQUdkLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxhQTVKdkMsaUJBQWlCLEVBMkpDLHNCQUFzQixFQUFFLHNCQUFzQjtpSEFHaEUsbUJBQW1CLFlBRnJCLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUM7MkZBRXhDLG1CQUFtQjtrQkFUL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDO2lCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGFtYmVyLFxuICBibHVlLFxuICBibHVlR3JleSxcbiAgYnJvd24sXG4gIGN5YW4sXG4gIGRlZXBPcmFuZ2UsXG4gIGRlZXBQdXJwbGUsXG4gIGdyZWVuLFxuICBpbmRpZ28sXG4gIGxpZ2h0Qmx1ZSxcbiAgbGlnaHRHcmVlbixcbiAgbGltZSxcbiAgb3JhbmdlLFxuICBwaW5rLFxuICBwdXJwbGUsXG4gIHJlZCxcbiAgdGVhbCxcbiAgeWVsbG93LFxufSBmcm9tICdtYXRlcmlhbC1jb2xvcnMnO1xuXG5pbXBvcnQgeyBDb2xvcldyYXAsIFJhaXNlZE1vZHVsZSwgU3dhdGNoTW9kdWxlLCB6RGVwdGggfSBmcm9tICduZ3gtY29sb3InO1xuaW1wb3J0IHsgU3dhdGNoZXNDb2xvckNvbXBvbmVudCB9IGZyb20gJy4vc3dhdGNoZXMtY29sb3IuY29tcG9uZW50JztcbmltcG9ydCB7IFN3YXRjaGVzR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3N3YXRjaGVzLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29sb3Itc3dhdGNoZXMnLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwic3dhdGNoZXMtcGlja2VyIHt7IGNsYXNzTmFtZSB9fVwiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIj5cbiAgICA8Y29sb3ItcmFpc2VkIFt6RGVwdGhdPVwiekRlcHRoXCIgW2JhY2tncm91bmRdPVwiYmFja2dyb3VuZFwiIFtyYWRpdXNdPVwicmFkaXVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3dhdGNoZXMtb3ZlcmZsb3dcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dhdGNoZXMtYm9keVwiPlxuICAgICAgICAgIDxjb2xvci1zd2F0Y2hlcy1ncm91cFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGNvbG9yc1wiXG4gICAgICAgICAgICBbZ3JvdXBdPVwiZ3JvdXBcIiBbYWN0aXZlXT1cImhleFwiXG4gICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVQaWNrZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvY29sb3Itc3dhdGNoZXMtZ3JvdXA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9jb2xvci1yYWlzZWQ+XG4gIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuc3dhdGNoZXMtb3ZlcmZsb3cge1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICB9XG4gICAgICAuc3dhdGNoZXMtb3ZlcmZsb3cge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgNnB4IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN3YXRjaGVzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29sb3JXcmFwLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3dhdGNoZXNDb21wb25lbnQpLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU3dhdGNoZXNDb21wb25lbnQgZXh0ZW5kcyBDb2xvcldyYXAge1xuICAvKiogUGl4ZWwgdmFsdWUgZm9yIHBpY2tlciB3aWR0aCAqL1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nIHwgbnVtYmVyID0gMzIwO1xuICAvKiogQ29sb3Igc3F1YXJlcyB0byBkaXNwbGF5ICovXG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nIHwgbnVtYmVyID0gMjQwO1xuICAvKiogQW4gYXJyYXkgb2YgY29sb3IgZ3JvdXBzLCBlYWNoIHdpdGggYW4gYXJyYXkgb2YgY29sb3JzICovXG4gIEBJbnB1dCgpXG4gIGNvbG9yczogc3RyaW5nW11bXSA9IFtcbiAgICBbXG4gICAgICByZWRbJzkwMCddLFxuICAgICAgcmVkWyc3MDAnXSxcbiAgICAgIHJlZFsnNTAwJ10sXG4gICAgICByZWRbJzMwMCddLFxuICAgICAgcmVkWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIHBpbmtbJzkwMCddLFxuICAgICAgcGlua1snNzAwJ10sXG4gICAgICBwaW5rWyc1MDAnXSxcbiAgICAgIHBpbmtbJzMwMCddLFxuICAgICAgcGlua1snMTAwJ10sXG4gICAgXSxcbiAgICBbXG4gICAgICBwdXJwbGVbJzkwMCddLFxuICAgICAgcHVycGxlWyc3MDAnXSxcbiAgICAgIHB1cnBsZVsnNTAwJ10sXG4gICAgICBwdXJwbGVbJzMwMCddLFxuICAgICAgcHVycGxlWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIGRlZXBQdXJwbGVbJzkwMCddLFxuICAgICAgZGVlcFB1cnBsZVsnNzAwJ10sXG4gICAgICBkZWVwUHVycGxlWyc1MDAnXSxcbiAgICAgIGRlZXBQdXJwbGVbJzMwMCddLFxuICAgICAgZGVlcFB1cnBsZVsnMTAwJ10sXG4gICAgXSxcbiAgICBbXG4gICAgICBpbmRpZ29bJzkwMCddLFxuICAgICAgaW5kaWdvWyc3MDAnXSxcbiAgICAgIGluZGlnb1snNTAwJ10sXG4gICAgICBpbmRpZ29bJzMwMCddLFxuICAgICAgaW5kaWdvWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIGJsdWVbJzkwMCddLFxuICAgICAgYmx1ZVsnNzAwJ10sXG4gICAgICBibHVlWyc1MDAnXSxcbiAgICAgIGJsdWVbJzMwMCddLFxuICAgICAgYmx1ZVsnMTAwJ10sXG4gICAgXSxcbiAgICBbXG4gICAgICBsaWdodEJsdWVbJzkwMCddLFxuICAgICAgbGlnaHRCbHVlWyc3MDAnXSxcbiAgICAgIGxpZ2h0Qmx1ZVsnNTAwJ10sXG4gICAgICBsaWdodEJsdWVbJzMwMCddLFxuICAgICAgbGlnaHRCbHVlWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIGN5YW5bJzkwMCddLFxuICAgICAgY3lhblsnNzAwJ10sXG4gICAgICBjeWFuWyc1MDAnXSxcbiAgICAgIGN5YW5bJzMwMCddLFxuICAgICAgY3lhblsnMTAwJ10sXG4gICAgXSxcbiAgICBbXG4gICAgICB0ZWFsWyc5MDAnXSxcbiAgICAgIHRlYWxbJzcwMCddLFxuICAgICAgdGVhbFsnNTAwJ10sXG4gICAgICB0ZWFsWyczMDAnXSxcbiAgICAgIHRlYWxbJzEwMCddLFxuICAgIF0sXG4gICAgW1xuICAgICAgJyMxOTREMzMnLFxuICAgICAgZ3JlZW5bJzcwMCddLFxuICAgICAgZ3JlZW5bJzUwMCddLFxuICAgICAgZ3JlZW5bJzMwMCddLFxuICAgICAgZ3JlZW5bJzEwMCddLFxuICAgIF0sXG4gICAgW1xuICAgICAgbGlnaHRHcmVlblsnOTAwJ10sXG4gICAgICBsaWdodEdyZWVuWyc3MDAnXSxcbiAgICAgIGxpZ2h0R3JlZW5bJzUwMCddLFxuICAgICAgbGlnaHRHcmVlblsnMzAwJ10sXG4gICAgICBsaWdodEdyZWVuWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIGxpbWVbJzkwMCddLFxuICAgICAgbGltZVsnNzAwJ10sXG4gICAgICBsaW1lWyc1MDAnXSxcbiAgICAgIGxpbWVbJzMwMCddLFxuICAgICAgbGltZVsnMTAwJ10sXG4gICAgXSxcbiAgICBbXG4gICAgICB5ZWxsb3dbJzkwMCddLFxuICAgICAgeWVsbG93Wyc3MDAnXSxcbiAgICAgIHllbGxvd1snNTAwJ10sXG4gICAgICB5ZWxsb3dbJzMwMCddLFxuICAgICAgeWVsbG93WycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIGFtYmVyWyc5MDAnXSxcbiAgICAgIGFtYmVyWyc3MDAnXSxcbiAgICAgIGFtYmVyWyc1MDAnXSxcbiAgICAgIGFtYmVyWyczMDAnXSxcbiAgICAgIGFtYmVyWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIG9yYW5nZVsnOTAwJ10sXG4gICAgICBvcmFuZ2VbJzcwMCddLFxuICAgICAgb3JhbmdlWyc1MDAnXSxcbiAgICAgIG9yYW5nZVsnMzAwJ10sXG4gICAgICBvcmFuZ2VbJzEwMCddLFxuICAgIF0sXG4gICAgW1xuICAgICAgZGVlcE9yYW5nZVsnOTAwJ10sXG4gICAgICBkZWVwT3JhbmdlWyc3MDAnXSxcbiAgICAgIGRlZXBPcmFuZ2VbJzUwMCddLFxuICAgICAgZGVlcE9yYW5nZVsnMzAwJ10sXG4gICAgICBkZWVwT3JhbmdlWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIGJyb3duWyc5MDAnXSxcbiAgICAgIGJyb3duWyc3MDAnXSxcbiAgICAgIGJyb3duWyc1MDAnXSxcbiAgICAgIGJyb3duWyczMDAnXSxcbiAgICAgIGJyb3duWycxMDAnXSxcbiAgICBdLFxuICAgIFtcbiAgICAgIGJsdWVHcmV5Wyc5MDAnXSxcbiAgICAgIGJsdWVHcmV5Wyc3MDAnXSxcbiAgICAgIGJsdWVHcmV5Wyc1MDAnXSxcbiAgICAgIGJsdWVHcmV5WyczMDAnXSxcbiAgICAgIGJsdWVHcmV5WycxMDAnXSxcbiAgICBdLFxuICAgIFsnIzAwMDAwMCcsICcjNTI1MjUyJywgJyM5Njk2OTYnLCAnI0Q5RDlEOScsICcjRkZGRkZGJ10sXG4gIF07XG4gIEBJbnB1dCgpIHpEZXB0aDogekRlcHRoID0gMTtcbiAgQElucHV0KCkgcmFkaXVzID0gMTtcbiAgQElucHV0KCkgYmFja2dyb3VuZCA9ICcjZmZmJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaGFuZGxlUGlja2VyQ2hhbmdlKHsgZGF0YSwgJGV2ZW50IH0pIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZShkYXRhLCAkZXZlbnQpO1xuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFN3YXRjaGVzQ29tcG9uZW50LFxuICAgIFN3YXRjaGVzR3JvdXBDb21wb25lbnQsXG4gICAgU3dhdGNoZXNDb2xvckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1N3YXRjaGVzQ29tcG9uZW50LCBTd2F0Y2hlc0dyb3VwQ29tcG9uZW50LCBTd2F0Y2hlc0NvbG9yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU3dhdGNoTW9kdWxlLCBSYWlzZWRNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDb2xvclN3YXRjaGVzTW9kdWxlIHt9XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbG9yLXR3aXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R3aXR0ZXIvbmd4LWNvbG9yLXR3aXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export { ColorTwitterModule, TwitterComponent } from './twitter.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHdpdHRlci9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29sb3JUd2l0dGVyTW9kdWxlLCBUd2l0dGVyQ29tcG9uZW50IH0gZnJvbSAnLi90d2l0dGVyLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,255 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, forwardRef, Input, NgModule } from '@angular/core';
3
- import { ColorWrap, EditableInputModule, isValidHex, SwatchModule } from 'ngx-color';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "ngx-color";
7
- import * as i2 from "@angular/common";
8
- export class TwitterComponent extends ColorWrap {
9
- constructor() {
10
- super();
11
- /** Pixel value for picker width */
12
- this.width = 276;
13
- /** Color squares to display */
14
- this.colors = [
15
- '#FF6900',
16
- '#FCB900',
17
- '#7BDCB5',
18
- '#00D084',
19
- '#8ED1FC',
20
- '#0693E3',
21
- '#ABB8C3',
22
- '#EB144C',
23
- '#F78DA7',
24
- '#9900EF',
25
- ];
26
- this.triangle = 'top-left';
27
- this.swatchStyle = {
28
- width: '30px',
29
- height: '30px',
30
- borderRadius: '4px',
31
- fontSize: '0',
32
- };
33
- this.input = {
34
- borderRadius: '4px',
35
- borderBottomLeftRadius: '0',
36
- borderTopLeftRadius: '0',
37
- border: '1px solid #e6ecf0',
38
- boxSizing: 'border-box',
39
- display: 'inline',
40
- fontSize: '14px',
41
- height: '30px',
42
- padding: '0',
43
- paddingLeft: '6px',
44
- width: '100%',
45
- color: '#657786',
46
- };
47
- this.disableAlpha = true;
48
- }
49
- focus(color) {
50
- return { boxShadow: `0 0 4px ${color}` };
51
- }
52
- handleBlockChange({ hex, $event }) {
53
- if (isValidHex(hex)) {
54
- // this.hex = hex;
55
- this.handleChange({ hex, source: 'hex' }, $event);
56
- }
57
- }
58
- handleValueChange({ data, $event }) {
59
- this.handleBlockChange({ hex: data, $event });
60
- }
61
- }
62
- TwitterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TwitterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
- TwitterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: TwitterComponent, selector: "color-twitter", inputs: { width: "width", colors: "colors", triangle: "triangle" }, providers: [
64
- {
65
- provide: NG_VALUE_ACCESSOR,
66
- useExisting: forwardRef(() => TwitterComponent),
67
- multi: true,
68
- },
69
- {
70
- provide: ColorWrap,
71
- useExisting: forwardRef(() => TwitterComponent),
72
- },
73
- ], usesInheritance: true, ngImport: i0, template: `
74
- <div class="twitter-picker {{ triangle }}-triangle {{ className }}" [style.width.px]="width">
75
- <div class="triangleShadow"></div>
76
- <div class="triangle"></div>
77
- <div class="twitter-body">
78
- <div class="twitter-swatch" *ngFor="let color of colors">
79
- <color-swatch
80
- [color]="color"
81
- [style]="swatchStyle"
82
- [focusStyle]="focus(color)"
83
- (onClick)="handleBlockChange($event)"
84
- (onHover)="onSwatchHover.emit($event)"
85
- ></color-swatch>
86
- </div>
87
- <div class="twitter-hash">
88
- <div>#</div>
89
- </div>
90
- <div class="twitter-input">
91
- <color-editable-input
92
- [style]="{ input: input }"
93
- [value]="hex.replace('#', '')"
94
- (onChange)="handleValueChange($event)"
95
- ></color-editable-input>
96
- </div>
97
- </div>
98
- </div>
99
- `, isInline: true, styles: [".twitter-picker{background:rgb(255,255,255);border:0px solid rgba(0,0,0,.25);box-shadow:#00000040 0 1px 4px;border-radius:4px;position:relative;box-sizing:border-box}.triangleShadow{width:0px;height:0px;border-style:solid;border-width:0px 9px 10px;border-color:transparent transparent rgba(0,0,0,.1);position:absolute}.triangle{width:0px;height:0px;border-style:solid;border-width:0px 9px 10px;border-color:transparent transparent rgb(255,255,255);position:absolute}.hide-triangle>.triangle{display:none}.hide-triangle>.triangleShadow{display:none}.top-left-triangle>.triangle{top:-10px;left:12px}.top-left-triangle>.triangleShadow{top:-11px;left:12px}.top-right-triangle>.triangle{top:-10px;right:12px}.top-right-triangle>.triangleShadow{top:-11px;right:12px}.twitter-body{padding:15px 9px 9px 15px}.twitter-swatch{width:30px;height:30px;display:inline-block;margin:0 6px 0 0}.twitter-hash{background:rgb(240,240,240);height:30px;width:30px;border-radius:4px 0 0 4px;color:#98a1a4;margin-left:-3px;display:inline-block}.twitter-hash>div{position:absolute;align-items:center;justify-content:center;height:30px;width:30px;display:flex}.twitter-input{display:inline-block;margin-top:-6px;font-size:10px;height:27px;padding:0;position:relative;top:6px;vertical-align:top;width:108px;margin-left:-4px}\n"], components: [{ type: i1.SwatchComponent, selector: "color-swatch", inputs: ["color", "style", "focusStyle", "focus"], outputs: ["onClick", "onHover"] }, { type: i1.EditableInputComponent, selector: "color-editable-input", inputs: ["style", "label", "value", "arrowOffset", "dragLabel", "dragMax", "placeholder"], outputs: ["onChange"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TwitterComponent, decorators: [{
101
- type: Component,
102
- args: [{
103
- selector: 'color-twitter',
104
- template: `
105
- <div class="twitter-picker {{ triangle }}-triangle {{ className }}" [style.width.px]="width">
106
- <div class="triangleShadow"></div>
107
- <div class="triangle"></div>
108
- <div class="twitter-body">
109
- <div class="twitter-swatch" *ngFor="let color of colors">
110
- <color-swatch
111
- [color]="color"
112
- [style]="swatchStyle"
113
- [focusStyle]="focus(color)"
114
- (onClick)="handleBlockChange($event)"
115
- (onHover)="onSwatchHover.emit($event)"
116
- ></color-swatch>
117
- </div>
118
- <div class="twitter-hash">
119
- <div>#</div>
120
- </div>
121
- <div class="twitter-input">
122
- <color-editable-input
123
- [style]="{ input: input }"
124
- [value]="hex.replace('#', '')"
125
- (onChange)="handleValueChange($event)"
126
- ></color-editable-input>
127
- </div>
128
- </div>
129
- </div>
130
- `,
131
- styles: [
132
- `
133
- .twitter-picker {
134
- background: rgb(255, 255, 255);
135
- border: 0px solid rgba(0, 0, 0, 0.25);
136
- box-shadow: rgba(0, 0, 0, 0.25) 0px 1px 4px;
137
- border-radius: 4px;
138
- position: relative;
139
- box-sizing: border-box;
140
- }
141
- .triangleShadow {
142
- width: 0px;
143
- height: 0px;
144
- border-style: solid;
145
- border-width: 0px 9px 10px;
146
- border-color: transparent transparent rgba(0, 0, 0, 0.1);
147
- position: absolute;
148
- }
149
- .triangle {
150
- width: 0px;
151
- height: 0px;
152
- border-style: solid;
153
- border-width: 0px 9px 10px;
154
- border-color: transparent transparent rgb(255, 255, 255);
155
- position: absolute;
156
- }
157
- .hide-triangle > .triangle {
158
- display: none;
159
- }
160
- .hide-triangle > .triangleShadow {
161
- display: none;
162
- }
163
- .top-left-triangle > .triangle {
164
- top: -10px;
165
- left: 12px;
166
- }
167
- .top-left-triangle > .triangleShadow {
168
- top: -11px;
169
- left: 12px;
170
- }
171
- .top-right-triangle > .triangle {
172
- top: -10px;
173
- right: 12px;
174
- }
175
- .top-right-triangle > .triangleShadow {
176
- top: -11px;
177
- right: 12px;
178
- }
179
- .twitter-body {
180
- padding: 15px 9px 9px 15px;
181
- }
182
- .twitter-swatch {
183
- width: 30px;
184
- height: 30px;
185
- display: inline-block;
186
- margin: 0 6px 0 0;
187
- }
188
- .twitter-hash {
189
- background: rgb(240, 240, 240);
190
- height: 30px;
191
- width: 30px;
192
- border-radius: 4px 0px 0px 4px;
193
- color: rgb(152, 161, 164);
194
- margin-left: -3px;
195
- display: inline-block;
196
-
197
- }
198
- .twitter-hash > div {
199
- position: absolute;
200
- align-items: center;
201
- justify-content: center;
202
- height: 30px;
203
- width: 30px;
204
- display: flex;
205
- }
206
- .twitter-input {
207
- position: relative;
208
- display: inline-block;
209
- margin-top: -6px;
210
- font-size: 10px;
211
- height: 27px;
212
- padding: 0;
213
- position: relative;
214
- top: 6px;
215
- vertical-align: top;
216
- width: 108px;
217
- margin-left: -4px;
218
- }
219
- `,
220
- ],
221
- changeDetection: ChangeDetectionStrategy.OnPush,
222
- preserveWhitespaces: false,
223
- providers: [
224
- {
225
- provide: NG_VALUE_ACCESSOR,
226
- useExisting: forwardRef(() => TwitterComponent),
227
- multi: true,
228
- },
229
- {
230
- provide: ColorWrap,
231
- useExisting: forwardRef(() => TwitterComponent),
232
- },
233
- ]
234
- }]
235
- }], ctorParameters: function () { return []; }, propDecorators: { width: [{
236
- type: Input
237
- }], colors: [{
238
- type: Input
239
- }], triangle: [{
240
- type: Input
241
- }] } });
242
- export class ColorTwitterModule {
243
- }
244
- ColorTwitterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorTwitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
245
- ColorTwitterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorTwitterModule, declarations: [TwitterComponent], imports: [CommonModule, SwatchModule, EditableInputModule], exports: [TwitterComponent] });
246
- ColorTwitterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorTwitterModule, imports: [[CommonModule, SwatchModule, EditableInputModule]] });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorTwitterModule, decorators: [{
248
- type: NgModule,
249
- args: [{
250
- declarations: [TwitterComponent],
251
- exports: [TwitterComponent],
252
- imports: [CommonModule, SwatchModule, EditableInputModule],
253
- }]
254
- }] });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpdHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R3aXR0ZXIvdHdpdHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBdUluRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQXdDN0M7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXhDVixtQ0FBbUM7UUFDMUIsVUFBSyxHQUFvQixHQUFHLENBQUM7UUFDdEMsK0JBQStCO1FBQ3RCLFdBQU0sR0FBRztZQUNoQixTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1YsQ0FBQztRQUNPLGFBQVEsR0FBdUQsVUFBVSxDQUFDO1FBRW5GLGdCQUFXLEdBQTRCO1lBQ3JDLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsR0FBRztTQUNkLENBQUM7UUFDRixVQUFLLEdBQTRCO1lBQy9CLFlBQVksRUFBRSxLQUFLO1lBQ25CLHNCQUFzQixFQUFFLEdBQUc7WUFDM0IsbUJBQW1CLEVBQUUsR0FBRztZQUN4QixNQUFNLEVBQUUsbUJBQW1CO1lBQzNCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLEdBQUc7WUFDWixXQUFXLEVBQUUsS0FBSztZQUNsQixLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxTQUFTO1NBQ2pCLENBQUM7UUFDRixpQkFBWSxHQUFHLElBQUksQ0FBQztJQUlwQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWE7UUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBTztRQUNwQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQixrQkFBa0I7WUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFPO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs2R0F6RFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNEdBWmhCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLFNBQVM7WUFDbEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztTQUNoRDtLQUNGLGlEQWpJUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7MkZBeUdVLGdCQUFnQjtrQkFySTVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1RkQ7cUJBQ0E7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFNBQVM7NEJBQ2xCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDO3lCQUNoRDtxQkFDRjtpQkFDRjswRUFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQVlHLFFBQVE7c0JBQWhCLEtBQUs7O0FBaURSLE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFqRWxCLGdCQUFnQixhQStEakIsWUFBWSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsYUEvRDlDLGdCQUFnQjtnSEFpRWhCLGtCQUFrQixZQUZwQixDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUM7MkZBRS9DLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUM7aUJBQzNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2xvcldyYXAsIEVkaXRhYmxlSW5wdXRNb2R1bGUsIGlzVmFsaWRIZXgsIFN3YXRjaE1vZHVsZSB9IGZyb20gJ25neC1jb2xvcic7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29sb3ItdHdpdHRlcicsXG4gIHRlbXBsYXRlOiBgXG4gIDxkaXYgY2xhc3M9XCJ0d2l0dGVyLXBpY2tlciB7eyB0cmlhbmdsZSB9fS10cmlhbmdsZSB7eyBjbGFzc05hbWUgfX1cIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIj5cbiAgICA8ZGl2IGNsYXNzPVwidHJpYW5nbGVTaGFkb3dcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidHJpYW5nbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidHdpdHRlci1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidHdpdHRlci1zd2F0Y2hcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JzXCI+XG4gICAgICAgIDxjb2xvci1zd2F0Y2hcbiAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgIFtzdHlsZV09XCJzd2F0Y2hTdHlsZVwiXG4gICAgICAgICAgW2ZvY3VzU3R5bGVdPVwiZm9jdXMoY29sb3IpXCJcbiAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVCbG9ja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAob25Ib3Zlcik9XCJvblN3YXRjaEhvdmVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgID48L2NvbG9yLXN3YXRjaD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInR3aXR0ZXItaGFzaFwiPlxuICAgICAgICA8ZGl2PiM8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInR3aXR0ZXItaW5wdXRcIj5cbiAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgW3N0eWxlXT1cInsgaW5wdXQ6IGlucHV0IH1cIlxuICAgICAgICAgIFt2YWx1ZV09XCJoZXgucmVwbGFjZSgnIycsICcnKVwiXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgIC50d2l0dGVyLXBpY2tlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4gICAgICBib3JkZXI6IDBweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjI1KSAwcHggMXB4IDRweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICAgIC50cmlhbmdsZVNoYWRvdyB7XG4gICAgICB3aWR0aDogMHB4O1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwcHggOXB4IDEwcHg7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgLnRyaWFuZ2xlIHtcbiAgICAgIHdpZHRoOiAwcHg7XG4gICAgICBoZWlnaHQ6IDBweDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDBweCA5cHggMTBweDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiKDI1NSwgMjU1LCAyNTUpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICAuaGlkZS10cmlhbmdsZSA+IC50cmlhbmdsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuaGlkZS10cmlhbmdsZSA+IC50cmlhbmdsZVNoYWRvdyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAudG9wLWxlZnQtdHJpYW5nbGUgPiAudHJpYW5nbGUge1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIGxlZnQ6IDEycHg7XG4gICAgfVxuICAgIC50b3AtbGVmdC10cmlhbmdsZSA+IC50cmlhbmdsZVNoYWRvdyB7XG4gICAgICB0b3A6IC0xMXB4O1xuICAgICAgbGVmdDogMTJweDtcbiAgICB9XG4gICAgLnRvcC1yaWdodC10cmlhbmdsZSA+IC50cmlhbmdsZSB7XG4gICAgICB0b3A6IC0xMHB4O1xuICAgICAgcmlnaHQ6IDEycHg7XG4gICAgfVxuICAgIC50b3AtcmlnaHQtdHJpYW5nbGUgPiAudHJpYW5nbGVTaGFkb3cge1xuICAgICAgdG9wOiAtMTFweDtcbiAgICAgIHJpZ2h0OiAxMnB4O1xuICAgIH1cbiAgICAudHdpdHRlci1ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDE1cHggOXB4IDlweCAxNXB4O1xuICAgIH1cbiAgICAudHdpdHRlci1zd2F0Y2gge1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDAgNnB4IDAgMDtcbiAgICB9XG4gICAgLnR3aXR0ZXItaGFzaCB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMjQwLCAyNDAsIDI0MCk7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwcHggMHB4IDRweDtcbiAgICAgIGNvbG9yOiByZ2IoMTUyLCAxNjEsIDE2NCk7XG4gICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIH1cbiAgICAudHdpdHRlci1oYXNoID4gZGl2IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gICAgLnR3aXR0ZXItaW5wdXQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGhlaWdodDogMjdweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDZweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB3aWR0aDogMTA4cHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG4gIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUd2l0dGVyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29sb3JXcmFwLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHdpdHRlckNvbXBvbmVudCksXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUd2l0dGVyQ29tcG9uZW50IGV4dGVuZHMgQ29sb3JXcmFwIHtcbiAgLyoqIFBpeGVsIHZhbHVlIGZvciBwaWNrZXIgd2lkdGggKi9cbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciA9IDI3NjtcbiAgLyoqIENvbG9yIHNxdWFyZXMgdG8gZGlzcGxheSAqL1xuICBASW5wdXQoKSBjb2xvcnMgPSBbXG4gICAgJyNGRjY5MDAnLFxuICAgICcjRkNCOTAwJyxcbiAgICAnIzdCRENCNScsXG4gICAgJyMwMEQwODQnLFxuICAgICcjOEVEMUZDJyxcbiAgICAnIzA2OTNFMycsXG4gICAgJyNBQkI4QzMnLFxuICAgICcjRUIxNDRDJyxcbiAgICAnI0Y3OERBNycsXG4gICAgJyM5OTAwRUYnLFxuICBdO1xuICBASW5wdXQoKSB0cmlhbmdsZTogJ2hpZGUnIHwgJ3RvcC1sZWZ0JyB8ICd0b3AtcmlnaHQnIHwgJ2JvdHRvbS1yaWdodCcgPSAndG9wLWxlZnQnO1xuXG4gIHN3YXRjaFN0eWxlOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgICB3aWR0aDogJzMwcHgnLFxuICAgIGhlaWdodDogJzMwcHgnLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgZm9udFNpemU6ICcwJyxcbiAgfTtcbiAgaW5wdXQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogJzAnLFxuICAgIGJvcmRlclRvcExlZnRSYWRpdXM6ICcwJyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2U2ZWNmMCcsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBoZWlnaHQ6ICczMHB4JyxcbiAgICBwYWRkaW5nOiAnMCcsXG4gICAgcGFkZGluZ0xlZnQ6ICc2cHgnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgY29sb3I6ICcjNjU3Nzg2JyxcbiAgfTtcbiAgZGlzYWJsZUFscGhhID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZm9jdXMoY29sb3I6IHN0cmluZykge1xuICAgIHJldHVybiB7IGJveFNoYWRvdzogYDAgMCA0cHggJHtjb2xvcn1gIH07XG4gIH1cblxuICBoYW5kbGVCbG9ja0NoYW5nZSh7IGhleCwgJGV2ZW50IH06IGFueSkge1xuICAgIGlmIChpc1ZhbGlkSGV4KGhleCkpIHtcbiAgICAgIC8vIHRoaXMuaGV4ID0gaGV4O1xuICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UoeyBoZXgsIHNvdXJjZTogJ2hleCcgfSwgJGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVWYWx1ZUNoYW5nZSh7IGRhdGEsICRldmVudCB9OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUJsb2NrQ2hhbmdlKHsgaGV4OiBkYXRhLCAkZXZlbnQgfSk7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVHdpdHRlckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtUd2l0dGVyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU3dhdGNoTW9kdWxlLCBFZGl0YWJsZUlucHV0TW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JUd2l0dGVyTW9kdWxlIHt9XG4iXX0=