ng-tailwind 3.30.368 → 4.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 (197) hide show
  1. package/README.md +24 -24
  2. package/animations/ngt-angular-animations.d.ts +5 -5
  3. package/base/ngt-base-ng-model.d.ts +32 -32
  4. package/bundles/ng-tailwind.umd.js +7689 -7631
  5. package/bundles/ng-tailwind.umd.js.map +1 -1
  6. package/components/ngt-action/ngt-action.component.d.ts +13 -13
  7. package/components/ngt-action/ngt-action.module.d.ts +2 -2
  8. package/components/ngt-button/ngt-button.component.d.ts +22 -22
  9. package/components/ngt-button/ngt-button.module.d.ts +2 -2
  10. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +41 -41
  11. package/components/ngt-checkbox/ngt-checkbox.module.d.ts +2 -2
  12. package/components/ngt-content/ngt-content.component.d.ts +9 -9
  13. package/components/ngt-content/ngt-content.module.d.ts +2 -2
  14. package/components/ngt-datatable/ngt-datatable.component.d.ts +114 -114
  15. package/components/ngt-datatable/ngt-datatable.module.d.ts +2 -2
  16. package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +11 -11
  17. package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +11 -11
  18. package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +26 -26
  19. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +48 -48
  20. package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +19 -19
  21. package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +10 -10
  22. package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +17 -17
  23. package/components/ngt-date/ngt-date.component.d.ts +75 -75
  24. package/components/ngt-date/ngt-date.module.d.ts +2 -2
  25. package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +5 -5
  26. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +48 -48
  27. package/components/ngt-dropdown/ngt-dropdown.module.d.ts +2 -2
  28. package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +11 -11
  29. package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +22 -22
  30. package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +21 -21
  31. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +108 -108
  32. package/components/ngt-dropzone/ngt-dropzone.module.d.ts +2 -2
  33. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +32 -32
  34. package/components/ngt-floating-button/ngt-floating-button.module.d.ts +2 -2
  35. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +7 -7
  36. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.d.ts +2 -2
  37. package/components/ngt-form/ngt-form.component.d.ts +52 -52
  38. package/components/ngt-form/ngt-form.module.d.ts +2 -2
  39. package/components/ngt-header-nav/ngt-header-nav.component.d.ts +11 -11
  40. package/components/ngt-header-nav/ngt-header-nav.module.d.ts +2 -2
  41. package/components/ngt-helper/ngt-helper.component.d.ts +20 -20
  42. package/components/ngt-helper/ngt-helper.module.d.ts +2 -2
  43. package/components/ngt-input/ngt-input.component.d.ts +116 -116
  44. package/components/ngt-input/ngt-input.module.d.ts +2 -2
  45. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +2 -2
  46. package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +2 -2
  47. package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +12 -12
  48. package/components/ngt-modal/ngt-modal.component.d.ts +19 -19
  49. package/components/ngt-modal/ngt-modal.module.d.ts +2 -2
  50. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +97 -97
  51. package/components/ngt-multi-select/ngt-multi-select.module.d.ts +2 -2
  52. package/components/ngt-pagination/ngt-pagination.component.d.ts +40 -40
  53. package/components/ngt-pagination/ngt-pagination.module.d.ts +2 -2
  54. package/components/ngt-popover/ngt-popover.component.d.ts +28 -28
  55. package/components/ngt-popover/ngt-popover.module.d.ts +2 -2
  56. package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +9 -9
  57. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +9 -9
  58. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +14 -14
  59. package/components/ngt-portlet/ngt-portlet.component.d.ts +17 -17
  60. package/components/ngt-portlet/ngt-portlet.module.d.ts +2 -2
  61. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +6 -6
  62. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +32 -32
  63. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +2 -2
  64. package/components/ngt-section/ngt-section.component.d.ts +26 -26
  65. package/components/ngt-section/ngt-section.module.d.ts +2 -2
  66. package/components/ngt-select/ngt-select.component.d.ts +131 -131
  67. package/components/ngt-select/ngt-select.directive.d.ts +13 -13
  68. package/components/ngt-select/ngt-select.module.d.ts +2 -2
  69. package/components/ngt-shining/ngt-shining.component.d.ts +16 -16
  70. package/components/ngt-shining/ngt-shining.module.d.ts +2 -2
  71. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +29 -29
  72. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +2 -2
  73. package/components/ngt-slider/ngt-slider.component.d.ts +31 -31
  74. package/components/ngt-slider/ngt-slider.module.d.ts +2 -2
  75. package/components/ngt-svg/ngt-svg.component.d.ts +10 -10
  76. package/components/ngt-svg/ngt-svg.module.d.ts +2 -2
  77. package/components/ngt-tag/ngt-tag.component.d.ts +10 -10
  78. package/components/ngt-tag/ngt-tag.module.d.ts +2 -2
  79. package/components/ngt-textarea/ngt-textarea.component.d.ts +46 -46
  80. package/components/ngt-textarea/ngt-textarea.module.d.ts +2 -2
  81. package/components/ngt-validation/ngt-validation.component.d.ts +10 -10
  82. package/components/ngt-validation/ngt-validation.module.d.ts +2 -2
  83. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +65 -65
  84. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +2 -2
  85. package/enums/size.enum.d.ts +8 -8
  86. package/esm2015/animations/ngt-angular-animations.js +34 -34
  87. package/esm2015/base/ngt-base-ng-model.js +90 -90
  88. package/esm2015/components/ngt-action/ngt-action.component.js +49 -49
  89. package/esm2015/components/ngt-action/ngt-action.module.js +19 -19
  90. package/esm2015/components/ngt-button/ngt-button.component.js +106 -106
  91. package/esm2015/components/ngt-button/ngt-button.module.js +19 -19
  92. package/esm2015/components/ngt-checkbox/ngt-checkbox.component.js +139 -139
  93. package/esm2015/components/ngt-checkbox/ngt-checkbox.module.js +19 -19
  94. package/esm2015/components/ngt-content/ngt-content.component.js +33 -33
  95. package/esm2015/components/ngt-content/ngt-content.module.js +15 -15
  96. package/esm2015/components/ngt-datatable/ngt-datatable.component.js +409 -409
  97. package/esm2015/components/ngt-datatable/ngt-datatable.module.js +58 -58
  98. package/esm2015/components/ngt-datatable/ngt-tbody/ngt-tbody.component.js +58 -58
  99. package/esm2015/components/ngt-datatable/ngt-td/ngt-td.component.js +63 -63
  100. package/esm2015/components/ngt-datatable/ngt-td-check/ngt-td-check.component.js +105 -105
  101. package/esm2015/components/ngt-datatable/ngt-th/ngt-th.component.js +195 -195
  102. package/esm2015/components/ngt-datatable/ngt-th-check/ngt-th-check.component.js +87 -87
  103. package/esm2015/components/ngt-datatable/ngt-thead/ngt-thead.component.js +56 -56
  104. package/esm2015/components/ngt-datatable/ngt-tr/ngt-tr.component.js +76 -76
  105. package/esm2015/components/ngt-date/ngt-date.component.js +380 -380
  106. package/esm2015/components/ngt-date/ngt-date.module.js +25 -25
  107. package/esm2015/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.js +20 -20
  108. package/esm2015/components/ngt-dropdown/ngt-dropdown.component.js +185 -185
  109. package/esm2015/components/ngt-dropdown/ngt-dropdown.module.js +16 -16
  110. package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +50 -50
  111. package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +59 -59
  112. package/esm2015/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.js +67 -67
  113. package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +434 -434
  114. package/esm2015/components/ngt-dropzone/ngt-dropzone.module.js +37 -37
  115. package/esm2015/components/ngt-floating-button/ngt-floating-button.component.js +94 -94
  116. package/esm2015/components/ngt-floating-button/ngt-floating-button.module.js +19 -19
  117. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.js +23 -23
  118. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.js +15 -15
  119. package/esm2015/components/ngt-form/ngt-form.component.js +181 -181
  120. package/esm2015/components/ngt-form/ngt-form.module.js +17 -17
  121. package/esm2015/components/ngt-header-nav/ngt-header-nav.component.js +38 -38
  122. package/esm2015/components/ngt-header-nav/ngt-header-nav.module.js +15 -15
  123. package/esm2015/components/ngt-helper/ngt-helper.component.js +51 -51
  124. package/esm2015/components/ngt-helper/ngt-helper.module.js +19 -19
  125. package/esm2015/components/ngt-input/ngt-input.component.js +680 -680
  126. package/esm2015/components/ngt-input/ngt-input.module.js +28 -28
  127. package/esm2015/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.js +11 -11
  128. package/esm2015/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.js +11 -11
  129. package/esm2015/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.js +40 -40
  130. package/esm2015/components/ngt-modal/ngt-modal.component.js +79 -79
  131. package/esm2015/components/ngt-modal/ngt-modal.module.js +28 -28
  132. package/esm2015/components/ngt-multi-select/ngt-multi-select.component.js +394 -394
  133. package/esm2015/components/ngt-multi-select/ngt-multi-select.module.js +33 -33
  134. package/esm2015/components/ngt-pagination/ngt-pagination.component.js +172 -172
  135. package/esm2015/components/ngt-pagination/ngt-pagination.module.js +23 -23
  136. package/esm2015/components/ngt-popover/ngt-popover.component.js +73 -73
  137. package/esm2015/components/ngt-popover/ngt-popover.module.js +17 -17
  138. package/esm2015/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.js +34 -34
  139. package/esm2015/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.js +33 -33
  140. package/esm2015/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.js +47 -47
  141. package/esm2015/components/ngt-portlet/ngt-portlet.component.js +58 -58
  142. package/esm2015/components/ngt-portlet/ngt-portlet.module.js +32 -32
  143. package/esm2015/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.js +19 -19
  144. package/esm2015/components/ngt-radio-button/ngt-radio-button.component.js +103 -103
  145. package/esm2015/components/ngt-radio-button/ngt-radio-button.module.js +20 -20
  146. package/esm2015/components/ngt-section/ngt-section.component.js +101 -101
  147. package/esm2015/components/ngt-section/ngt-section.module.js +21 -21
  148. package/esm2015/components/ngt-select/ngt-select.component.js +488 -488
  149. package/esm2015/components/ngt-select/ngt-select.directive.js +35 -35
  150. package/esm2015/components/ngt-select/ngt-select.module.js +40 -40
  151. package/esm2015/components/ngt-shining/ngt-shining.component.js +41 -41
  152. package/esm2015/components/ngt-shining/ngt-shining.module.js +15 -15
  153. package/esm2015/components/ngt-sidenav/ngt-sidenav.component.js +123 -123
  154. package/esm2015/components/ngt-sidenav/ngt-sidenav.module.js +15 -15
  155. package/esm2015/components/ngt-slider/ngt-slider.component.js +82 -82
  156. package/esm2015/components/ngt-slider/ngt-slider.module.js +17 -17
  157. package/esm2015/components/ngt-svg/ngt-svg.component.js +52 -52
  158. package/esm2015/components/ngt-svg/ngt-svg.module.js +19 -19
  159. package/esm2015/components/ngt-tag/ngt-tag.component.js +36 -36
  160. package/esm2015/components/ngt-tag/ngt-tag.module.js +17 -17
  161. package/esm2015/components/ngt-textarea/ngt-textarea.component.js +210 -210
  162. package/esm2015/components/ngt-textarea/ngt-textarea.module.js +26 -26
  163. package/esm2015/components/ngt-validation/ngt-validation.component.js +24 -24
  164. package/esm2015/components/ngt-validation/ngt-validation.module.js +15 -15
  165. package/esm2015/directives/ngt-stylizable/ngt-stylizable.directive.js +227 -227
  166. package/esm2015/directives/ngt-stylizable/ngt-stylizable.module.js +15 -15
  167. package/esm2015/enums/size.enum.js +11 -11
  168. package/esm2015/helpers/enum/enum.js +7 -7
  169. package/esm2015/helpers/form/form.js +14 -14
  170. package/esm2015/helpers/routing/route.js +11 -11
  171. package/esm2015/helpers/uuid.js +10 -10
  172. package/esm2015/ng-tailwind.js +10 -10
  173. package/esm2015/public-api.js +120 -120
  174. package/esm2015/services/http/ngt-attachment-http.service.js +3 -3
  175. package/esm2015/services/http/ngt-http-form.service.js +3 -3
  176. package/esm2015/services/http/ngt-http-resource.service.js +3 -3
  177. package/esm2015/services/http/ngt-http-validation.service.js +3 -3
  178. package/esm2015/services/http/ngt-http.service.js +3 -3
  179. package/esm2015/services/http/ngt-translate.service.js +3 -3
  180. package/esm2015/services/ngt-stylizable/ngt-stylizable.service.js +273 -273
  181. package/fesm2015/ng-tailwind.js +6690 -6690
  182. package/fesm2015/ng-tailwind.js.map +1 -1
  183. package/helpers/enum/enum.d.ts +1 -1
  184. package/helpers/form/form.d.ts +4 -4
  185. package/helpers/routing/route.d.ts +2 -2
  186. package/helpers/uuid.d.ts +1 -1
  187. package/ng-tailwind.d.ts +10 -10
  188. package/ng-tailwind.metadata.json +1 -1
  189. package/package.json +2 -2
  190. package/public-api.d.ts +82 -82
  191. package/services/http/ngt-attachment-http.service.d.ts +10 -10
  192. package/services/http/ngt-http-form.service.d.ts +5 -5
  193. package/services/http/ngt-http-resource.service.d.ts +12 -12
  194. package/services/http/ngt-http-validation.service.d.ts +11 -11
  195. package/services/http/ngt-http.service.d.ts +27 -27
  196. package/services/http/ngt-translate.service.d.ts +29 -29
  197. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -96
