@testgorilla/tgo-ui 1.13.14 → 1.13.15

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 (249) hide show
  1. package/components/file-upload/file-upload.component.d.ts +4 -2
  2. package/components/icon/icon.component.d.ts +5 -1
  3. package/components/icon/icon.config.d.ts +1 -0
  4. package/components/icon/icon.model.d.ts +5 -2
  5. package/esm2022/assets/i18n/en.json +2 -1
  6. package/esm2022/components/autocomplete/autocomplete.component.mjs +21 -6
  7. package/esm2022/components/avatar/avatar.component.mjs +3 -3
  8. package/esm2022/components/button/button.component.mjs +7 -7
  9. package/esm2022/components/checkbox/checkbox.component.mjs +2 -2
  10. package/esm2022/components/field/field.component.mjs +2 -2
  11. package/esm2022/components/file-upload/file-upload.component.mjs +45 -30
  12. package/esm2022/components/icon/icon.component.mjs +24 -7
  13. package/esm2022/components/icon/icon.config.mjs +229 -1
  14. package/esm2022/components/icon/icon.model.mjs +1 -1
  15. package/esm2022/components/progress-bar/progress-bar.component.mjs +2 -2
  16. package/esm2022/components/radio-button/radio-button.component.mjs +3 -4
  17. package/esm2022/components/side-sheet/side-sheet.component.mjs +3 -3
  18. package/fesm2022/testgorilla-tgo-ui.mjs +333 -58
  19. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  20. package/package.json +1 -1
  21. package/src/assets/i18n/en.json +2 -1
  22. package/src/assets/icons/rebrand/Archive-filled.svg +3 -0
  23. package/src/assets/icons/rebrand/Archive-in-line.svg +3 -0
  24. package/src/assets/icons/rebrand/Arrow-chevron-down-filled.svg +3 -0
  25. package/src/assets/icons/rebrand/Arrow-chevron-down-in-line.svg +3 -0
  26. package/src/assets/icons/rebrand/Arrow-chevron-left-filled.svg +3 -0
  27. package/src/assets/icons/rebrand/Arrow-chevron-left-in-line.svg +3 -0
  28. package/src/assets/icons/rebrand/Arrow-chevron-right-filled.svg +3 -0
  29. package/src/assets/icons/rebrand/Arrow-chevron-right-in-line.svg +3 -0
  30. package/src/assets/icons/rebrand/Arrow-chevron-up-filled.svg +3 -0
  31. package/src/assets/icons/rebrand/Arrow-chevron-up-in-line.svg +3 -0
  32. package/src/assets/icons/rebrand/Arrow-down-filled.svg +3 -0
  33. package/src/assets/icons/rebrand/Arrow-down-in-line.svg +3 -0
  34. package/src/assets/icons/rebrand/Arrow-up-filled.svg +3 -0
  35. package/src/assets/icons/rebrand/Arrow-up-in-line.svg +3 -0
  36. package/src/assets/icons/rebrand/Assessment-filled.svg +3 -0
  37. package/src/assets/icons/rebrand/Assessment-in-line.svg +3 -0
  38. package/src/assets/icons/rebrand/Attach-filled.svg +3 -0
  39. package/src/assets/icons/rebrand/Attach-in-line.svg +3 -0
  40. package/src/assets/icons/rebrand/Attempts-filled.svg +3 -0
  41. package/src/assets/icons/rebrand/Attempts-in-line.svg +3 -0
  42. package/src/assets/icons/rebrand/Book-filled.svg +3 -0
  43. package/src/assets/icons/rebrand/Book-in-line.svg +3 -0
  44. package/src/assets/icons/rebrand/Calendar-filled.svg +3 -0
  45. package/src/assets/icons/rebrand/Calendar-in-line.svg +3 -0
  46. package/src/assets/icons/rebrand/Candidates-filled.svg +3 -0
  47. package/src/assets/icons/rebrand/Candidates-in-line.svg +3 -0
  48. package/src/assets/icons/rebrand/Chat-filled.svg +3 -0
  49. package/src/assets/icons/rebrand/Chat-in-line.svg +3 -0
  50. package/src/assets/icons/rebrand/Check-filled.svg +3 -0
  51. package/src/assets/icons/rebrand/Check-in-line.svg +3 -0
  52. package/src/assets/icons/rebrand/Check-round-filled.svg +3 -0
  53. package/src/assets/icons/rebrand/Check-round-in-line.svg +3 -0
  54. package/src/assets/icons/rebrand/Clone-filled.svg +3 -0
  55. package/src/assets/icons/rebrand/Clone-in-line.svg +3 -0
  56. package/src/assets/icons/rebrand/Close-filled.svg +3 -0
  57. package/src/assets/icons/rebrand/Close-in-line.svg +3 -0
  58. package/src/assets/icons/rebrand/Code-filled.svg +3 -0
  59. package/src/assets/icons/rebrand/Code-in-line.svg +3 -0
  60. package/src/assets/icons/rebrand/Company-filled.svg +3 -0
  61. package/src/assets/icons/rebrand/Company-in-line.svg +3 -0
  62. package/src/assets/icons/rebrand/Copy-filled.svg +3 -0
  63. package/src/assets/icons/rebrand/Copy-in-line.svg +3 -0
  64. package/src/assets/icons/rebrand/Delete-filled.svg +3 -0
  65. package/src/assets/icons/rebrand/Delete-in-line.svg +3 -0
  66. package/src/assets/icons/rebrand/Devices-filled.svg +3 -0
  67. package/src/assets/icons/rebrand/Devices-in-line.svg +3 -0
  68. package/src/assets/icons/rebrand/Document-filled.svg +3 -0
  69. package/src/assets/icons/rebrand/Document-in-line.svg +3 -0
  70. package/src/assets/icons/rebrand/Download-filled.svg +3 -0
  71. package/src/assets/icons/rebrand/Download-in-line.svg +3 -0
  72. package/src/assets/icons/rebrand/Edit-filled.svg +3 -0
  73. package/src/assets/icons/rebrand/Edit-in-line.svg +3 -0
  74. package/src/assets/icons/rebrand/Edit-text-filled.svg +3 -0
  75. package/src/assets/icons/rebrand/Edit-text-in-line.svg +3 -0
  76. package/src/assets/icons/rebrand/Employee-filled.svg +3 -0
  77. package/src/assets/icons/rebrand/Employee-in-line.svg +3 -0
  78. package/src/assets/icons/rebrand/Error-filled.svg +3 -0
  79. package/src/assets/icons/rebrand/Error-in-line.svg +3 -0
  80. package/src/assets/icons/rebrand/Essay-filled.svg +3 -0
  81. package/src/assets/icons/rebrand/Essay-in-line.svg +3 -0
  82. package/src/assets/icons/rebrand/Experience-filled.svg +3 -0
  83. package/src/assets/icons/rebrand/Experience-in-line.svg +3 -0
  84. package/src/assets/icons/rebrand/Facebook-filled.svg +3 -0
  85. package/src/assets/icons/rebrand/Facebook-in-line.svg +3 -0
  86. package/src/assets/icons/rebrand/Filter-filled.svg +3 -0
  87. package/src/assets/icons/rebrand/Filter-in-line.svg +3 -0
  88. package/src/assets/icons/rebrand/Fire-filled.svg +3 -0
  89. package/src/assets/icons/rebrand/Fire-in-line.svg +3 -0
  90. package/src/assets/icons/rebrand/Folder-filled.svg +3 -0
  91. package/src/assets/icons/rebrand/Folder-in-line.svg +3 -0
  92. package/src/assets/icons/rebrand/Full-screen-filled.svg +3 -0
  93. package/src/assets/icons/rebrand/Full-screen-in-line.svg +3 -0
  94. package/src/assets/icons/rebrand/Gendeg-male-filled.svg +3 -0
  95. package/src/assets/icons/rebrand/Gendeg-male-in-line.svg +3 -0
  96. package/src/assets/icons/rebrand/Gender-female-filled.svg +3 -0
  97. package/src/assets/icons/rebrand/Gender-female-in-line.svg +3 -0
  98. package/src/assets/icons/rebrand/Gift-filled.svg +3 -0
  99. package/src/assets/icons/rebrand/Gift-in-line.svg +3 -0
  100. package/src/assets/icons/rebrand/Grab-filled.svg +3 -0
  101. package/src/assets/icons/rebrand/Grab-in-line.svg +3 -0
  102. package/src/assets/icons/rebrand/Help-filled.svg +3 -0
  103. package/src/assets/icons/rebrand/Help-in-line.svg +3 -0
  104. package/src/assets/icons/rebrand/Hide-filled.svg +3 -0
  105. package/src/assets/icons/rebrand/Hide-in-line.svg +3 -0
  106. package/src/assets/icons/rebrand/Image-filled.svg +3 -0
  107. package/src/assets/icons/rebrand/Image-in-line.svg +3 -0
  108. package/src/assets/icons/rebrand/Info-filled.svg +3 -0
  109. package/src/assets/icons/rebrand/Info-in-line.svg +3 -0
  110. package/src/assets/icons/rebrand/Instagram-filled.svg +3 -0
  111. package/src/assets/icons/rebrand/Instagram-in-line.svg +3 -0
  112. package/src/assets/icons/rebrand/Integration-filled.svg +3 -0
  113. package/src/assets/icons/rebrand/Integration-in-line.svg +3 -0
  114. package/src/assets/icons/rebrand/Invite-filled.svg +3 -0
  115. package/src/assets/icons/rebrand/Invite-in-line.svg +3 -0
  116. package/src/assets/icons/rebrand/Language-filled.svg +3 -0
  117. package/src/assets/icons/rebrand/Language-in-line.svg +3 -0
  118. package/src/assets/icons/rebrand/Layout-filled.svg +3 -0
  119. package/src/assets/icons/rebrand/Layout-in-line.svg +3 -0
  120. package/src/assets/icons/rebrand/Learn-filled.svg +3 -0
  121. package/src/assets/icons/rebrand/Learn-in-line.svg +3 -0
  122. package/src/assets/icons/rebrand/Level-filled.svg +3 -0
  123. package/src/assets/icons/rebrand/Level-in-line.svg +3 -0
  124. package/src/assets/icons/rebrand/Light-bulb-filled.svg +3 -0
  125. package/src/assets/icons/rebrand/Light-bulb-in-line.svg +3 -0
  126. package/src/assets/icons/rebrand/Link-filled.svg +3 -0
  127. package/src/assets/icons/rebrand/Link-in-line.svg +3 -0
  128. package/src/assets/icons/rebrand/Linkedin-filled.svg +3 -0
  129. package/src/assets/icons/rebrand/Linkedin-in-line.svg +3 -0
  130. package/src/assets/icons/rebrand/Localization-filled.svg +3 -0
  131. package/src/assets/icons/rebrand/Localization-in-line.svg +3 -0
  132. package/src/assets/icons/rebrand/Location-filled.svg +3 -0
  133. package/src/assets/icons/rebrand/Location-in-line.svg +3 -0
  134. package/src/assets/icons/rebrand/Lock-filled.svg +3 -0
  135. package/src/assets/icons/rebrand/Lock-in-line.svg +3 -0
  136. package/src/assets/icons/rebrand/Logout-filled.svg +3 -0
  137. package/src/assets/icons/rebrand/Logout-in-line.svg +3 -0
  138. package/src/assets/icons/rebrand/Menu-burger-filled.svg +3 -0
  139. package/src/assets/icons/rebrand/Menu-burger-in-line.svg +3 -0
  140. package/src/assets/icons/rebrand/Menu-ellipses-filled.svg +3 -0
  141. package/src/assets/icons/rebrand/Menu-ellipses-in-line.svg +3 -0
  142. package/src/assets/icons/rebrand/Mic-filled.svg +3 -0
  143. package/src/assets/icons/rebrand/Mic-in-line.svg +3 -0
  144. package/src/assets/icons/rebrand/Minimize-filled.svg +3 -0
  145. package/src/assets/icons/rebrand/Minimize-in-line.svg +3 -0
  146. package/src/assets/icons/rebrand/Minus-filled.svg +3 -0
  147. package/src/assets/icons/rebrand/Minus-in-line.svg +3 -0
  148. package/src/assets/icons/rebrand/Mouse-filled.svg +3 -0
  149. package/src/assets/icons/rebrand/Mouse-in-line.svg +3 -0
  150. package/src/assets/icons/rebrand/Multi-choice-filled.svg +3 -0
  151. package/src/assets/icons/rebrand/Multi-choice-in-line.svg +3 -0
  152. package/src/assets/icons/rebrand/Notification-bell-filled.svg +3 -0
  153. package/src/assets/icons/rebrand/Notification-bell-in-line.svg +3 -0
  154. package/src/assets/icons/rebrand/Password-filled.svg +3 -0
  155. package/src/assets/icons/rebrand/Password-in-line.svg +3 -0
  156. package/src/assets/icons/rebrand/Path-filled.svg +3 -0
  157. package/src/assets/icons/rebrand/Path-in-line.svg +3 -0
  158. package/src/assets/icons/rebrand/Pause-filled.svg +3 -0
  159. package/src/assets/icons/rebrand/Pause-in-line.svg +3 -0
  160. package/src/assets/icons/rebrand/Plan-billing-filled.svg +3 -0
  161. package/src/assets/icons/rebrand/Plan-billing-in-line.svg +3 -0
  162. package/src/assets/icons/rebrand/Play-filled.svg +3 -0
  163. package/src/assets/icons/rebrand/Play-in-line.svg +3 -0
  164. package/src/assets/icons/rebrand/Plus-filled.svg +3 -0
  165. package/src/assets/icons/rebrand/Plus-in-line.svg +3 -0
  166. package/src/assets/icons/rebrand/Premium-filled.svg +3 -0
  167. package/src/assets/icons/rebrand/Premium-in-line.svg +3 -0
  168. package/src/assets/icons/rebrand/Question-count-filled.svg +3 -0
  169. package/src/assets/icons/rebrand/Question-count-in-line.svg +3 -0
  170. package/src/assets/icons/rebrand/Question-filled.svg +3 -0
  171. package/src/assets/icons/rebrand/Question-in-line.svg +3 -0
  172. package/src/assets/icons/rebrand/Record-filled.svg +3 -0
  173. package/src/assets/icons/rebrand/Record-in-line.svg +3 -0
  174. package/src/assets/icons/rebrand/Reject-filled.svg +3 -0
  175. package/src/assets/icons/rebrand/Reject-in-line.svg +3 -0
  176. package/src/assets/icons/rebrand/Reset-filled.svg +3 -0
  177. package/src/assets/icons/rebrand/Reset-in-line.svg +3 -0
  178. package/src/assets/icons/rebrand/Review-emoji-1-filled.svg +3 -0
  179. package/src/assets/icons/rebrand/Review-emoji-1-in-line.svg +3 -0
  180. package/src/assets/icons/rebrand/Review-emoji-2-filled.svg +3 -0
  181. package/src/assets/icons/rebrand/Review-emoji-2-in-line.svg +3 -0
  182. package/src/assets/icons/rebrand/Review-emoji-3-filled.svg +3 -0
  183. package/src/assets/icons/rebrand/Review-emoji-3-in-line.svg +3 -0
  184. package/src/assets/icons/rebrand/Review-emoji-4-filled.svg +3 -0
  185. package/src/assets/icons/rebrand/Review-emoji-4-in-line.svg +3 -0
  186. package/src/assets/icons/rebrand/Review-emoji-5-filled.svg +3 -0
  187. package/src/assets/icons/rebrand/Review-emoji-5-in-line.svg +3 -0
  188. package/src/assets/icons/rebrand/Review-filled.svg +3 -0
  189. package/src/assets/icons/rebrand/Review-half-star-filled.svg +3 -0
  190. package/src/assets/icons/rebrand/Review-half-star-in-line.svg +3 -0
  191. package/src/assets/icons/rebrand/Review-in-line.svg +3 -0
  192. package/src/assets/icons/rebrand/Review-star-filled.svg +3 -0
  193. package/src/assets/icons/rebrand/Review-star-in-line.svg +3 -0
  194. package/src/assets/icons/rebrand/Search-filled.svg +3 -0
  195. package/src/assets/icons/rebrand/Search-in-line.svg +3 -0
  196. package/src/assets/icons/rebrand/Secure-filled.svg +3 -0
  197. package/src/assets/icons/rebrand/Secure-in-line.svg +3 -0
  198. package/src/assets/icons/rebrand/Send-filled.svg +3 -0
  199. package/src/assets/icons/rebrand/Send-in-line.svg +3 -0
  200. package/src/assets/icons/rebrand/Settings-filled.svg +3 -0
  201. package/src/assets/icons/rebrand/Settings-in-line.svg +3 -0
  202. package/src/assets/icons/rebrand/Share-filled.svg +3 -0
  203. package/src/assets/icons/rebrand/Share-in-line.svg +3 -0
  204. package/src/assets/icons/rebrand/Sparkle-filled.svg +3 -0
  205. package/src/assets/icons/rebrand/Sparkle-in-line.svg +3 -0
  206. package/src/assets/icons/rebrand/Speedometer-filled.svg +3 -0
  207. package/src/assets/icons/rebrand/Speedometer-in-line.svg +3 -0
  208. package/src/assets/icons/rebrand/Stop-filled.svg +3 -0
  209. package/src/assets/icons/rebrand/Stop-in-line.svg +3 -0
  210. package/src/assets/icons/rebrand/Switch-filled.svg +3 -0
  211. package/src/assets/icons/rebrand/Switch-in-line.svg +3 -0
  212. package/src/assets/icons/rebrand/Sync-filled.svg +3 -0
  213. package/src/assets/icons/rebrand/Sync-in-line.svg +3 -0
  214. package/src/assets/icons/rebrand/Team-filled.svg +3 -0
  215. package/src/assets/icons/rebrand/Team-in-line.svg +3 -0
  216. package/src/assets/icons/rebrand/Test-filled.svg +3 -0
  217. package/src/assets/icons/rebrand/Test-in-line.svg +3 -0
  218. package/src/assets/icons/rebrand/Timer-filled.svg +3 -0
  219. package/src/assets/icons/rebrand/Timer-in-line.svg +3 -0
  220. package/src/assets/icons/rebrand/Type-filled.svg +3 -0
  221. package/src/assets/icons/rebrand/Type-in-line.svg +3 -0
  222. package/src/assets/icons/rebrand/Unarchive-filled.svg +3 -0
  223. package/src/assets/icons/rebrand/Unarchive-in-line.svg +3 -0
  224. package/src/assets/icons/rebrand/Unlock-filled.svg +3 -0
  225. package/src/assets/icons/rebrand/Unlock-in-line.svg +3 -0
  226. package/src/assets/icons/rebrand/Upgrade-filled.svg +3 -0
  227. package/src/assets/icons/rebrand/Upgrade-in-line.svg +3 -0
  228. package/src/assets/icons/rebrand/Upload-filled.svg +3 -0
  229. package/src/assets/icons/rebrand/Upload-in-line.svg +3 -0
  230. package/src/assets/icons/rebrand/User-access-filled.svg +3 -0
  231. package/src/assets/icons/rebrand/User-access-in-line.svg +3 -0
  232. package/src/assets/icons/rebrand/User-add-filled.svg +3 -0
  233. package/src/assets/icons/rebrand/User-add-in-line.svg +3 -0
  234. package/src/assets/icons/rebrand/User-profile-filled.svg +3 -0
  235. package/src/assets/icons/rebrand/User-profile-in-line.svg +3 -0
  236. package/src/assets/icons/rebrand/Video-filled.svg +3 -0
  237. package/src/assets/icons/rebrand/Video-in-line.svg +3 -0
  238. package/src/assets/icons/rebrand/View-filled.svg +3 -0
  239. package/src/assets/icons/rebrand/View-in-line.svg +3 -0
  240. package/src/assets/icons/rebrand/Volume-filled.svg +3 -0
  241. package/src/assets/icons/rebrand/Volume-in-line.svg +3 -0
  242. package/src/assets/icons/rebrand/Warning-filled.svg +3 -0
  243. package/src/assets/icons/rebrand/Warning-in-line.svg +3 -0
  244. package/src/assets/icons/rebrand/Zoom-in-filled.svg +3 -0
  245. package/src/assets/icons/rebrand/Zoom-in-in-line.svg +3 -0
  246. package/src/assets/icons/rebrand/Zoom-out-filled.svg +3 -0
  247. package/src/assets/icons/rebrand/Zoom-out-in-line.svg +3 -0
  248. package/src/theme/_lib-styles.scss +34 -0
  249. package/src/theme/_tooltip.scss +14 -6
