ng2-rest-swagger-generator 6.0.22 → 16.0.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 (70) hide show
  1. package/README.md +46 -46
  2. package/assets/shared/shared_folder_info.txt +7 -0
  3. package/bin/ng2-rest-swagger-generator +10 -10
  4. package/browser/README.md +24 -0
  5. package/browser/esm2022/lib/helpers.mjs +389 -0
  6. package/browser/esm2022/lib/index.mjs +4 -0
  7. package/browser/esm2022/lib/models.mjs +8 -0
  8. package/browser/esm2022/ng2-rest-swagger-generator.mjs +5 -0
  9. package/browser/esm2022/public-api.mjs +2 -0
  10. package/browser/fesm2022/ng2-rest-swagger-generator.mjs +397 -0
  11. package/browser/fesm2022/ng2-rest-swagger-generator.mjs.map +1 -0
  12. package/browser/index.d.ts +6 -0
  13. package/browser/lib/helpers.d.ts +53 -0
  14. package/browser/lib/index.d.ts +2 -0
  15. package/browser/lib/models.d.ts +166 -0
  16. package/browser/package.json +25 -0
  17. package/browser/public-api.d.ts +2 -0
  18. package/client/README.md +24 -0
  19. package/client/esm2022/lib/helpers.mjs +389 -0
  20. package/client/esm2022/lib/index.mjs +4 -0
  21. package/client/esm2022/lib/models.mjs +8 -0
  22. package/client/esm2022/ng2-rest-swagger-generator.mjs +5 -0
  23. package/client/esm2022/public-api.mjs +2 -0
  24. package/client/fesm2022/ng2-rest-swagger-generator.mjs +397 -0
  25. package/client/fesm2022/ng2-rest-swagger-generator.mjs.map +1 -0
  26. package/client/index.d.ts +6 -0
  27. package/client/lib/helpers.d.ts +53 -0
  28. package/client/lib/index.d.ts +2 -0
  29. package/client/lib/models.d.ts +166 -0
  30. package/client/package.json +301 -5
  31. package/client/public-api.d.ts +2 -0
  32. package/generator.js +3 -3
  33. package/generator.js.map +1 -1
  34. package/index.d.ts +1 -0
  35. package/index.js +5 -0
  36. package/index.js.map +1 -0
  37. package/{helpers.js → lib/helpers.js} +69 -58
  38. package/lib/helpers.js.map +1 -0
  39. package/lib/index.d.ts +1 -0
  40. package/lib/index.js +5 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/models.js.map +1 -0
  43. package/package.json +53 -6
  44. package/package.json_devDependencies.json +222 -222
  45. package/{package.json_tnp.json → package.json_tnp.json5} +57 -41
  46. package/start.js +4 -4
  47. package/start.js.map +1 -1
  48. package/template.d.ts +1 -1
  49. package/template.js +5 -5
  50. package/template.js.map +1 -1
  51. package/tmp-environment.json +161 -126
  52. package/websql/README.md +24 -0
  53. package/websql/esm2022/lib/helpers.mjs +389 -0
  54. package/websql/esm2022/lib/index.mjs +4 -0
  55. package/websql/esm2022/lib/models.mjs +8 -0
  56. package/websql/esm2022/ng2-rest-swagger-generator.mjs +5 -0
  57. package/websql/esm2022/public-api.mjs +2 -0
  58. package/websql/fesm2022/ng2-rest-swagger-generator.mjs +397 -0
  59. package/websql/fesm2022/ng2-rest-swagger-generator.mjs.map +1 -0
  60. package/websql/index.d.ts +6 -0
  61. package/websql/lib/helpers.d.ts +53 -0
  62. package/websql/lib/index.d.ts +2 -0
  63. package/websql/lib/models.d.ts +166 -0
  64. package/websql/package.json +25 -0
  65. package/websql/public-api.d.ts +2 -0
  66. package/helpers.js.map +0 -1
  67. package/models.js.map +0 -1
  68. /package/{helpers.d.ts → lib/helpers.d.ts} +0 -0
  69. /package/{models.d.ts → lib/models.d.ts} +0 -0
  70. /package/{models.js → lib/models.js} +0 -0
