tnp-helpers 13.0.37 → 13.1.1

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 (223) hide show
  1. package/app.d.ts +1 -1
  2. package/app.js +6 -6
  3. package/app.js.map +1 -1
  4. package/browser/README.md +24 -24
  5. package/browser/esm2020/lib/base-component.mjs +48 -48
  6. package/browser/esm2020/lib/base-formly-component.mjs +126 -126
  7. package/browser/esm2020/lib/condition-wait.mjs +53 -53
  8. package/browser/esm2020/lib/constants.mjs +7 -2
  9. package/browser/esm2020/lib/dual-component-ctrl.mjs +120 -120
  10. package/browser/esm2020/lib/helpers-array-obj.mjs +80 -80
  11. package/browser/esm2020/lib/helpers-environment.mjs +30 -30
  12. package/browser/esm2020/lib/helpers-numbers.mjs +5 -5
  13. package/browser/esm2020/lib/helpers-strings-regexes.mjs +48 -48
  14. package/browser/esm2020/lib/helpers-strings.mjs +258 -256
  15. package/browser/esm2020/lib/helpers.mjs +276 -276
  16. package/browser/esm2020/lib/index.mjs +14 -14
  17. package/browser/esm2020/lib/long-press.directive.mjs +112 -112
  18. package/browser/esm2020/lib/project.mjs +414 -405
  19. package/browser/esm2020/lib/resize-service.mjs +20 -20
  20. package/browser/esm2020/public-api.mjs +1 -1
  21. package/browser/esm2020/tnp-helpers.mjs +4 -4
  22. package/browser/fesm2015/tnp-helpers.mjs +1537 -1522
  23. package/browser/fesm2015/tnp-helpers.mjs.map +1 -1
  24. package/browser/fesm2020/tnp-helpers.mjs +1529 -1514
  25. package/browser/fesm2020/tnp-helpers.mjs.map +1 -1
  26. package/browser/lib/base-component.d.ts +17 -17
  27. package/browser/lib/base-formly-component.d.ts +31 -31
  28. package/browser/lib/condition-wait.d.ts +8 -8
  29. package/browser/lib/constants.d.ts +6 -1
  30. package/browser/lib/dual-component-ctrl.d.ts +25 -25
  31. package/browser/lib/helpers-array-obj.d.ts +15 -15
  32. package/browser/lib/helpers-environment.d.ts +5 -5
  33. package/browser/lib/helpers-numbers.d.ts +3 -3
  34. package/browser/lib/helpers-strings-regexes.d.ts +28 -28
  35. package/browser/lib/helpers-strings.d.ts +50 -50
  36. package/browser/lib/helpers.d.ts +28 -28
  37. package/browser/lib/index.d.ts +10 -10
  38. package/browser/lib/long-press.directive.d.ts +25 -25
  39. package/browser/lib/project.d.ts +91 -91
  40. package/browser/lib/resize-service.d.ts +9 -9
  41. package/browser/public-api.d.ts +1 -1
  42. package/browser/tnp-helpers.d.ts +5 -5
  43. package/client/README.md +24 -24
  44. package/client/esm2020/lib/base-component.mjs +48 -48
  45. package/client/esm2020/lib/base-formly-component.mjs +126 -126
  46. package/client/esm2020/lib/condition-wait.mjs +53 -53
  47. package/client/esm2020/lib/constants.mjs +7 -2
  48. package/client/esm2020/lib/dual-component-ctrl.mjs +120 -120
  49. package/client/esm2020/lib/helpers-array-obj.mjs +80 -80
  50. package/client/esm2020/lib/helpers-environment.mjs +30 -30
  51. package/client/esm2020/lib/helpers-numbers.mjs +5 -5
  52. package/client/esm2020/lib/helpers-strings-regexes.mjs +48 -48
  53. package/client/esm2020/lib/helpers-strings.mjs +258 -256
  54. package/client/esm2020/lib/helpers.mjs +276 -276
  55. package/client/esm2020/lib/index.mjs +14 -14
  56. package/client/esm2020/lib/long-press.directive.mjs +112 -112
  57. package/client/esm2020/lib/project.mjs +414 -405
  58. package/client/esm2020/lib/resize-service.mjs +20 -20
  59. package/client/esm2020/public-api.mjs +1 -1
  60. package/client/esm2020/tnp-helpers.mjs +4 -4
  61. package/client/fesm2015/tnp-helpers.mjs +1537 -1522
  62. package/client/fesm2015/tnp-helpers.mjs.map +1 -1
  63. package/client/fesm2020/tnp-helpers.mjs +1529 -1514
  64. package/client/fesm2020/tnp-helpers.mjs.map +1 -1
  65. package/client/lib/base-component.d.ts +17 -17
  66. package/client/lib/base-formly-component.d.ts +31 -31
  67. package/client/lib/condition-wait.d.ts +8 -8
  68. package/client/lib/constants.d.ts +6 -1
  69. package/client/lib/dual-component-ctrl.d.ts +25 -25
  70. package/client/lib/helpers-array-obj.d.ts +15 -15
  71. package/client/lib/helpers-environment.d.ts +5 -5
  72. package/client/lib/helpers-numbers.d.ts +3 -3
  73. package/client/lib/helpers-strings-regexes.d.ts +28 -28
  74. package/client/lib/helpers-strings.d.ts +50 -50
  75. package/client/lib/helpers.d.ts +28 -28
  76. package/client/lib/index.d.ts +10 -10
  77. package/client/lib/long-press.directive.d.ts +25 -25
  78. package/client/lib/project.d.ts +91 -91
  79. package/client/lib/resize-service.d.ts +9 -9
  80. package/client/public-api.d.ts +1 -1
  81. package/client/tnp-helpers.d.ts +5 -5
  82. package/index.d.ts +1 -1
  83. package/index.js +5 -5
  84. package/index.js.map +1 -1
  85. package/lib/angular.helper.d.ts +22 -22
  86. package/lib/angular.helper.js +50 -49
  87. package/lib/angular.helper.js.map +1 -1
  88. package/lib/base-component.d.ts +1 -1
  89. package/lib/base-component.js +6 -6
  90. package/lib/base-component.js.map +1 -1
  91. package/lib/base-formly-component.d.ts +1 -1
  92. package/lib/base-formly-component.js +6 -6
  93. package/lib/base-formly-component.js.map +1 -1
  94. package/lib/condition-wait.d.ts +8 -8
  95. package/lib/condition-wait.js +94 -94
  96. package/lib/condition-wait.js.map +1 -1
  97. package/lib/constants.d.ts +6 -1
  98. package/lib/constants.js +10 -5
  99. package/lib/constants.js.map +1 -1
  100. package/lib/dual-component-ctrl.d.ts +1 -1
  101. package/lib/dual-component-ctrl.js +6 -6
  102. package/lib/dual-component-ctrl.js.map +1 -1
  103. package/lib/git-project.d.ts +44 -44
  104. package/lib/git-project.js +195 -191
  105. package/lib/git-project.js.map +1 -1
  106. package/lib/helpers-array-obj.d.ts +15 -15
  107. package/lib/helpers-array-obj.js +88 -88
  108. package/lib/helpers-array-obj.js.map +1 -1
  109. package/lib/helpers-cli-tool.backend.d.ts +45 -45
  110. package/lib/helpers-cli-tool.backend.js +293 -293
  111. package/lib/helpers-cli-tool.backend.js.map +1 -1
  112. package/lib/helpers-dependencies.backend.d.ts +11 -11
  113. package/lib/helpers-dependencies.backend.js +105 -105
  114. package/lib/helpers-dependencies.backend.js.map +1 -1
  115. package/lib/helpers-environment.d.ts +5 -5
  116. package/lib/helpers-environment.js +35 -35
  117. package/lib/helpers-environment.js.map +1 -1
  118. package/lib/helpers-file-folders.backend.d.ts +84 -73
  119. package/lib/helpers-file-folders.backend.js +736 -707
  120. package/lib/helpers-file-folders.backend.js.map +1 -1
  121. package/lib/helpers-git.backend.d.ts +35 -35
  122. package/lib/helpers-git.backend.js +545 -534
  123. package/lib/helpers-git.backend.js.map +1 -1
  124. package/lib/helpers-json5.backend.d.ts +16 -16
  125. package/lib/helpers-json5.backend.js +70 -70
  126. package/lib/helpers-json5.backend.js.map +1 -1
  127. package/lib/helpers-morphi-framework.backend.d.ts +4 -4
  128. package/lib/helpers-morphi-framework.backend.js +49 -49
  129. package/lib/helpers-morphi-framework.backend.js.map +1 -1
  130. package/lib/helpers-network.backend.d.ts +8 -8
  131. package/lib/helpers-network.backend.js +48 -48
  132. package/lib/helpers-network.backend.js.map +1 -1
  133. package/lib/helpers-npm.backend.d.ts +3 -3
  134. package/lib/helpers-npm.backend.js +17 -17
  135. package/lib/helpers-npm.backend.js.map +1 -1
  136. package/lib/helpers-numbers.d.ts +3 -3
  137. package/lib/helpers-numbers.js +11 -11
  138. package/lib/helpers-numbers.js.map +1 -1
  139. package/lib/helpers-path.backend.d.ts +7 -7
  140. package/lib/helpers-path.backend.js +36 -35
  141. package/lib/helpers-path.backend.js.map +1 -1
  142. package/lib/helpers-process.backend.d.ts +57 -51
  143. package/lib/helpers-process.backend.js +529 -523
  144. package/lib/helpers-process.backend.js.map +1 -1
  145. package/lib/helpers-strings-regexes.d.ts +28 -28
  146. package/lib/helpers-strings-regexes.js +60 -60
  147. package/lib/helpers-strings-regexes.js.map +1 -1
  148. package/lib/helpers-strings.d.ts +50 -50
  149. package/lib/helpers-strings.js +265 -263
  150. package/lib/helpers-strings.js.map +1 -1
  151. package/lib/helpers-system-terminal.backend.d.ts +5 -5
  152. package/lib/helpers-system-terminal.backend.js +53 -53
  153. package/lib/helpers-system-terminal.backend.js.map +1 -1
  154. package/lib/helpers.d.ts +67 -67
  155. package/lib/helpers.js +391 -372
  156. package/lib/helpers.js.map +1 -1
  157. package/lib/index.d.ts +6 -6
  158. package/lib/index.js +19 -19
  159. package/lib/index.js.map +1 -1
  160. package/lib/long-press.directive.d.ts +22 -22
  161. package/lib/long-press.directive.js +141 -141
  162. package/lib/long-press.directive.js.map +1 -1
  163. package/lib/merge-helpers.backend.d.ts +23 -23
  164. package/lib/merge-helpers.backend.js +108 -108
  165. package/lib/merge-helpers.backend.js.map +1 -1
  166. package/lib/project.d.ts +94 -94
  167. package/lib/project.js +422 -419
  168. package/lib/project.js.map +1 -1
  169. package/lib/resize-service.d.ts +6 -6
  170. package/lib/resize-service.js +24 -24
  171. package/lib/resize-service.js.map +1 -1
  172. package/lib/ts-code/index.d.ts +1 -1
  173. package/lib/ts-code/index.js +7 -7
  174. package/lib/ts-code/index.js.map +1 -1
  175. package/lib/ts-code/ts-code-extractor.d.ts +14 -14
  176. package/lib/ts-code/ts-code-extractor.js +46 -46
  177. package/lib/ts-code/ts-code-extractor.js.map +1 -1
  178. package/lib/ts-code/ts-code-modifier.backend.d.ts +12 -12
  179. package/lib/ts-code/ts-code-modifier.backend.js +70 -70
  180. package/lib/ts-code/ts-code-modifier.backend.js.map +1 -1
  181. package/package.json +3 -3
  182. package/package.json_devDependencies.json +222 -222
  183. package/package.json_tnp.json5 +41 -33
  184. package/tmp-environment.json +48 -45
  185. package/websql/README.md +24 -24
  186. package/websql/esm2020/lib/base-component.mjs +48 -48
  187. package/websql/esm2020/lib/base-formly-component.mjs +126 -126
  188. package/websql/esm2020/lib/condition-wait.mjs +53 -53
  189. package/websql/esm2020/lib/constants.mjs +7 -2
  190. package/websql/esm2020/lib/dual-component-ctrl.mjs +120 -120
  191. package/websql/esm2020/lib/helpers-array-obj.mjs +80 -80
  192. package/websql/esm2020/lib/helpers-environment.mjs +30 -30
  193. package/websql/esm2020/lib/helpers-numbers.mjs +5 -5
  194. package/websql/esm2020/lib/helpers-strings-regexes.mjs +48 -48
  195. package/websql/esm2020/lib/helpers-strings.mjs +258 -256
  196. package/websql/esm2020/lib/helpers.mjs +276 -276
  197. package/websql/esm2020/lib/index.mjs +14 -14
  198. package/websql/esm2020/lib/long-press.directive.mjs +112 -112
  199. package/websql/esm2020/lib/project.mjs +414 -405
  200. package/websql/esm2020/lib/resize-service.mjs +20 -20
  201. package/websql/esm2020/public-api.mjs +1 -1
  202. package/websql/esm2020/tnp-helpers.mjs +4 -4
  203. package/websql/fesm2015/tnp-helpers.mjs +1537 -1522
  204. package/websql/fesm2015/tnp-helpers.mjs.map +1 -1
  205. package/websql/fesm2020/tnp-helpers.mjs +1529 -1514
  206. package/websql/fesm2020/tnp-helpers.mjs.map +1 -1
  207. package/websql/lib/base-component.d.ts +17 -17
  208. package/websql/lib/base-formly-component.d.ts +31 -31
  209. package/websql/lib/condition-wait.d.ts +8 -8
  210. package/websql/lib/constants.d.ts +6 -1
  211. package/websql/lib/dual-component-ctrl.d.ts +25 -25
  212. package/websql/lib/helpers-array-obj.d.ts +15 -15
  213. package/websql/lib/helpers-environment.d.ts +5 -5
  214. package/websql/lib/helpers-numbers.d.ts +3 -3
  215. package/websql/lib/helpers-strings-regexes.d.ts +28 -28
  216. package/websql/lib/helpers-strings.d.ts +50 -50
  217. package/websql/lib/helpers.d.ts +28 -28
  218. package/websql/lib/index.d.ts +10 -10
  219. package/websql/lib/long-press.directive.d.ts +25 -25
  220. package/websql/lib/project.d.ts +91 -91
  221. package/websql/lib/resize-service.d.ts +9 -9
  222. package/websql/public-api.d.ts +1 -1
  223. package/websql/tnp-helpers.d.ts +5 -5