@@ -1,5 +1,5 @@
1
1
  import { animate, style, transition, trigger } from '@angular/animations';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, forwardRef, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, forwardRef } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { LanguageService } from '../../utils/localization/language.service';
5
5
  import * as i0 from "@angular/core";
@@ -11,6 +11,13 @@ import * as i5 from "../../pipes/ui-translate.pipe";
11
11
  export class FileUploadComponent {
12
12
  constructor() {
13
13
  this.class = 'ui-file-upload';
14
+ /**
15
+ * File upload disabled
16
+ *
17
+ * @type {boolean}
18
+ * @memberof FileUploadComponent
19
+ */
20
+ this.disabled = false;
14
21
  /**
15
22
  * Existing file information
16
23
  *
@@ -32,7 +39,7 @@ export class FileUploadComponent {
32
39
  * @type {string}
33
40
  * @memberof FileUploadComponent
34
41
  */
35
- this.companyColor = '#46A997';
42
+ this.companyColor = '';
36
43
  /**
37
44
  *
38
45
  * Defines the application theme
@@ -46,11 +53,13 @@ export class FileUploadComponent {
46
53
  /**
47
54
  * @ignore
48
55
  */
49
- this.onChange = (_) => { };
56
+ this.onChange = (_) => {
57
+ };
50
58
  /**
51
59
  * @ignore
52
60
  */
53
- this.onTouch = () => { };
61
+ this.onTouch = () => {
62
+ };
54
63
  this.progress = false;
55
64
  this.success = false;
56
65
  }
@@ -99,6 +108,9 @@ export class FileUploadComponent {
99
108
  this.success = this.showSuccess();
100
109
  this.browse = this.showBrowse();
101
110
  }
111
+ if (changes['applicationTheme']) {
112
+ this.compColor = this.getCompanyColor();
113
+ }
102
114
  }