package/README.md CHANGED
@@ -1,46 +1,46 @@
1
- ## ng2-rest-swagger-generator ##
2
-
3
- Generate services for Angular2+ from your swagger.json files.
4
-
5
- ## Instalation
6
-
7
- npm install ng2-rest-swagger-generator -g
8
-
9
- ## Usage
10
-
11
- ng2-rest-swagger-generateor \
12
- --json ~/api_swagger.json \ # local swagger json file or
13
- --json http://api.com/swagger.json \ # external link to swagger json
14
- --base my_api_from_swagger_json
15
-
16
- It will generate **my_api_from_swagger_json** folder with angular2_ module.
17
-
18
- Your can alsow ommit **--base** param, default out folder is "**api**".
19
-
20
- ## Import
21
-
22
- To import generated module in **app.module** of you angular app do this:
23
- ```ts
24
- import { Ng2RestGenModule } from './api';
25
- ...
26
- imports: [ Ng2RestGenModule ],
27
- ...
28
- ```
29
- ## Api url modyfication
30
-
31
- It you wanna **change your base paths** just use property **enpointUrl** in Ng2RestGenModule module :
32
-
33
- ```ts
34
- if(enviroment.production) {
35
- Ng2RestGenModule.enpointUrls.myresource.myhost = 'https://myproductionhost.com'
36
- }
37
- ```
38
-
39
- ## Parameters description
40
-
41
- | param | description |
42
- | --- | --- |
43
- | --json | online links or local paths for swagger.json files |
44
- | --base | output module folder |
45
- | -s | if https protocole enable (one for all json-s) |
46
-
1
+ ## ng2-rest-swagger-generator ##
2
+
3
+ Generate services for Angular2+ from your swagger.json files.
4
+
5
+ ## Instalation
6
+
7
+ npm install ng2-rest-swagger-generator -g
8
+
9
+ ## Usage
10
+
11
+ ng2-rest-swagger-generateor \
12
+ --json ~/api_swagger.json \ # local swagger json file or
13
+ --json http://api.com/swagger.json \ # external link to swagger json
14
+ --base my_api_from_swagger_json
15
+
16
+ It will generate **my_api_from_swagger_json** folder with angular2_ module.
17
+
18
+ Your can alsow ommit **--base** param, default out folder is "**api**".
19
+
20
+ ## Import
21
+
22
+ To import generated module in **app.module** of you angular app do this:
23
+ ```ts
24
+ import { Ng2RestGenModule } from './api';
25
+ ...
26
+ imports: [ Ng2RestGenModule ],
27
+ ...
28
+ ```
29
+ ## Api url modyfication
30
+
31
+ It you wanna **change your base paths** just use property **enpointUrl** in Ng2RestGenModule module :
32
+
33
+ ```ts
34
+ if(enviroment.production) {
35
+ Ng2RestGenModule.enpointUrls.myresource.myhost = 'https://myproductionhost.com'
36
+ }
37
+ ```
38
+
39
+ ## Parameters description
40
+
41
+ | param | description |
42
+ | --- | --- |
43
+ | --json | online links or local paths for swagger.json files |
44
+ | --base | output module folder |
45
+ | -s | if https protocole enable (one for all json-s) |
46
+
@@ -0,0 +1,7 @@
1
+ THIS FILE IS GENERATED. THIS FILE IS GENERATED. THIS FILE IS GENERATED.
2
+
3
+ Assets from this folder are being shipped with this npm package (ng2-rest-swagger-generator@16.0.1)
4
+ created from this project.
5
+
6
+ THIS FILE IS GENERATED.THIS FILE IS GENERATED. THIS FILE IS GENERATED.
7
+
@@ -1,10 +1,10 @@
1
- #!/usr/bin/env node
2
- var path = require('path')
3
- var fs = require('fs')
4
- var path = {
5
- dist: path.join(__dirname, '../dist/start.js'),
6
- bundle: path.join(__dirname, '../start.js')
7
- }
8
- var p = fs.existsSync(path.dist) ? path.dist : path.bundle;
9
- var start = require(p).start;
10
- start();
1
+ #!/usr/bin/env node
2
+ var path = require('path')
3
+ var fs = require('fs')
4
+ var path = {
5
+ dist: path.join(__dirname, '../dist/start.js'),
6
+ bundle: path.join(__dirname, '../start.js')
7
+ }
8
+ var p = fs.existsSync(path.dist) ? path.dist : path.bundle;
9
+ var start = require(p).start;
10
+ start();
@@ -0,0 +1,24 @@
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,389 @@
1
+ import { /* */ /* */ _ } from 'tnp-core/browser'; /* */
2
+ import { CoreHelpers as TnpHelpers } from 'tnp-core/browser';
3
+ class Helpers extends TnpHelpers {
4
+ static { this.SYMBOL = {
5
+ INDEX_SWG: Symbol(),
6
+ OUTPUT_FOLDER: Symbol()
7
+ }; }
8
+ static preparePaths(apis, outputBase) {
9
+ this.output = `${process.cwd()}/${outputBase}`;
10
+ this.apis = apis;
11
+ }
12
+ static prepareModel(swg, indexSwg, isHttpsEnable) {
13
+ swg[this.SYMBOL.INDEX_SWG] = indexSwg;
14
+ swg.host = swg.host && (isHttpsEnable ? 'https' : 'http') + `://${swg.host.replace(/:[0-9]*/g, '')}`;
15
+ if (!swg.basePath) {
16
+ swg.basePath = '';
17
+ }
18
+ }
19
+ /* */
20
+ /* */
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ /* */
29
+ /* */
30
+ /* */
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ /* */
36
+ /* */
37
+ /* */
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ static get serviceFromTag() {
43
+ const self = this;
44
+ return {
45
+ allClassNames() {
46
+ const names = [];
47
+ self.apis.map(swg => {
48
+ swg.tags.forEach(tag => {
49
+ names.push(self.serviceFromTag.className(swg, tag));
50
+ });
51
+ });
52
+ return names;
53
+ },
54
+ className(swg, tag) {
55
+ const groupFolderName = self.groupFromJSON.folderName(swg);
56
+ const className = _.upperFirst(_.camelCase(tag.name)) + 'Service';
57
+ return `${groupFolderName}${className.replace(/\//g, '')}`;
58
+ },
59
+ absoluteFilePath(swg, tag) {
60
+ return `${self.absolutePath.PathFolder_services_groupName(swg)}/${self.serviceFromTag.className(swg, tag)}.ts`;
61
+ }
62
+ };
63
+ }
64
+ static get endpoints() {
65
+ return this.apis.map(swg => {
66
+ return `${this.groupFromJSON.folderName(swg)}:'${swg.host}'`;
67
+ });
68
+ }
69
+ static get absolutePath() {
70
+ const self = this;
71
+ return {
72
+ get output() {
73
+ return self.output;
74
+ },
75
+ get PathFile_index_ts() {
76
+ const APIpath = self.output;
77
+ return `${APIpath}/index.ts`;
78
+ },
79
+ get PathFile_module_ts() {
80
+ const APIpath = self.output;
81
+ return `${APIpath}/module.ts`;
82
+ },
83
+ get PathFolder_services() {
84
+ const APIpath = self.output;
85
+ return `${APIpath}/services`;
86
+ },
87
+ get PathFile_services_index_ts() {
88
+ return `${self.absolutePath.PathFolder_services}/index.ts`;
89
+ },
90
+ PathFolder_services_groupName(swg) {
91
+ const groupFolderName = self.groupFromJSON.folderName(swg);
92
+ return `${self.absolutePath.PathFolder_services}/${groupFolderName}`;
93
+ },
94
+ PathFile_services_groupName_index_ts(swg) {
95
+ return `${self.absolutePath.PathFolder_services_groupName(swg)}/index.ts`;
96
+ },
97
+ PathFile_services_groupNAme_serviceName_ts(swg, tag) {
98
+ const serviceFileName = self.serviceFromTag.className(swg, tag);
99
+ return `${self.absolutePath.PathFolder_services_groupName(swg)}/${serviceFileName}.ts`;
100
+ }
101
+ };
102
+ }
103
+ static get groupFromJSON() {
104
+ const self = this;
105
+ return {
106
+ get allGroupNames() {
107
+ const names = [];
108
+ self.apis.map(swg => {
109
+ names.push(self.groupFromJSON.folderName(swg));
110
+ });
111
+ return names;
112
+ },
113
+ folderName(swg) {
114
+ const basePath = swg.basePath;
115
+ const index = swg[self.SYMBOL.INDEX_SWG];
116
+ return _.upperFirst(_.camelCase(basePath.trim() === '' ? `json${index}` : basePath));
117
+ }
118
+ };
119
+ }
120
+ static findTags(swg) {
121
+ const tags = [];
122
+ Object.keys(swg.paths).forEach(p => {
123
+ Object.keys(swg.paths[p]).forEach(m => {
124
+ const a = swg.paths[p][m];
125
+ if (_.isArray(a.tags)) {
126
+ a.tags.forEach(tag => {
127
+ if (tags.filter(({ name }) => name === tag).length === 0) { // @ts-ignore
128
+ tags.push({ name: tag });
129
+ }
130
+ });
131
+ }
132
+ });
133
+ });
134
+ return tags;
135
+ }
136
+ /**
137
+ * To generate get/books/{id} => get_books__id_
138
+ */
139
+ static cleanPath(path) {
140
+ return path.replace(/{/g, "_").replace(/}/g, "_").replace(/\//g, "_").replace(/-/g, "_");
141
+ }
142
+ static cleanPathModel(pathModel) {
143
+ return pathModel.replace(/\/{/g, '/:').replace(/}/g, '');
144
+ }
145
+ static swaggerTypeToJS(type, itemsType = 'any') {
146
+ return (type === 'integer') ? 'number'
147
+ : (type === 'array') ? !itemsType ? 'any' : `${this.swaggerTypeToJS(itemsType)}[]`
148
+ : (type === 'file') ? 'any' : type;
149
+ }
150
+ static getObjectDefinition(ref, swg, deep = 0) {
151
+ if (deep == 1)
152
+ return '';
153
+ if (!ref) {
154
+ console.log('Bad json $ref inside swagger');
155
+ return '';
156
+ }
157
+ let res = '';
158
+ ref = ref.replace('#/', '').replace(/\//g, '.');
159
+ let obj = _.get(swg, ref);
160
+ _.forOwn(obj.properties, (v, k) => {
161
+ if (v.$ref && typeof v.$ref === "string") {
162
+ res += k + ":{" + this.getObjectDefinition(v.$ref, swg, deep++) + "};\n";
163
+ }
164
+ else if (v.schema && v.schema.$ref && typeof v.schema.$ref === "string") {
165
+ res += k + ":{" + this.getObjectDefinition(v.schema.$ref, swg, deep++) + "};\n";
166
+ }
167
+ else if (v.items && v.items.$ref && typeof v.items.$ref === "string" && v.type && v.type === 'array') {
168
+ res += k + ":{" + this.getObjectDefinition(v.items.$ref, swg, deep++) + "}[];\n";
169
+ }
170
+ else if (v.items && v.items.$ref && typeof v.items.$ref === "string") {
171
+ res += k + ":{" + this.getObjectDefinition(v.items.$ref, swg, deep++) + "};\n";
172
+ }
173
+ else {
174
+ let isRequired = (obj.required && obj.required instanceof Array && obj.required.filter(o => o === k).length > 0);
175
+ let type = (v.enum && v.enum instanceof Array && v.enum.length > 0)
176
+ ? v.enum.map(e => '"' + e + '"').join('|') : this.swaggerTypeToJS(v.type, v.items ? v.items.type : 'any');
177
+ res += k + (!isRequired ? '?' : "") + ":" + type + ";\n";
178
+ }
179
+ });
180
+ return res;
181
+ }
182
+ /**
183
+ * private pathes = {
184
+ * get_all_companies: new SimpleResource<
185
+ * string, A, TA, RP extends Object, QP extends Rest.UrlParams>(endpoint, model),
186
+ * get_byid_companies: new SimpleResource<
187
+ * string, A, TA, RP extends Object, QP extends Rest.UrlParams>(endpoint, model)
188
+ * }
189
+ */
190
+ static getAngularPrivatePathesByTag(swg, tag) {
191
+ let res = [];
192
+ let base = swg.basePath.replace('/', '');
193
+ let pathes = {};
194
+ _.forOwn(swg.paths, (v, k) => {
195
+ _.forOwn(v, (v2, k2) => {
196
+ if (_.isArray(v2.tags) && v2.tags.filter(f => f === tag.name).length > 0) {
197
+ let resp = v2.responses['200'] && v2.responses['200'].schema;
198
+ if (pathes[k] === undefined)
199
+ pathes[k] = {}; // @ts-ignore
200
+ let type = this.getResponseType(resp, swg);
201
+ if (type.length > 3 && type.charAt(type.length - 1) === ']' && type.charAt(type.length - 2) === '['
202
+ && !pathes[k]['array']) {
203
+ pathes[k]['array'] = type;
204
+ }
205
+ else if (k2 !== 'delete' && !pathes[k]['single']) {
206
+ pathes[k]['single'] = type;
207
+ }
208
+ }
209
+ });
210
+ });
211
+ let pathResources = [];
212
+ _.forOwn(pathes, (v, p) => {
213
+ pathResources.push({
214
+ clean_path: this.cleanPath(p),
215
+ model: this.cleanPathModel(p),
216
+ endpoint: swg.basePath,
217
+ singleModelType: !v['single'] ? 'any' : v['single'],
218
+ multipleModelType: !v['array'] ? 'any' : v['array'],
219
+ queryParamsType: 'any',
220
+ pathParamsType: 'any'
221
+ });
222
+ });
223
+ pathResources.forEach(p => {
224
+ res.push(`${p.clean_path}: new SimpleResource<\n${p.singleModelType},\n${p.multipleModelType}\n>( Ng2RestGenModule.enpointUrls.${this.groupFromJSON.folderName(swg)}, '${p.model}' )`);
225
+ });
226
+ return `private pathes = { \n${res.join(',\n')}\n};`;
227
+ }
228
+ /*
229
+ schema": {
230
+ "type": "array",
231
+ "items": {
232
+ "$ref": "#/definitions/CompanyDTO"
233
+ }
234
+ }
235
+
236
+ "schema": {
237
+ "$ref": "#/definitions/CompanyDTO"
238
+ }
239
+ */
240
+ static getResponseType(o, swg) {
241
+ let res = '{} | any';
242
+ if (o && o.$ref && typeof o.$ref === 'string' && o.$ref.trim() !== '') {
243
+ res = "{" + this.getObjectDefinition(o.$ref, swg) + "}";
244
+ }
245
+ else if (o && o.type === 'array' && o.items && o.items.$ref &&
246
+ typeof o.items.$ref === 'string' && o.items.$ref.trim() !== '') {
247
+ res = "{" + this.getObjectDefinition(o.items.$ref, swg) + "}[]";
248
+ }
249
+ return res;
250
+ }
251
+ /* */
252
+ /* */
253
+ /* */
254
+ /* */
255
+ /* */
256
+ /* */
257
+ /* */
258
+ /* */
259
+ /* */
260
+ /* */
261
+ /* */
262
+ /* */
263
+ /* */
264
+ /* */
265
+ /* */
266
+ /* */
267
+ /* */
268
+ /* */
269
+ /* */
270
+ /* */
271
+ /* */
272
+ /* */
273
+ /* */
274
+ /* */
275
+ /* */
276
+ /* */
277
+ /* */
278
+ /* */
279
+ /* */
280
+ /* */
281
+ /* */
282
+ /* */
283
+ /* */
284
+ /* */
285
+ /* */
286
+ /* */
287
+ /* */
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
+ /* */
319
+ /* */
320
+ /* */
321
+ /* */
322
+ /* */
323
+ /* */
324
+ /* */
325
+ /* */
326
+ /* */
327
+ /* */
328
+ /* */
329
+ /* */
330
+ /* */
331
+ /* */
332
+ /* */
333
+ /* */
334
+ /* */
335
+ /* */
336
+ /* */
337
+ /* */
338
+ /* */
339
+ /* */
340
+ /* */
341
+ /* */
342
+ /* */
343
+ /* */
344
+ /* */
345
+ /* */
346
+ /* */
347
+ /* */
348
+ /* */
349
+ /* */
350
+ /* */
351
+ /* */
352
+ /* */
353
+ /* */
354
+ /* */
355
+ /* */
356
+ /* */
357
+ /* */
358
+ /* */
359
+ /* */
360
+ /* */
361
+ /* */
362
+ /* */
363
+ /* */
364
+ /* */
365
+ /* */
366
+ /* */
367
+ /* */
368
+ /* */
369
+ /* */
370
+ /* */
371
+ /* */
372
+ /* */
373
+ /* */
374
+ /* */
375
+ /* */
376
+ /* */
377
+ /* */
378
+ /* */
379
+ /* */
380
+ /* */
381
+ static { this.count1 = 0; }
382
+ static recreateSummary(summary) {
383
+ return summary;
384
+ }
385
+ }
386
+ export { Helpers };
387
+ ;
388
+ ({}); // @--end-of-file-for-module=ng2-rest-swagger-generator lib/helpers.ts
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvbmcyLXJlc3Qtc3dhZ2dlci1nZW5lcmF0b3IvcHJvamVjdHMvbmcyLXJlc3Qtc3dhZ2dlci1nZW5lcmF0b3Ivc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVSxLQUFLLENBQUMsS0FBSyxDQUFNLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDLENBQUEsS0FBSztBQVFuRSxPQUFPLEVBQUUsV0FBVyxJQUFJLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSzdELE1BQWEsT0FBUSxTQUFRLFVBQVU7YUFFOUIsV0FBTSxHQUFHO1FBQ2QsU0FBUyxFQUFFLE1BQU0sRUFBRTtRQUNuQixhQUFhLEVBQUUsTUFBTSxFQUFFO0tBQ3hCLENBQUE7SUFJRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQW1DLEVBQUUsVUFBa0I7UUFDekUsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQTtRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFnQyxFQUFFLFFBQWdCLEVBQUUsYUFBc0I7UUFDNUYsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBRXRDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFBO1FBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1NBQ2xCO0lBQ0gsQ0FBQztJQUVILEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBSUgsTUFBTSxLQUFLLGNBQWM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBR2xCLE9BQU87WUFDTCxhQUFhO2dCQUNYLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQTtnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO29CQUNyRCxDQUFDLENBQUMsQ0FBQTtnQkFDSixDQUFDLENBQUMsQ0FBQTtnQkFDRixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxTQUFTLENBQUMsR0FBZ0MsRUFBRSxHQUE4QjtnQkFDeEUsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBRTFELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBQ2xFLE9BQU8sR0FBRyxlQUFlLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM3RCxDQUFDO1lBQ0QsZ0JBQWdCLENBQUMsR0FBZ0MsRUFBRSxHQUE4QjtnQkFFL0UsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDakgsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxLQUFLLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QixPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksR0FBRyxDQUFBO1FBQzlELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUlELE1BQU0sS0FBSyxZQUFZO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUdsQixPQUFPO1lBQ0wsSUFBSSxNQUFNO2dCQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNyQixDQUFDO1lBRUQsSUFBSSxpQkFBaUI7Z0JBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxPQUFPLFdBQVcsQ0FBQztZQUMvQixDQUFDO1lBQ0QsSUFBSSxrQkFBa0I7Z0JBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxPQUFPLFlBQVksQ0FBQztZQUNoQyxDQUFDO1lBRUQsSUFBSSxtQkFBbUI7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxPQUFPLFdBQVcsQ0FBQztZQUMvQixDQUFDO1lBRUQsSUFBSSwwQkFBMEI7Z0JBQzVCLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixXQUFXLENBQUM7WUFDN0QsQ0FBQztZQUVELDZCQUE2QixDQUFDLEdBQWdDO2dCQUM1RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFFMUQsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLElBQUksZUFBZSxFQUFFLENBQUM7WUFDdkUsQ0FBQztZQUVELG9DQUFvQyxDQUFDLEdBQWdDO2dCQUNuRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzVFLENBQUM7WUFFRCwwQ0FBMEMsQ0FBQyxHQUFnQyxFQUFFLEdBQThCO2dCQUN6RyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2hFLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxJQUFJLGVBQWUsS0FBSyxDQUFDO1lBQ3pGLENBQUM7U0FFRixDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sS0FBSyxhQUFhO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPO1lBQ0wsSUFBSSxhQUFhO2dCQUNmLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQTtnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDaEQsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsVUFBVSxDQUFDLEdBQWdDO2dCQUN6QyxNQUFNLFFBQVEsR0FBVyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUN0QyxNQUFNLEtBQUssR0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakQsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN2RixDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQWdDO1FBQzlDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxFQUFHLGFBQWE7NEJBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTt5QkFDekI7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBR0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFpQjtRQUNyQyxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUdELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBb0UsRUFBRSxZQUFpQixLQUFLO1FBQ2pILE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDcEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUk7Z0JBQ2hGLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUlELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFXLEVBQUUsR0FBZ0MsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNoRixJQUFJLElBQUksSUFBSSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUMzQyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFaEQsSUFBSSxHQUFHLEdBQXlELENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBVWhGLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUVoQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDeEMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO2FBQzFFO2lCQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDekUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUVqRjtpQkFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDdEcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQzthQUdsRjtpQkFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3RFLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7YUFDaEY7aUJBQU07Z0JBQ0wsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLFlBQVksS0FBSyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDaEgsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRTVHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQTthQUN6RDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBSUgsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBSUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFnQyxFQUFFLEdBQThCO1FBQ2xHLElBQUksR0FBRyxHQUFhLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFekMsSUFBSSxNQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDeEUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFLN0QsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUzt3QkFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYTtvQkFDMUQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBRTNDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRzsyQkFDOUYsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ3hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7cUJBQzNCO3lCQUFNLElBQUksRUFBRSxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDbEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztxQkFDNUI7aUJBSUY7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxhQUFhLEdBQTBCLEVBQUUsQ0FBQztRQUU5QyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUV4QixhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUNqQixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO2dCQUN0QixlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDbkQsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDbkQsZUFBZSxFQUFFLEtBQUs7Z0JBQ3RCLGNBQWMsRUFBRSxLQUFLO2FBQ3RCLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBR0YsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsMEJBQTBCLENBQUMsQ0FBQyxlQUFlLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQixxQ0FBcUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDekwsQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLHdCQUF3QixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUE7SUFDdEQsQ0FBQztJQUdEOzs7Ozs7Ozs7OztPQVdHO0lBRUgsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUEyQixFQUFFLEdBQWdDO1FBQ2xGLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FFekQ7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUMzRCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDaEUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBRWpFO1FBSUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUgsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUdMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSzthQUVZLFdBQU0sR0FBRyxDQUFDLENBQUM7SUFFMUIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFlO1FBSXBDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O1NBcGRVLE9BQU87QUFvZ0JuQixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHNFQUFzRSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgICBwYXRoLCAvKiAqLyAvKiAqLyAgICAgIF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IENvcmVIZWxwZXJzIGFzIFRucEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5cblxuZXhwb3J0IGNsYXNzIEhlbHBlcnMgZXh0ZW5kcyBUbnBIZWxwZXJzIHtcblxuICBzdGF0aWMgU1lNQk9MID0ge1xuICAgIElOREVYX1NXRzogU3ltYm9sKCksXG4gICAgT1VUUFVUX0ZPTERFUjogU3ltYm9sKClcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG91dHB1dDogc3RyaW5nO1xuICBwcml2YXRlIHN0YXRpYyBhcGlzOiBNb2RlbHMuU3dhZ2dlci5Td2FnZ2VyTW9kZWxbXTtcbiAgc3RhdGljIHByZXBhcmVQYXRocyhhcGlzOiBNb2RlbHMuU3dhZ2dlci5Td2FnZ2VyTW9kZWxbXSwgb3V0cHV0QmFzZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vdXRwdXQgPSBgJHtwcm9jZXNzLmN3ZCgpfS8ke291dHB1dEJhc2V9YFxuICAgIHRoaXMuYXBpcyA9IGFwaXM7XG4gIH1cblxuICBzdGF0aWMgcHJlcGFyZU1vZGVsKHN3ZzogTW9kZWxzLlN3YWdnZXIuU3dhZ2dlck1vZGVsLCBpbmRleFN3ZzogbnVtYmVyLCBpc0h0dHBzRW5hYmxlOiBib29sZWFuKSB7XG4gICAgc3dnW3RoaXMuU1lNQk9MLklOREVYX1NXR10gPSBpbmRleFN3ZztcblxuICAgIHN3Zy5ob3N0ID0gc3dnLmhvc3QgJiYgKGlzSHR0cHNFbmFibGUgPyAnaHR0cHMnIDogJ2h0dHAnKSArIGA6Ly8ke3N3Zy5ob3N0LnJlcGxhY2UoLzpbMC05XSovZywgJycpfWBcbiAgICBpZiAoIXN3Zy5iYXNlUGF0aCkge1xuICAgICAgc3dnLmJhc2VQYXRoID0gJydcbiAgICB9XG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbiAgc3RhdGljIGdldCBzZXJ2aWNlRnJvbVRhZygpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbENsYXNzTmFtZXMoKSB7XG4gICAgICAgIGNvbnN0IG5hbWVzID0gW11cbiAgICAgICAgc2VsZi5hcGlzLm1hcChzd2cgPT4ge1xuICAgICAgICAgIHN3Zy50YWdzLmZvckVhY2godGFnID0+IHsgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgbmFtZXMucHVzaChzZWxmLnNlcnZpY2VGcm9tVGFnLmNsYXNzTmFtZShzd2csIHRhZykpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIG5hbWVzO1xuICAgICAgfSxcbiAgICAgIGNsYXNzTmFtZShzd2c6IE1vZGVscy5Td2FnZ2VyLlN3YWdnZXJNb2RlbCwgdGFnOiBNb2RlbHMuU3dhZ2dlci5Td2FnZ2VyVGFnKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwRm9sZGVyTmFtZSA9IHNlbGYuZ3JvdXBGcm9tSlNPTi5mb2xkZXJOYW1lKHN3ZylcblxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBfLnVwcGVyRmlyc3QoXy5jYW1lbENhc2UodGFnLm5hbWUpKSArICdTZXJ2aWNlJztcbiAgICAgICAgcmV0dXJuIGAke2dyb3VwRm9sZGVyTmFtZX0ke2NsYXNzTmFtZS5yZXBsYWNlKC9cXC8vZywgJycpfWA7XG4gICAgICB9LFxuICAgICAgYWJzb2x1dGVGaWxlUGF0aChzd2c6IE1vZGVscy5Td2FnZ2VyLlN3YWdnZXJNb2RlbCwgdGFnOiBNb2RlbHMuU3dhZ2dlci5Td2FnZ2VyVGFnKSB7XG5cbiAgICAgICAgcmV0dXJuIGAke3NlbGYuYWJzb2x1dGVQYXRoLlBhdGhGb2xkZXJfc2VydmljZXNfZ3JvdXBOYW1lKHN3Zyl9LyR7c2VsZi5zZXJ2aWNlRnJvbVRhZy5jbGFzc05hbWUoc3dnLCB0YWcpfS50c2A7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldCBlbmRwb2ludHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpcy5tYXAoc3dnID0+IHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmdyb3VwRnJvbUpTT04uZm9sZGVyTmFtZShzd2cpfTonJHtzd2cuaG9zdH0nYFxuICAgIH0pXG4gIH1cblxuXG5cbiAgc3RhdGljIGdldCBhYnNvbHV0ZVBhdGgoKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG5cblxuICAgIHJldHVybiB7XG4gICAgICBnZXQgb3V0cHV0KCkge1xuICAgICAgICByZXR1cm4gc2VsZi5vdXRwdXQ7XG4gICAgICB9LFxuXG4gICAgICBnZXQgUGF0aEZpbGVfaW5kZXhfdHMoKSB7XG4gICAgICAgIGNvbnN0IEFQSXBhdGggPSBzZWxmLm91dHB1dDtcbiAgICAgICAgcmV0dXJuIGAke0FQSXBhdGh9L2luZGV4LnRzYDtcbiAgICAgIH0sXG4gICAgICBnZXQgUGF0aEZpbGVfbW9kdWxlX3RzKCkge1xuICAgICAgICBjb25zdCBBUElwYXRoID0gc2VsZi5vdXRwdXQ7XG4gICAgICAgIHJldHVybiBgJHtBUElwYXRofS9tb2R1bGUudHNgO1xuICAgICAgfSxcblxuICAgICAgZ2V0IFBhdGhGb2xkZXJfc2VydmljZXMoKSB7XG4gICAgICAgIGNvbnN0IEFQSXBhdGggPSBzZWxmLm91dHB1dDtcbiAgICAgICAgcmV0dXJuIGAke0FQSXBhdGh9L3NlcnZpY2VzYDtcbiAgICAgIH0sXG5cbiAgICAgIGdldCBQYXRoRmlsZV9zZXJ2aWNlc19pbmRleF90cygpIHtcbiAgICAgICAgcmV0dXJuIGAke3NlbGYuYWJzb2x1dGVQYXRoLlBhdGhGb2xkZXJfc2VydmljZXN9L2luZGV4LnRzYDtcbiAgICAgIH0sXG5cbiAgICAgIFBhdGhGb2xkZXJfc2VydmljZXNfZ3JvdXBOYW1lKHN3ZzogTW9kZWxzLlN3YWdnZXIuU3dhZ2dlck1vZGVsKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwRm9sZGVyTmFtZSA9IHNlbGYuZ3JvdXBGcm9tSlNPTi5mb2xkZXJOYW1lKHN3ZylcblxuICAgICAgICByZXR1cm4gYCR7c2VsZi5hYnNvbHV0ZVBhdGguUGF0aEZvbGRlcl9zZXJ2aWNlc30vJHtncm91cEZvbGRlck5hbWV9YDtcbiAgICAgIH0sXG5cbiAgICAgIFBhdGhGaWxlX3NlcnZpY2VzX2dyb3VwTmFtZV9pbmRleF90cyhzd2c6IE1vZGVscy5Td2FnZ2VyLlN3YWdnZXJNb2RlbCkge1xuICAgICAgICByZXR1cm4gYCR7c2VsZi5hYnNvbHV0ZVBhdGguUGF0aEZvbGRlcl9zZXJ2aWNlc19ncm91cE5hbWUoc3dnKX0vaW5kZXgudHNgO1xuICAgICAgfSxcblxuICAgICAgUGF0aEZpbGVfc2VydmljZXNfZ3JvdXBOQW1lX3NlcnZpY2VOYW1lX3RzKHN3ZzogTW9kZWxzLlN3YWdnZXIuU3dhZ2dlck1vZGVsLCB0YWc6IE1vZGVscy5Td2FnZ2VyLlN3YWdnZXJUYWcpIHtcbiAgICAgICAgY29uc3Qgc2VydmljZUZpbGVOYW1lID0gc2VsZi5zZXJ2aWNlRnJvbVRhZy5jbGFzc05hbWUoc3dnLCB0YWcpO1xuICAgICAgICByZXR1cm4gYCR7c2VsZi5hYnNvbHV0ZVBhdGguUGF0aEZvbGRlcl9zZXJ2aWNlc19ncm91cE5hbWUoc3dnKX0vJHtzZXJ2aWNlRmlsZU5hbWV9LnRzYDtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXQgZ3JvdXBGcm9tSlNPTigpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0IGFsbEdyb3VwTmFtZXMoKSB7XG4gICAgICAgIGNvbnN0IG5hbWVzID0gW11cbiAgICAgICAgc2VsZi5hcGlzLm1hcChzd2cgPT4geyAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIG5hbWVzLnB1c2goc2VsZi5ncm91cEZyb21KU09OLmZvbGRlck5hbWUoc3dnKSlcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIG5hbWVzO1xuICAgICAgfSxcbiAgICAgIGZvbGRlck5hbWUoc3dnOiBNb2RlbHMuU3dhZ2dlci5Td2FnZ2VyTW9kZWwpIHtcbiAgICAgICAgY29uc3QgYmFzZVBhdGg6IHN0cmluZyA9IHN3Zy5iYXNlUGF0aDtcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHN3Z1tzZWxmLlNZTUJPTC5JTkRFWF9TV0ddO1xuICAgICAgICByZXR1cm4gXy51cHBlckZpcnN0KF8uY2FtZWxDYXNlKGJhc2VQYXRoLnRyaW0oKSA9PT0gJycgPyBganNvbiR7aW5kZXh9YCA6IGJhc2VQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpbmRUYWdzKHN3ZzogTW9kZWxzLlN3YWdnZXIuU3dhZ2dlck1vZGVsKSB7XG4gICAgY29uc3QgdGFncyA9IFtdXG4gICAgT2JqZWN0LmtleXMoc3dnLnBhdGhzKS5mb3JFYWNoKHAgPT4ge1xuICAgICAgT2JqZWN0LmtleXMoc3dnLnBhdGhzW3BdKS5mb3JFYWNoKG0gPT4ge1xuICAgICAgICBjb25zdCBhID0gc3dnLnBhdGhzW3BdW21dO1xuICAgICAgICBpZiAoXy5pc0FycmF5KGEudGFncykpIHtcbiAgICAgICAgICBhLnRhZ3MuZm9yRWFjaCh0YWcgPT4ge1xuICAgICAgICAgICAgaWYgKHRhZ3MuZmlsdGVyKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gdGFnKS5sZW5ndGggPT09IDApIHsgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgdGFncy5wdXNoKHsgbmFtZTogdGFnIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgICByZXR1cm4gdGFncztcbiAgfVxuXG5cblxuXG5cblxuICAvKipcbiAgICogVG8gZ2VuZXJhdGUgZ2V0L2Jvb2tzL3tpZH0gPT4gZ2V0X2Jvb2tzX19pZF9cbiAgICovXG4gIHN0YXRpYyBjbGVhblBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvey9nLCBcIl9cIikucmVwbGFjZSgvfS9nLCBcIl9cIikucmVwbGFjZSgvXFwvL2csIFwiX1wiKS5yZXBsYWNlKC8tL2csIFwiX1wiKTtcbiAgfVxuXG5cbiAgc3RhdGljIGNsZWFuUGF0aE1vZGVsKHBhdGhNb2RlbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhdGhNb2RlbC5yZXBsYWNlKC9cXC97L2csICcvOicpLnJlcGxhY2UoL30vZywgJycpO1xuICB9XG5cblxuICBzdGF0aWMgc3dhZ2dlclR5cGVUb0pTKHR5cGU6IFwic3RyaW5nXCIgfCBcIm51bWJlclwiIHwgXCJpbnRlZ2VyXCIgfCBcImJvb2xlYW5cIiB8IFwiYXJyYXlcIiB8IFwiZmlsZVwiLCBpdGVtc1R5cGU6IGFueSA9ICdhbnknKSB7XG4gICAgcmV0dXJuICh0eXBlID09PSAnaW50ZWdlcicpID8gJ251bWJlcidcbiAgICAgIDogKHR5cGUgPT09ICdhcnJheScpID8gIWl0ZW1zVHlwZSA/ICdhbnknIDogYCR7dGhpcy5zd2FnZ2VyVHlwZVRvSlMoaXRlbXNUeXBlKX1bXWBcbiAgICAgICAgOiAodHlwZSA9PT0gJ2ZpbGUnKSA/ICdhbnknIDogdHlwZTtcbiAgfVxuXG5cblxuICBzdGF0aWMgZ2V0T2JqZWN0RGVmaW5pdGlvbihyZWY6IHN0cmluZywgc3dnOiBNb2RlbHMuU3dhZ2dlci5Td2FnZ2VyTW9kZWwsIGRlZXAgPSAwKTogc3RyaW5nIHtcbiAgICBpZiAoZGVlcCA9PSAxKSByZXR1cm4gJyc7XG4gICAgaWYgKCFyZWYpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdCYWQganNvbiAkcmVmIGluc2lkZSBzd2FnZ2VyJylcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgbGV0IHJlcyA9ICcnO1xuICAgIHJlZiA9IHJlZi5yZXBsYWNlKCcjLycsICcnKS5yZXBsYWNlKC9cXC8vZywgJy4nKTtcblxuICAgIGxldCBvYmo6IE1vZGVscy5Td2FnZ2VyLlN3YWdnZXJEZWYgPSA8TW9kZWxzLlN3YWdnZXIuU3dhZ2dlckRlZj5fLmdldChzd2csIHJlZik7XG5cblxuXG5cblxuXG5cblxuXG4gICAgXy5mb3JPd24ob2JqLnByb3BlcnRpZXMsICh2LCBrKSA9PiB7XG5cbiAgICAgIGlmICh2LiRyZWYgJiYgdHlwZW9mIHYuJHJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXMgKz0gayArIFwiOntcIiArIHRoaXMuZ2V0T2JqZWN0RGVmaW5pdGlvbih2LiRyZWYsIHN3ZywgZGVlcCsrKSArIFwifTtcXG5cIjtcbiAgICAgIH0gZWxzZSBpZiAodi5zY2hlbWEgJiYgdi5zY2hlbWEuJHJlZiAmJiB0eXBlb2Ygdi5zY2hlbWEuJHJlZiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXMgKz0gayArIFwiOntcIiArIHRoaXMuZ2V0T2JqZWN0RGVmaW5pdGlvbih2LnNjaGVtYS4kcmVmLCBzd2csIGRlZXArKykgKyBcIn07XFxuXCI7XG5cbiAgICAgIH0gZWxzZSBpZiAodi5pdGVtcyAmJiB2Lml0ZW1zLiRyZWYgJiYgdHlwZW9mIHYuaXRlbXMuJHJlZiA9PT0gXCJzdHJpbmdcIiAmJiB2LnR5cGUgJiYgdi50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgIHJlcyArPSBrICsgXCI6e1wiICsgdGhpcy5nZXRPYmplY3REZWZpbml0aW9uKHYuaXRlbXMuJHJlZiwgc3dnLCBkZWVwKyspICsgXCJ9W107XFxuXCI7XG5cblxuICAgICAgfSBlbHNlIGlmICh2Lml0ZW1zICYmIHYuaXRlbXMuJHJlZiAmJiB0eXBlb2Ygdi5pdGVtcy4kcmVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJlcyArPSBrICsgXCI6e1wiICsgdGhpcy5nZXRPYmplY3REZWZpbml0aW9uKHYuaXRlbXMuJHJlZiwgc3dnLCBkZWVwKyspICsgXCJ9O1xcblwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGlzUmVxdWlyZWQgPSAob2JqLnJlcXVpcmVkICYmIG9iai5yZXF1aXJlZCBpbnN0YW5jZW9mIEFycmF5ICYmIG9iai5yZXF1aXJlZC5maWx0ZXIobyA9PiBvID09PSBrKS5sZW5ndGggPiAwKVxuICAgICAgICBsZXQgdHlwZSA9ICh2LmVudW0gJiYgdi5lbnVtIGluc3RhbmNlb2YgQXJyYXkgJiYgdi5lbnVtLmxlbmd0aCA+IDApXG4gICAgICAgICAgPyB2LmVudW0ubWFwKGUgPT4gJ1wiJyArIGUgKyAnXCInKS5qb2luKCd8JykgOiB0aGlzLnN3YWdnZXJUeXBlVG9KUyh2LnR5cGUsIHYuaXRlbXMgPyB2Lml0ZW1zLnR5cGUgOiAnYW55Jyk7XG5cbiAgICAgICAgcmVzICs9IGsgKyAoIWlzUmVxdWlyZWQgPyAnPycgOiBcIlwiKSArIFwiOlwiICsgdHlwZSArIFwiO1xcblwiXG4gICAgICB9XG4gICAgfSk7XG5cblxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHJpdmF0ZSBwYXRoZXMgPSB7XG4gICAqICAgICAgZ2V0X2FsbF9jb21wYW5pZXM6IG5ldyBTaW1wbGVSZXNvdXJjZTxcbiAgICogICAgICAgICAgc3RyaW5nLCBBLCBUQSwgUlAgZXh0ZW5kcyBPYmplY3QsIFFQIGV4dGVuZHMgUmVzdC5VcmxQYXJhbXM+KGVuZHBvaW50LCBtb2RlbCksXG4gICAqICAgICAgZ2V0X2J5aWRfY29tcGFuaWVzOiBuZXcgU2ltcGxlUmVzb3VyY2U8XG4gICAqICAgICAgICAgIHN0cmluZywgQSwgVEEsIFJQIGV4dGVuZHMgT2JqZWN0LCBRUCBleHRlbmRzIFJlc3QuVXJsUGFyYW1zPihlbmRwb2ludCwgbW9kZWwpXG4gICAqIH1cbiAgICovXG4gIHN0YXRpYyBnZXRBbmd1bGFyUHJpdmF0ZVBhdGhlc0J5VGFnKHN3ZzogTW9kZWxzLlN3YWdnZXIuU3dhZ2dlck1vZGVsLCB0YWc6IE1vZGVscy5Td2FnZ2VyLlN3YWdnZXJUYWcpOiBzdHJpbmcge1xuICAgIGxldCByZXM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IGJhc2UgPSBzd2cuYmFzZVBhdGgucmVwbGFjZSgnLycsICcnKTtcblxuICAgIGxldCBwYXRoZXM6IE9iamVjdCA9IHt9O1xuICAgIF8uZm9yT3duKHN3Zy5wYXRocywgKHYsIGspID0+IHtcbiAgICAgIF8uZm9yT3duKHYsICh2MiwgazIpID0+IHtcbiAgICAgICAgaWYgKF8uaXNBcnJheSh2Mi50YWdzKSAmJiB2Mi50YWdzLmZpbHRlcihmID0+IGYgPT09IHRhZy5uYW1lKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgbGV0IHJlc3AgPSB2Mi5yZXNwb25zZXNbJzIwMCddICYmIHYyLnJlc3BvbnNlc1snMjAwJ10uc2NoZW1hO1xuXG5cblxuXG4gICAgICAgICAgaWYgKHBhdGhlc1trXSA9PT0gdW5kZWZpbmVkKSBwYXRoZXNba10gPSB7fTsgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGxldCB0eXBlID0gdGhpcy5nZXRSZXNwb25zZVR5cGUocmVzcCwgc3dnKTtcblxuICAgICAgICAgIGlmICh0eXBlLmxlbmd0aCA+IDMgJiYgdHlwZS5jaGFyQXQodHlwZS5sZW5ndGggLSAxKSA9PT0gJ10nICYmIHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoIC0gMikgPT09ICdbJ1xuICAgICAgICAgICAgJiYgIXBhdGhlc1trXVsnYXJyYXknXSkge1xuICAgICAgICAgICAgcGF0aGVzW2tdWydhcnJheSddID0gdHlwZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGsyICE9PSAnZGVsZXRlJyAmJiAhcGF0aGVzW2tdWydzaW5nbGUnXSkge1xuICAgICAgICAgICAgcGF0aGVzW2tdWydzaW5nbGUnXSA9IHR5cGU7XG4gICAgICAgICAgfVxuXG5cblxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBsZXQgcGF0aFJlc291cmNlczogTW9kZWxzLlBhdGhSZXNvdXJjZVtdID0gW107XG5cbiAgICBfLmZvck93bihwYXRoZXMsICh2LCBwKSA9PiB7XG5cbiAgICAgIHBhdGhSZXNvdXJjZXMucHVzaCh7XG4gICAgICAgIGNsZWFuX3BhdGg6IHRoaXMuY2xlYW5QYXRoKHApLFxuICAgICAgICBtb2RlbDogdGhpcy5jbGVhblBhdGhNb2RlbChwKSxcbiAgICAgICAgZW5kcG9pbnQ6IHN3Zy5iYXNlUGF0aCxcbiAgICAgICAgc2luZ2xlTW9kZWxUeXBlOiAhdlsnc2luZ2xlJ10gPyAnYW55JyA6IHZbJ3NpbmdsZSddLFxuICAgICAgICBtdWx0aXBsZU1vZGVsVHlwZTogIXZbJ2FycmF5J10gPyAnYW55JyA6IHZbJ2FycmF5J10sXG4gICAgICAgIHF1ZXJ5UGFyYW1zVHlwZTogJ2FueScsXG4gICAgICAgIHBhdGhQYXJhbXNUeXBlOiAnYW55J1xuICAgICAgfSlcbiAgICB9KVxuXG5cbiAgICBwYXRoUmVzb3VyY2VzLmZvckVhY2gocCA9PiB7XG4gICAgICByZXMucHVzaChgJHtwLmNsZWFuX3BhdGh9OiBuZXcgU2ltcGxlUmVzb3VyY2U8XFxuJHtwLnNpbmdsZU1vZGVsVHlwZX0sXFxuJHtwLm11bHRpcGxlTW9kZWxUeXBlfVxcbj4oIE5nMlJlc3RHZW5Nb2R1bGUuZW5wb2ludFVybHMuJHt0aGlzLmdyb3VwRnJvbUpTT04uZm9sZGVyTmFtZShzd2cpfSwgJyR7cC5tb2RlbH0nIClgKTtcbiAgICB9KVxuXG4gICAgcmV0dXJuIGBwcml2YXRlIHBhdGhlcyA9IHsgXFxuJHtyZXMuam9pbignLFxcbicpfVxcbn07YFxuICB9XG5cblxuICAvKlxuICAgc2NoZW1hXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL0NvbXBhbnlEVE9cIlxuICAgICAgfVxuICB9XG5cbiAgXCJzY2hlbWFcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9Db21wYW55RFRPXCJcbiAgfVxuICAgKi9cblxuICBzdGF0aWMgZ2V0UmVzcG9uc2VUeXBlKG86IE1vZGVscy5Td2FnZ2VyLk9ialNjaGVtYSwgc3dnOiBNb2RlbHMuU3dhZ2dlci5Td2FnZ2VyTW9kZWwpIHtcbiAgICBsZXQgcmVzID0gJ3t9IHwgYW55JztcbiAgICBpZiAobyAmJiBvLiRyZWYgJiYgdHlwZW9mIG8uJHJlZiA9PT0gJ3N0cmluZycgJiYgby4kcmVmLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIHJlcyA9IFwie1wiICsgdGhpcy5nZXRPYmplY3REZWZpbml0aW9uKG8uJHJlZiwgc3dnKSArIFwifVwiO1xuXG4gICAgfSBlbHNlIGlmIChvICYmIG8udHlwZSA9PT0gJ2FycmF5JyAmJiBvLml0ZW1zICYmIG8uaXRlbXMuJHJlZiAmJlxuICAgICAgdHlwZW9mIG8uaXRlbXMuJHJlZiA9PT0gJ3N0cmluZycgJiYgby5pdGVtcy4kcmVmLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIHJlcyA9IFwie1wiICsgdGhpcy5nZXRPYmplY3REZWZpbml0aW9uKG8uaXRlbXMuJHJlZiwgc3dnKSArIFwifVtdXCI7XG5cbiAgICB9XG5cblxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgcHJpdmF0ZSBzdGF0aWMgY291bnQxID0gMDtcblxuICBzdGF0aWMgcmVjcmVhdGVTdW1tYXJ5KHN1bW1hcnk6IHN0cmluZykge1xuXG5cblxuICAgIHJldHVybiBzdW1tYXJ5O1xuICB9XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdC1zd2FnZ2VyLWdlbmVyYXRvciBsaWIvaGVscGVycy50cyJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './helpers';
2
+ ;
3
+ ({}); // @--end-of-file-for-module=ng2-rest-swagger-generator lib/index.ts
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL25nMi1yZXN0LXN3YWdnZXItZ2VuZXJhdG9yL3Byb2plY3RzL25nMi1yZXN0LXN3YWdnZXItZ2VuZXJhdG9yL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFFekIsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvRUFBb0UiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlbHBlcnMnO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9bmcyLXJlc3Qtc3dhZ2dlci1nZW5lcmF0b3IgbGliL2luZGV4LnRzIl19
@@ -0,0 +1,8 @@
1
+ import { Models as MorphiModels } from 'morphi/browser';
2
+ export var Models;
3
+ (function (Models) {
4
+ Models.Morphi = MorphiModels;
5
+ })(Models || (Models = {}));
6
+ ;
7
+ ({}); // @--end-of-file-for-module=ng2-rest-swagger-generator lib/models.ts
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9uZzItcmVzdC1zd2FnZ2VyLWdlbmVyYXRvci9wcm9qZWN0cy9uZzItcmVzdC1zd2FnZ2VyLWdlbmVyYXRvci9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE1BQU0sS0FBVyxNQUFNLENBMkx0QjtBQTNMRCxXQUFpQixNQUFNO0lBQ1AsYUFBTSxHQUFHLFlBQVksQ0FBQztBQTBMdEMsQ0FBQyxFQTNMZ0IsTUFBTSxLQUFOLE1BQU0sUUEyTHRCO0FBQ0EsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbHMgYXMgTW9ycGhpTW9kZWxzIH0gZnJvbSAnbW9ycGhpL2Jyb3dzZXInO1xuXG5cbmV4cG9ydCBuYW1lc3BhY2UgTW9kZWxzIHtcbiAgZXhwb3J0IGltcG9ydCBNb3JwaGkgPSBNb3JwaGlNb2RlbHM7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQYXRoUmVzb3VyY2Uge1xuICAgIGNsZWFuX3BhdGg/OiBzdHJpbmc7XG4gICAgc2luZ2xlTW9kZWxUeXBlPzogc3RyaW5nO1xuICAgIG11bHRpcGxlTW9kZWxUeXBlPzogc3RyaW5nO1xuICAgIHBhdGhQYXJhbXNUeXBlPzogc3RyaW5nO1xuICAgIHF1ZXJ5UGFyYW1zVHlwZT86IHN0cmluZztcbiAgICBlbmRwb2ludD86IHN0cmluZztcbiAgICBtb2RlbD86IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFyYW0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7IC8vIFwic3RyaW5nXCIgfCBcIm51bWJlclwiIHwgXCJpbnRlZ2VyXCIgfCBcImJvb2xlYW5cIiB8IFwiYXJyYXlcIiB8IFwiZmlsZVwiO1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIGlzT2JqZWN0PzogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgU2VydmljZU1ldGhvZCB7XG4gICAgc3VtbWFyeTogc3RyaW5nO1xuICAgIHBhdGhfY2xlYW5kOiBzdHJpbmc7XG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoPzogUGFyYW1bXTtcbiAgICAgIHF1ZXJ5PzogUGFyYW1bXTtcbiAgICAgIGJvZHk/OiBQYXJhbVtdO1xuICAgIH1cbiAgICBtZXRob2Q6IE1vcnBoaS5SZXN0Lkh0dHBNZXRob2Q7XG4gICAgaXNBcnJheTogYm9vbGVhbjtcbiAgICBjb21tZW50Pzogc3RyaW5nO1xuICB9XG5cblxuXG4gIGV4cG9ydCBuYW1lc3BhY2UgU3dhZ2dlciB7XG4gICAgZXhwb3J0IHR5cGUgRGF0YUZvcm1hdCA9ICdpbnQzMicgfCAnaW50NjQnIHwgJ2RvdWJsZScgfCAnZmxvYXQnXG4gICAgZXhwb3J0IHR5cGUgRGF0YVR5cGUgPSAnb2JqZWN0JyB8ICdhcnJheScgfCAnc3RyaW5nJyB8ICdib29sZWFuJ1xuXG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5TmFtZSB7XG4gICAgICBbbmFtZTogc3RyaW5nXTogUGFyYW1ldGVyXG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBTd2FnZ2VyRGVmIHtcbiAgICAgIHJlcXVpcmVkOiBzdHJpbmdbXTtcbiAgICAgIHR5cGU6IERhdGFUeXBlO1xuICAgICAgcHJvcGVydGllczogUHJvcGVydHlOYW1lO1xuICAgIH1cblxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBTd2FnZ2VyRGVmaW5pdGlvbiB7XG4gICAgICBbbmFtZTogc3RyaW5nXTogU3dhZ2dlckRlZjtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIE9ialNjaGVtYSB7XG4gICAgICAkcmVmOiBzdHJpbmc7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIiB8IFwiaW50ZWdlclwiIHwgXCJib29sZWFuXCIgfCBcImFycmF5XCIgfCBcImZpbGVcIjtcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgICRyZWY6IHN0cmluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICBzY2hlbWE6IE9ialNjaGVtYTtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFN3YWdnZXJSZXNwb25zZSB7XG4gICAgICBbcGF0aDogc3RyaW5nXTogUmVzcG9uc2U7XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXIge1xuICAgICAgJHJlZjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBcdFJlcXVpcmVkLiBUaGUgc2NoZW1hIGRlZmluaW5nIHRoZSB0eXBlIHVzZWQgZm9yIHRoZSBib2R5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgc2NoZW1hOiB7XG4gICAgICAgICRyZWY6IHN0cmluZztcbiAgICAgICAgaXRlbXM6IFBhcmFtZXRlcjtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIiB8IFwibnVtYmVyXCIgfCBcImludGVnZXJcIiB8IFwiYm9vbGVhblwiIHwgXCJhcnJheVwiIHwgXCJmaWxlXCI7XG4gICAgICB9XG4gICAgICAvKipcbiAgICAgICAqIFJlcXVpcmVkLiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLiBQYXJhbWV0ZXIgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLlxuICAgICAgICogSWYgaW4gaXMgXCJwYXRoXCIsIHRoZSBuYW1lIGZpZWxkIE1VU1QgY29ycmVzcG9uZCB0byB0aGUgYXNzb2NpYXRlZCBwYXRoIHNlZ21lbnRcbiAgICAgICAqIGZyb20gdGhlIHBhdGggZmllbGQgaW4gdGhlIFBhdGhzIE9iamVjdC4gU2VlIFBhdGggVGVtcGxhdGluZyBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi5cbiAgICAgICAqIEZvciBhbGwgb3RoZXIgY2FzZXMsIHRoZSBuYW1lIGNvcnJlc3BvbmRzIHRvIHRoZSBwYXJhbWV0ZXIgbmFtZSB1c2VkIGJhc2VkIG9uIHRoZSBpbiBwcm9wZXJ0eS5cbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgaW46ICdxdWVyeScgfCAncGF0aCcgfCAnYm9keScgfCAnZm9ybURhdGEnIHwgJ2hlYWRlcic7XG4gICAgICAvKipcbiAgICAgICAqIEEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlci4gVGhpcyBjb3VsZCBjb250YWluIGV4YW1wbGVzIG9mIHVzZS5cbiAgICAgICAqICBHRk0gc3ludGF4IGNhbiBiZSB1c2VkIGZvciByaWNoIHRleHQgcmVwcmVzZW50YXRpb24uXG4gICAgICAgKi9cbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIFJlcXVpcmVkIGlmIHR5cGUgaXMgXCJhcnJheVwiLiBEZXNjcmliZXMgdGhlIHR5cGUgb2YgaXRlbXMgaW4gdGhlIGFycmF5LlxuICAgICAgICovXG4gICAgICBpdGVtczogUGFyYW1ldGVyO1xuICAgICAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIFNldHMgdGhlIGFiaWxpdHkgdG8gcGFzcyBlbXB0eS12YWx1ZWQgcGFyYW1ldGVycy4gVGhpcyBpcyB2YWxpZCBvbmx5XG4gICAgICAgKiBmb3IgZWl0aGVyIHF1ZXJ5IG9yIGZvcm1EYXRhIHBhcmFtZXRlcnMgYW5kIGFsbG93cyB5b3UgdG8gc2VuZCBhIHBhcmFtZXRlclxuICAgICAgICogIHdpdGggYSBuYW1lIG9ubHkgb3IgYW4gZW1wdHkgdmFsdWUuIERlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGFsbG93RW1wdHlWYWx1ZTogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogUmVxdWlyZWQuIFRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIuIFNpbmNlIHRoZSBwYXJhbWV0ZXIgaXMgbm90IGxvY2F0ZWRcbiAgICAgICAqIGF0IHRoZSByZXF1ZXN0IGJvZHksIGl0IGlzIGxpbWl0ZWQgdG8gc2ltcGxlIHR5cGVzICh0aGF0IGlzLCBub3QgYW4gb2JqZWN0KS5cbiAgICAgICAqICBUaGUgdmFsdWUgTVVTVCBiZSBvbmUgb2YgXCJzdHJpbmdcIiwgXCJudW1iZXJcIiwgXCJpbnRlZ2VyXCIsIFwiYm9vbGVhblwiLCBcImFycmF5XCJcbiAgICAgICAqIG9yIFwiZmlsZVwiLiBJZiB0eXBlIGlzIFwiZmlsZVwiLCB0aGUgY29uc3VtZXMgTVVTVCBiZSBlaXRoZXIgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCIsXG4gICAgICAgKiBcIiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiBvciBib3RoIGFuZCB0aGUgcGFyYW1ldGVyIE1VU1QgYmUgaW4gXCJmb3JtRGF0YVwiLlxuICAgICAgICovXG4gICAgICB0eXBlOiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIiB8IFwiaW50ZWdlclwiIHwgXCJib29sZWFuXCIgfCBcImFycmF5XCIgfCBcImZpbGVcIjtcbiAgICAgIGZvcm1hdDogXCJpbnQzMlwiIHwgXCJpbnQ2NFwiIHwgXCJmbG9hdFwiIHwgXCJkb3VibGVcIiB8IFwiYnl0ZVwiIHwgXCJiaW5hcnlcIiB8IFwiZGF0ZVwiIHwgXCJkYXRlLXRpbWVcIiB8IFwicGFzc3dvcmRcIjtcbiAgICAgIC8qKlxuICAgICAgICogRGV0ZXJtaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSBhcnJheSBpZiB0eXBlIGFycmF5IGlzIHVzZWQuIFBvc3NpYmxlIHZhbHVlcyBhcmU6XG4gICAgICAgKiBjc3YgLSBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzIGZvbyxiYXIuXG4gICAgICAgKiBzc3YgLSBzcGFjZSBzZXBhcmF0ZWQgdmFsdWVzIGZvbyBiYXIuXG4gICAgICAgKiB0c3YgLSB0YWIgc2VwYXJhdGVkIHZhbHVlcyBmb29cXHRiYXIuXG4gICAgICAgKiBwaXBlcyAtIHBpcGUgc2VwYXJhdGVkIHZhbHVlcyBmb298YmFyLlxuICAgICAgICogRGVmYXVsdCB2YWx1ZSBpcyBjc3YuXG4gICAgICAgKi9cbiAgICAgIGNvbGxlY3Rpb25Gb3JtYXQ6ICdjc3YnIHwgJ3NzdicgfCAndHN2JyB8ICdwaXBlcyc7XG4gICAgICAvKipcbiAgICAgICAqIERlY2xhcmVzIHRoZSB2YWx1ZSBvZiB0aGUgaXRlbSB0aGF0IHRoZSBzZXJ2ZXIgd2lsbCB1c2UgaWYgbm9uZSBpcyBwcm92aWRlZC5cbiAgICAgICAqIChOb3RlOiBcImRlZmF1bHRcIiBoYXMgbm8gbWVhbmluZyBmb3IgcmVxdWlyZWQgaXRlbXMuKVxuICAgICAgICogU2VlIGh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvbGF0ZXN0L2pzb24tc2NoZW1hLXZhbGlkYXRpb24uaHRtbCNhbmNob3IxMDEuXG4gICAgICAgKiAgVW5saWtlIEpTT04gU2NoZW1hIHRoaXMgdmFsdWUgTVVTVCBjb25mb3JtIHRvIHRoZSBkZWZpbmVkIHR5cGUgZm9yIHRoZSBkYXRhIHR5cGUuXG4gICAgICAgKi9cbiAgICAgIGRlZmF1bHQ6IGFueTtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIHZhbHVlIG9mIHRoaXMga2V5d29yZCBNVVNUIGJlIGFuIGFycmF5LlxuICAgICAgICogVGhpcyBhcnJheSBTSE9VTEQgaGF2ZSBhdCBsZWFzdCBvbmUgZWxlbWVudC5cbiAgICAgICAqIEVsZW1lbnRzIGluIHRoZSBhcnJheSBTSE9VTEQgYmUgdW5pcXVlLlxuICAgICAgICogRWxlbWVudHMgaW4gdGhlIGFycmF5IE1BWSBiZSBvZiBhbnkgdHlwZSwgaW5jbHVkaW5nIG51bGwuXG4gICAgICAgKiBBbiBpbnN0YW5jZSB2YWxpZGF0ZXMgc3VjY2Vzc2Z1bGx5IGFnYWluc3QgdGhpcyBrZXl3b3JkIGlmIGl0cyB2YWx1ZVxuICAgICAgICogaXMgZXF1YWwgdG8gb25lIG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIGtleXdvcmQncyBhcnJheSB2YWx1ZS5cbiAgICAgICAqL1xuICAgICAgZW51bTogYW55W107XG4gICAgICBtYXhMZW5ndGg6IG51bWJlcjtcbiAgICAgIG1pbkxlbmd0aDogbnVtYmVyO1xuICAgICAgbWF4SXRlbXM6IG51bWJlcjtcbiAgICAgIG1pbkl0ZW1zOiBudW1iZXI7XG4gICAgICB1bmlxdWVJdGVtczogYm9vbGVhbjtcbiAgICAgIHBhdHRlcm46IG51bWJlcjtcbiAgICAgIG1heGltdW06IG51bWJlcjtcbiAgICAgIGV4Y2x1c2l2ZU1heGltdW06IGJvb2xlYW47XG4gICAgICBtaW5pbXVtOiBudW1iZXI7XG4gICAgICBleGNsdXNpdmVNaW5pbXVtOiBudW1iZXI7XG4gICAgICBtdWx0aXBsZU9mOiBib29sZWFuO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgTWV0aG9kIHtcbiAgICAgIHRhZ3M6IHN0cmluZ1tdO1xuICAgICAgc3VtbWFyeTogc3RyaW5nO1xuICAgICAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgICAgIGNvbnN1bWVzOiBzdHJpbmdbXTtcbiAgICAgIHByb2R1Y2VzOiBzdHJpbmdbXTtcbiAgICAgIHBhcmFtZXRlcnM6IFBhcmFtZXRlcltdO1xuICAgICAgcmVzcG9uc2VzOiBTd2FnZ2VyUmVzcG9uc2VbXTtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFN3YWdnZXJNZXRob2Qge1xuICAgICAgW3BhdGg6IHN0cmluZ106IE1ldGhvZDtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFN3YWdnZXJQYXRoIHtcbiAgICAgIFtwYXRoOiBzdHJpbmddOiBTd2FnZ2VyTWV0aG9kO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgU3dhZ2dlclRhZyB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFN3YWdnZXJNb2RlbCB7XG4gICAgICBob3N0OiBzdHJpbmc7XG4gICAgICBiYXNlUGF0aDogc3RyaW5nO1xuICAgICAgdGFnczogU3dhZ2dlclRhZ1tdO1xuICAgICAgcGF0aHM6IFN3YWdnZXJQYXRoO1xuICAgICAgZGVmaW5pdGlvbnM6IFN3YWdnZXJEZWZpbml0aW9uO1xuICAgIH1cblxuXG4gIH1cblxufVxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0LXN3YWdnZXItZ2VuZXJhdG9yIGxpYi9tb2RlbHMudHMiXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmcyLXJlc3Qtc3dhZ2dlci1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL25nMi1yZXN0LXN3YWdnZXItZ2VuZXJhdG9yL3Byb2plY3RzL25nMi1yZXN0LXN3YWdnZXItZ2VuZXJhdG9yL3NyYy9uZzItcmVzdC1zd2FnZ2VyLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './lib';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvbmcyLXJlc3Qtc3dhZ2dlci1nZW5lcmF0b3IvcHJvamVjdHMvbmcyLXJlc3Qtc3dhZ2dlci1nZW5lcmF0b3Ivc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG4iXX0=