@@ -1,405 +1,414 @@
1
- /* */
2
- /* */
3
- /* */
4
- /* */
5
- /* */
6
- import { config } from 'tnp-config/browser';
7
- import { HelpersTnp } from './helpers';
8
- const Helpers = HelpersTnp.Instance;
9
- export class Project {
10
- constructor() {
11
- /* */
12
- /* */
13
- this.cache = {};
14
- this.browser = {};
15
- }
16
- static typeFrom(location) {
17
- /* */
18
- /* */
19
- /* */
20
- /* */
21
- /* */
22
- /* */
23
- /* */
24
- /* */
25
- /* */
26
- /* */
27
- /* */
28
- /* */
29
- return (void 0);
30
- }
31
- static unload(project) {
32
- Project.projects = Project.projects.filter(f => f !== project);
33
- }
34
- static From(location) {
35
- /* */
36
- /* */
37
- /* */
38
- /* */
39
- /* */
40
- /* */
41
- /* */
42
- /* */
43
- /* */
44
- /* */
45
- /* */
46
- /* */
47
- /* */
48
- /* */
49
- /* */
50
- /* */
51
- /* */
52
- /* */
53
- /* */
54
- /* */
55
- /* */
56
- /* */
57
- /* */
58
- /* */
59
- /* */
60
- /* */
61
- /* */
62
- /* */
63
- /* */
64
- /* */
65
- /* */
66
- /* */
67
- /* */
68
- /* */
69
- /* */
70
- /* */
71
- /* */
72
- /* */
73
- /* */
74
- /* */
75
- /* */
76
- /* */
77
- /* */
78
- /* */
79
- /* */
80
- /* */
81
- /* */
82
- /* */
83
- /* */
84
- /* */
85
- /* */
86
- /* */
87
- /* */
88
- /* */
89
- /* */
90
- /* */
91
- /* */
92
- /* */
93
- /* */
94
- /* */
95
- /* */
96
- /* */
97
- /* */
98
- /* */
99
- /* */
100
- /* */
101
- /* */
102
- /* */
103
- /* */
104
- /* */
105
- /* */
106
- /* */
107
- /* */
108
- /* */
109
- /* */
110
- /* */
111
- /* */
112
- /* */
113
- /* */
114
- /* */
115
- /* */
116
- /* */
117
- /* */
118
- /* */
119
- /* */
120
- /* */
121
- /* */
122
- /* */
123
- /* */
124
- /* */
125
- /* */
126
- /* */
127
- /* */
128
- /* */
129
- /* */
130
- /* */
131
- /* */
132
- /* */
133
- /* */
134
- /* */
135
- /* */
136
- /* */
137
- /* */
138
- return (void 0);
139
- }
140
- static nearestTo(absoluteLocation, options) {
141
- /* */
142
- /* */
143
- /* */
144
- /* */
145
- /* */
146
- /* */
147
- /* */
148
- /* */
149
- /* */
150
- /* */
151
- /* */
152
- /* */
153
- /* */
154
- /* */
155
- /* */
156
- /* */
157
- /* */
158
- /* */
159
- /* */
160
- /* */
161
- /* */
162
- /* */
163
- /* */
164
- /* */
165
- /* */
166
- /* */
167
- /* */
168
- /* */
169
- /* */
170
- /* */
171
- /* */
172
- /* */
173
- /* */
174
- /* */
175
- /* */
176
- /* */
177
- /* */
178
- /* */
179
- /* */
180
- /* */
181
- /* */
182
- /* */
183
- /* */
184
- /* */
185
- /* */
186
- /* */
187
- /* */
188
- /* */
189
- /* */
190
- /* */
191
- /* */
192
- /* */
193
- /* */
194
- /* */
195
- /* */
196
- /* */
197
- /* */
198
- /* */
199
- return (void 0);
200
- }
201
- static allProjectFrom(absoluteLocation, stopOnCwd = '/') {
202
- /* */
203
- /* */
204
- /* */
205
- /* */
206
- /* */
207
- /* */
208
- /* */
209
- /* */
210
- /* */
211
- /* */
212
- /* */
213
- /* */
214
- /* */
215
- /* */
216
- /* */
217
- /* */
218
- /* */
219
- /* */
220
- /* */
221
- /* */
222
- /* */
223
- /* */
224
- return (void 0);
225
- }
226
- static DefaultPortByType(type) {
227
- if (type === 'workspace') {
228
- return 5000;
229
- }
230
- if (type === 'angular-client') {
231
- return 4300;
232
- }
233
- if (type === 'angular-lib') {
234
- return 4250;
235
- }
236
- if (type === 'electron-client') {
237
- return 4350;
238
- }
239
- if (type === 'ionic-client') {
240
- return 8080;
241
- }
242
- if (type === 'docker') {
243
- return 5000;
244
- }
245
- if (type === 'isomorphic-lib') {
246
- return 4000;
247
- }
248
- if (type === 'container' || type === 'unknow-npm-project') {
249
- return;
250
- }
251
- }
252
- static get isBundleMode() {
253
- if (Helpers.isBrowser) {
254
- return true;
255
- }
256
- /* */
257
- /* */
258
- }
259
- static get Current() {
260
- /* */
261
- /* */
262
- /* */
263
- /* */
264
- /* */
265
- /* */
266
- /* */
267
- /* */
268
- /* */
269
- /* */
270
- /* */
271
- return (void 0);
272
- }
273
- /* */
274
- /* */
275
- /* */
276
- /* */
277
- static get Tnp() {
278
- /* */
279
- /* */
280
- /* */
281
- /* */
282
- /* */
283
- /* */
284
- /* */
285
- return (void 0);
286
- }
287
- static by(libraryType, version
288
- /* */
289
- /* */
290
- ) {
291
- /* */
292
- /* */
293
- /* */
294
- /* */
295
- /* */
296
- /* */
297
- /* */
298
- /* */
299
- /* */
300
- /* */
301
- /* */
302
- /* */
303
- /* */
304
- /* */
305
- /* */
306
- /* */
307
- /* */
308
- /* */
309
- /* */
310
- /* */
311
- /* */
312
- /* */
313
- /* */
314
- /* */
315
- /* */
316
- /* */
317
- /* */
318
- return (void 0);
319
- }
320
- defineProperty(variableName, classFn) {
321
- /* */
322
- /* */
323
- /* */
324
- /* */
325
- /* */
326
- /* */
327
- /* */
328
- /* */
329
- /* */
330
- /* */
331
- /* */
332
- /* */
333
- /* */
334
- /* */
335
- /* */
336
- return (void 0);
337
- }
338
- setType(type) {
339
- // @ts-ignore
340
- this._type = type;
341
- }
342
- typeIs(...types) {
343
- return this._type && types.includes(this._type);
344
- }
345
- typeIsNot(...types) {
346
- return !this.typeIs(...types);
347
- }
348
- forEmptyStructure() {
349
- return [
350
- { relativePath: config.file.package_json, includeContent: true },
351
- { relativePath: config.folder.src },
352
- ];
353
- }
354
- }
355
- Project.projects = [];
356
- /**
357
- * To speed up checking folder I am keeping pathes for alterdy checked folder
358
- * This may break things that are creating new projects
359
- */
360
- Project.emptyLocations = [];
361
- /* */
362
- /* */
363
- /* */
364
- /* */
365
- /* */
366
- /* */
367
- /* */
368
- /* */
369
- /* */
370
- /* */
371
- /* */
372
- /* */
373
- /* */
374
- /* */
375
- /* */
376
- /* */
377
- /* */
378
- /* */
379
- /* */
380
- /* */
381
- /* */
382
- /* */
383
- /* */
384
- /* */
385
- /* */
386
- /* */
387
- /* */
388
- /* */
389
- /* */
390
- /* */
391
- /* */
392
- /* */
393
- /* */
394
- /* */
395
- /* */
396
- /* */
397
- /* */
398
- /* */
399
- /* */
400
- /* */
401
- /* */
402
- /* */
403
- /* */
404
- /* */
405
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsT0FBTyxFQUFFLE1BQU0sRUFBNEIsTUFBTSxvQkFBb0IsQ0FBQztBQUt0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFRcEMsTUFBTSxPQUFPLE9BQU87SUFBcEI7UUFLQSxLQUFLO1FBQ0wsS0FBSztRQUdPLFVBQUssR0FBRyxFQUFFLENBQUM7UUFPZCxZQUFPLEdBQTRDLEVBQVMsQ0FBQztJQXladEUsQ0FBQztJQTFWQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQWdCO1FBQ25DLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQW1CLFFBQWdCO1FBQ3ZELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7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S0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmRlY2xhcmUgY29uc3QgZ2xvYmFsOiBhbnk7XG5pbXBvcnQgeyBjb25maWcsIExpYlR5cGVBcnIsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfLCBDb3JlQ29uZmlnIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJ3RucC1tb2RlbHMvYnJvd3Nlcic7XG5pbXBvcnQgeyBNb3JwaGkgfSBmcm9tICdtb3JwaGkvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzVG5wIH0gZnJvbSAnLi9oZWxwZXJzJztcbmNvbnN0IEhlbHBlcnMgPSBIZWxwZXJzVG5wLkluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBFbXB0eVByb2plY3RTdHJ1Y3R1cmUgPSB7XG4gIGluY2x1ZGVDb250ZW50PzogYm9vbGVhbjtcbiAgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG4gIHJlbGF0aXZlTGlua0Zyb20/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY2xhc3MgUHJvamVjdDxUIGV4dGVuZHMgUHJvamVjdDxhbnk+ID0gYW55PlxuLyogKi9cbi8qICovXG4gIFxue1xuLyogKi9cbi8qICovXG4gIFxuXG4gIHByb3RlY3RlZCBjYWNoZSA9IHt9O1xuXG4gIC8qKlxuICAgKiBEbyB1c2UgdGhpcyB2YXJpYWJsZSBmb3IgY29tcGFyYXRpb3NcbiAgICogT05MWSBGT1IgVklFV0lOR1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IF90eXBlOiBDb25maWdNb2RlbHMuTGliVHlwZTtcbiAgcHVibGljIGJyb3dzZXI6IFBpY2s8UHJvamVjdDxhbnk+LCAnbG9jYXRpb24nIHwgJ25hbWUnPiA9IHt9IGFzIGFueTtcbiAgcHVibGljIGxvY2F0aW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZW5lcmljTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgaXNXb3Jrc3BhY2U6IGJvb2xlYW47XG4gIHB1YmxpYyBpc1ZzY29kZUV4dGVuc2lvbjogYm9vbGVhbjtcbiAgcHVibGljIGlzRG9ja2VyOiBib29sZWFuO1xuICBwdWJsaWMgaXNTaXRlOiBib29sZWFuO1xuICBwdWJsaWMgaXNTaXRlSW5TdHJpY3RNb2RlPzogYm9vbGVhbjtcbiAgcHVibGljIGlzU2l0ZUluRGVwZW5kZW5jeU1vZGU/OiBib29sZWFuO1xuICBwdWJsaWMgaXNDb3JlUHJvamVjdDogYm9vbGVhbjtcbiAgcHVibGljIGlzQ29tbWFuZExpbmVUb29sT25seTogYm9vbGVhbjtcbiAgcHVibGljIGlzR2VuZXJhdGVkOiBib29sZWFuO1xuICBwdWJsaWMgaXNHZW5lcmF0ZWRGb3JSZWxlYXNlOiBib29sZWFuO1xuICBwdWJsaWMgaXNXb3Jrc3BhY2VDaGlsZFByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0Jhc2VkT25PdGhlclByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0ZvclJlY3JlYXRpb246IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lcjogYm9vbGVhbjtcbiAgcHVibGljIGlzU21hcnRDb250YWluZXI6IGJvb2xlYW47XG4gIHB1YmxpYyBpc1NtYXJ0Q29udGFpbmVyQ2hpbGQ6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lcldpdGhMaW5rZWRQcm9qZWN0czogYm9vbGVhbjtcbiAgcHVibGljIGlzQ29udGFpbmVyQ2hpbGQ6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lckNvcmVQcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNTdGFuZGFsb25lUHJvamVjdDogYm9vbGVhbjtcbiAgcHVibGljIGlzTW9ub3JlcG86IGJvb2xlYW47XG4gIHB1YmxpYyBpc1Vua25vd05wbVByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc05hdmlDbGk6IGJvb2xlYW47XG4gIHB1YmxpYyB1c2VGcmFtZXdvcms6IGJvb2xlYW47XG4gIHB1YmxpYyBkZWZhdWx0UG9ydD86IG51bWJlcjtcbiAgcHVibGljIHZlcnNpb246IHN0cmluZztcbiAgcHVibGljIGxhc3ROcG1WZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgX3JvdXRlclRhcmdldEh0dHA/OiBzdHJpbmc7XG4gIHB1YmxpYyBjdXN0b21pemFibGVGaWxlc0FuZEZvbGRlcnM6IHN0cmluZ1tdO1xuICBwdWJsaWMgdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGU7XG4gIHB1YmxpYyBiYWNrdXBOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZXNvdXJjZXM6IHN0cmluZ1tdO1xuICBwdWJsaWMgZW52OiBNb2RlbHMuZW52LkVudkNvbmZpZztcbiAgcHVibGljIGFsbG93ZWRFbnZpcm9ubWVudHM6IENvbmZpZ01vZGVscy5FbnZpcm9ubWVudE5hbWVbXTtcblxuICBwdWJsaWMgY2hpbGRyZW46IFRbXTtcbiAgcHVibGljIGdyYW5kcGE6IFQ7XG5cbiAgcHVibGljIGRpc3RyaWJ1dGlvbjogVDtcblxuICBwdWJsaWMgY2hpbGRyZW5UaGF0QXJlTGlicz86IFRbXTtcblxuICBwdWJsaWMgY2hpbGRyZW5UaGF0QXJlQ2xpZW50cz86IFRbXTtcblxuICBwdWJsaWMgY2hpbGRyZW5UaGF0QXJlVGhpcmRQYXJ0eUluTm9kZU1vZHVsZXM/OiBUW107XG5cbiAgcHVibGljIHBhcmVudDogVDtcblxuICBwdWJsaWMgcHJldmlldzogVDtcblxuICBwdWJsaWMgYmFzZWxpbmU6IFQ7XG5cbiAgcHVibGljIHN0YXRpYyBwcm9qZWN0czogUHJvamVjdDxhbnk+W10gPSBbXTtcbiAgLyoqXG4gICAqIFRvIHNwZWVkIHVwIGNoZWNraW5nIGZvbGRlciBJIGFtIGtlZXBpbmcgcGF0aGVzIGZvciBhbHRlcmR5IGNoZWNrZWQgZm9sZGVyXG4gICAqIFRoaXMgbWF5IGJyZWFrIHRoaW5ncyB0aGF0IGFyZSBjcmVhdGluZyBuZXcgcHJvamVjdHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZW1wdHlMb2NhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgc3RhdGljIHR5cGVGcm9tKGxvY2F0aW9uOiBzdHJpbmcpOiBDb25maWdNb2RlbHMuTGliVHlwZSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB1bmxvYWQocHJvamVjdDogUHJvamVjdCkge1xuICAgIFByb2plY3QucHJvamVjdHMgPSBQcm9qZWN0LnByb2plY3RzLmZpbHRlcihmID0+IGYgIT09IHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBGcm9tPFQgPSBQcm9qZWN0PGFueT4+KGxvY2F0aW9uOiBzdHJpbmcpOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBuZWFyZXN0VG88VCA9IFByb2plY3Q+KFxuICAgIGFic29sdXRlTG9jYXRpb246IHN0cmluZyxcbiAgICBvcHRpb25zPzogeyB0eXBlPzogQ29uZmlnTW9kZWxzLkxpYlR5cGU7IGZpbmRHaXRSb290PzogYm9vbGVhbjsgb25seU91dFNpZGVOb2RlTW9kdWxlcz86IGJvb2xlYW4gfSk6IFQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYWxsUHJvamVjdEZyb208VCA9IFByb2plY3Q+KGFic29sdXRlTG9jYXRpb246IHN0cmluZywgc3RvcE9uQ3dkOiBzdHJpbmcgPSAnLycpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEZWZhdWx0UG9ydEJ5VHlwZSh0eXBlOiBDb25maWdNb2RlbHMuTGliVHlwZSk6IG51bWJlciB7XG4gICAgaWYgKHR5cGUgPT09ICd3b3Jrc3BhY2UnKSB7IHJldHVybiA1MDAwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdhbmd1bGFyLWNsaWVudCcpIHsgcmV0dXJuIDQzMDA7IH1cbiAgICBpZiAodHlwZSA9PT0gJ2FuZ3VsYXItbGliJykgeyByZXR1cm4gNDI1MDsgfVxuICAgIGlmICh0eXBlID09PSAnZWxlY3Ryb24tY2xpZW50JykgeyByZXR1cm4gNDM1MDsgfVxuICAgIGlmICh0eXBlID09PSAnaW9uaWMtY2xpZW50JykgeyByZXR1cm4gODA4MDsgfVxuICAgIGlmICh0eXBlID09PSAnZG9ja2VyJykgeyByZXR1cm4gNTAwMDsgfVxuICAgIGlmICh0eXBlID09PSAnaXNvbW9ycGhpYy1saWInKSB7IHJldHVybiA0MDAwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdjb250YWluZXInIHx8IHR5cGUgPT09ICd1bmtub3ctbnBtLXByb2plY3QnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgaXNCdW5kbGVNb2RlKCkge1xuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgc3RhdGljIGdldCBDdXJyZW50KCk6IFByb2plY3Q8YW55PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgc3RhdGljIGdldCBUbnAoKTogUHJvamVjdDxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBieTxUID0gUHJvamVjdD4oXG4gICAgbGlicmFyeVR5cGU6IENvbmZpZ01vZGVscy5OZXdGYWN0b3J5VHlwZSxcbiAgICB2ZXJzaW9uOiBDb25maWdNb2RlbHMuRnJhbWV3b3JrVmVyc2lvblxuLyogKi9cbi8qICovXG4gIFxuICApOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBkZWZpbmVQcm9wZXJ0eTxUPih2YXJpYWJsZU5hbWU6IGtleW9mIFQsIGNsYXNzRm46IEZ1bmN0aW9uKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHNldFR5cGUodGhpczogUHJvamVjdCwgdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cbiAgcHVibGljIHR5cGVJcyh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiB0aGlzLl90eXBlICYmIHR5cGVzLmluY2x1ZGVzKHRoaXMuX3R5cGUpO1xuICB9XG5cbiAgcHVibGljIHR5cGVJc05vdCh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiAhdGhpcy50eXBlSXMoLi4udHlwZXMpO1xuICB9XG5cbiAgZm9yRW1wdHlTdHJ1Y3R1cmUoKTogRW1wdHlQcm9qZWN0U3RydWN0dXJlW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7IHJlbGF0aXZlUGF0aDogY29uZmlnLmZpbGUucGFja2FnZV9qc29uLCBpbmNsdWRlQ29udGVudDogdHJ1ZSB9LFxuICAgICAgeyByZWxhdGl2ZVBhdGg6IGNvbmZpZy5mb2xkZXIuc3JjIH0sXG4gICAgXTtcbiAgfVxuXG59XG5cblxuZXhwb3J0IHR5cGUgUHJvamVjdEJ1aWxkID0geyBwcm9qZWN0OiBQcm9qZWN0OyBhcHBCdWlsZDogYm9vbGVhbjsgfTtcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4iXX0=
1
+ /* */
2
+ /* */
3
+ /* */
4
+ /* */
5
+ /* */
6
+ import { config } from 'tnp-config/browser';
7
+ import { HelpersTnp } from './helpers';
8
+ const Helpers = HelpersTnp.Instance;
9
+ export class Project {
10
+ constructor() {
11
+ /* */
12
+ /* */
13
+ this.cache = {};
14
+ this.browser = {};
15
+ }
16
+ static typeFrom(location) {
17
+ /* */
18
+ /* */
19
+ /* */
20
+ /* */
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ /* */
29
+ return (void 0);
30
+ }
31
+ static unload(project) {
32
+ Project.projects = Project.projects.filter(f => f !== project);
33
+ }
34
+ static From(location) {
35
+ /* */
36
+ /* */
37
+ /* */
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ /* */
45
+ /* */
46
+ /* */
47
+ /* */
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ /* */
62
+ /* */
63
+ /* */
64
+ /* */
65
+ /* */
66
+ /* */
67
+ /* */
68
+ /* */
69
+ /* */
70
+ /* */
71
+ /* */
72
+ /* */
73
+ /* */
74
+ /* */
75
+ /* */
76
+ /* */
77
+ /* */
78
+ /* */
79
+ /* */
80
+ /* */
81
+ /* */
82
+ /* */
83
+ /* */
84
+ /* */
85
+ /* */
86
+ /* */
87
+ /* */
88
+ /* */
89
+ /* */
90
+ /* */
91
+ /* */
92
+ /* */
93
+ /* */
94
+ /* */
95
+ /* */
96
+ /* */
97
+ /* */
98
+ /* */
99
+ /* */
100
+ /* */
101
+ /* */
102
+ /* */
103
+ /* */
104
+ /* */
105
+ /* */
106
+ /* */
107
+ /* */
108
+ /* */
109
+ /* */
110
+ /* */
111
+ /* */
112
+ /* */
113
+ /* */
114
+ /* */
115
+ /* */
116
+ /* */
117
+ /* */
118
+ /* */
119
+ /* */
120
+ /* */
121
+ /* */
122
+ /* */
123
+ /* */
124
+ /* */
125
+ /* */
126
+ /* */
127
+ /* */
128
+ /* */
129
+ /* */
130
+ /* */
131
+ /* */
132
+ /* */
133
+ /* */
134
+ /* */
135
+ /* */
136
+ /* */
137
+ /* */
138
+ /* */
139
+ /* */
140
+ /* */
141
+ /* */
142
+ /* */
143
+ /* */
144
+ /* */
145
+ /* */
146
+ /* */
147
+ return (void 0);
148
+ }
149
+ static nearestTo(absoluteLocation, options) {
150
+ /* */
151
+ /* */
152
+ /* */
153
+ /* */
154
+ /* */
155
+ /* */
156
+ /* */
157
+ /* */
158
+ /* */
159
+ /* */
160
+ /* */
161
+ /* */
162
+ /* */
163
+ /* */
164
+ /* */
165
+ /* */
166
+ /* */
167
+ /* */
168
+ /* */
169
+ /* */
170
+ /* */
171
+ /* */
172
+ /* */
173
+ /* */
174
+ /* */
175
+ /* */
176
+ /* */
177
+ /* */
178
+ /* */
179
+ /* */
180
+ /* */
181
+ /* */
182
+ /* */
183
+ /* */
184
+ /* */
185
+ /* */
186
+ /* */
187
+ /* */
188
+ /* */
189
+ /* */
190
+ /* */
191
+ /* */
192
+ /* */
193
+ /* */
194
+ /* */
195
+ /* */
196
+ /* */
197
+ /* */
198
+ /* */
199
+ /* */
200
+ /* */
201
+ /* */
202
+ /* */
203
+ /* */
204
+ /* */
205
+ /* */
206
+ /* */
207
+ /* */
208
+ return (void 0);
209
+ }
210
+ static allProjectFrom(absoluteLocation, stopOnCwd = '/') {
211
+ /* */
212
+ /* */
213
+ /* */
214
+ /* */
215
+ /* */
216
+ /* */
217
+ /* */
218
+ /* */
219
+ /* */
220
+ /* */
221
+ /* */
222
+ /* */
223
+ /* */
224
+ /* */
225
+ /* */
226
+ /* */
227
+ /* */
228
+ /* */
229
+ /* */
230
+ /* */
231
+ /* */
232
+ /* */
233
+ return (void 0);
234
+ }
235
+ static DefaultPortByType(type) {
236
+ if (type === 'workspace') {
237
+ return 5000;
238
+ }
239
+ if (type === 'angular-client') {
240
+ return 4300;
241
+ }
242
+ if (type === 'angular-lib') {
243
+ return 4250;
244
+ }
245
+ if (type === 'electron-client') {
246
+ return 4350;
247
+ }
248
+ if (type === 'ionic-client') {
249
+ return 8080;
250
+ }
251
+ if (type === 'docker') {
252
+ return 5000;
253
+ }
254
+ if (type === 'isomorphic-lib') {
255
+ return 4000;
256
+ }
257
+ if (type === 'container' || type === 'unknow-npm-project') {
258
+ return;
259
+ }
260
+ }
261
+ static get isBundleMode() {
262
+ if (Helpers.isBrowser) {
263
+ return true;
264
+ }
265
+ /* */
266
+ /* */
267
+ }
268
+ static get Current() {
269
+ /* */
270
+ /* */
271
+ /* */
272
+ /* */
273
+ /* */
274
+ /* */
275
+ /* */
276
+ /* */
277
+ /* */
278
+ /* */
279
+ /* */
280
+ return (void 0);
281
+ }
282
+ /* */
283
+ /* */
284
+ /* */
285
+ /* */
286
+ static get Tnp() {
287
+ /* */
288
+ /* */
289
+ /* */
290
+ /* */
291
+ /* */
292
+ /* */
293
+ /* */
294
+ return (void 0);
295
+ }
296
+ static by(libraryType, version
297
+ /* */
298
+ /* */
299
+ ) {
300
+ /* */
301
+ /* */
302
+ /* */
303
+ /* */
304
+ /* */
305
+ /* */
306
+ /* */
307
+ /* */
308
+ /* */
309
+ /* */
310
+ /* */
311
+ /* */
312
+ /* */
313
+ /* */
314
+ /* */
315
+ /* */
316
+ /* */
317
+ /* */
318
+ /* */
319
+ /* */
320
+ /* */
321
+ /* */
322
+ /* */
323
+ /* */
324
+ /* */
325
+ /* */
326
+ /* */
327
+ return (void 0);
328
+ }
329
+ defineProperty(variableName, classFn) {
330
+ /* */
331
+ /* */
332
+ /* */
333
+ /* */
334
+ /* */
335
+ /* */
336
+ /* */
337
+ /* */
338
+ /* */
339
+ /* */
340
+ /* */
341
+ /* */
342
+ /* */
343
+ /* */
344
+ /* */
345
+ return (void 0);
346
+ }
347
+ setType(type) {
348
+ // @ts-ignore
349
+ this._type = type;
350
+ }
351
+ typeIs(...types) {
352
+ return this._type && types.includes(this._type);
353
+ }
354
+ typeIsNot(...types) {
355
+ return !this.typeIs(...types);
356
+ }
357
+ forEmptyStructure() {
358
+ return [
359
+ { relativePath: config.file.package_json, includeContent: true },
360
+ { relativePath: config.folder.src },
361
+ ];
362
+ }
363
+ }
364
+ Project.projects = [];
365
+ /**
366
+ * To speed up checking folder I am keeping pathes for alterdy checked folder
367
+ * This may break things that are creating new projects
368
+ */
369
+ Project.emptyLocations = [];
370
+ /* */
371
+ /* */
372
+ /* */
373
+ /* */
374
+ /* */
375
+ /* */
376
+ /* */
377
+ /* */
378
+ /* */
379
+ /* */
380
+ /* */
381
+ /* */
382
+ /* */
383
+ /* */
384
+ /* */
385
+ /* */
386
+ /* */
387
+ /* */
388
+ /* */
389
+ /* */
390
+ /* */
391
+ /* */
392
+ /* */
393
+ /* */
394
+ /* */
395
+ /* */
396
+ /* */
397
+ /* */
398
+ /* */
399
+ /* */
400
+ /* */
401
+ /* */
402
+ /* */
403
+ /* */
404
+ /* */
405
+ /* */
406
+ /* */
407
+ /* */
408
+ /* */
409
+ /* */
410
+ /* */
411
+ /* */
412
+ /* */
413
+ /* */
414
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsT0FBTyxFQUFFLE1BQU0sRUFBNEIsTUFBTSxvQkFBb0IsQ0FBQztBQUt0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFRcEMsTUFBTSxPQUFPLE9BQU87SUFBcEI7UUFLQSxLQUFLO1FBQ0wsS0FBSztRQUdPLFVBQUssR0FBRyxFQUFFLENBQUM7UUFPZCxZQUFPLEdBQTRDLEVBQVMsQ0FBQztJQWthdEUsQ0FBQztJQW5XQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQWdCO1FBQ25DLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQW1CLFFBQWdCO1FBQ3ZELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FDckIsZ0JBQXdCLEVBQ3hCLE9BQWtHO1FBQ3RHLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBYyxnQkFBd0IsRUFBRSxZQUFvQixHQUFHO1FBQzdGLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQTBCO1FBQ3hELElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDMUMsSUFBSSxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztTQUFFO1FBQy9DLElBQUksSUFBSSxLQUFLLGFBQWEsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDNUMsSUFBSSxJQUFJLEtBQUssaUJBQWlCLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztTQUFFO1FBQ2hELElBQUksSUFBSSxLQUFLLGNBQWMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDN0MsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7U0FBRTtRQUN2QyxJQUFJLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksS0FBSyxvQkFBb0IsRUFBRTtZQUN6RCxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRU0sTUFBTSxLQUFLLFlBQVk7UUFDNUIsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFFRCxNQUFNLEtBQUssT0FBTztRQUNwQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFSCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBR0gsTUFBTSxLQUFLLEdBQUc7UUFDaEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBRSxDQUNkLFdBQXdDLEVBQ3hDLE9BQXNDO0lBQzFDLEtBQUs7SUFDTCxLQUFLOztRQUdMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjLENBQUksWUFBcUIsRUFBRSxPQUFpQjtRQUM1RCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU0sT0FBTyxDQUFnQixJQUEwQjtRQUN0RCxhQUFhO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNNLE1BQU0sQ0FBZ0IsR0FBRyxLQUE2QjtRQUMzRCxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLFNBQVMsQ0FBZ0IsR0FBRyxLQUE2QjtRQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPO1lBQ0wsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRTtZQUNoRSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtTQUNwQyxDQUFDO0lBQ0osQ0FBQzs7QUF4V2EsZ0JBQVEsR0FBbUIsRUFBRSxDQUFDO0FBQzVDOzs7R0FHRztBQUNXLHNCQUFjLEdBQWEsRUFBRSxDQUFDO0FBMlc5QyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmRlY2xhcmUgY29uc3QgZ2xvYmFsOiBhbnk7XG5pbXBvcnQgeyBjb25maWcsIExpYlR5cGVBcnIsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfLCBDb3JlQ29uZmlnIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJ3RucC1tb2RlbHMvYnJvd3Nlcic7XG5pbXBvcnQgeyBNb3JwaGkgfSBmcm9tICdtb3JwaGkvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzVG5wIH0gZnJvbSAnLi9oZWxwZXJzJztcbmNvbnN0IEhlbHBlcnMgPSBIZWxwZXJzVG5wLkluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBFbXB0eVByb2plY3RTdHJ1Y3R1cmUgPSB7XG4gIGluY2x1ZGVDb250ZW50PzogYm9vbGVhbjtcbiAgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG4gIHJlbGF0aXZlTGlua0Zyb20/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY2xhc3MgUHJvamVjdDxUIGV4dGVuZHMgUHJvamVjdDxhbnk+ID0gYW55PlxuLyogKi9cbi8qICovXG4gIFxue1xuLyogKi9cbi8qICovXG4gIFxuXG4gIHByb3RlY3RlZCBjYWNoZSA9IHt9O1xuXG4gIC8qKlxuICAgKiBEbyB1c2UgdGhpcyB2YXJpYWJsZSBmb3IgY29tcGFyYXRpb3NcbiAgICogT05MWSBGT1IgVklFV0lOR1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IF90eXBlOiBDb25maWdNb2RlbHMuTGliVHlwZTtcbiAgcHVibGljIGJyb3dzZXI6IFBpY2s8UHJvamVjdDxhbnk+LCAnbG9jYXRpb24nIHwgJ25hbWUnPiA9IHt9IGFzIGFueTtcbiAgcHVibGljIGxvY2F0aW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZW5lcmljTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgaXNXb3Jrc3BhY2U6IGJvb2xlYW47XG4gIHB1YmxpYyBpc1ZzY29kZUV4dGVuc2lvbjogYm9vbGVhbjtcbiAgcHVibGljIGlzRG9ja2VyOiBib29sZWFuO1xuICBwdWJsaWMgaXNTaXRlOiBib29sZWFuO1xuICBwdWJsaWMgaXNTaXRlSW5TdHJpY3RNb2RlPzogYm9vbGVhbjtcbiAgcHVibGljIGlzU2l0ZUluRGVwZW5kZW5jeU1vZGU/OiBib29sZWFuO1xuICBwdWJsaWMgaXNDb3JlUHJvamVjdDogYm9vbGVhbjtcbiAgcHVibGljIGlzQ29tbWFuZExpbmVUb29sT25seTogYm9vbGVhbjtcbiAgcHVibGljIGlzR2VuZXJhdGVkOiBib29sZWFuO1xuICBwdWJsaWMgaXNHZW5lcmF0ZWRGb3JSZWxlYXNlOiBib29sZWFuO1xuICBwdWJsaWMgaXNXb3Jrc3BhY2VDaGlsZFByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0Jhc2VkT25PdGhlclByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0ZvclJlY3JlYXRpb246IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lcjogYm9vbGVhbjtcbiAgcHVibGljIGlzU21hcnRDb250YWluZXI6IGJvb2xlYW47XG4gIHB1YmxpYyBpc1NtYXJ0Q29udGFpbmVyQ2hpbGQ6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lcldpdGhMaW5rZWRQcm9qZWN0czogYm9vbGVhbjtcbiAgcHVibGljIGlzQ29udGFpbmVyQ2hpbGQ6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lckNvcmVQcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNTdGFuZGFsb25lUHJvamVjdDogYm9vbGVhbjtcbiAgcHVibGljIGlzTW9ub3JlcG86IGJvb2xlYW47XG4gIHB1YmxpYyBpc1Vua25vd05wbVByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc05hdmlDbGk6IGJvb2xlYW47XG4gIHB1YmxpYyB1c2VGcmFtZXdvcms6IGJvb2xlYW47XG4gIHB1YmxpYyBkZWZhdWx0UG9ydD86IG51bWJlcjtcbiAgcHVibGljIHZlcnNpb246IHN0cmluZztcbiAgcHVibGljIGxhc3ROcG1WZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgX3JvdXRlclRhcmdldEh0dHA/OiBzdHJpbmc7XG4gIHB1YmxpYyBjdXN0b21pemFibGVGaWxlc0FuZEZvbGRlcnM6IHN0cmluZ1tdO1xuICBwdWJsaWMgdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGU7XG4gIHB1YmxpYyBiYWNrdXBOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZXNvdXJjZXM6IHN0cmluZ1tdO1xuICBwdWJsaWMgZW52OiBNb2RlbHMuZW52LkVudkNvbmZpZztcbiAgcHVibGljIGFsbG93ZWRFbnZpcm9ubWVudHM6IENvbmZpZ01vZGVscy5FbnZpcm9ubWVudE5hbWVbXTtcblxuICBwdWJsaWMgY2hpbGRyZW46IFRbXTtcbiAgcHVibGljIGdyYW5kcGE6IFQ7XG5cbiAgcHVibGljIGRpc3RyaWJ1dGlvbjogVDtcblxuICBwdWJsaWMgY2hpbGRyZW5UaGF0QXJlTGlicz86IFRbXTtcblxuICBwdWJsaWMgY2hpbGRyZW5UaGF0QXJlQ2xpZW50cz86IFRbXTtcblxuICBwdWJsaWMgY2hpbGRyZW5UaGF0QXJlVGhpcmRQYXJ0eUluTm9kZU1vZHVsZXM/OiBUW107XG5cbiAgcHVibGljIHBhcmVudDogVDtcblxuICBwdWJsaWMgcHJldmlldzogVDtcblxuICBwdWJsaWMgYmFzZWxpbmU6IFQ7XG5cbiAgcHVibGljIHN0YXRpYyBwcm9qZWN0czogUHJvamVjdDxhbnk+W10gPSBbXTtcbiAgLyoqXG4gICAqIFRvIHNwZWVkIHVwIGNoZWNraW5nIGZvbGRlciBJIGFtIGtlZXBpbmcgcGF0aGVzIGZvciBhbHRlcmR5IGNoZWNrZWQgZm9sZGVyXG4gICAqIFRoaXMgbWF5IGJyZWFrIHRoaW5ncyB0aGF0IGFyZSBjcmVhdGluZyBuZXcgcHJvamVjdHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZW1wdHlMb2NhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgc3RhdGljIHR5cGVGcm9tKGxvY2F0aW9uOiBzdHJpbmcpOiBDb25maWdNb2RlbHMuTGliVHlwZSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB1bmxvYWQocHJvamVjdDogUHJvamVjdCkge1xuICAgIFByb2plY3QucHJvamVjdHMgPSBQcm9qZWN0LnByb2plY3RzLmZpbHRlcihmID0+IGYgIT09IHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBGcm9tPFQgPSBQcm9qZWN0PGFueT4+KGxvY2F0aW9uOiBzdHJpbmcpOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBuZWFyZXN0VG88VCA9IFByb2plY3Q+KFxuICAgIGFic29sdXRlTG9jYXRpb246IHN0cmluZyxcbiAgICBvcHRpb25zPzogeyB0eXBlPzogQ29uZmlnTW9kZWxzLkxpYlR5cGU7IGZpbmRHaXRSb290PzogYm9vbGVhbjsgb25seU91dFNpZGVOb2RlTW9kdWxlcz86IGJvb2xlYW4gfSk6IFQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYWxsUHJvamVjdEZyb208VCA9IFByb2plY3Q+KGFic29sdXRlTG9jYXRpb246IHN0cmluZywgc3RvcE9uQ3dkOiBzdHJpbmcgPSAnLycpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEZWZhdWx0UG9ydEJ5VHlwZSh0eXBlOiBDb25maWdNb2RlbHMuTGliVHlwZSk6IG51bWJlciB7XG4gICAgaWYgKHR5cGUgPT09ICd3b3Jrc3BhY2UnKSB7IHJldHVybiA1MDAwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdhbmd1bGFyLWNsaWVudCcpIHsgcmV0dXJuIDQzMDA7IH1cbiAgICBpZiAodHlwZSA9PT0gJ2FuZ3VsYXItbGliJykgeyByZXR1cm4gNDI1MDsgfVxuICAgIGlmICh0eXBlID09PSAnZWxlY3Ryb24tY2xpZW50JykgeyByZXR1cm4gNDM1MDsgfVxuICAgIGlmICh0eXBlID09PSAnaW9uaWMtY2xpZW50JykgeyByZXR1cm4gODA4MDsgfVxuICAgIGlmICh0eXBlID09PSAnZG9ja2VyJykgeyByZXR1cm4gNTAwMDsgfVxuICAgIGlmICh0eXBlID09PSAnaXNvbW9ycGhpYy1saWInKSB7IHJldHVybiA0MDAwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdjb250YWluZXInIHx8IHR5cGUgPT09ICd1bmtub3ctbnBtLXByb2plY3QnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgaXNCdW5kbGVNb2RlKCkge1xuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgc3RhdGljIGdldCBDdXJyZW50KCk6IFByb2plY3Q8YW55PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgc3RhdGljIGdldCBUbnAoKTogUHJvamVjdDxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBieTxUID0gUHJvamVjdD4oXG4gICAgbGlicmFyeVR5cGU6IENvbmZpZ01vZGVscy5OZXdGYWN0b3J5VHlwZSxcbiAgICB2ZXJzaW9uOiBDb25maWdNb2RlbHMuRnJhbWV3b3JrVmVyc2lvblxuLyogKi9cbi8qICovXG4gIFxuICApOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBkZWZpbmVQcm9wZXJ0eTxUPih2YXJpYWJsZU5hbWU6IGtleW9mIFQsIGNsYXNzRm46IEZ1bmN0aW9uKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHNldFR5cGUodGhpczogUHJvamVjdCwgdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cbiAgcHVibGljIHR5cGVJcyh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiB0aGlzLl90eXBlICYmIHR5cGVzLmluY2x1ZGVzKHRoaXMuX3R5cGUpO1xuICB9XG5cbiAgcHVibGljIHR5cGVJc05vdCh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiAhdGhpcy50eXBlSXMoLi4udHlwZXMpO1xuICB9XG5cbiAgZm9yRW1wdHlTdHJ1Y3R1cmUoKTogRW1wdHlQcm9qZWN0U3RydWN0dXJlW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7IHJlbGF0aXZlUGF0aDogY29uZmlnLmZpbGUucGFja2FnZV9qc29uLCBpbmNsdWRlQ29udGVudDogdHJ1ZSB9LFxuICAgICAgeyByZWxhdGl2ZVBhdGg6IGNvbmZpZy5mb2xkZXIuc3JjIH0sXG4gICAgXTtcbiAgfVxuXG59XG5cblxuZXhwb3J0IHR5cGUgUHJvamVjdEJ1aWxkID0geyBwcm9qZWN0OiBQcm9qZWN0OyBhcHBCdWlsZDogYm9vbGVhbjsgfTtcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4iXX0=