103
115
  writeValue(value) {
104
116
  if (value) {
@@ -117,44 +129,47 @@ export class FileUploadComponent {
117
129
  setDisabledState(isDisabled) {
118
130
  this.disabled = isDisabled;
119
131
  }
132
+ getCompanyColor() {
133
+ return this.companyColor || (this.applicationTheme === 'classic' ? '#46A997' : '#D410AA');
134
+ }
120
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FileUploadComponent, selector: "ui-file-upload", inputs: { maxFileSizeMB: "maxFileSizeMB", supportedFileTypes: "supportedFileTypes", uploadProgress: "uploadProgress", errors: "errors", disabled: "disabled", file: "file", language: "language", companyColor: "companyColor", applicationTheme: "applicationTheme" }, outputs: { OnDrop: "OnDrop" }, host: { properties: { "class": "this.class", "style.--color": "this.companyColor" } }, providers: [
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FileUploadComponent, selector: "ui-file-upload", inputs: { maxFileSizeMB: "maxFileSizeMB", supportedFileTypes: "supportedFileTypes", uploadProgress: "uploadProgress", errors: "errors", disabled: "disabled", file: "file", language: "language", companyColor: "companyColor", applicationTheme: "applicationTheme" }, outputs: { OnDrop: "OnDrop" }, host: { properties: { "class": "this.class", "style.--color": "this.compColor" } }, providers: [
122
137
  {
123
138
  provide: NG_VALUE_ACCESSOR,
124
139
  useExisting: forwardRef(() => FileUploadComponent),
125
140
  multi: true,
126
141
  },
127
- ], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <div\n class=\"upload-file-container\"\n uiDragDrop\n [ngClass]=\"{ 'upload-errors': !!errors }\"\n (fileDropped)=\"onFileDropped($event)\"\n >\n <div *ngIf=\"browse && !(!!success && !!file && !!progress)\" [@inOutAnimation] class=\"upload-files\">\n <div class=\"upload-browse\">\n <ui-icon class=\"upload-icon\" name=\"File-upload\"></ui-icon>\n <div class=\"errors\" *ngIf=\"!!errors\">\n <span *ngFor=\"let error of errors\"> <ui-icon name=\"Error\"></ui-icon> {{ error }} </span>\n </div>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n [accept]=\"supportedFileTypes\"\n id=\"fileDrop\"\n (change)=\"onChangeUpload($event)\"\n />\n <p>{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}<label for=\"fileDrop\" class=\"semibold\"> {{ (translationContext + 'BROWSE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language | lowercase }}</p>\n <span class=\"upload-text\">{{ maxFileSizeMB }}{{(translationContext + 'MAX_SIZE') | uiTranslate : language }}</span>\n </div>\n </div>\n <div class=\"upload-change\" [@inOutAnimationChange] *ngIf=\"!!success && !!file && !!progress\">\n <ui-icon class=\"upload-icon\" name=\"File-upload\"></ui-icon>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n id=\"fileDrop\"\n [accept]=\"supportedFileTypes\"\n (change)=\"onChangeUpload($event)\"\n [disabled]=\"disabled\"\n />\n <p>{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}<label for=\"fileDrop\" class=\"semibold\">{{ (translationContext + 'CHANGE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}</p>\n <span class=\"upload-text\"\n ><strong>{{ file.name }}</strong></span\n >\n </div>\n <div class=\"upload-progress\" [@inOutAnimationProgress] *ngIf=\"!!progress && !!file && !success\">\n <p>{{ file.name }}</p>\n <ui-progress-bar [progress]=\"uploadProgress\" [companyColor]=\"companyColor\"></ui-progress-bar>\n <p class=\"upload-text\">\n {{ (translationContext + 'UPLOADING') | uiTranslate : language }} <span>{{ uploadProgress }}</span\n >%\n </p>\n </div>\n </div>\n <div class=\"upload-supported-files\" *ngIf=\"!!supportedFileTypes\">\n <span>{{ (translationContext + 'SUPPORTED_FILE_TYPES') | uiTranslate : language }}</span>{{ supportedFileTypes }}\n </div>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.upload-file-container{border-radius:8px;border:1px dashed #888888;background:#f6f6f6;display:flex;justify-content:center;align-items:center;height:196px;flex-flow:column;position:relative;max-width:563px}.upload-file-container.upload-errors{border:1px dashed #cb7b7a}.upload-file-container .upload-files{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;height:196px}.upload-file-container .upload-change,.upload-file-container .upload-browse{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;position:relative;height:196px}.upload-file-container .upload-change ui-icon.upload-icon,.upload-file-container .upload-browse ui-icon.upload-icon{margin-bottom:16px}.upload-file-container .upload-change ui-icon.upload-icon mat-icon.size-16 svg,.upload-file-container .upload-browse ui-icon.upload-icon mat-icon.size-16 svg{width:32px;height:32px}.upload-file-container .upload-change input,.upload-file-container .upload-browse input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;cursor:pointer}.upload-file-container .upload-change .upload-text,.upload-file-container .upload-browse .upload-text{margin-top:20px}.upload-file-container .upload-change p,.upload-file-container .upload-browse p{margin:0}.upload-file-container .upload-change p .semibold,.upload-file-container .upload-browse p .semibold{font-weight:400;text-decoration:underline;color:var(--color)}.upload-file-container .upload-change .errors,.upload-file-container .upload-browse .errors{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:20px;font-size:12px;line-height:16px;color:#cb7b7a}.upload-file-container .upload-change .errors span,.upload-file-container .upload-browse .errors span{display:flex;align-items:center;margin-bottom:5px}.upload-file-container .upload-change .errors span:last-child,.upload-file-container .upload-browse .errors span:last-child{margin-bottom:0}.upload-file-container .upload-change .errors ui-icon,.upload-file-container .upload-browse .errors ui-icon{margin-right:4px}.upload-file-container .upload-change .errors ui-icon mat-icon.size-16 svg,.upload-file-container .upload-browse .errors ui-icon mat-icon.size-16 svg{width:16px;height:16px;color:#cb7b7a}.upload-file-container .upload-progress{padding:0 32px;width:100%}.upload-file-container .upload-text{text-align:right}.upload-supported-files{font-size:12px;line-height:16px;margin-top:8px;display:flex}.upload-supported-files span{font-weight:700;margin-right:5px}@media (max-width: 600px){.upload-file-container{max-width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme"] }, { kind: "component", type: i3.ProgressBarComponent, selector: "ui-progress-bar", inputs: ["companyColor", "progress", "mode", "buffer", "applicationTheme"] }, { kind: "directive", type: i4.DragDropDirective, selector: "[uiDragDrop]", outputs: ["fileDropped"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i5.UiTranslatePipe, name: "uiTranslate" }], animations: [
142
+ ], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <div\n class=\"upload-file-container\"\n uiDragDrop\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{ 'upload-errors': !!errors, 'upload-file-container-disabled': disabled }\"\n (fileDropped)=\"onFileDropped($event)\"\n >\n <div *ngIf=\"browse && !(!!success && !!file && !!progress)\" [@inOutAnimation] class=\"upload-files\">\n <div class=\"upload-browse\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n\n <div class=\"errors\" *ngIf=\"!!errors\">\n <span *ngFor=\"let error of errors\"><ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>\n {{ error }}</span>\n </div>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n [accept]=\"supportedFileTypes\"\n [disabled]=\"disabled\"\n id=\"fileDrop\"\n (change)=\"onChangeUpload($event)\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}\n <label for=\"fileDrop\"\n class=\"semibold\"> {{ (translationContext + 'BROWSE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span\n class=\"upload-text\">{{ maxFileSizeMB }}{{ (translationContext + 'MAX_SIZE') | uiTranslate : language }}</span>\n </div>\n </div>\n <div class=\"upload-change\" [@inOutAnimationChange] *ngIf=\"!!success && !!file && !!progress\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n id=\"fileDrop\"\n [accept]=\"supportedFileTypes\"\n (change)=\"onChangeUpload($event)\"\n [disabled]=\"disabled\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}&nbsp;<label\n for=\"fileDrop\"\n class=\"semibold\">{{ (translationContext + 'CHANGE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span class=\"upload-text\"\n ><strong>{{ file.name }}</strong></span\n >\n </div>\n <div class=\"upload-progress\" [@inOutAnimationProgress] *ngIf=\"!!progress && !!file && !success\">\n <p>{{ file.name }}</p>\n <ui-progress-bar [progress]=\"uploadProgress\"\n [companyColor]=\"compColor\"\n [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n <p class=\"upload-text\">\n {{ (translationContext + 'UPLOADING') | uiTranslate : language }} <span>{{ uploadProgress }}</span\n >%\n </p>\n </div>\n\n <ng-template #iconTpl>\n <ui-icon *ngIf=\"applicationTheme === 'classic'; else rebrandedIconTpl\" class=\"upload-icon\"\n name=\"File-upload\"></ui-icon>\n <ng-template #rebrandedIconTpl>\n <ui-icon class=\"upload-icon\"\n name=\"Upload\"\n [size]=\"'24'\"\n [applicationTheme]=\"applicationTheme\"></ui-icon>\n </ng-template>\n </ng-template>\n <ng-template #rebrandedDnDCopyTpl>\n <p>{{ (translationContext + 'DRAG_AND_DROP') | uiTranslate : language }}</p>\n </ng-template>\n </div>\n <div\n *ngIf=\"!!supportedFileTypes\"\n [attr.theme]=\"applicationTheme\"\n class=\"upload-supported-files\">\n <span>{{ (translationContext + 'SUPPORTED_FILE_TYPES') | uiTranslate : language }}</span>{{ supportedFileTypes }}\n </div>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.upload-file-container{border-radius:8px;border:1px dashed #888888;background:#f6f6f6;display:flex;justify-content:center;align-items:center;height:196px;flex-flow:column;position:relative;max-width:563px}.upload-file-container.upload-errors{border:1px dashed #cb7b7a}.upload-file-container .upload-files{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;height:196px}.upload-file-container .upload-change,.upload-file-container .upload-browse{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;position:relative;height:196px}.upload-file-container .upload-change ui-icon.upload-icon,.upload-file-container .upload-browse ui-icon.upload-icon{margin-bottom:16px}.upload-file-container .upload-change ui-icon.upload-icon mat-icon.size-16 svg,.upload-file-container .upload-browse ui-icon.upload-icon mat-icon.size-16 svg{width:32px;height:32px}.upload-file-container .upload-change input,.upload-file-container .upload-browse input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;cursor:pointer}.upload-file-container .upload-change .upload-text,.upload-file-container .upload-browse .upload-text{margin-top:20px}.upload-file-container .upload-change p,.upload-file-container .upload-browse p{margin:0}.upload-file-container .upload-change p .semibold,.upload-file-container .upload-browse p .semibold{font-weight:400;text-decoration:underline;color:var(--color)}.upload-file-container .upload-change .errors,.upload-file-container .upload-browse .errors{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:20px;font-size:12px;line-height:16px;color:#cb7b7a}.upload-file-container .upload-change .errors span,.upload-file-container .upload-browse .errors span{display:flex;align-items:center;margin-bottom:5px}.upload-file-container .upload-change .errors span:last-child,.upload-file-container .upload-browse .errors span:last-child{margin-bottom:0}.upload-file-container .upload-change .errors .error-icon,.upload-file-container .upload-browse .errors .error-icon{margin-right:4px}.upload-file-container .upload-change .errors .error-icon svg,.upload-file-container .upload-browse .errors .error-icon svg{color:#cb7b7a}.upload-file-container .upload-change .errors .error-icon mat-icon.size-16 svg,.upload-file-container .upload-browse .errors .error-icon mat-icon.size-16 svg{width:16px;height:16px}.upload-file-container .upload-progress{padding:0 32px;width:100%}.upload-file-container .upload-text{text-align:right}.upload-file-container[theme=dark],.upload-file-container[theme=light]{border-radius:10px;border-color:#242424}.upload-file-container[theme=dark].upload-file-container-disabled,.upload-file-container[theme=light].upload-file-container-disabled{border-color:#919191;color:#919191;background-color:#f4f4f4}.upload-file-container[theme=dark].upload-file-container-disabled .upload-icon svg,.upload-file-container[theme=light].upload-file-container-disabled .upload-icon svg{color:#919191}.upload-file-container[theme=dark].upload-errors,.upload-file-container[theme=light].upload-errors{border-color:#e02800}.upload-file-container[theme=dark]:not(.upload-file-container-disabled):hover,.upload-file-container[theme=light]:not(.upload-file-container-disabled):hover{background:#f4f4f4;border-style:solid}.upload-file-container[theme=dark]:not(.upload-file-container-disabled):active,.upload-file-container[theme=light]:not(.upload-file-container-disabled):active{transform:scale(.98)}.upload-file-container[theme=dark] .errors,.upload-file-container[theme=light] .errors{color:#e02800;font-size:14px}.upload-file-container[theme=dark] .errors .error-icon svg,.upload-file-container[theme=light] .errors .error-icon svg{color:#e02800}.upload-supported-files{font-size:12px;line-height:16px;margin-top:8px}.upload-supported-files[theme=dark],.upload-supported-files[theme=light]{max-width:563px;font-size:14px}.upload-supported-files span{font-weight:700;margin-right:5px}@media (max-width: 600px){.upload-file-container,.upload-supported-files[theme=dark],.upload-supported-files[theme=light]{max-width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme"] }, { kind: "component", type: i3.ProgressBarComponent, selector: "ui-progress-bar", inputs: ["companyColor", "progress", "mode", "buffer", "applicationTheme"] }, { kind: "directive", type: i4.DragDropDirective, selector: "[uiDragDrop]", outputs: ["fileDropped"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i5.UiTranslatePipe, name: "uiTranslate" }], animations: [
128
143
  trigger('inOutAnimation', [
129
144
  transition(':enter', [
130
145
  style({ opacity: 0, height: 0 }),
131
- animate('0.2s ease-out', style({ opacity: 1, height: '196px' })),
146
+ animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))
132
147
  ]),
133
148
  transition(':leave', [
134
149
  style({ opacity: 1, height: '196px' }),
135
- animate('0.2s ease-in', style({ opacity: 0, height: 0 })),
136
- ]),
150
+ animate('0.2s ease-in', style({ opacity: 0, height: 0 }))
151
+ ])
137
152
  ]),
138
153
  trigger('inOutAnimationProgress', [
139
154
  transition(':enter', [
140
155
  style({ opacity: 0, height: 0 }),
141
- animate('0.2s ease-out', style({ opacity: 1, height: '196px' })),
156
+ animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))
142
157
  ]),