@@ -1,273 +1,273 @@
1
- export class NgtStylizableService {
2
- get color() {
3
- return this._color;
4
- }
5
- set color(color) {
6
- if (color.bg) {
7
- color.bg = this.getQualifiedValue('bg-', color.bg);
8
- }
9
- if (color.text) {
10
- color.text = this.getQualifiedValue('text-', color.text);
11
- }
12
- if (color.border) {
13
- color.border = this.getQualifiedValue('border-', color.border);
14
- }
15
- this._color = color;
16
- }
17
- set textColor(textColor) {
18
- this._color = this._color ? this._color : {};
19
- this._color.text = this.getQualifiedValue('text-', textColor);
20
- }
21
- set bgColor(bgColor) {
22
- this._color = this._color ? this._color : {};
23
- this._color.bg = this.getQualifiedValue('bg-', bgColor);
24
- }
25
- set borderColor(borderColor) {
26
- this._color = this._color ? this._color : {};
27
- this._color.border = this.getQualifiedValue('border-', borderColor);
28
- }
29
- get h() {
30
- return this._h;
31
- }
32
- set h(h) {
33
- this._h = this.getQualifiedValue('h-', h);
34
- }
35
- get w() {
36
- return this._w;
37
- }
38
- set w(w) {
39
- this._w = this.getQualifiedValue('w-', w);
40
- }
41
- get p() {
42
- return this._p;
43
- }
44
- set p(p) {
45
- this._p = this.getQualifiedValue('p-', p);
46
- }
47
- get px() {
48
- return this._px;
49
- }
50
- set px(px) {
51
- this._px = this.getQualifiedValue('px-', px);
52
- }
53
- get py() {
54
- return this._py;
55
- }
56
- set py(py) {
57
- this._py = this.getQualifiedValue('py-', py);
58
- }
59
- get pt() {
60
- return this._pt;
61
- }
62
- set pt(pt) {
63
- this._pt = this.getQualifiedValue('pt-', pt);
64
- }
65
- get pr() {
66
- return this._pr;
67
- }
68
- set pr(pr) {
69
- this._pr = this.getQualifiedValue('pr-', pr);
70
- }
71
- get pb() {
72
- return this._pb;
73
- }
74
- set pb(pb) {
75
- this._pb = this.getQualifiedValue('pb-', pb);
76
- }
77
- get pl() {
78
- return this._pl;
79
- }
80
- set pl(pl) {
81
- this._pl = this.getQualifiedValue('pl-', pl);
82
- }
83
- get m() {
84
- return this._m;
85
- }
86
- set m(m) {
87
- this._m = this.getQualifiedValue('m-', m);
88
- }
89
- get mx() {
90
- return this._mx;
91
- }
92
- set mx(mx) {
93
- this._mx = this.getQualifiedValue('mx-', mx);
94
- }
95
- get my() {
96
- return this._my;
97
- }
98
- set my(my) {
99
- this._my = this.getQualifiedValue('my-', my);
100
- }
101
- get mt() {
102
- return this._mt;
103
- }
104
- set mt(mt) {
105
- this._mt = this.getQualifiedValue('mt-', mt);
106
- }
107
- get mr() {
108
- return this._mr;
109
- }
110
- set mr(mr) {
111
- this._mr = this.getQualifiedValue('mr-', mr);
112
- }
113
- get mb() {
114
- return this._mb;
115
- }
116
- set mb(mb) {
117
- this._mb = this.getQualifiedValue('mb-', mb);
118
- }
119
- get ml() {
120
- return this._ml;
121
- }
122
- set ml(ml) {
123
- this._ml = this.getQualifiedValue('ml-', ml);
124
- }
125
- get border() {
126
- return this._border;
127
- }
128
- set border(border) {
129
- this._border = this.getQualifiedValue('border', border);
130
- }
131
- get shadow() {
132
- return this._shadow;
133
- }
134
- set shadow(shadow) {
135
- this._shadow = this.getQualifiedValue('shadow', shadow);
136
- }
137
- get rounded() {
138
- return this._rounded;
139
- }
140
- set rounded(rounded) {
141
- this._rounded = this.getQualifiedValue('rounded', rounded);
142
- }
143
- get font() {
144
- return this._font;
145
- }
146
- set font(font) {
147
- this._font = this.getQualifiedValue('font', font);
148
- }
149
- get text() {
150
- return this._text;
151
- }
152
- set text(text) {
153
- this._text = this.getQualifiedValue('text', text);
154
- }
155
- get breakWords() {
156
- return this._breakWords;
157
- }
158
- set breakWords(breakWords) {
159
- this._breakWords = this.getQualifiedValue('break', breakWords);
160
- }
161
- get overflow() {
162
- return this._overflow;
163
- }
164
- set overflow(overflow) {
165
- this._overflow = this.getQualifiedValue('overflow', overflow);
166
- }
167
- get position() {
168
- return this._position;
169
- }
170
- set position(position) {
171
- this._position = position;
172
- }
173
- get justifyContent() {
174
- return this._justifyContent;
175
- }
176
- set justifyContent(justifyContent) {
177
- this._justifyContent = this.getQualifiedValue('justify', justifyContent);
178
- }
179
- get cursor() {
180
- return this._cursor;
181
- }
182
- set cursor(cursor) {
183
- this._cursor = this.getQualifiedValue('cursor', cursor);
184
- }
185
- get fontCase() {
186
- return this._fontCase;
187
- }
188
- set fontCase(fontCase) {
189
- this._fontCase = this.getQualifiedValue('', fontCase);
190
- }
191
- load(injector, style, defaultValue = null, inheritanceStyles = []) {
192
- let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});
193
- defaultValue = defaultValue ? defaultValue : {};
194
- let requestedStyle = injector.get(style + 'Style', defaultValue);
195
- this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));
196
- inheritanceStyles.forEach(style => {
197
- let requestedStyle = injector.get(style, {});
198
- this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
199
- });
200
- this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
201
- }
202
- compile(styles) {
203
- return styles
204
- .map((style) => this.getQualifiedStyle(style))
205
- .join(' ');
206
- }
207
- loadObjectProperties(targetObject, object, properties) {
208
- properties.forEach((key) => {
209
- if (typeof (object[key]) === 'object') {
210
- targetObject[key] = targetObject[key] ? targetObject[key] : {};
211
- targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));
212
- }
213
- else {
214
- targetObject[key] = object[key];
215
- }
216
- });
217
- return targetObject;
218
- }
219
- getQualifiedStyle(style) {
220
- if (!style.includes('color')) {
221
- return this['_' + style];
222
- }
223
- switch (style) {
224
- case 'color.bg': return this._color.bg;
225
- case 'color.text': return this._color.text;
226
- case 'color.border': return this._color.border;
227
- }
228
- }
229
- getAllowedKeys(style) {
230
- let keys = Object.keys(style);
231
- if (Array.isArray(keys)) {
232
- return keys.filter(key => [
233
- 'color',
234
- 'h',
235
- 'w',
236
- 'p',
237
- 'px',
238
- 'py',
239
- 'pt',
240
- 'pr',
241
- 'pb',
242
- 'pl',
243
- 'm',
244
- 'mx',
245
- 'my',
246
- 'mt',
247
- 'mr',
248
- 'mb',
249
- 'ml',
250
- 'border',
251
- 'shadow',
252
- 'rounded',
253
- 'font',
254
- 'text',
255
- 'breakWords',
256
- 'overflow',
257
- 'position',
258
- 'justifyContent',
259
- 'cursor',
260
- 'fontCase'
261
- ].includes(key));
262
- }
263
- }
264
- getQualifiedValue(requiredPrefix, value) {
265
- value.split(' ').forEach((item) => {
266
- if (!item.includes(requiredPrefix)) {
267
- throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');
268
- }
269
- });
270
- return value;
271
- }
272
- }
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXN0eWxpemFibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxvQkFBb0I7SUE4QjdCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDVixLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ1osS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNkLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsU0FBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxPQUFPO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLFdBQVc7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxNQUFjO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxNQUFjO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxPQUFlO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxJQUFZO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxJQUFZO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsVUFBa0I7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLFFBQWdCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFFBQVEsQ0FBQyxRQUFnQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxjQUFjLENBQUMsY0FBc0I7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsTUFBTSxDQUFDLE1BQWM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLFFBQWdCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sSUFBSSxDQUFDLFFBQWtCLEVBQUUsS0FBYSxFQUFFLFlBQVksR0FBRyxJQUFJLEVBQUUsaUJBQWlCLEdBQUcsRUFBRTtRQUN0RixJQUFJLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXhELFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRWhELElBQUksY0FBYyxHQUF5QixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFdkYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRXJGLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixJQUFJLGNBQWMsR0FBeUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBcUI7UUFDaEMsT0FBTyxNQUFNO2FBQ1IsR0FBRyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQXlCO1FBQ3hFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2QixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQ25DLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNHO2lCQUFNO2dCQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbkM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUVELFFBQVEsS0FBSyxFQUFFO1lBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssWUFBWSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUMzQyxLQUFLLGNBQWMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDbEQ7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQTJCO1FBQzlDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixPQUFPO2dCQUNQLEdBQUc7Z0JBQ0gsR0FBRztnQkFDSCxHQUFHO2dCQUNILElBQUk7Z0JBQ0osSUFBSTtnQkFDSixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osSUFBSTtnQkFDSixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsSUFBSTtnQkFDSixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osSUFBSTtnQkFDSixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osUUFBUTtnQkFDUixRQUFRO2dCQUNSLFNBQVM7Z0JBQ1QsTUFBTTtnQkFDTixNQUFNO2dCQUNOLFlBQVk7Z0JBQ1osVUFBVTtnQkFDVixVQUFVO2dCQUNWLGdCQUFnQjtnQkFDaEIsUUFBUTtnQkFDUixVQUFVO2FBQ2IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNwQjtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxjQUFzQixFQUFFLEtBQWE7UUFDM0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE5ndFN0eWxpemFibGVTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2NvbG9yOiBhbnk7XHJcbiAgICBwcml2YXRlIF9oOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF93OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9wOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9weDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfcHk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3B0OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9wcjogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfcGI6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3BsOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9tOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9teDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfbXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX210OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9tcjogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfbWI6IHN0cmluZztcclxuICAgIHByaXZhdGUgX21sOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9ib3JkZXI6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3NoYWRvdzogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfcm91bmRlZDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfZm9udDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfdGV4dDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfYnJlYWtXb3Jkczogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3c6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9qdXN0aWZ5Q29udGVudDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfY3Vyc29yOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9mb250Q2FzZTogc3RyaW5nO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgY29sb3IoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgY29sb3IoY29sb3IpIHtcclxuICAgICAgICBpZiAoY29sb3IuYmcpIHtcclxuICAgICAgICAgICAgY29sb3IuYmcgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdiZy0nLCBjb2xvci5iZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29sb3IudGV4dCkge1xyXG4gICAgICAgICAgICBjb2xvci50ZXh0ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgndGV4dC0nLCBjb2xvci50ZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb2xvci5ib3JkZXIpIHtcclxuICAgICAgICAgICAgY29sb3IuYm9yZGVyID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnYm9yZGVyLScsIGNvbG9yLmJvcmRlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9jb2xvciA9IGNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgdGV4dENvbG9yKHRleHRDb2xvcikge1xyXG4gICAgICAgIHRoaXMuX2NvbG9yID0gdGhpcy5fY29sb3IgPyB0aGlzLl9jb2xvciA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2NvbG9yLnRleHQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCd0ZXh0LScsIHRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBiZ0NvbG9yKGJnQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jb2xvciA9IHRoaXMuX2NvbG9yID8gdGhpcy5fY29sb3IgOiB7fTtcclxuICAgICAgICB0aGlzLl9jb2xvci5iZyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2JnLScsIGJnQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgYm9yZGVyQ29sb3IoYm9yZGVyQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jb2xvciA9IHRoaXMuX2NvbG9yID8gdGhpcy5fY29sb3IgOiB7fTtcclxuICAgICAgICB0aGlzLl9jb2xvci5ib3JkZXIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdib3JkZXItJywgYm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgaChoOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9oID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnaC0nLCBoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHcoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHcodzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3ctJywgdyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3A7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBwKHA6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3AgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdwLScsIHApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcHgoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBweChweDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fcHggPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdweC0nLCBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBweSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9weTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHB5KHB5OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9weSA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3B5LScsIHB5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHB0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3B0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgcHQocHQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3B0ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncHQtJywgcHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcHIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBwcihwcjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fcHIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdwci0nLCBwcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwYigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHBiKHBiOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9wYiA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3BiLScsIHBiKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHBsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgcGwocGw6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3BsID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncGwtJywgcGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbShtOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbS0nLCBtKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG14KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX214O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbXgobXg6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX214ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbXgtJywgbXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbXk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBteShteTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbXkgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdteS0nLCBteSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtdCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tdDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IG10KG10OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tdCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ210LScsIG10KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1yKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbXIobXI6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX21yID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbXItJywgbXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbWIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBtYihtYjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbWIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdtYi0nLCBtYik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IG1sKG1sOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tbCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ21sLScsIG1sKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGJvcmRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9ib3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBib3JkZXIoYm9yZGVyOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9ib3JkZXIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdib3JkZXInLCBib3JkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc2hhZG93KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NoYWRvdztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHNoYWRvdyhzaGFkb3c6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NoYWRvdyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3NoYWRvdycsIHNoYWRvdyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCByb3VuZGVkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdW5kZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCByb3VuZGVkKHJvdW5kZWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3JvdW5kZWQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdyb3VuZGVkJywgcm91bmRlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBmb250KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2ZvbnQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdmb250JywgZm9udCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0ZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCB0ZXh0KHRleHQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3RleHQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCd0ZXh0JywgdGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBicmVha1dvcmRzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JyZWFrV29yZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBicmVha1dvcmRzKGJyZWFrV29yZHM6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2JyZWFrV29yZHMgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdicmVhaycsIGJyZWFrV29yZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgb3ZlcmZsb3coKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmZsb3c7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBvdmVyZmxvdyhvdmVyZmxvdzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmZsb3cgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdvdmVyZmxvdycsIG92ZXJmbG93KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgcG9zaXRpb24ocG9zaXRpb246IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBqdXN0aWZ5Q29udGVudCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9qdXN0aWZ5Q29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IGp1c3RpZnlDb250ZW50KGp1c3RpZnlDb250ZW50OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9qdXN0aWZ5Q29udGVudCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2p1c3RpZnknLCBqdXN0aWZ5Q29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjdXJzb3IoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3Vyc29yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgY3Vyc29yKGN1cnNvcjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fY3Vyc29yID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnY3Vyc29yJywgY3Vyc29yKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZvbnRDYXNlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbnRDYXNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgZm9udENhc2UoZm9udENhc2U6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2ZvbnRDYXNlID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnJywgZm9udENhc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBsb2FkKGluamVjdG9yOiBJbmplY3Rvciwgc3R5bGU6IHN0cmluZywgZGVmYXVsdFZhbHVlID0gbnVsbCwgaW5oZXJpdGFuY2VTdHlsZXMgPSBbXSkge1xyXG4gICAgICAgIGxldCBuZ3RHbG9iYWxTdHlsZSA9IGluamVjdG9yLmdldCgnTmd0U3R5bGVHbG9iYWwnLCB7fSk7XHJcblxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZSA/IGRlZmF1bHRWYWx1ZSA6IHt9O1xyXG5cclxuICAgICAgICBsZXQgcmVxdWVzdGVkU3R5bGUgPSA8Tmd0U3R5bGl6YWJsZVNlcnZpY2U+aW5qZWN0b3IuZ2V0KHN0eWxlICsgJ1N0eWxlJywgZGVmYXVsdFZhbHVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0aGlzLCBuZ3RHbG9iYWxTdHlsZSwgdGhpcy5nZXRBbGxvd2VkS2V5cyhuZ3RHbG9iYWxTdHlsZSkpO1xyXG5cclxuICAgICAgICBpbmhlcml0YW5jZVN0eWxlcy5mb3JFYWNoKHN0eWxlID0+IHtcclxuICAgICAgICAgICAgbGV0IHJlcXVlc3RlZFN0eWxlID0gPE5ndFN0eWxpemFibGVTZXJ2aWNlPmluamVjdG9yLmdldChzdHlsZSwge30pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0aGlzLCByZXF1ZXN0ZWRTdHlsZSwgdGhpcy5nZXRBbGxvd2VkS2V5cyhyZXF1ZXN0ZWRTdHlsZSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRPYmplY3RQcm9wZXJ0aWVzKHRoaXMsIHJlcXVlc3RlZFN0eWxlLCB0aGlzLmdldEFsbG93ZWRLZXlzKHJlcXVlc3RlZFN0eWxlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbXBpbGUoc3R5bGVzOiBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICAgICAgcmV0dXJuIHN0eWxlc1xyXG4gICAgICAgICAgICAubWFwKChzdHlsZTogc3RyaW5nKSA9PiB0aGlzLmdldFF1YWxpZmllZFN0eWxlKHN0eWxlKSlcclxuICAgICAgICAgICAgLmpvaW4oJyAnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGxvYWRPYmplY3RQcm9wZXJ0aWVzKHRhcmdldE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICAgICAgcHJvcGVydGllcy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiAob2JqZWN0W2tleV0pID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0T2JqZWN0W2tleV0gPSB0YXJnZXRPYmplY3Rba2V5XSA/IHRhcmdldE9iamVjdFtrZXldIDoge307XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRPYmplY3Rba2V5XSA9IHRoaXMubG9hZE9iamVjdFByb3BlcnRpZXModGFyZ2V0T2JqZWN0W2tleV0sIG9iamVjdFtrZXldLCBPYmplY3Qua2V5cyhvYmplY3Rba2V5XSkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0T2JqZWN0W2tleV0gPSBvYmplY3Rba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGFyZ2V0T2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UXVhbGlmaWVkU3R5bGUoc3R5bGU6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghc3R5bGUuaW5jbHVkZXMoJ2NvbG9yJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXNbJ18nICsgc3R5bGVdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xyXG4gICAgICAgICAgICBjYXNlICdjb2xvci5iZyc6IHJldHVybiB0aGlzLl9jb2xvci5iZztcclxuICAgICAgICAgICAgY2FzZSAnY29sb3IudGV4dCc6IHJldHVybiB0aGlzLl9jb2xvci50ZXh0O1xyXG4gICAgICAgICAgICBjYXNlICdjb2xvci5ib3JkZXInOiByZXR1cm4gdGhpcy5fY29sb3IuYm9yZGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEFsbG93ZWRLZXlzKHN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZSkge1xyXG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMoc3R5bGUpO1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlzKSkge1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5cy5maWx0ZXIoa2V5ID0+IFtcclxuICAgICAgICAgICAgICAgICdjb2xvcicsXHJcbiAgICAgICAgICAgICAgICAnaCcsXHJcbiAgICAgICAgICAgICAgICAndycsXHJcbiAgICAgICAgICAgICAgICAncCcsXHJcbiAgICAgICAgICAgICAgICAncHgnLFxyXG4gICAgICAgICAgICAgICAgJ3B5JyxcclxuICAgICAgICAgICAgICAgICdwdCcsXHJcbiAgICAgICAgICAgICAgICAncHInLFxyXG4gICAgICAgICAgICAgICAgJ3BiJyxcclxuICAgICAgICAgICAgICAgICdwbCcsXHJcbiAgICAgICAgICAgICAgICAnbScsXHJcbiAgICAgICAgICAgICAgICAnbXgnLFxyXG4gICAgICAgICAgICAgICAgJ215JyxcclxuICAgICAgICAgICAgICAgICdtdCcsXHJcbiAgICAgICAgICAgICAgICAnbXInLFxyXG4gICAgICAgICAgICAgICAgJ21iJyxcclxuICAgICAgICAgICAgICAgICdtbCcsXHJcbiAgICAgICAgICAgICAgICAnYm9yZGVyJyxcclxuICAgICAgICAgICAgICAgICdzaGFkb3cnLFxyXG4gICAgICAgICAgICAgICAgJ3JvdW5kZWQnLFxyXG4gICAgICAgICAgICAgICAgJ2ZvbnQnLFxyXG4gICAgICAgICAgICAgICAgJ3RleHQnLFxyXG4gICAgICAgICAgICAgICAgJ2JyZWFrV29yZHMnLFxyXG4gICAgICAgICAgICAgICAgJ292ZXJmbG93JyxcclxuICAgICAgICAgICAgICAgICdwb3NpdGlvbicsXHJcbiAgICAgICAgICAgICAgICAnanVzdGlmeUNvbnRlbnQnLFxyXG4gICAgICAgICAgICAgICAgJ2N1cnNvcicsXHJcbiAgICAgICAgICAgICAgICAnZm9udENhc2UnXHJcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoa2V5KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UXVhbGlmaWVkVmFsdWUocmVxdWlyZWRQcmVmaXg6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHZhbHVlLnNwbGl0KCcgJykuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWl0ZW0uaW5jbHVkZXMocmVxdWlyZWRQcmVmaXgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY2xhc3MgWycgKyBpdGVtICsgJ10sIG11c3QgaGF2ZSBbJyArIHJlcXVpcmVkUHJlZml4ICsgJ10nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuIl19
1
+ export class NgtStylizableService {
2
+ get color() {
3
+ return this._color;
4
+ }
5
+ set color(color) {
6
+ if (color.bg) {
7
+ color.bg = this.getQualifiedValue('bg-', color.bg);
8
+ }
9
+ if (color.text) {
10
+ color.text = this.getQualifiedValue('text-', color.text);
11
+ }
12
+ if (color.border) {
13
+ color.border = this.getQualifiedValue('border-', color.border);
14
+ }
15
+ this._color = color;
16
+ }
17
+ set textColor(textColor) {
18
+ this._color = this._color ? this._color : {};
19
+ this._color.text = this.getQualifiedValue('text-', textColor);
20
+ }
21
+ set bgColor(bgColor) {
22
+ this._color = this._color ? this._color : {};
23
+ this._color.bg = this.getQualifiedValue('bg-', bgColor);
24
+ }
25
+ set borderColor(borderColor) {
26
+ this._color = this._color ? this._color : {};
27
+ this._color.border = this.getQualifiedValue('border-', borderColor);
28
+ }
29
+ get h() {
30
+ return this._h;
31
+ }
32
+ set h(h) {
33
+ this._h = this.getQualifiedValue('h-', h);
34
+ }
35
+ get w() {
36
+ return this._w;
37
+ }
38
+ set w(w) {
39
+ this._w = this.getQualifiedValue('w-', w);
40
+ }
41
+ get p() {
42
+ return this._p;
43
+ }
44
+ set p(p) {
45
+ this._p = this.getQualifiedValue('p-', p);
46
+ }
47
+ get px() {
48
+ return this._px;
49
+ }
50
+ set px(px) {
51
+ this._px = this.getQualifiedValue('px-', px);
52
+ }
53
+ get py() {
54
+ return this._py;
55
+ }
56
+ set py(py) {
57
+ this._py = this.getQualifiedValue('py-', py);
58
+ }
59
+ get pt() {
60
+ return this._pt;
61
+ }
62
+ set pt(pt) {
63
+ this._pt = this.getQualifiedValue('pt-', pt);
64
+ }
65
+ get pr() {
66
+ return this._pr;
67
+ }
68
+ set pr(pr) {
69
+ this._pr = this.getQualifiedValue('pr-', pr);
70
+ }
71
+ get pb() {
72
+ return this._pb;
73
+ }
74
+ set pb(pb) {
75
+ this._pb = this.getQualifiedValue('pb-', pb);
76
+ }
77
+ get pl() {
78
+ return this._pl;
79
+ }
80
+ set pl(pl) {
81
+ this._pl = this.getQualifiedValue('pl-', pl);
82
+ }
83
+ get m() {
84
+ return this._m;
85
+ }
86
+ set m(m) {
87
+ this._m = this.getQualifiedValue('m-', m);
88
+ }
89
+ get mx() {
90
+ return this._mx;
91
+ }
92
+ set mx(mx) {
93
+ this._mx = this.getQualifiedValue('mx-', mx);
94
+ }
95
+ get my() {
96
+ return this._my;
97
+ }
98
+ set my(my) {
99
+ this._my = this.getQualifiedValue('my-', my);
100
+ }
101
+ get mt() {
102
+ return this._mt;
103
+ }
104
+ set mt(mt) {
105
+ this._mt = this.getQualifiedValue('mt-', mt);
106
+ }
107
+ get mr() {
108
+ return this._mr;
109
+ }
110
+ set mr(mr) {
111
+ this._mr = this.getQualifiedValue('mr-', mr);
112
+ }
113
+ get mb() {
114
+ return this._mb;
115
+ }
116
+ set mb(mb) {
117
+ this._mb = this.getQualifiedValue('mb-', mb);
118
+ }
119
+ get ml() {
120
+ return this._ml;
121
+ }
122
+ set ml(ml) {
123
+ this._ml = this.getQualifiedValue('ml-', ml);
124
+ }
125
+ get border() {
126
+ return this._border;
127
+ }
128
+ set border(border) {
129
+ this._border = this.getQualifiedValue('border', border);
130
+ }
131
+ get shadow() {
132
+ return this._shadow;
133
+ }
134
+ set shadow(shadow) {
135
+ this._shadow = this.getQualifiedValue('shadow', shadow);
136
+ }
137
+ get rounded() {
138
+ return this._rounded;
139
+ }
140
+ set rounded(rounded) {
141
+ this._rounded = this.getQualifiedValue('rounded', rounded);
142
+ }
143
+ get font() {
144
+ return this._font;
145
+ }
146
+ set font(font) {
147
+ this._font = this.getQualifiedValue('font', font);
148
+ }
149
+ get text() {
150
+ return this._text;
151
+ }
152
+ set text(text) {
153
+ this._text = this.getQualifiedValue('text', text);
154
+ }
155
+ get breakWords() {
156
+ return this._breakWords;
157
+ }
158
+ set breakWords(breakWords) {
159
+ this._breakWords = this.getQualifiedValue('break', breakWords);
160
+ }
161
+ get overflow() {
162
+ return this._overflow;
163
+ }
164
+ set overflow(overflow) {
165
+ this._overflow = this.getQualifiedValue('overflow', overflow);
166
+ }
167
+ get position() {
168
+ return this._position;
169
+ }
170
+ set position(position) {
171
+ this._position = position;
172
+ }
173
+ get justifyContent() {
174
+ return this._justifyContent;
175
+ }
176
+ set justifyContent(justifyContent) {
177
+ this._justifyContent = this.getQualifiedValue('justify', justifyContent);
178
+ }
179
+ get cursor() {
180
+ return this._cursor;
181
+ }
182
+ set cursor(cursor) {
183
+ this._cursor = this.getQualifiedValue('cursor', cursor);
184
+ }
185
+ get fontCase() {
186
+ return this._fontCase;
187
+ }
188
+ set fontCase(fontCase) {
189
+ this._fontCase = this.getQualifiedValue('', fontCase);
190
+ }
191
+ load(injector, style, defaultValue = null, inheritanceStyles = []) {
192
+ let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});
193
+ defaultValue = defaultValue ? defaultValue : {};
194
+ let requestedStyle = injector.get(style + 'Style', defaultValue);
195
+ this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));
196
+ inheritanceStyles.forEach(style => {
197
+ let requestedStyle = injector.get(style, {});
198
+ this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
199
+ });
200
+ this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
201
+ }
202
+ compile(styles) {
203
+ return styles
204
+ .map((style) => this.getQualifiedStyle(style))
205
+ .join(' ');
206
+ }
207
+ loadObjectProperties(targetObject, object, properties) {
208
+ properties.forEach((key) => {
209
+ if (typeof (object[key]) === 'object') {
210
+ targetObject[key] = targetObject[key] ? targetObject[key] : {};
211
+ targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));
212
+ }
213
+ else {
214
+ targetObject[key] = object[key];
215
+ }
216
+ });
217
+ return targetObject;
218
+ }
219
+ getQualifiedStyle(style) {
220
+ if (!style.includes('color')) {
221
+ return this['_' + style];
222
+ }
223
+ switch (style) {
224
+ case 'color.bg': return this._color.bg;
225
+ case 'color.text': return this._color.text;
226
+ case 'color.border': return this._color.border;
227
+ }
228
+ }
229
+ getAllowedKeys(style) {
230
+ let keys = Object.keys(style);
231
+ if (Array.isArray(keys)) {
232
+ return keys.filter(key => [
233
+ 'color',
234
+ 'h',
235
+ 'w',
236
+ 'p',
237
+ 'px',
238
+ 'py',
239
+ 'pt',
240
+ 'pr',
241
+ 'pb',
242
+ 'pl',
243
+ 'm',
244
+ 'mx',
245
+ 'my',
246
+ 'mt',
247
+ 'mr',
248
+ 'mb',
249
+ 'ml',
250
+ 'border',
251
+ 'shadow',
252
+ 'rounded',
253
+ 'font',
254
+ 'text',
255
+ 'breakWords',
256
+ 'overflow',
257
+ 'position',
258
+ 'justifyContent',
259
+ 'cursor',
260
+ 'fontCase'
261
+ ].includes(key));
262
+ }
263
+ }
264
+ getQualifiedValue(requiredPrefix, value) {
265
+ value.split(' ').forEach((item) => {
266
+ if (!item.includes(requiredPrefix)) {
267
+ throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');
268
+ }
269
+ });
270
+ return value;
271
+ }
272
+ }
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXN0eWxpemFibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxvQkFBb0I7SUE4QjdCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDVixLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ1osS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNkLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsU0FBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxPQUFPO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLFdBQVc7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxD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QyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgTmd0U3R5bGl6YWJsZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2NvbG9yOiBhbnk7XG4gICAgcHJpdmF0ZSBfaDogc3RyaW5nO1xuICAgIHByaXZhdGUgX3c6IHN0cmluZztcbiAgICBwcml2YXRlIF9wOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfcHg6IHN0cmluZztcbiAgICBwcml2YXRlIF9weTogc3RyaW5nO1xuICAgIHByaXZhdGUgX3B0OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfcHI6IHN0cmluZztcbiAgICBwcml2YXRlIF9wYjogc3RyaW5nO1xuICAgIHByaXZhdGUgX3BsOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbTogc3RyaW5nO1xuICAgIHByaXZhdGUgX214OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbXk6IHN0cmluZztcbiAgICBwcml2YXRlIF9tdDogc3RyaW5nO1xuICAgIHByaXZhdGUgX21yOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbWI6IHN0cmluZztcbiAgICBwcml2YXRlIF9tbDogc3RyaW5nO1xuICAgIHByaXZhdGUgX2JvcmRlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgX3NoYWRvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgX3JvdW5kZWQ6IHN0cmluZztcbiAgICBwcml2YXRlIF9mb250OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGV4dDogc3RyaW5nO1xuICAgIHByaXZhdGUgX2JyZWFrV29yZHM6IHN0cmluZztcbiAgICBwcml2YXRlIF9vdmVyZmxvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfanVzdGlmeUNvbnRlbnQ6IHN0cmluZztcbiAgICBwcml2YXRlIF9jdXJzb3I6IHN0cmluZztcbiAgICBwcml2YXRlIF9mb250Q2FzZTogc3RyaW5nO1xuXG4gICAgcHVibGljIGdldCBjb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgY29sb3IoY29sb3IpIHtcbiAgICAgICAgaWYgKGNvbG9yLmJnKSB7XG4gICAgICAgICAgICBjb2xvci5iZyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2JnLScsIGNvbG9yLmJnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2xvci50ZXh0KSB7XG4gICAgICAgICAgICBjb2xvci50ZXh0ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgndGV4dC0nLCBjb2xvci50ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2xvci5ib3JkZXIpIHtcbiAgICAgICAgICAgIGNvbG9yLmJvcmRlciA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2JvcmRlci0nLCBjb2xvci5ib3JkZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY29sb3IgPSBjb2xvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHRleHRDb2xvcih0ZXh0Q29sb3IpIHtcbiAgICAgICAgdGhpcy5fY29sb3IgPSB0aGlzLl9jb2xvciA/IHRoaXMuX2NvbG9yIDoge307XG4gICAgICAgIHRoaXMuX2NvbG9yLnRleHQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCd0ZXh0LScsIHRleHRDb2xvcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBiZ0NvbG9yKGJnQ29sb3IpIHtcbiAgICAgICAgdGhpcy5fY29sb3IgPSB0aGlzLl9jb2xvciA/IHRoaXMuX2NvbG9yIDoge307XG4gICAgICAgIHRoaXMuX2NvbG9yLmJnID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnYmctJywgYmdDb2xvcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBib3JkZXJDb2xvcihib3JkZXJDb2xvcikge1xuICAgICAgICB0aGlzLl9jb2xvciA9IHRoaXMuX2NvbG9yID8gdGhpcy5fY29sb3IgOiB7fTtcbiAgICAgICAgdGhpcy5fY29sb3IuYm9yZGVyID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnYm9yZGVyLScsIGJvcmRlckNvbG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2g7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBoKGg6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9oID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnaC0nLCBoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3c7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB3KHc6IHN0cmluZykge1xuICAgICAgICB0aGlzLl93ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgndy0nLCB3KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3A7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBwKHA6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncC0nLCBwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHB4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9weDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHB4KHB4OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcHggPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdweC0nLCBweCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBweSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBweShweTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3B5ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncHktJywgcHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3B0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcHQocHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wdCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3B0LScsIHB0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHByKHByOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcHIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdwci0nLCBwcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBwYihwYjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3BiID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncGItJywgcGIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGwocGw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wbCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3BsLScsIHBsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG0oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX207XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBtKG06IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbS0nLCBtKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG14KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9teDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG14KG14OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbXggPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdteC0nLCBteCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBteSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbXk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBteShteTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX215ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbXktJywgbXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbXQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX210O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbXQobXQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tdCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ210LScsIG10KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1yKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG1yKG1yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbXIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdtci0nLCBtcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtYigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBtYihtYjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX21iID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbWItJywgbWIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21sO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbWwobWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tbCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ21sLScsIG1sKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvcmRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm9yZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYm9yZGVyKGJvcmRlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2JvcmRlciA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2JvcmRlcicsIGJvcmRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzaGFkb3coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NoYWRvdztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHNoYWRvdyhzaGFkb3c6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zaGFkb3cgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdzaGFkb3cnLCBzaGFkb3cpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm91bmRlZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91bmRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJvdW5kZWQocm91bmRlZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3JvdW5kZWQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdyb3VuZGVkJywgcm91bmRlZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb250KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb250O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZm9udChmb250OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZm9udCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2ZvbnQnLCBmb250KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB0ZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl90ZXh0ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgndGV4dCcsIHRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYnJlYWtXb3JkcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtXb3JkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGJyZWFrV29yZHMoYnJlYWtXb3Jkczogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2JyZWFrV29yZHMgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdicmVhaycsIGJyZWFrV29yZHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb3ZlcmZsb3coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgb3ZlcmZsb3cob3ZlcmZsb3c6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9vdmVyZmxvdyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ292ZXJmbG93Jywgb3ZlcmZsb3cpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zaXRpb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcG9zaXRpb24ocG9zaXRpb246IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQganVzdGlmeUNvbnRlbnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2p1c3RpZnlDb250ZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQganVzdGlmeUNvbnRlbnQoanVzdGlmeUNvbnRlbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9qdXN0aWZ5Q29udGVudCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2p1c3RpZnknLCBqdXN0aWZ5Q29udGVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXJzb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnNvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGN1cnNvcihjdXJzb3I6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9jdXJzb3IgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdjdXJzb3InLCBjdXJzb3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9udENhc2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbnRDYXNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZm9udENhc2UoZm9udENhc2U6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9mb250Q2FzZSA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJycsIGZvbnRDYXNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZChpbmplY3RvcjogSW5qZWN0b3IsIHN0eWxlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSA9IG51bGwsIGluaGVyaXRhbmNlU3R5bGVzID0gW10pIHtcbiAgICAgICAgbGV0IG5ndEdsb2JhbFN0eWxlID0gaW5qZWN0b3IuZ2V0KCdOZ3RTdHlsZUdsb2JhbCcsIHt9KTtcblxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWUgPyBkZWZhdWx0VmFsdWUgOiB7fTtcblxuICAgICAgICBsZXQgcmVxdWVzdGVkU3R5bGUgPSA8Tmd0U3R5bGl6YWJsZVNlcnZpY2U+aW5qZWN0b3IuZ2V0KHN0eWxlICsgJ1N0eWxlJywgZGVmYXVsdFZhbHVlKTtcblxuICAgICAgICB0aGlzLmxvYWRPYmplY3RQcm9wZXJ0aWVzKHRoaXMsIG5ndEdsb2JhbFN0eWxlLCB0aGlzLmdldEFsbG93ZWRLZXlzKG5ndEdsb2JhbFN0eWxlKSk7XG5cbiAgICAgICAgaW5oZXJpdGFuY2VTdHlsZXMuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVxdWVzdGVkU3R5bGUgPSA8Tmd0U3R5bGl6YWJsZVNlcnZpY2U+aW5qZWN0b3IuZ2V0KHN0eWxlLCB7fSk7XG5cbiAgICAgICAgICAgIHRoaXMubG9hZE9iamVjdFByb3BlcnRpZXModGhpcywgcmVxdWVzdGVkU3R5bGUsIHRoaXMuZ2V0QWxsb3dlZEtleXMocmVxdWVzdGVkU3R5bGUpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0aGlzLCByZXF1ZXN0ZWRTdHlsZSwgdGhpcy5nZXRBbGxvd2VkS2V5cyhyZXF1ZXN0ZWRTdHlsZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21waWxlKHN0eWxlczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICByZXR1cm4gc3R5bGVzXG4gICAgICAgICAgICAubWFwKChzdHlsZTogc3RyaW5nKSA9PiB0aGlzLmdldFF1YWxpZmllZFN0eWxlKHN0eWxlKSlcbiAgICAgICAgICAgIC5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkT2JqZWN0UHJvcGVydGllcyh0YXJnZXRPYmplY3QsIG9iamVjdCwgcHJvcGVydGllczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBwcm9wZXJ0aWVzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiAob2JqZWN0W2tleV0pID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIHRhcmdldE9iamVjdFtrZXldID0gdGFyZ2V0T2JqZWN0W2tleV0gPyB0YXJnZXRPYmplY3Rba2V5XSA6IHt9O1xuICAgICAgICAgICAgICAgIHRhcmdldE9iamVjdFtrZXldID0gdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0YXJnZXRPYmplY3Rba2V5XSwgb2JqZWN0W2tleV0sIE9iamVjdC5rZXlzKG9iamVjdFtrZXldKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRhcmdldE9iamVjdFtrZXldID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0YXJnZXRPYmplY3Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWFsaWZpZWRTdHlsZShzdHlsZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghc3R5bGUuaW5jbHVkZXMoJ2NvbG9yJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzWydfJyArIHN0eWxlXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NvbG9yLmJnJzogcmV0dXJuIHRoaXMuX2NvbG9yLmJnO1xuICAgICAgICAgICAgY2FzZSAnY29sb3IudGV4dCc6IHJldHVybiB0aGlzLl9jb2xvci50ZXh0O1xuICAgICAgICAgICAgY2FzZSAnY29sb3IuYm9yZGVyJzogcmV0dXJuIHRoaXMuX2NvbG9yLmJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsb3dlZEtleXMoc3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlKSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMoc3R5bGUpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleXMpKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5cy5maWx0ZXIoa2V5ID0+IFtcbiAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICdoJyxcbiAgICAgICAgICAgICAgICAndycsXG4gICAgICAgICAgICAgICAgJ3AnLFxuICAgICAgICAgICAgICAgICdweCcsXG4gICAgICAgICAgICAgICAgJ3B5JyxcbiAgICAgICAgICAgICAgICAncHQnLFxuICAgICAgICAgICAgICAgICdwcicsXG4gICAgICAgICAgICAgICAgJ3BiJyxcbiAgICAgICAgICAgICAgICAncGwnLFxuICAgICAgICAgICAgICAgICdtJyxcbiAgICAgICAgICAgICAgICAnbXgnLFxuICAgICAgICAgICAgICAgICdteScsXG4gICAgICAgICAgICAgICAgJ210JyxcbiAgICAgICAgICAgICAgICAnbXInLFxuICAgICAgICAgICAgICAgICdtYicsXG4gICAgICAgICAgICAgICAgJ21sJyxcbiAgICAgICAgICAgICAgICAnYm9yZGVyJyxcbiAgICAgICAgICAgICAgICAnc2hhZG93JyxcbiAgICAgICAgICAgICAgICAncm91bmRlZCcsXG4gICAgICAgICAgICAgICAgJ2ZvbnQnLFxuICAgICAgICAgICAgICAgICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAnYnJlYWtXb3JkcycsXG4gICAgICAgICAgICAgICAgJ292ZXJmbG93JyxcbiAgICAgICAgICAgICAgICAncG9zaXRpb24nLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5Q29udGVudCcsXG4gICAgICAgICAgICAgICAgJ2N1cnNvcicsXG4gICAgICAgICAgICAgICAgJ2ZvbnRDYXNlJ1xuICAgICAgICAgICAgXS5pbmNsdWRlcyhrZXkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UXVhbGlmaWVkVmFsdWUocmVxdWlyZWRQcmVmaXg6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgICAgICB2YWx1ZS5zcGxpdCgnICcpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5pbmNsdWRlcyhyZXF1aXJlZFByZWZpeCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY2xhc3MgWycgKyBpdGVtICsgJ10sIG11c3QgaGF2ZSBbJyArIHJlcXVpcmVkUHJlZml4ICsgJ10nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==