143
158
  transition(':leave', [
144
159
  style({ opacity: 1, height: '196px' }),
145
- animate('0.2s ease-in', style({ opacity: 0, height: 0 })),
146
- ]),
160
+ animate('0.2s ease-in', style({ opacity: 0, height: 0 }))
161
+ ])
147
162
  ]),
148
163
  trigger('inOutAnimationChange', [
149
164
  transition(':enter', [
150
165
  style({ opacity: 0, height: 0 }),
151
- animate('0.2s ease-out', style({ opacity: 1, height: '196px' })),
166
+ animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))
152
167
  ]),
153
168
  transition(':leave', [
154
169
  style({ opacity: 1, height: '196px' }),
155
- animate('0.2s ease-in', style({ opacity: 0, height: 0 })),
156
- ]),
157
- ]),
170
+ animate('0.2s ease-in', style({ opacity: 0, height: 0 }))
171
+ ])
172
+ ])
158
173
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
159
174
  }
160
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileUploadComponent, decorators: [{
@@ -169,34 +184,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
169
184
  trigger('inOutAnimation', [
170
185
  transition(':enter', [
171
186
  style({ opacity: 0, height: 0 }),
172
- animate('0.2s ease-out', style({ opacity: 1, height: '196px' })),
187
+ animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))
173
188
  ]),
174
189
  transition(':leave', [
175
190
  style({ opacity: 1, height: '196px' }),
176
- animate('0.2s ease-in', style({ opacity: 0, height: 0 })),
177
- ]),
191
+ animate('0.2s ease-in', style({ opacity: 0, height: 0 }))
192
+ ])
178
193
  ]),
179
194
  trigger('inOutAnimationProgress', [
180
195
  transition(':enter', [
181
196
  style({ opacity: 0, height: 0 }),
182
- animate('0.2s ease-out', style({ opacity: 1, height: '196px' })),
197
+ animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))
183
198
  ]),
184
199
  transition(':leave', [
185
200
  style({ opacity: 1, height: '196px' }),
186
- animate('0.2s ease-in', style({ opacity: 0, height: 0 })),
187
- ]),
201
+ animate('0.2s ease-in', style({ opacity: 0, height: 0 }))
202
+ ])
188
203
  ]),
189
204
  trigger('inOutAnimationChange', [
190
205
  transition(':enter', [
191
206
  style({ opacity: 0, height: 0 }),
192
- animate('0.2s ease-out', style({ opacity: 1, height: '196px' })),
207
+ animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))
193
208
  ]),
194
209
  transition(':leave', [
195
210
  style({ opacity: 1, height: '196px' }),
196
- animate('0.2s ease-in', style({ opacity: 0, height: 0 })),
197
- ]),
198
- ]),
199
- ], template: "<ng-container>\n <div\n class=\"upload-file-container\"\n uiDragDrop\n [ngClass]=\"{ 'upload-errors': !!errors }\"\n (fileDropped)=\"onFileDropped($event)\"\n >\n <div *ngIf=\"browse && !(!!success && !!file && !!progress)\" [@inOutAnimation] class=\"upload-files\">\n <div class=\"upload-browse\">\n <ui-icon class=\"upload-icon\" name=\"File-upload\"></ui-icon>\n <div class=\"errors\" *ngIf=\"!!errors\">\n <span *ngFor=\"let error of errors\"> <ui-icon name=\"Error\"></ui-icon> {{ error }} </span>\n </div>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n [accept]=\"supportedFileTypes\"\n id=\"fileDrop\"\n (change)=\"onChangeUpload($event)\"\n />\n <p>{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}<label for=\"fileDrop\" class=\"semibold\"> {{ (translationContext + 'BROWSE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language | lowercase }}</p>\n <span class=\"upload-text\">{{ maxFileSizeMB }}{{(translationContext + 'MAX_SIZE') | uiTranslate : language }}</span>\n </div>\n </div>\n <div class=\"upload-change\" [@inOutAnimationChange] *ngIf=\"!!success && !!file && !!progress\">\n <ui-icon class=\"upload-icon\" name=\"File-upload\"></ui-icon>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n id=\"fileDrop\"\n [accept]=\"supportedFileTypes\"\n (change)=\"onChangeUpload($event)\"\n [disabled]=\"disabled\"\n />\n <p>{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}<label for=\"fileDrop\" class=\"semibold\">{{ (translationContext + 'CHANGE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}</p>\n <span class=\"upload-text\"\n ><strong>{{ file.name }}</strong></span\n >\n </div>\n <div class=\"upload-progress\" [@inOutAnimationProgress] *ngIf=\"!!progress && !!file && !success\">\n <p>{{ file.name }}</p>\n <ui-progress-bar [progress]=\"uploadProgress\" [companyColor]=\"companyColor\"></ui-progress-bar>\n <p class=\"upload-text\">\n {{ (translationContext + 'UPLOADING') | uiTranslate : language }} <span>{{ uploadProgress }}</span\n >%\n </p>\n </div>\n </div>\n <div class=\"upload-supported-files\" *ngIf=\"!!supportedFileTypes\">\n <span>{{ (translationContext + 'SUPPORTED_FILE_TYPES') | uiTranslate : language }}</span>{{ supportedFileTypes }}\n </div>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.upload-file-container{border-radius:8px;border:1px dashed #888888;background:#f6f6f6;display:flex;justify-content:center;align-items:center;height:196px;flex-flow:column;position:relative;max-width:563px}.upload-file-container.upload-errors{border:1px dashed #cb7b7a}.upload-file-container .upload-files{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;height:196px}.upload-file-container .upload-change,.upload-file-container .upload-browse{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;position:relative;height:196px}.upload-file-container .upload-change ui-icon.upload-icon,.upload-file-container .upload-browse ui-icon.upload-icon{margin-bottom:16px}.upload-file-container .upload-change ui-icon.upload-icon mat-icon.size-16 svg,.upload-file-container .upload-browse ui-icon.upload-icon mat-icon.size-16 svg{width:32px;height:32px}.upload-file-container .upload-change input,.upload-file-container .upload-browse input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;cursor:pointer}.upload-file-container .upload-change .upload-text,.upload-file-container .upload-browse .upload-text{margin-top:20px}.upload-file-container .upload-change p,.upload-file-container .upload-browse p{margin:0}.upload-file-container .upload-change p .semibold,.upload-file-container .upload-browse p .semibold{font-weight:400;text-decoration:underline;color:var(--color)}.upload-file-container .upload-change .errors,.upload-file-container .upload-browse .errors{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:20px;font-size:12px;line-height:16px;color:#cb7b7a}.upload-file-container .upload-change .errors span,.upload-file-container .upload-browse .errors span{display:flex;align-items:center;margin-bottom:5px}.upload-file-container .upload-change .errors span:last-child,.upload-file-container .upload-browse .errors span:last-child{margin-bottom:0}.upload-file-container .upload-change .errors ui-icon,.upload-file-container .upload-browse .errors ui-icon{margin-right:4px}.upload-file-container .upload-change .errors ui-icon mat-icon.size-16 svg,.upload-file-container .upload-browse .errors ui-icon mat-icon.size-16 svg{width:16px;height:16px;color:#cb7b7a}.upload-file-container .upload-progress{padding:0 32px;width:100%}.upload-file-container .upload-text{text-align:right}.upload-supported-files{font-size:12px;line-height:16px;margin-top:8px;display:flex}.upload-supported-files span{font-weight:700;margin-right:5px}@media (max-width: 600px){.upload-file-container{max-width:100%}}\n"] }]
211
+ animate('0.2s ease-in', style({ opacity: 0, height: 0 }))
212
+ ])
213
+ ])
214
+ ], template: "<ng-container>\n <div\n class=\"upload-file-container\"\n uiDragDrop\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{ 'upload-errors': !!errors, 'upload-file-container-disabled': disabled }\"\n (fileDropped)=\"onFileDropped($event)\"\n >\n <div *ngIf=\"browse && !(!!success && !!file && !!progress)\" [@inOutAnimation] class=\"upload-files\">\n <div class=\"upload-browse\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n\n <div class=\"errors\" *ngIf=\"!!errors\">\n <span *ngFor=\"let error of errors\"><ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>\n {{ error }}</span>\n </div>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n [accept]=\"supportedFileTypes\"\n [disabled]=\"disabled\"\n id=\"fileDrop\"\n (change)=\"onChangeUpload($event)\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}\n <label for=\"fileDrop\"\n class=\"semibold\"> {{ (translationContext + 'BROWSE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span\n class=\"upload-text\">{{ maxFileSizeMB }}{{ (translationContext + 'MAX_SIZE') | uiTranslate : language }}</span>\n </div>\n </div>\n <div class=\"upload-change\" [@inOutAnimationChange] *ngIf=\"!!success && !!file && !!progress\">\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\n <input\n class=\"form-control\"\n #fileDrop\n type=\"file\"\n id=\"fileDrop\"\n [accept]=\"supportedFileTypes\"\n (change)=\"onChangeUpload($event)\"\n [disabled]=\"disabled\"\n />\n <p\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate : language }}&nbsp;<label\n for=\"fileDrop\"\n class=\"semibold\">{{ (translationContext + 'CHANGE') | uiTranslate : language | lowercase }}</label> {{ (translationContext + 'YOUR_FILES') | uiTranslate : language }}\n </p>\n <span class=\"upload-text\"\n ><strong>{{ file.name }}</strong></span\n >\n </div>\n <div class=\"upload-progress\" [@inOutAnimationProgress] *ngIf=\"!!progress && !!file && !success\">\n <p>{{ file.name }}</p>\n <ui-progress-bar [progress]=\"uploadProgress\"\n [companyColor]=\"compColor\"\n [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n <p class=\"upload-text\">\n {{ (translationContext + 'UPLOADING') | uiTranslate : language }} <span>{{ uploadProgress }}</span\n >%\n </p>\n </div>\n\n <ng-template #iconTpl>\n <ui-icon *ngIf=\"applicationTheme === 'classic'; else rebrandedIconTpl\" class=\"upload-icon\"\n name=\"File-upload\"></ui-icon>\n <ng-template #rebrandedIconTpl>\n <ui-icon class=\"upload-icon\"\n name=\"Upload\"\n [size]=\"'24'\"\n [applicationTheme]=\"applicationTheme\"></ui-icon>\n </ng-template>\n </ng-template>\n <ng-template #rebrandedDnDCopyTpl>\n <p>{{ (translationContext + 'DRAG_AND_DROP') | uiTranslate : language }}</p>\n </ng-template>\n </div>\n <div\n *ngIf=\"!!supportedFileTypes\"\n [attr.theme]=\"applicationTheme\"\n class=\"upload-supported-files\">\n <span>{{ (translationContext + 'SUPPORTED_FILE_TYPES') | uiTranslate : language }}</span>{{ supportedFileTypes }}\n </div>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.upload-file-container{border-radius:8px;border:1px dashed #888888;background:#f6f6f6;display:flex;justify-content:center;align-items:center;height:196px;flex-flow:column;position:relative;max-width:563px}.upload-file-container.upload-errors{border:1px dashed #cb7b7a}.upload-file-container .upload-files{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;height:196px}.upload-file-container .upload-change,.upload-file-container .upload-browse{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;position:relative;height:196px}.upload-file-container .upload-change ui-icon.upload-icon,.upload-file-container .upload-browse ui-icon.upload-icon{margin-bottom:16px}.upload-file-container .upload-change ui-icon.upload-icon mat-icon.size-16 svg,.upload-file-container .upload-browse ui-icon.upload-icon mat-icon.size-16 svg{width:32px;height:32px}.upload-file-container .upload-change input,.upload-file-container .upload-browse input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;cursor:pointer}.upload-file-container .upload-change .upload-text,.upload-file-container .upload-browse .upload-text{margin-top:20px}.upload-file-container .upload-change p,.upload-file-container .upload-browse p{margin:0}.upload-file-container .upload-change p .semibold,.upload-file-container .upload-browse p .semibold{font-weight:400;text-decoration:underline;color:var(--color)}.upload-file-container .upload-change .errors,.upload-file-container .upload-browse .errors{width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:20px;font-size:12px;line-height:16px;color:#cb7b7a}.upload-file-container .upload-change .errors span,.upload-file-container .upload-browse .errors span{display:flex;align-items:center;margin-bottom:5px}.upload-file-container .upload-change .errors span:last-child,.upload-file-container .upload-browse .errors span:last-child{margin-bottom:0}.upload-file-container .upload-change .errors .error-icon,.upload-file-container .upload-browse .errors .error-icon{margin-right:4px}.upload-file-container .upload-change .errors .error-icon svg,.upload-file-container .upload-browse .errors .error-icon svg{color:#cb7b7a}.upload-file-container .upload-change .errors .error-icon mat-icon.size-16 svg,.upload-file-container .upload-browse .errors .error-icon mat-icon.size-16 svg{width:16px;height:16px}.upload-file-container .upload-progress{padding:0 32px;width:100%}.upload-file-container .upload-text{text-align:right}.upload-file-container[theme=dark],.upload-file-container[theme=light]{border-radius:10px;border-color:#242424}.upload-file-container[theme=dark].upload-file-container-disabled,.upload-file-container[theme=light].upload-file-container-disabled{border-color:#919191;color:#919191;background-color:#f4f4f4}.upload-file-container[theme=dark].upload-file-container-disabled .upload-icon svg,.upload-file-container[theme=light].upload-file-container-disabled .upload-icon svg{color:#919191}.upload-file-container[theme=dark].upload-errors,.upload-file-container[theme=light].upload-errors{border-color:#e02800}.upload-file-container[theme=dark]:not(.upload-file-container-disabled):hover,.upload-file-container[theme=light]:not(.upload-file-container-disabled):hover{background:#f4f4f4;border-style:solid}.upload-file-container[theme=dark]:not(.upload-file-container-disabled):active,.upload-file-container[theme=light]:not(.upload-file-container-disabled):active{transform:scale(.98)}.upload-file-container[theme=dark] .errors,.upload-file-container[theme=light] .errors{color:#e02800;font-size:14px}.upload-file-container[theme=dark] .errors .error-icon svg,.upload-file-container[theme=light] .errors .error-icon svg{color:#e02800}.upload-supported-files{font-size:12px;line-height:16px;margin-top:8px}.upload-supported-files[theme=dark],.upload-supported-files[theme=light]{max-width:563px;font-size:14px}.upload-supported-files span{font-weight:700;margin-right:5px}@media (max-width: 600px){.upload-file-container,.upload-supported-files[theme=dark],.upload-supported-files[theme=light]{max-width:100%}}\n"] }]
200
215
  }], propDecorators: { class: [{
201
216
  type: HostBinding
202
217
  }], maxFileSizeMB: [{
@@ -214,13 +229,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
214
229
  }], language: [{
215
230
  type: Input
216
231
  }], companyColor: [{
232
+ type: Input
233
+ }], compColor: [{
217
234
  type: HostBinding,
218
235
  args: ['style.--color']
219
- }, {
220
- type: Input
221
236
  }], applicationTheme: [{
222
237
  type: Input
223
238
  }], OnDrop: [{
224
239
  type: Output
225
240
  }] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7QUFpRDVFLE1BQU0sT0FBTyxtQkFBbUI7SUE5Q2hDO1FBK0NpQixVQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUF5Q3hDOzs7OztXQUtHO1FBQ00sU0FBSSxHQUFnQixJQUFJLENBQUM7UUFFbEM7Ozs7O1dBS0c7UUFDTSxhQUFRLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQztRQUVwRDs7Ozs7O1dBTUc7UUFFTSxpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUVsQzs7Ozs7O1dBTUc7UUFDTSxxQkFBZ0IsR0FBcUIsU0FBUyxDQUFDO1FBRTlDLFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyx1QkFBa0IsR0FBRyxjQUFjLENBQUM7UUFFdkQ7O1dBRUc7UUFDSCxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUUxQjs7V0FFRztR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LE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTs0QkFDOUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ2hDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQzs2QkFDakUsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztnQ0FDdEMsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUMxRCxDQUFDO3lCQUNILENBQUM7cUJBQ0g7OEJBR2MsS0FBSztzQkFBbkIsV0FBVztnQkFPSCxhQUFhO3NCQUFyQixLQUFLO2dCQVFHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFRRyxjQUFjO3NCQUF0QixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLO2dCQVVHLFlBQVk7c0JBRHBCLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUs7Z0JBU0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYWxpemF0aW9uL2xhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVVcGxvYWRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdpbk91dEFuaW1hdGlvbicsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCBoZWlnaHQ6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoJzAuMnMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIGhlaWdodDogJzE5NnB4JyB9KSksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcxOTZweCcgfSksXG4gICAgICAgIGFuaW1hdGUoJzAuMnMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ2luT3V0QW5pbWF0aW9uUHJvZ3Jlc3MnLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pLFxuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcxOTZweCcgfSkpLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgaGVpZ2h0OiAnMTk2cHgnIH0pLFxuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIGhlaWdodDogMCB9KSksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdpbk91dEFuaW1hdGlvbkNoYW5nZScsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCBoZWlnaHQ6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoJzAuMnMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIGhlaWdodDogJzE5NnB4JyB9KSksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcxOTZweCcgfSksXG4gICAgICAgIGFuaW1hdGUoJzAuMnMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQEhvc3RCaW5kaW5nKCkgY2xhc3MgPSAndWktZmlsZS11cGxvYWQnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbWF4RmlsZVNpemVNQjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdXBwb3J0ZWQgZmlsZXMgZm9yIGlucHV0IGZpZWxkXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzdXBwb3J0ZWRGaWxlVHlwZXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBwcm9ncmVzc1xuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdXBsb2FkUHJvZ3Jlc3M6IG51bWJlcjtcblxuICAvKipcbiAgICogRmlsZSB1cGxvYWQgZXJyb3JzXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGVycm9ycz86IHN0cmluZ1tdIHwgbnVsbDtcblxuICAvKipcbiAgICogRmlsZSB1cGxvYWQgZGlzYWJsZWRcbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV4aXN0aW5nIGZpbGUgaW5mb3JtYXRpb25cbiAgICpcbiAgICogQHR5cGUgeyhGaWxlIHwgbnVsbCl9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZSB0byBiZSB1c2VkXG4gICAqIEBwcm9wZXJ0eSBsYW5ndWFnZVxuICAgKiBAdHlwZSB7TGFuZ3VhZ2V9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsYW5ndWFnZSA9IExhbmd1YWdlU2VydmljZS5kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgLyoqXG4gICAqIENvbG9yIG9mIHRoZSBmaWxlIHVwbG9hZC5cbiAgICogRGVmYXVsdHMgdG8gVGVzdCBHb3JpbGxhIHByaW1hcnkgY29sb3IuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tY29sb3InKVxuICBASW5wdXQoKSBjb21wYW55Q29sb3IgPSAnIzQ2QTk5Nyc7XG5cbiAgLyoqXG4gICAqXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXG4gICAqXG4gICAqIEB0eXBlIHtBcHBsaWNhdGlvblRoZW1lfVxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXBwbGljYXRpb25UaGVtZTogQXBwbGljYXRpb25UaGVtZSA9ICdjbGFzc2ljJztcblxuICBAT3V0cHV0KCkgT25Ecm9wOiBFdmVudEVtaXR0ZXI8RmlsZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0aW9uQ29udGV4dCA9ICdGSUxFX1VQTE9BRC4nO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvblRvdWNoID0gKCkgPT4ge307XG5cbiAgcHJvZ3Jlc3MgPSBmYWxzZTtcbiAgc3VjY2VzcyA9IGZhbHNlO1xuICBicm93c2U6IGJvb2xlYW47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5icm93c2UgPSB0cnVlO1xuICB9XG5cbiAgLy9XaGVuIGZpbGUgaXMgZHJvcHBlZFxuICBvbkZpbGVEcm9wcGVkKGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIHRoaXMuZW1pdEZpbGUoZmlsZXMpO1xuICB9XG5cbiAgLy9XaGVuIGlucHV0IGNoYW5nZXNcbiAgb25DaGFuZ2VVcGxvYWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLmVtaXRGaWxlKGVsZW1lbnQuZmlsZXMgfHwgbmV3IEZpbGVMaXN0KCkpO1xuICB9XG5cbiAgLy9FbWl0IGRyb3AgZmlsZVxuICBlbWl0RmlsZShmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBbZmlsZV0gPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICB0aGlzLmZpbGUgPSBmaWxlO1xuICAgIHRoaXMuZXJyb3JzID0gbnVsbDtcbiAgICB0aGlzLm9uVG91Y2goKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZmlsZSk7XG4gICAgdGhpcy5PbkRyb3AuZW1pdChmaWxlKTtcbiAgfVxuXG4gIC8vU2hvdyBwcm9ncmVzcy1iYXJcbiAgc2hvd1Byb2dyZXNzKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYnJvd3NlID0gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuZmlsZSAmJiAhdGhpcy5lcnJvcnMgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvL1Nob3cgc3VjY2VzcyBlbGVtZW50c1xuICBzaG93U3VjY2VzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWxlICYmIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPT09IDEwMCAmJiAhdGhpcy5lcnJvcnMgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvL1Nob3cgYnJvd3NlIHdoZW4gdGhlcmUgYXJlIGVycm9yXG4gIHNob3dCcm93c2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWyd1cGxvYWRQcm9ncmVzcyddIHx8IGNoYW5nZXNbJ2ZpbGUnXSkge1xuICAgICAgdGhpcy5wcm9ncmVzcyA9IHRoaXMuc2hvd1Byb2dyZXNzKCk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0aGlzLnNob3dTdWNjZXNzKCk7XG4gICAgICB0aGlzLmJyb3dzZSA9IHRoaXMuc2hvd0Jyb3dzZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snZXJyb3JzJ10pIHtcbiAgICAgIHRoaXMucHJvZ3Jlc3MgPSB0aGlzLnNob3dQcm9ncmVzcygpO1xuICAgICAgdGhpcy5zdWNjZXNzID0gdGhpcy5zaG93U3VjY2VzcygpO1xuICAgICAgdGhpcy5icm93c2UgPSB0aGlzLnNob3dCcm93c2UoKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlPzogRmlsZSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlID0gdmFsdWUgfHwgbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwidXBsb2FkLWZpbGUtY29udGFpbmVyXCJcbiAgICB1aURyYWdEcm9wXG4gICAgW25nQ2xhc3NdPVwieyAndXBsb2FkLWVycm9ycyc6ICEhZXJyb3JzIH1cIlxuICAgIChmaWxlRHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkKCRldmVudClcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cImJyb3dzZSAmJiAhKCEhc3VjY2VzcyAmJiAhIWZpbGUgJiYgISFwcm9ncmVzcylcIiBbQGluT3V0QW5pbWF0aW9uXSBjbGFzcz1cInVwbG9hZC1maWxlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1icm93c2VcIj5cbiAgICAgICAgPHVpLWljb24gY2xhc3M9XCJ1cGxvYWQtaWNvblwiIG5hbWU9XCJGaWxlLXVwbG9hZFwiPjwvdWktaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yc1wiICpuZ0lmPVwiISFlcnJvcnNcIj5cbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+IDx1aS1pY29uIG5hbWU9XCJFcnJvclwiPjwvdWktaWNvbj4ge3sgZXJyb3IgfX0gPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICNmaWxlRHJvcFxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBbYWNjZXB0XT1cInN1cHBvcnRlZEZpbGVUeXBlc1wiXG4gICAgICAgICAgaWQ9XCJmaWxlRHJvcFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZVVwbG9hZCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHA+e3sgKHRyYW5zbGF0aW9uQ29udGV4dCArICdEUkFHX0FORF9EUk9QX09SJykgfCB1aVRyYW5zbGF0ZSA6IGxhbmd1YWdlIH19PGxhYmVsIGZvcj1cImZpbGVEcm9wXCIgY2xhc3M9XCJzZW1pYm9sZFwiPiB7eyAodHJhbnNsYXRpb25Db250ZXh0ICsgJ0JST1dTRScpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSAgIHwgbG93ZXJjYXNlIH19PC9sYWJlbD4ge3sgKHRyYW5zbGF0aW9uQ29udGV4dCArICdZT1VSX0ZJTEVTJykgfCB1aVRyYW5zbGF0ZSA6IGxhbmd1YWdlIHwgbG93ZXJjYXNlIH19PC9wPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC10ZXh0XCI+e3sgbWF4RmlsZVNpemVNQiB9fXt7KHRyYW5zbGF0aW9uQ29udGV4dCArICdNQVhfU0laRScpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtY2hhbmdlXCIgW0Bpbk91dEFuaW1hdGlvbkNoYW5nZV0gKm5nSWY9XCIhIXN1Y2Nlc3MgJiYgISFmaWxlICYmICEhcHJvZ3Jlc3NcIj5cbiAgICAgIDx1aS1pY29uIGNsYXNzPVwidXBsb2FkLWljb25cIiBuYW1lPVwiRmlsZS11cGxvYWRcIj48L3VpLWljb24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAjZmlsZURyb3BcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICBpZD1cImZpbGVEcm9wXCJcbiAgICAgICAgW2FjY2VwdF09XCJzdXBwb3J0ZWRGaWxlVHlwZXNcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlVXBsb2FkKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgLz5cbiAgICAgIDxwPnt7ICh0cmFuc2xhdGlvbkNvbnRleHQgKyAnRFJBR19BTkRfRFJPUF9PUicpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB9fTxsYWJlbCBmb3I9XCJmaWxlRHJvcFwiIGNsYXNzPVwic2VtaWJvbGRcIj57eyAodHJhbnNsYXRpb25Db250ZXh0ICsgJ0NIQU5HRScpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB8IGxvd2VyY2FzZSB9fTwvbGFiZWw+IHt7ICh0cmFuc2xhdGlvbkNvbnRleHQgKyAnWU9VUl9GSUxFUycpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB9fTwvcD5cbiAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLXRleHRcIlxuICAgICAgPjxzdHJvbmc+e3sgZmlsZS5uYW1lIH19PC9zdHJvbmc+PC9zcGFuXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1wcm9ncmVzc1wiIFtAaW5PdXRBbmltYXRpb25Qcm9ncmVzc10gKm5nSWY9XCIhIXByb2dyZXNzICYmICEhZmlsZSAmJiAhc3VjY2Vzc1wiPlxuICAgICAgPHA+e3sgZmlsZS5uYW1lIH19PC9wPlxuICAgICAgPHVpLXByb2dyZXNzLWJhciBbcHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIiBbY29tcGFueUNvbG9yXT1cImNvbXBhbnlDb2xvclwiPjwvdWktcHJvZ3Jlc3MtYmFyPlxuICAgICAgPHAgY2xhc3M9XCJ1cGxvYWQtdGV4dFwiPlxuICAgICAgICB7eyAodHJhbnNsYXRpb25Db250ZXh0ICsgJ1VQTE9BRElORycpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB9fSA8c3Bhbj57eyB1cGxvYWRQcm9ncmVzcyB9fTwvc3BhblxuICAgICAgPiVcbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtc3VwcG9ydGVkLWZpbGVzXCIgKm5nSWY9XCIhIXN1cHBvcnRlZEZpbGVUeXBlc1wiPlxuICAgIDxzcGFuPnt7ICh0cmFuc2xhdGlvbkNvbnRleHQgKyAnU1VQUE9SVEVEX0ZJTEVfVFlQRVMnKSB8IHVpVHJhbnNsYXRlIDogbGFuZ3VhZ2UgfX08L3NwYW4+e3sgc3VwcG9ydGVkRmlsZVR5cGVzIH19XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7QUFpRDVFLE1BQU0sT0FBTyxtQkFBbUI7SUE5Q2hDO1FBK0NpQixVQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFpQ3hDOzs7OztXQUtHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7Ozs7V0FLRztRQUNNLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBRWxDOzs7OztXQUtHO1FBQ00sYUFBUSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUM7UUFFcEQ7Ozs7OztXQU1HO1FBQ00saUJBQVksR0FBRyxFQUFFLENBQUM7UUFLM0I7Ozs7OztXQU1HO1FBQ00scUJBQWdCLEdBQXFCLFNBQVMsQ0FBQztRQUU5QyxXQUFNLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFN0MsdUJBQWtCLEdBQUcsY0FBYyxDQUFDO1FBRXZEOztXQUVHO1FBQ0gsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDdEIsQ0FBQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxZQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ2YsQ0FBQyxDQUFDO1FBRUYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO0tBbUZqQjtJQWhGQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixhQUFhLENBQUMsS0FBZTtRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsY0FBYyxDQUFDLEtBQVk7UUFDekIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGFBQWlDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFFBQVEsQ0FBQyxLQUFlO1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNqQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWTtRQUNyQixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQztTQUMzQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RixDQUFDOytHQWxMVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixvYUF6Q25CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLCtDQzdCSCw2ckhBc0ZBLG10T0R2RGM7WUFDVixPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUNoQyxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQ2pFLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7b0JBQ3RDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUQsQ0FBQzthQUNILENBQUM7WUFDRixPQUFPLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ2hDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUNoQyxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQ2pFLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7b0JBQ3RDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUQsQ0FBQzthQUNILENBQUM7WUFDRixPQUFPLENBQUMsc0JBQXNCLEVBQUU7Z0JBQzlCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUNoQyxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQ2pFLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7b0JBQ3RDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUQsQ0FBQzthQUNILENBQUM7U0FDSDs7NEZBRVUsbUJBQW1CO2tCQTlDL0IsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkM7d0JBQ1YsT0FBTyxDQUFDLGdCQUFnQixFQUFFOzRCQUN4QixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDaEMsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDOzZCQUNqRSxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dDQUN0QyxPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQzFELENBQUM7eUJBQ0gsQ0FBQzt3QkFDRixPQUFPLENBQUMsd0JBQXdCLEVBQUU7NEJBQ2hDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2dDQUNoQyxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7NkJBQ2pFLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0NBQ3RDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs2QkFDMUQsQ0FBQzt5QkFDSCxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTs0QkFDOUIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ2hDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQzs2QkFDakUsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztnQ0FDdEMsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUMxRCxDQUFDO3lCQUNILENBQUM7cUJBQ0g7OEJBR2MsS0FBSztzQkFBbkIsV0FBVztnQkFPSCxhQUFhO3NCQUFyQixLQUFLO2dCQVFHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFRRyxjQUFjO3NCQUF0QixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixXQUFXO3VCQUFDLGVBQWU7Z0JBVW5CLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYWxpemF0aW9uL2xhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi10aGVtZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWZpbGUtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlVXBsb2FkQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignaW5PdXRBbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pLFxuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcxOTZweCcgfSkpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcxOTZweCcgfSksXG4gICAgICAgIGFuaW1hdGUoJzAuMnMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pKVxuICAgICAgXSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdpbk91dEFuaW1hdGlvblByb2dyZXNzJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIGhlaWdodDogMCB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMC4ycyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgaGVpZ2h0OiAnMTk2cHgnIH0pKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgaGVpZ2h0OiAnMTk2cHgnIH0pLFxuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAsIGhlaWdodDogMCB9KSlcbiAgICAgIF0pXG4gICAgXSksXG4gICAgdHJpZ2dlcignaW5PdXRBbmltYXRpb25DaGFuZ2UnLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pLFxuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcxOTZweCcgfSkpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcxOTZweCcgfSksXG4gICAgICAgIGFuaW1hdGUoJzAuMnMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pKVxuICAgICAgXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASG9zdEJpbmRpbmcoKSBjbGFzcyA9ICd1aS1maWxlLXVwbG9hZCc7XG5cbiAgLyoqXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBtYXhGaWxlU2l6ZU1COiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN1cHBvcnRlZCBmaWxlcyBmb3IgaW5wdXQgZmllbGRcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHN1cHBvcnRlZEZpbGVUeXBlcz86IHN0cmluZztcblxuICAvKipcbiAgICogVXBsb2FkIHByb2dyZXNzXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSB1cGxvYWRQcm9ncmVzczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGaWxlIHVwbG9hZCBlcnJvcnNcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ1tdfVxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZXJyb3JzPzogc3RyaW5nW10gfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGaWxlIHVwbG9hZCBkaXNhYmxlZFxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEV4aXN0aW5nIGZpbGUgaW5mb3JtYXRpb25cbiAgICpcbiAgICogQHR5cGUgeyhGaWxlIHwgbnVsbCl9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZSB0byBiZSB1c2VkXG4gICAqIEBwcm9wZXJ0eSBsYW5ndWFnZVxuICAgKiBAdHlwZSB7TGFuZ3VhZ2V9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsYW5ndWFnZSA9IExhbmd1YWdlU2VydmljZS5kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgLyoqXG4gICAqIENvbG9yIG9mIHRoZSBmaWxlIHVwbG9hZC5cbiAgICogRGVmYXVsdHMgdG8gVGVzdCBHb3JpbGxhIHByaW1hcnkgY29sb3IuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjb21wYW55Q29sb3IgPSAnJztcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tY29sb3InKVxuICBjb21wQ29sb3I6IHN0cmluZztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2NsYXNzaWMnO1xuXG4gIEBPdXRwdXQoKSBPbkRyb3A6IEV2ZW50RW1pdHRlcjxGaWxlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRpb25Db250ZXh0ID0gJ0ZJTEVfVVBMT0FELic7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICB9O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvblRvdWNoID0gKCkgPT4ge1xuICB9O1xuXG4gIHByb2dyZXNzID0gZmFsc2U7XG4gIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgYnJvd3NlOiBib29sZWFuO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnJvd3NlID0gdHJ1ZTtcbiAgfVxuXG4gIC8vV2hlbiBmaWxlIGlzIGRyb3BwZWRcbiAgb25GaWxlRHJvcHBlZChmaWxlczogRmlsZUxpc3QpIHtcbiAgICB0aGlzLmVtaXRGaWxlKGZpbGVzKTtcbiAgfVxuXG4gIC8vV2hlbiBpbnB1dCBjaGFuZ2VzXG4gIG9uQ2hhbmdlVXBsb2FkKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5lbWl0RmlsZShlbGVtZW50LmZpbGVzIHx8IG5ldyBGaWxlTGlzdCgpKTtcbiAgfVxuXG4gIC8vRW1pdCBkcm9wIGZpbGVcbiAgZW1pdEZpbGUoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgY29uc3QgW2ZpbGVdID0gQXJyYXkuZnJvbShmaWxlcyk7XG4gICAgdGhpcy5maWxlID0gZmlsZTtcbiAgICB0aGlzLmVycm9ycyA9IG51bGw7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmZpbGUpO1xuICAgIHRoaXMuT25Ecm9wLmVtaXQoZmlsZSk7XG4gIH1cblxuICAvL1Nob3cgcHJvZ3Jlc3MtYmFyXG4gIHNob3dQcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICB0aGlzLmJyb3dzZSA9IGZhbHNlO1xuICAgIHJldHVybiB0aGlzLmZpbGUgJiYgIXRoaXMuZXJyb3JzID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgLy9TaG93IHN1Y2Nlc3MgZWxlbWVudHNcbiAgc2hvd1N1Y2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZSAmJiB0aGlzLnVwbG9hZFByb2dyZXNzID09PSAxMDAgJiYgIXRoaXMuZXJyb3JzID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgLy9TaG93IGJyb3dzZSB3aGVuIHRoZXJlIGFyZSBlcnJvclxuICBzaG93QnJvd3NlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9ycyA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sndXBsb2FkUHJvZ3Jlc3MnXSB8fCBjaGFuZ2VzWydmaWxlJ10pIHtcbiAgICAgIHRoaXMucHJvZ3Jlc3MgPSB0aGlzLnNob3dQcm9ncmVzcygpO1xuICAgICAgdGhpcy5zdWNjZXNzID0gdGhpcy5zaG93U3VjY2VzcygpO1xuICAgICAgdGhpcy5icm93c2UgPSB0aGlzLnNob3dCcm93c2UoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2Vycm9ycyddKSB7XG4gICAgICB0aGlzLnByb2dyZXNzID0gdGhpcy5zaG93UHJvZ3Jlc3MoKTtcbiAgICAgIHRoaXMuc3VjY2VzcyA9IHRoaXMuc2hvd1N1Y2Nlc3MoKTtcbiAgICAgIHRoaXMuYnJvd3NlID0gdGhpcy5zaG93QnJvd3NlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydhcHBsaWNhdGlvblRoZW1lJ10pIHtcbiAgICAgIHRoaXMuY29tcENvbG9yID0gdGhpcy5nZXRDb21wYW55Q29sb3IoKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlPzogRmlsZSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlID0gdmFsdWUgfHwgbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcGFueUNvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGFueUNvbG9yIHx8ICh0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPT09ICdjbGFzc2ljJyA/ICcjNDZBOTk3JyA6ICcjRDQxMEFBJyk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInVwbG9hZC1maWxlLWNvbnRhaW5lclwiXG4gICAgdWlEcmFnRHJvcFxuICAgIFthdHRyLnRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3VwbG9hZC1lcnJvcnMnOiAhIWVycm9ycywgJ3VwbG9hZC1maWxlLWNvbnRhaW5lci1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIlxuICAgIChmaWxlRHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkKCRldmVudClcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cImJyb3dzZSAmJiAhKCEhc3VjY2VzcyAmJiAhIWZpbGUgJiYgISFwcm9ncmVzcylcIiBbQGluT3V0QW5pbWF0aW9uXSBjbGFzcz1cInVwbG9hZC1maWxlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1icm93c2VcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uVHBsXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yc1wiICpuZ0lmPVwiISFlcnJvcnNcIj5cbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+PHVpLWljb24gbmFtZT1cIkVycm9yXCIgY2xhc3M9XCJlcnJvci1pY29uXCI+PC91aS1pY29uPlxuICAgICAgICAgICAge3sgZXJyb3IgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgI2ZpbGVEcm9wXG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIFthY2NlcHRdPVwic3VwcG9ydGVkRmlsZVR5cGVzXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIGlkPVwiZmlsZURyb3BcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2VVcGxvYWQoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJhcHBsaWNhdGlvblRoZW1lID09PSAnY2xhc3NpYyc7IGVsc2UgcmVicmFuZGVkRG5EQ29weVRwbFwiPnt7ICh0cmFuc2xhdGlvbkNvbnRleHQgKyAnRFJBR19BTkRfRFJPUF9PUicpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB9fVxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlRHJvcFwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwic2VtaWJvbGRcIj4ge3sgKHRyYW5zbGF0aW9uQ29udGV4dCArICdCUk9XU0UnKSB8IHVpVHJhbnNsYXRlIDogbGFuZ3VhZ2UgICB8IGxvd2VyY2FzZSB9fTwvbGFiZWw+IHt7ICh0cmFuc2xhdGlvbkNvbnRleHQgKyAnWU9VUl9GSUxFUycpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ1cGxvYWQtdGV4dFwiPnt7IG1heEZpbGVTaXplTUIgfX17eyAodHJhbnNsYXRpb25Db250ZXh0ICsgJ01BWF9TSVpFJykgfCB1aVRyYW5zbGF0ZSA6IGxhbmd1YWdlIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1jaGFuZ2VcIiBbQGluT3V0QW5pbWF0aW9uQ2hhbmdlXSAqbmdJZj1cIiEhc3VjY2VzcyAmJiAhIWZpbGUgJiYgISFwcm9ncmVzc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAjZmlsZURyb3BcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICBpZD1cImZpbGVEcm9wXCJcbiAgICAgICAgW2FjY2VwdF09XCJzdXBwb3J0ZWRGaWxlVHlwZXNcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlVXBsb2FkKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgLz5cbiAgICAgIDxwXG4gICAgICAgICpuZ0lmPVwiYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnOyBlbHNlIHJlYnJhbmRlZERuRENvcHlUcGxcIj57eyAodHJhbnNsYXRpb25Db250ZXh0ICsgJ0RSQUdfQU5EX0RST1BfT1InKSB8IHVpVHJhbnNsYXRlIDogbGFuZ3VhZ2UgfX0mbmJzcDs8bGFiZWxcbiAgICAgICAgZm9yPVwiZmlsZURyb3BcIlxuICAgICAgICBjbGFzcz1cInNlbWlib2xkXCI+e3sgKHRyYW5zbGF0aW9uQ29udGV4dCArICdDSEFOR0UnKSB8IHVpVHJhbnNsYXRlIDogbGFuZ3VhZ2UgfCBsb3dlcmNhc2UgfX08L2xhYmVsPiB7eyAodHJhbnNsYXRpb25Db250ZXh0ICsgJ1lPVVJfRklMRVMnKSB8IHVpVHJhbnNsYXRlIDogbGFuZ3VhZ2UgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLXRleHRcIlxuICAgICAgPjxzdHJvbmc+e3sgZmlsZS5uYW1lIH19PC9zdHJvbmc+PC9zcGFuXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1wcm9ncmVzc1wiIFtAaW5PdXRBbmltYXRpb25Qcm9ncmVzc10gKm5nSWY9XCIhIXByb2dyZXNzICYmICEhZmlsZSAmJiAhc3VjY2Vzc1wiPlxuICAgICAgPHA+e3sgZmlsZS5uYW1lIH19PC9wPlxuICAgICAgPHVpLXByb2dyZXNzLWJhciBbcHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFueUNvbG9yXT1cImNvbXBDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLXByb2dyZXNzLWJhcj5cbiAgICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHRcIj5cbiAgICAgICAge3sgKHRyYW5zbGF0aW9uQ29udGV4dCArICdVUExPQURJTkcnKSB8IHVpVHJhbnNsYXRlIDogbGFuZ3VhZ2UgfX0gPHNwYW4+e3sgdXBsb2FkUHJvZ3Jlc3MgfX08L3NwYW5cbiAgICAgID4lXG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ljb25UcGw+XG4gICAgICA8dWktaWNvbiAqbmdJZj1cImFwcGxpY2F0aW9uVGhlbWUgPT09ICdjbGFzc2ljJzsgZWxzZSByZWJyYW5kZWRJY29uVHBsXCIgY2xhc3M9XCJ1cGxvYWQtaWNvblwiXG4gICAgICAgICAgICAgICBuYW1lPVwiRmlsZS11cGxvYWRcIj48L3VpLWljb24+XG4gICAgICA8bmctdGVtcGxhdGUgI3JlYnJhbmRlZEljb25UcGw+XG4gICAgICAgIDx1aS1pY29uIGNsYXNzPVwidXBsb2FkLWljb25cIlxuICAgICAgICAgICAgICAgICBuYW1lPVwiVXBsb2FkXCJcbiAgICAgICAgICAgICAgICAgW3NpemVdPVwiJzI0J1wiXG4gICAgICAgICAgICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNyZWJyYW5kZWREbkRDb3B5VHBsPlxuICAgICAgPHA+e3sgKHRyYW5zbGF0aW9uQ29udGV4dCArICdEUkFHX0FORF9EUk9QJykgfCB1aVRyYW5zbGF0ZSA6IGxhbmd1YWdlIH19PC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCIhIXN1cHBvcnRlZEZpbGVUeXBlc1wiXG4gICAgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgY2xhc3M9XCJ1cGxvYWQtc3VwcG9ydGVkLWZpbGVzXCI+XG4gICAgPHNwYW4+e3sgKHRyYW5zbGF0aW9uQ29udGV4dCArICdTVVBQT1JURURfRklMRV9UWVBFUycpIHwgdWlUcmFuc2xhdGUgOiBsYW5ndWFnZSB9fTwvc3Bhbj57eyBzdXBwb3J0ZWRGaWxlVHlwZXMgfX1cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
- import { tgoIcons } from './icon.config';
2
+ import { tgoIcons, tgoRebrandIcons } from './icon.config';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/material/icon";
5
5
  import * as i2 from "@angular/platform-browser";
@@ -51,7 +51,7 @@ export class IconComponent {
51
51
  if (changes['size'] || changes['cssClass'] || changes['color']) {
52
52
  this.customCssClass = this.setCssClass();
53
53
  }
54
- if (changes['name'] || changes['filled']) {
54
+ if (changes['name'] || changes['filled'] || changes['applicationTheme']) {
55
55
  this.addIcon();
56
56
  }
57
57
  }
@@ -62,20 +62,37 @@ export class IconComponent {
62
62
  //Add icon to matIcon registry
63
63
  addIcon() {
64
64
  let filename;
65
- if (this.filled) {
66
- filename = tgoIcons.find(icon => icon === `${this.name}-filled`);
65
+ if (this.filled || this.name?.includes('filled')) {
66
+ this.name = this.name.replace(/-in-line/, '');
67
+ filename =
68
+ this.applicationTheme === 'classic'
69
+ ? tgoIcons.find(icon => icon === this.filledIconName)
70
+ : tgoRebrandIcons.find(icon => icon === this.filledIconName);
67
71
  }
68
72
  else {
69
- filename = this.name?.replace(/-filled/, '');
73
+ filename =
74
+ this.applicationTheme === 'classic'
75
+ ? this.name?.replace(/-filled|-in-line/, '')
76
+ : this.inlineIconFileName;
70
77
  }
71
78
  if (!filename) {
72
79
  filename = tgoIcons.find(icon => icon === this.name);
73
80
  }
74
81
  this.name = filename;
82
+ const path = this.applicationTheme === 'classic' ? '/icons/' : '/icons/rebrand/';
75
83
  if (filename) {
76
- this.matIconRegistry.addSvgIcon(filename, this.domSanitzer.bypassSecurityTrustResourceUrl(`/icons/${filename}.svg`));
84
+ this.matIconRegistry.addSvgIcon(filename, this.domSanitzer.bypassSecurityTrustResourceUrl(`${path}${filename}.svg`));
77
85
  }
78
86
  }
87
+ get filledIconName() {
88
+ return this.name.includes('filled') ? this.name : `${this.name}-filled`;
89
+ }
90
+ get inlineIconName() {
91
+ return this.name.includes('in-line') ? this.name : `${this.name}-in-line`;
92
+ }
93
+ get inlineIconFileName() {
94
+ return this.name.includes('filled') ? this.name.replace('filled', 'in-line') : this.inlineIconName;
95
+ }
79
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconComponent, deps: [{ token: i1.MatIconRegistry }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
80
97
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IconComponent, selector: "ui-icon", inputs: { size: "size", cssClass: "cssClass", name: "name", color: "color", filled: "filled", applicationTheme: "applicationTheme" }, host: { properties: { "style.--icon-size": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<mat-icon [svgIcon]=\"name\" [attr.class]=\"customCssClass\"></mat-icon>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{width:var(--icon-size) px!important;height:var(--icon-size) px!important}mat-icon{display:flex}mat-icon.size-16 svg{width:16px;height:16px}mat-icon.size-24 svg{width:24px;height:24px}mat-icon.size-40 svg{width:40px;height:40px}mat-icon.size-80 svg{width:80px;height:80px}mat-icon.dark svg{color:#888}mat-icon.white svg{color:#fff}mat-icon.teal svg{color:#46a997}mat-icon.petrol svg{color:#276678}mat-icon.black svg{color:#000}mat-icon.rebrand-black svg{color:#242424}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
81
98
  }
@@ -98,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
98
115
  }], applicationTheme: [{
99
116
  type: Input
100
117
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBeUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVV6QyxNQUFNLE9BQU8sYUFBYTtJQW9EeEIsWUFBb0IsZUFBZ0MsRUFBVSxXQUF5QjtRQUFuRSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQW5EdkY7Ozs7O1dBS0c7UUFFTSxTQUFJLEdBQWEsSUFBSSxDQUFDO1FBRS9COzs7O1dBSUc7UUFDTSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBVXZCOzs7OztXQUtHO1FBQ00sVUFBSyxHQUFlLE9BQU8sQ0FBQztRQUVyQzs7Ozs7V0FLRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFeEI7Ozs7OztXQU1HO1FBQ00scUJBQWdCLEdBQXFCLFNBQVMsQ0FBQztJQUlrQyxDQUFDO0lBRTNGLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFHO1lBQy9ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsV0FBVztRQUNULE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxTQUFTLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsT0FBTztRQUNMLElBQUksUUFBOEIsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1NBQ2xFO2FBQU07WUFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBYSxDQUFDO1NBQzFEO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RDtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBb0IsQ0FBQztRQUVqQyxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUM3QixRQUFRLEVBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxVQUFVLFFBQVEsTUFBTSxDQUFDLENBQzFFLENBQUM7U0FDSDtJQUNILENBQUM7K0dBL0ZVLGFBQWE7bUdBQWIsYUFBYSxzUUNiMUIsNEVBQ0E7OzRGRFlhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsU0FBUyxpQkFHSixpQkFBaUIsQ0FBQyxJQUFJO2lJQVU1QixJQUFJO3NCQURaLFdBQVc7dUJBQUMsbUJBQW1COztzQkFDL0IsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsTUFBTTtzQkFBZCxLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgdGdvSWNvbnMgfSBmcm9tICcuL2ljb24uY29uZmlnJztcbmltcG9ydCB7IEljb25Db2xvciwgSWNvbk5hbWUsIEljb25TaXplIH0gZnJvbSAnLi9pY29uLm1vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBJY29uIHNpemVcbiAgICpcbiAgICogQHR5cGUge0ljb25TaXplfVxuICAgKiBAbWVtYmVyb2YgSWNvbkNvbXBvbmVudFxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWljb24tc2l6ZScpXG4gIEBJbnB1dCgpIHNpemU6IEljb25TaXplID0gJzE2JztcblxuICAvKipcbiAgICogSWNvbiBjc3MgY2xhc3NcbiAgICpcbiAgICogQG1lbWJlcm9mIEljb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGNzc0NsYXNzID0gJyc7XG5cbiAgLyoqXG4gICAqIEljb24gbmFtZVxuICAgKlxuICAgKiBAdHlwZSB7SWNvbk5hbWV9XG4gICAqIEBtZW1iZXJvZiBJY29uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBuYW1lOiBJY29uTmFtZTtcblxuICAvKipcbiAgICogSWNvbiBjb2xvclxuICAgKlxuICAgKiBAdHlwZSB7SWNvbkNvbG9yfVxuICAgKiBAbWVtYmVyb2YgSWNvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgY29sb3I/OiBJY29uQ29sb3IgPSAnYmxhY2snO1xuXG4gIC8qKlxuICAgKiBJY29uIGZpbGxlZFxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIEljb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGZpbGxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBEZWZpbmVzIHRoZSBhcHBsaWNhdGlvbiB0aGVtZVxuICAgKlxuICAgKiBAdHlwZSB7QXBwbGljYXRpb25UaGVtZX1cbiAgICogQG1lbWJlcm9mIEljb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnY2xhc3NpYyc7XG5cbiAgY3VzdG9tQ3NzQ2xhc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdEljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LCBwcml2YXRlIGRvbVNhbml0emVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21Dc3NDbGFzcyA9IHRoaXMuc2V0Q3NzQ2xhc3MoKTtcbiAgICB0aGlzLmFkZEljb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snc2l6ZSddIHx8IGNoYW5nZXNbJ2Nzc0NsYXNzJ10gfHwgY2hhbmdlc1snY29sb3InXSApIHtcbiAgICAgIHRoaXMuY3VzdG9tQ3NzQ2xhc3MgPSB0aGlzLnNldENzc0NsYXNzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyduYW1lJ10gfHwgY2hhbmdlc1snZmlsbGVkJ10pIHtcbiAgICAgIHRoaXMuYWRkSWNvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vc2V0IGNzcyBjbGFzcyBmb3Igc2l6ZVxuICBzZXRDc3NDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNzc0NsYXNzfSBzaXplLSR7dGhpcy5zaXplfSAke3RoaXMuY29sb3J9YDtcbiAgfVxuXG4gIC8vQWRkIGljb24gdG8gbWF0SWNvbiByZWdpc3RyeVxuICBhZGRJY29uKCkge1xuICAgIGxldCBmaWxlbmFtZTogSWNvbk5hbWUgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5maWxsZWQpIHtcbiAgICAgIGZpbGVuYW1lID0gdGdvSWNvbnMuZmluZChpY29uID0+IGljb24gPT09IGAke3RoaXMubmFtZX0tZmlsbGVkYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVuYW1lID0gdGhpcy5uYW1lPy5yZXBsYWNlKC8tZmlsbGVkLywgJycpIGFzIEljb25OYW1lO1xuICAgIH1cblxuICAgIGlmICghZmlsZW5hbWUpIHtcbiAgICAgIGZpbGVuYW1lID0gdGdvSWNvbnMuZmluZChpY29uID0+IGljb24gPT09IHRoaXMubmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5uYW1lID0gZmlsZW5hbWUgYXMgSWNvbk5hbWU7XG5cbiAgICBpZiAoZmlsZW5hbWUpIHtcbiAgICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oXG4gICAgICAgIGZpbGVuYW1lLFxuICAgICAgICB0aGlzLmRvbVNhbml0emVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChgL2ljb25zLyR7ZmlsZW5hbWV9LnN2Z2ApXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPG1hdC1pY29uIFtzdmdJY29uXT1cIm5hbWVcIiBbYXR0ci5jbGFzc109XCJjdXN0b21Dc3NDbGFzc1wiPjwvbWF0LWljb24+XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBeUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFVMUQsTUFBTSxPQUFPLGFBQWE7SUFxRHhCLFlBQW9CLGVBQWdDLEVBQVUsV0FBeUI7UUFBbkUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWM7UUFwRHZGOzs7OztXQUtHO1FBRU0sU0FBSSxHQUFhLElBQUksQ0FBQztRQUUvQjs7OztXQUlHO1FBQ00sYUFBUSxHQUFHLEVBQUUsQ0FBQztRQVV2Qjs7Ozs7V0FLRztRQUNNLFVBQUssR0FBZSxPQUFPLENBQUM7UUFFckM7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXhCOzs7Ozs7V0FNRztRQUNNLHFCQUFnQixHQUFxQixTQUFTLENBQUM7SUFLa0MsQ0FBQztJQUUzRixRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRztZQUMvRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLFdBQVc7UUFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsU0FBUyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLE9BQU87UUFDTCxJQUFJLFFBQThCLENBQUM7UUFFbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBYSxDQUFDO1lBQzFELFFBQVE7Z0JBQ04sSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVM7b0JBQ2pDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3JELENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0wsUUFBUTtnQkFDTixJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUztvQkFDakMsQ0FBQyxDQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBYztvQkFDMUQsQ0FBQyxDQUFFLElBQUksQ0FBQyxrQkFBK0IsQ0FBQztTQUM3QztRQUVELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQW9CLENBQUM7UUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUVqRixJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUM3QixRQUFRLEVBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLElBQUksR0FBRyxRQUFRLE1BQU0sQ0FBQyxDQUMxRSxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNyRyxDQUFDOytHQXBIVSxhQUFhO21HQUFiLGFBQWEsc1FDYjFCLDRFQUNBOzs0RkRZYSxhQUFhO2tCQU56QixTQUFTOytCQUNFLFNBQVMsaUJBR0osaUJBQWlCLENBQUMsSUFBSTtpSUFVNUIsSUFBSTtzQkFEWixXQUFXO3VCQUFDLG1CQUFtQjs7c0JBQy9CLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFRRyxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFTRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IHRnb0ljb25zLCB0Z29SZWJyYW5kSWNvbnMgfSBmcm9tICcuL2ljb24uY29uZmlnJztcbmltcG9ydCB7IEljb25Db2xvciwgSWNvbk5hbWUsIEljb25TaXplIH0gZnJvbSAnLi9pY29uLm1vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pY29uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogSWNvbiBzaXplXG4gICAqXG4gICAqIEB0eXBlIHtJY29uU2l6ZX1cbiAgICogQG1lbWJlcm9mIEljb25Db21wb25lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1pY29uLXNpemUnKVxuICBASW5wdXQoKSBzaXplOiBJY29uU2l6ZSA9ICcxNic7XG5cbiAgLyoqXG4gICAqIEljb24gY3NzIGNsYXNzXG4gICAqXG4gICAqIEBtZW1iZXJvZiBJY29uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjc3NDbGFzcyA9ICcnO1xuXG4gIC8qKlxuICAgKiBJY29uIG5hbWVcbiAgICpcbiAgICogQHR5cGUge0ljb25OYW1lfVxuICAgKiBAbWVtYmVyb2YgSWNvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbmFtZTogSWNvbk5hbWU7XG5cbiAgLyoqXG4gICAqIEljb24gY29sb3JcbiAgICpcbiAgICogQHR5cGUge0ljb25Db2xvcn1cbiAgICogQG1lbWJlcm9mIEljb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogSWNvbkNvbG9yID0gJ2JsYWNrJztcblxuICAvKipcbiAgICogSWNvbiBmaWxsZWRcbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBJY29uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBmaWxsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBJY29uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2NsYXNzaWMnO1xuXG4gIGN1c3RvbUNzc0NsYXNzOiBzdHJpbmc7XG4gIGZpbGVuYW1lOiBJY29uTmFtZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdEljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LCBwcml2YXRlIGRvbVNhbml0emVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21Dc3NDbGFzcyA9IHRoaXMuc2V0Q3NzQ2xhc3MoKTtcbiAgICB0aGlzLmFkZEljb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snc2l6ZSddIHx8IGNoYW5nZXNbJ2Nzc0NsYXNzJ10gfHwgY2hhbmdlc1snY29sb3InXSApIHtcbiAgICAgIHRoaXMuY3VzdG9tQ3NzQ2xhc3MgPSB0aGlzLnNldENzc0NsYXNzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyduYW1lJ10gfHwgY2hhbmdlc1snZmlsbGVkJ10gfHwgY2hhbmdlc1snYXBwbGljYXRpb25UaGVtZSddKSB7XG4gICAgICB0aGlzLmFkZEljb24oKTtcbiAgICB9XG4gIH1cblxuICAvL3NldCBjc3MgY2xhc3MgZm9yIHNpemVcbiAgc2V0Q3NzQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5jc3NDbGFzc30gc2l6ZS0ke3RoaXMuc2l6ZX0gJHt0aGlzLmNvbG9yfWA7XG4gIH1cblxuICAvL0FkZCBpY29uIHRvIG1hdEljb24gcmVnaXN0cnlcbiAgYWRkSWNvbigpIHtcbiAgICBsZXQgZmlsZW5hbWU6IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMuZmlsbGVkIHx8IHRoaXMubmFtZT8uaW5jbHVkZXMoJ2ZpbGxlZCcpKSB7XG4gICAgICB0aGlzLm5hbWUgPSB0aGlzLm5hbWUucmVwbGFjZSgvLWluLWxpbmUvLCAnJykgYXMgSWNvbk5hbWU7XG4gICAgICBmaWxlbmFtZSA9XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnXG4gICAgICAgICAgPyB0Z29JY29ucy5maW5kKGljb24gPT4gaWNvbiA9PT0gdGhpcy5maWxsZWRJY29uTmFtZSlcbiAgICAgICAgICA6IHRnb1JlYnJhbmRJY29ucy5maW5kKGljb24gPT4gaWNvbiA9PT0gdGhpcy5maWxsZWRJY29uTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVuYW1lID1cbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblRoZW1lID09PSAnY2xhc3NpYydcbiAgICAgICAgICA/ICh0aGlzLm5hbWU/LnJlcGxhY2UoLy1maWxsZWR8LWluLWxpbmUvLCAnJykgYXMgSWNvbk5hbWUpXG4gICAgICAgICAgOiAodGhpcy5pbmxpbmVJY29uRmlsZU5hbWUgYXMgSWNvbk5hbWUpO1xuICAgIH1cblxuICAgIGlmICghZmlsZW5hbWUpIHtcbiAgICAgIGZpbGVuYW1lID0gdGdvSWNvbnMuZmluZChpY29uID0+IGljb24gPT09IHRoaXMubmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5uYW1lID0gZmlsZW5hbWUgYXMgSWNvbk5hbWU7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnID8gJy9pY29ucy8nIDogJy9pY29ucy9yZWJyYW5kLyc7XG5cbiAgICBpZiAoZmlsZW5hbWUpIHtcbiAgICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oXG4gICAgICAgIGZpbGVuYW1lLFxuICAgICAgICB0aGlzLmRvbVNhbml0emVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChgJHtwYXRofSR7ZmlsZW5hbWV9LnN2Z2ApXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmaWxsZWRJY29uTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLmluY2x1ZGVzKCdmaWxsZWQnKSA/IHRoaXMubmFtZSA6IGAke3RoaXMubmFtZX0tZmlsbGVkYDtcbiAgfVxuXG4gIGdldCBpbmxpbmVJY29uTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLmluY2x1ZGVzKCdpbi1saW5lJykgPyB0aGlzLm5hbWUgOiBgJHt0aGlzLm5hbWV9LWluLWxpbmVgO1xuICB9XG5cbiAgZ2V0IGlubGluZUljb25GaWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLmluY2x1ZGVzKCdmaWxsZWQnKSA/IHRoaXMubmFtZS5yZXBsYWNlKCdmaWxsZWQnLCAnaW4tbGluZScpIDogdGhpcy5pbmxpbmVJY29uTmFtZTtcbiAgfVxufVxuIiwiPG1hdC1pY29uIFtzdmdJY29uXT1cIm5hbWVcIiBbYXR0ci5jbGFzc109XCJjdXN0b21Dc3NDbGFzc1wiPjwvbWF0LWljb24+XG4iXX0=