bx-rest 0.2.4 → 0.2.5

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 (44) hide show
  1. package/README.md +97 -97
  2. package/esm2022/functions/serializeJavascript.mjs +1 -1
  3. package/esm2022/public-api.mjs +1 -1
  4. package/esm2022/request/bx-rest.module.mjs +1 -1
  5. package/esm2022/request/tasks/task.mjs +1 -1
  6. package/esm2022/request/tasks.mjs +1 -1
  7. package/esm2022/request/user.mjs +1 -1
  8. package/esm2022/request-navvy/tasks/task.mjs +1 -1
  9. package/esm2022/request-navvy/tasks.mjs +1 -1
  10. package/esm2022/request-navvy/user.mjs +1 -1
  11. package/esm2022/services/http/HttpBX.mjs +1 -1
  12. package/esm2022/services/http/sessionKey.mjs +1 -1
  13. package/esm2022/services/snack-bar/snack-bar.service.mjs +1 -1
  14. package/esm2022/services/snack-bar/toast-message/toast-message.component.mjs +3 -3
  15. package/esm2022/services/vanilla/JSON.mjs +1 -1
  16. package/esm2022/services/vanilla/localStorage.mjs +1 -1
  17. package/esm2022/services/vanilla//321/201ookies.mjs +1 -1
  18. package/esm2022/typification/auth/save.mjs +1 -1
  19. package/esm2022/typification/rest/base/YesNo.mjs +1 -1
  20. package/esm2022/typification/rest/base/filterGenerator.mjs +1 -1
  21. package/esm2022/typification/rest/base/sort.mjs +1 -1
  22. package/esm2022/typification/rest/lists/element/get.mjs +1 -1
  23. package/esm2022/typification/rest/task/base/fieldsName.mjs +1 -1
  24. package/esm2022/typification/rest/task/elapseditem/get.mjs +1 -1
  25. package/esm2022/typification/rest/task/elapseditem/item.mjs +1 -1
  26. package/esm2022/typification/rest/task/task.mjs +1 -1
  27. package/esm2022/typification/rest/tasks/task/approve.mjs +1 -1
  28. package/esm2022/typification/rest/tasks/task/complete.mjs +1 -1
  29. package/esm2022/typification/rest/tasks/task/defer.mjs +1 -1
  30. package/esm2022/typification/rest/tasks/task/list.mjs +1 -1
  31. package/esm2022/typification/rest/user/get.mjs +1 -1
  32. package/esm2022/typification/rest/user/search.mjs +1 -1
  33. package/esm2022/typification/rest/user/user.mjs +1 -1
  34. package/fesm2022/bx-rest.mjs +2 -2
  35. package/fesm2022/bx-rest.mjs.map +1 -1
  36. package/package.json +1 -1
  37. package/request/tasks/task.d.ts +6 -6
  38. package/typification/rest/base/filterGenerator.d.ts +4 -4
  39. package/typification/rest/lists/element/get.d.ts +2 -2
  40. package/typification/rest/task/elapseditem/get.d.ts +2 -2
  41. package/typification/rest/tasks/task/approve.d.ts +1 -1
  42. package/typification/rest/tasks/task/complete.d.ts +2 -2
  43. package/typification/rest/tasks/task/defer.d.ts +2 -2
  44. package/typification/rest/tasks/task/list.d.ts +2 -2
package/README.md CHANGED
@@ -1,97 +1,97 @@
1
- # BX rest
2
-
3
- This is an intermediary between requests sent from the browser and includes a site on crm bitrix
4
-
5
- ### Install
6
-
7
- ```shell
8
- npm install bx-rest
9
- ```
10
- # Usage
11
- ```typescript
12
- @NgModule({
13
- declarations: [
14
- AppComponent,
15
- ...
16
- ],
17
- imports: [
18
- BrowserModule
19
- ...
20
- ],
21
- providers: [
22
- NgxMaskPipe,
23
- {
24
- provide: REST_SETTINGS, useValue: {
25
- auth: {
26
- source: 'cookies',
27
- key: 'auth'
28
- },
29
- urls: {
30
- home: 'your bitrix addres'
31
- }
32
- }
33
- }
34
- ],
35
- });
36
- document.cookie ='auth=ACCESS_TOKEN; max-age=99999'
37
- ```
38
- ```typescript
39
- import { BXRest, BXMap } from 'bx-rest'
40
-
41
- @Component({
42
- selector: 'app-any',
43
- templateUrl: './any.component.html',
44
- styleUrls: ['./any.component.scss']
45
- })
46
- export class AnyComponent {
47
-
48
- listElements$ = this.BXRest.lists.element.get({
49
- IBLOCK_TYPE_ID: 'lists',
50
- IBLOCK_ID: 150,
51
- FILTER: {
52
- ['>' + vacancies.del]: 0
53
- }
54
- }).pipe(
55
- map(v => this.BXMap.lists.element.get(v))
56
- )
57
-
58
- constructor(
59
- private BXRest: BXRest,
60
- private BXMap: BXMap,
61
- ) {
62
-
63
- }
64
- }
65
- ```
66
- or if you prefer several features in one
67
-
68
- ```typescript
69
- import { BXRestNavvy, BXMap } from 'bx-rest'
70
-
71
- @Component({
72
- selector: 'app-any',
73
- templateUrl: './any.component.html',
74
- styleUrls: ['./any.component.scss']
75
- })
76
- export class AnyComponent {
77
-
78
- listElements$ = this.BXRestNavvy.lists.element.get({
79
- IBLOCK_TYPE_ID: 'lists',
80
- IBLOCK_ID: 150,
81
- FILTER: {
82
- ['>' + vacancies.del]: 0
83
- }
84
- }).result() // or .resultAll() - to get all elements
85
-
86
- constructor(
87
- private BXRestNavvy: BXRestNavvy,
88
- ) {
89
-
90
- }
91
- }
92
- ```
93
-
94
- # Future features
95
- - Auto get token
96
- - Mappers for normalization types
97
- - 100% coverage
1
+ # BX rest
2
+
3
+ This is an intermediary between requests sent from the browser and includes a site on crm bitrix
4
+
5
+ ### Install
6
+
7
+ ```shell
8
+ npm install bx-rest
9
+ ```
10
+ # Usage
11
+ ```typescript
12
+ @NgModule({
13
+ declarations: [
14
+ AppComponent,
15
+ ...
16
+ ],
17
+ imports: [
18
+ BrowserModule
19
+ ...
20
+ ],
21
+ providers: [
22
+ NgxMaskPipe,
23
+ {
24
+ provide: REST_SETTINGS, useValue: {
25
+ auth: {
26
+ source: 'cookies',
27
+ key: 'auth'
28
+ },
29
+ urls: {
30
+ home: 'your bitrix addres'
31
+ }
32
+ }
33
+ }
34
+ ],
35
+ });
36
+ document.cookie ='auth=ACCESS_TOKEN; max-age=99999'
37
+ ```
38
+ ```typescript
39
+ import { BXRest, BXMap } from 'bx-rest'
40
+
41
+ @Component({
42
+ selector: 'app-any',
43
+ templateUrl: './any.component.html',
44
+ styleUrls: ['./any.component.scss']
45
+ })
46
+ export class AnyComponent {
47
+
48
+ listElements$ = this.BXRest.lists.element.get({
49
+ IBLOCK_TYPE_ID: 'lists',
50
+ IBLOCK_ID: 150,
51
+ FILTER: {
52
+ ['>' + vacancies.del]: 0
53
+ }
54
+ }).pipe(
55
+ map(v => this.BXMap.lists.element.get(v))
56
+ )
57
+
58
+ constructor(
59
+ private BXRest: BXRest,
60
+ private BXMap: BXMap,
61
+ ) {
62
+
63
+ }
64
+ }
65
+ ```
66
+ or if you prefer several features in one
67
+
68
+ ```typescript
69
+ import { BXRestNavvy, BXMap } from 'bx-rest'
70
+
71
+ @Component({
72
+ selector: 'app-any',
73
+ templateUrl: './any.component.html',
74
+ styleUrls: ['./any.component.scss']
75
+ })
76
+ export class AnyComponent {
77
+
78
+ listElements$ = this.BXRestNavvy.lists.element.get({
79
+ IBLOCK_TYPE_ID: 'lists',
80
+ IBLOCK_ID: 150,
81
+ FILTER: {
82
+ ['>' + vacancies.del]: 0
83
+ }
84
+ }).result() // or .resultAll() - to get all elements
85
+
86
+ constructor(
87
+ private BXRestNavvy: BXRestNavvy,
88
+ ) {
89
+
90
+ }
91
+ }
92
+ ```
93
+
94
+ # Future features
95
+ - Auto get token
96
+ - Mappers for normalization types
97
+ - 100% coverage
@@ -197,4 +197,4 @@ function serialize(obj, options = {}) {
197
197
  });
198
198
  }
199
199
  export default serialize;
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplSmF2YXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL2Z1bmN0aW9ucy9zZXJpYWxpemVKYXZhc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVFQUF1RTtBQUN2RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDMUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQ0FBbUMsR0FBRyxHQUFHLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXZHLE1BQU0scUJBQXFCLEdBQUcsMEJBQTBCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXhDLCtFQUErRTtBQUMvRSx5RUFBeUU7QUFDekUsTUFBTSxhQUFhLEdBQTZCO0lBQzlDLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0NBQ3BCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFDLFVBQWtCO0lBQzNDLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDbEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxX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QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZSBhbiBpbnRlcm5hbCBVSUQgdG8gbWFrZSB0aGUgcmVnZXhwIHBhdHRlcm4gaGFyZGVyIHRvIGd1ZXNzLlxuY29uc3QgVUlEX0xFTkdUSCA9IDE2O1xuY29uc3QgVUlEID0gZ2VuZXJhdGVVSUQoKTtcbmNvbnN0IFBMQUNFX0hPTERFUl9SRUdFWFAgPSBuZXcgUmVnRXhwKCcoXFxcXFxcXFwpP1wiQF9fKEZ8UnxEfE18U3xBfFV8SXxCfEwpLScgKyBVSUQgKyAnLShcXFxcZCspX19AXCInLCAnZycpO1xuXG5jb25zdCBJU19OQVRJVkVfQ09ERV9SRUdFWFAgPSAvXFx7XFxzKlxcW25hdGl2ZSBjb2RlXVxccyp9L2c7XG5jb25zdCBJU19QVVJFX0ZVTkNUSU9OID0gL2Z1bmN0aW9uLio/XFwoLztcbmNvbnN0IElTX0FSUk9XX0ZVTkNUSU9OID0gLy4qPz0+Lio/LztcbmNvbnN0IFVOU0FGRV9DSEFSU19SRUdFWFAgPSAvWzw+XFwvXFx1MjAyOFxcdTIwMjldL2c7XG5cbmNvbnN0IFJFU0VSVkVEX1NZTUJPTFMgPSBbJyonLCAnYXN5bmMnXTtcblxuLy8gTWFwcGluZyBvZiB1bnNhZmUgSFRNTCBhbmQgaW52YWxpZCBKYXZhU2NyaXB0IGxpbmUgdGVybWluYXRvciBjaGFycyB0byB0aGVpclxuLy8gVW5pY29kZSBjaGFyIGNvdW50ZXJwYXJ0cyB3aGljaCBhcmUgc2FmZSB0byB1c2UgaW4gSmF2YVNjcmlwdCBzdHJpbmdzLlxuY29uc3QgRVNDQVBFRF9DSEFSUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gID0ge1xuICAnPCc6ICdcXFxcdTAwM0MnLFxuICAnPic6ICdcXFxcdTAwM0UnLFxuICAnLyc6ICdcXFxcdTAwMkYnLFxuICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknXG59O1xuXG5mdW5jdGlvbiBlc2NhcGVVbnNhZmVDaGFycyh1bnNhZmVDaGFyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gKEVTQ0FQRURfQ0hBUlMuaGFzT3duUHJvcGVydHkodW5zYWZlQ2hhcikpID8gRVNDQVBFRF9DSEFSU1t1bnNhZmVDaGFyXSA6ICcnO1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVVJRCgpIHtcbiAgbGV0IGJ5dGVzID0gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KFVJRF9MRU5HVEgpKVxuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgVUlEX0xFTkdUSDsgKytpKSB7XG4gICAgcmVzdWx0ICs9IGJ5dGVzW2ldLnRvU3RyaW5nKDE2KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBkZWxldGVGdW5jdGlvbnMob2JqOiBhbnkpIHtcbiAgbGV0IGZ1bmN0aW9uS2V5cyA9IFtdO1xuICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBmdW5jdGlvbktleXMucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmN0aW9uS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGRlbGV0ZSBvYmpbZnVuY3Rpb25LZXlzW2ldXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJpYWxpemUob2JqOiBhbnksIG9wdGlvbnM6IGFueSA9IHt9KTogYW55IHtcbiAgLy8gQmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIGBzcGFjZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudC5cbiAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnbnVtYmVyJyB8fCB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHRpb25zID0ge3NwYWNlOiBvcHRpb25zfTtcbiAgfVxuXG4gIGxldCBmdW5jdGlvbnM6IEZ1bmN0aW9uW10gPSBbXTtcbiAgbGV0IHJlZ2V4cHM6IGFueVtdID0gW107XG4gIGxldCBkYXRlczogYW55W10gPSBbXTtcbiAgbGV0IG1hcHM6IGFueVtdID0gW107XG4gIGxldCBzZXRzOiBhbnlbXSA9IFtdO1xuICBsZXQgYXJyYXlzOiBhbnlbXSA9IFtdO1xuICBsZXQgdW5kZWZzOiBhbnlbXSA9IFtdO1xuICBsZXQgaW5maW5pdGllczogYW55W10gPSBbXTtcbiAgbGV0IGJpZ0ludHM6IGFueVtdID0gW107XG4gIGxldCB1cmxzOiBhbnlbXSA9IFtdO1xuXG4gIC8vIFJldHVybnMgcGxhY2Vob2xkZXJzIGZvciBmdW5jdGlvbnMgYW5kIHJlZ2V4cHMgKGlkZW50aWZpZWQgYnkgaW5kZXgpXG4gIC8vIHdoaWNoIGFyZSBsYXRlciByZXBsYWNlZCBieSB0aGVpciBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gIGZ1bmN0aW9uIHJlcGxhY2VyKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG5cbiAgICAvLyBGb3IgbmVzdGVkIGZ1bmN0aW9uXG4gICAgaWYgKG9wdGlvbnMuaWdub3JlRnVuY3Rpb24pIHtcbiAgICAgIGRlbGV0ZUZ1bmN0aW9ucyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gbGV0IG9yaWdWYWx1ZTogYW55ID0gdGhpc1trZXldO1xuICAgIGxldCBvcmlnVmFsdWU6IGFueSA9IHZhbHVlO1xuICAgIGxldCB0eXBlID0gdHlwZW9mIG9yaWdWYWx1ZTtcblxuICAgIHN3aXRjaCAodHlwZSl7XG4gICAgICBjYXNlICdvYmplY3QnOlxuXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICByZXR1cm4gJ0BfX1ItJyArIFVJRCArICctJyArIChyZWdleHBzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XG4gICAgICAgIH0gZWxzZSBpZiAob3JpZ1ZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIHJldHVybiAnQF9fRC0nICsgVUlEICsgJy0nICsgKGRhdGVzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XG4gICAgICAgIH0gZWxzZSBpZiAob3JpZ1ZhbHVlIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgcmV0dXJuICdAX19NLScgKyBVSUQgKyAnLScgKyAobWFwcy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgICB9IGVsc2UgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICAgIHJldHVybiAnQF9fUy0nICsgVUlEICsgJy0nICsgKHNldHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGxldCBpc1NwYXJzZSA9IG9yaWdWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9KS5sZW5ndGggIT09IG9yaWdWYWx1ZS5sZW5ndGg7XG4gICAgICAgICAgaWYgKGlzU3BhcnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0BfX0EtJyArIFVJRCArICctJyArIChhcnJheXMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3JpZ1ZhbHVlIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgICAgcmV0dXJuICdAX19MLScgKyBVSUQgKyAnLScgKyAodXJscy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICByZXR1cm4gJ0BfX0YtJyArIFVJRCArICctJyArIChmdW5jdGlvbnMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiAnQF9fVS0nICsgVUlEICsgJy0nICsgKHVuZGVmcy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuICdAX19JLScgKyBVSUQgKyAnLScgKyAoaW5maW5pdGllcy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgY2FzZSAnYmlnaW50JzpcbiAgICAgICAgcmV0dXJuICdAX19CLScgKyBVSUQgKyAnLScgKyAoYmlnSW50cy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNlcmlhbGl6ZUZ1bmMoZm46IEZ1bmN0aW9uKSB7XG4gICAgbGV0IHNlcmlhbGl6ZWRGbiA9IGZuLnRvU3RyaW5nKCk7XG4gICAgaWYgKElTX05BVElWRV9DT0RFX1JFR0VYUC50ZXN0KHNlcmlhbGl6ZWRGbikpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1NlcmlhbGl6aW5nIG5hdGl2ZSBmdW5jdGlvbjogJyArIGZuLm5hbWUpO1xuICAgIH1cblxuICAgIC8vIHB1cmUgZnVuY3Rpb25zLCBleGFtcGxlOiB7a2V5OiBmdW5jdGlvbigpIHt9fVxuICAgIGlmIChJU19QVVJFX0ZVTkNUSU9OLnRlc3Qoc2VyaWFsaXplZEZuKSkge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcbiAgICB9XG5cbiAgICAvLyBhcnJvdyBmdW5jdGlvbnMsIGV4YW1wbGU6IGFyZzEgPT4gYXJnMSs1XG4gICAgaWYgKElTX0FSUk9XX0ZVTkNUSU9OLnRlc3Qoc2VyaWFsaXplZEZuKSkge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcbiAgICB9XG5cbiAgICBsZXQgYXJnc1N0YXJ0c0F0ID0gc2VyaWFsaXplZEZuLmluZGV4T2YoJygnKTtcbiAgICBsZXQgZGVmID0gc2VyaWFsaXplZEZuLnNsaWNlKDAsIGFyZ3NTdGFydHNBdClcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KCcgJylcbiAgICAuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIHJldHVybiB2YWwubGVuZ3RoID4gMFxuICAgIH0pO1xuXG4gICAgbGV0IG5vblJlc2VydmVkU3ltYm9scyA9IGRlZi5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgcmV0dXJuIFJFU0VSVkVEX1NZTUJPTFMuaW5kZXhPZih2YWwpID09PSAtMVxuICAgIH0pO1xuXG4gICAgLy8gZW5oYW5jZWQgbGl0ZXJhbCBvYmplY3RzLCBleGFtcGxlOiB7a2V5KCkge319XG4gICAgaWYgKG5vblJlc2VydmVkU3ltYm9scy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gKGRlZi5pbmRleE9mKCdhc3luYycpID4gLTEgPyAnYXN5bmMgJyA6ICcnKSArICdmdW5jdGlvbidcbiAgICAgICAgKyAoZGVmLmpvaW4oJycpLmluZGV4T2YoJyonKSA+IC0xID8gJyonIDogJycpXG4gICAgICAgICsgc2VyaWFsaXplZEZuLnNsaWNlKGFyZ3NTdGFydHNBdCk7XG4gICAgfVxuXG4gICAgLy8gYXJyb3cgZnVuY3Rpb25zXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwYXJhbWV0ZXIgaXMgZnVuY3Rpb25cbiAgaWYgKG9wdGlvbnMuaWdub3JlRnVuY3Rpb24gJiYgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgb2JqID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFByb3RlY3RzIGFnYWluc3QgYEpTT04uc3RyaW5naWZ5KClgIHJldHVybmluZyBgdW5kZWZpbmVkYCwgYnkgc2VyaWFsaXppbmdcbiAgLy8gdG8gdGhlIGxpdGVyYWwgc3RyaW5nOiBcInVuZGVmaW5lZFwiLlxuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gU3RyaW5nKG9iaik7XG4gIH1cblxuICBsZXQgc3RyOiBzdHJpbmcgPSAnJztcblxuICAvLyBDcmVhdGVzIGEgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLlxuICAvLyBOT1RFOiBOb2RlIDAuMTIgZ29lcyBpbnRvIHNsb3cgbW9kZSB3aXRoIGV4dHJhIEpTT04uc3RyaW5naWZ5KCkgYXJncy5cbiAgaWYgKG9wdGlvbnMuaXNKU09OICYmICFvcHRpb25zLnNwYWNlKSB7XG4gICAgc3RyID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcbiAgfSBlbHNlIHtcbiAgICBzdHIgPSBKU09OLnN0cmluZ2lmeShvYmosIG9wdGlvbnMuaXNKU09OID8gdW5kZWZpbmVkIDogcmVwbGFjZXIsIG9wdGlvbnMuc3BhY2UpO1xuICB9XG5cbiAgLy8gUmVwbGFjZSB1bnNhZmUgSFRNTCBhbmQgaW52YWxpZCBKYXZhU2NyaXB0IGxpbmUgdGVybWluYXRvciBjaGFycyB3aXRoXG4gIC8vIHRoZWlyIHNhZmUgVW5pY29kZSBjaGFyIGNvdW50ZXJwYXJ0LiBUaGlzIF9tdXN0XyBoYXBwZW4gYmVmb3JlIHRoZVxuICAvLyByZWdleHBzIGFuZCBmdW5jdGlvbnMgYXJlIHNlcmlhbGl6ZWQgYW5kIGFkZGVkIGJhY2sgdG8gdGhlIHN0cmluZy5cbiAgaWYgKG9wdGlvbnMudW5zYWZlICE9PSB0cnVlKSB7XG4gICAgc3RyID0gc3RyLnJlcGxhY2UoVU5TQUZFX0NIQVJTX1JFR0VYUCwgZXNjYXBlVW5zYWZlQ2hhcnMpO1xuICB9XG5cbiAgaWYgKGZ1bmN0aW9ucy5sZW5ndGggPT09IDAgJiYgcmVnZXhwcy5sZW5ndGggPT09IDAgJiYgZGF0ZXMubGVuZ3RoID09PSAwICYmIG1hcHMubGVuZ3RoID09PSAwICYmIHNldHMubGVuZ3RoID09PSAwICYmIGFycmF5cy5sZW5ndGggPT09IDAgJiYgdW5kZWZzLmxlbmd0aCA9PT0gMCAmJiBpbmZpbml0aWVzLmxlbmd0aCA9PT0gMCAmJiBiaWdJbnRzLmxlbmd0aCA9PT0gMCAmJiB1cmxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICAvLyBSZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgZnVuY3Rpb24sIHJlZ2V4cCwgZGF0ZSwgbWFwIGFuZCBzZXQgcGxhY2Vob2xkZXJzIGluIHRoZVxuICAvLyBKU09OIHN0cmluZyB3aXRoIHRoZWlyIHN0cmluZyByZXByZXNlbnRhdGlvbnMuIElmIHRoZSBvcmlnaW5hbCB2YWx1ZSBjYW5cbiAgLy8gbm90IGJlIGZvdW5kLCB0aGVuIGB1bmRlZmluZWRgIGlzIHVzZWQuXG4gIHJldHVybiBzdHIucmVwbGFjZShQTEFDRV9IT0xERVJfUkVHRVhQLCBmdW5jdGlvbiAobWF0Y2gsIGJhY2tTbGFzaCwgdHlwZSwgdmFsdWVJbmRleCkge1xuICAgIC8vIFRoZSBwbGFjZWhvbGRlciBtYXkgbm90IGJlIHByZWNlZGVkIGJ5IGEgYmFja3NsYXNoLiBUaGlzIGlzIHRvIHByZXZlbnRcbiAgICAvLyByZXBsYWNpbmcgdGhpbmdzIGxpa2UgYFwiYVxcXCJAX19SLTxVSUQ+LTBfX0BcImAgYW5kIHRodXMgb3V0cHV0dGluZ1xuICAgIC8vIGludmFsaWQgSlMuXG4gICAgaWYgKGJhY2tTbGFzaCkge1xuICAgICAgcmV0dXJuIG1hdGNoO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZSl7XG4gICAgICBjYXNlICdEJzpcbiAgICAgICAgcmV0dXJuIFwibmV3IERhdGUoXFxcIlwiICsgZGF0ZXNbdmFsdWVJbmRleF0udG9JU09TdHJpbmcoKSArIFwiXFxcIilcIlxuICAgICAgY2FzZSAnUic6XG4gICAgICAgIHJldHVybiBcIm5ldyBSZWdFeHAoXCIgKyBzZXJpYWxpemUocmVnZXhwc1t2YWx1ZUluZGV4XS5zb3VyY2UpICsgXCIsIFxcXCJcIiArIHJlZ2V4cHNbdmFsdWVJbmRleF0uZmxhZ3MgKyBcIlxcXCIpXCJcbiAgICAgIGNhc2UgJ00nOlxuICAgICAgICByZXR1cm4gXCJuZXcgTWFwKFwiICsgc2VyaWFsaXplKEFycmF5LmZyb20obWFwc1t2YWx1ZUluZGV4XS5lbnRyaWVzKCkpLCBvcHRpb25zKSArIFwiKVwiXG4gICAgICBjYXNlICdTJzpcbiAgICAgICAgcmV0dXJuIFwibmV3IFNldChcIiArIHNlcmlhbGl6ZShBcnJheS5mcm9tKHNldHNbdmFsdWVJbmRleF0udmFsdWVzKCkpLCBvcHRpb25zKSArIFwiKVwiXG4gICAgICBjYXNlICdBJzpcbiAgICAgICAgcmV0dXJuIFwiQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoXCIgKyBzZXJpYWxpemUoT2JqZWN0LmFzc2lnbih7bGVuZ3RoOiBhcnJheXNbdmFsdWVJbmRleF0ubGVuZ3RofSwgYXJyYXlzW3ZhbHVlSW5kZXhdKSwgb3B0aW9ucykgKyBcIilcIlxuICAgICAgY2FzZSAnVSc6XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJ1xuICAgICAgY2FzZSAnSSc6XG4gICAgICAgIHJldHVybiBpbmZpbml0aWVzW3ZhbHVlSW5kZXhdXG4gICAgICBjYXNlICdCJzpcbiAgICAgICAgcmV0dXJuIFwiQmlnSW50KFxcXCJcIiArIGJpZ0ludHNbdmFsdWVJbmRleF0gKyBcIlxcXCIpXCJcbiAgICAgIGNhc2UgJ0wnOlxuICAgICAgICByZXR1cm4gXCJuZXcgVVJMKFxcXCJcIiArIHVybHNbdmFsdWVJbmRleF0udG9TdHJpbmcoKSArIFwiXFxcIilcIlxuICAgIH1cblxuICAgIGxldCBmbiA9IGZ1bmN0aW9uc1t2YWx1ZUluZGV4XTtcblxuICAgIHJldHVybiBzZXJpYWxpemVGdW5jKGZuKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHNlcmlhbGl6ZVxuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplSmF2YXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL2Z1bmN0aW9ucy9zZXJpYWxpemVKYXZhc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVFQUF1RTtBQUN2RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDMUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQ0FBbUMsR0FBRyxHQUFHLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXZHLE1BQU0scUJBQXFCLEdBQUcsMEJBQTBCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXhDLCtFQUErRTtBQUMvRSx5RUFBeUU7QUFDekUsTUFBTSxhQUFhLEdBQTZCO0lBQzlDLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0NBQ3BCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFDLFVBQWtCO0lBQzNDLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDbEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxX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QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZSBhbiBpbnRlcm5hbCBVSUQgdG8gbWFrZSB0aGUgcmVnZXhwIHBhdHRlcm4gaGFyZGVyIHRvIGd1ZXNzLlxyXG5jb25zdCBVSURfTEVOR1RIID0gMTY7XHJcbmNvbnN0IFVJRCA9IGdlbmVyYXRlVUlEKCk7XHJcbmNvbnN0IFBMQUNFX0hPTERFUl9SRUdFWFAgPSBuZXcgUmVnRXhwKCcoXFxcXFxcXFwpP1wiQF9fKEZ8UnxEfE18U3xBfFV8SXxCfEwpLScgKyBVSUQgKyAnLShcXFxcZCspX19AXCInLCAnZycpO1xyXG5cclxuY29uc3QgSVNfTkFUSVZFX0NPREVfUkVHRVhQID0gL1xce1xccypcXFtuYXRpdmUgY29kZV1cXHMqfS9nO1xyXG5jb25zdCBJU19QVVJFX0ZVTkNUSU9OID0gL2Z1bmN0aW9uLio/XFwoLztcclxuY29uc3QgSVNfQVJST1dfRlVOQ1RJT04gPSAvLio/PT4uKj8vO1xyXG5jb25zdCBVTlNBRkVfQ0hBUlNfUkVHRVhQID0gL1s8PlxcL1xcdTIwMjhcXHUyMDI5XS9nO1xyXG5cclxuY29uc3QgUkVTRVJWRURfU1lNQk9MUyA9IFsnKicsICdhc3luYyddO1xyXG5cclxuLy8gTWFwcGluZyBvZiB1bnNhZmUgSFRNTCBhbmQgaW52YWxpZCBKYXZhU2NyaXB0IGxpbmUgdGVybWluYXRvciBjaGFycyB0byB0aGVpclxyXG4vLyBVbmljb2RlIGNoYXIgY291bnRlcnBhcnRzIHdoaWNoIGFyZSBzYWZlIHRvIHVzZSBpbiBKYXZhU2NyaXB0IHN0cmluZ3MuXHJcbmNvbnN0IEVTQ0FQRURfQ0hBUlM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ICA9IHtcclxuICAnPCc6ICdcXFxcdTAwM0MnLFxyXG4gICc+JzogJ1xcXFx1MDAzRScsXHJcbiAgJy8nOiAnXFxcXHUwMDJGJyxcclxuICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxyXG4gICdcXHUyMDI5JzogJ1xcXFx1MjAyOSdcclxufTtcclxuXHJcbmZ1bmN0aW9uIGVzY2FwZVVuc2FmZUNoYXJzKHVuc2FmZUNoYXI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIChFU0NBUEVEX0NIQVJTLmhhc093blByb3BlcnR5KHVuc2FmZUNoYXIpKSA/IEVTQ0FQRURfQ0hBUlNbdW5zYWZlQ2hhcl0gOiAnJztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVVSUQoKSB7XHJcbiAgbGV0IGJ5dGVzID0gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KFVJRF9MRU5HVEgpKVxyXG4gIGxldCByZXN1bHQgPSAnJztcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IFVJRF9MRU5HVEg7ICsraSkge1xyXG4gICAgcmVzdWx0ICs9IGJ5dGVzW2ldLnRvU3RyaW5nKDE2KTtcclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVsZXRlRnVuY3Rpb25zKG9iajogYW55KSB7XHJcbiAgbGV0IGZ1bmN0aW9uS2V5cyA9IFtdO1xyXG4gIGZvciAobGV0IGtleSBpbiBvYmopIHtcclxuICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBmdW5jdGlvbktleXMucHVzaChrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmN0aW9uS2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgZGVsZXRlIG9ialtmdW5jdGlvbktleXNbaV1dO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2VyaWFsaXplKG9iajogYW55LCBvcHRpb25zOiBhbnkgPSB7fSk6IGFueSB7XHJcbiAgLy8gQmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIGBzcGFjZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudC5cclxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xyXG4gICAgb3B0aW9ucyA9IHtzcGFjZTogb3B0aW9uc307XHJcbiAgfVxyXG5cclxuICBsZXQgZnVuY3Rpb25zOiBGdW5jdGlvbltdID0gW107XHJcbiAgbGV0IHJlZ2V4cHM6IGFueVtdID0gW107XHJcbiAgbGV0IGRhdGVzOiBhbnlbXSA9IFtdO1xyXG4gIGxldCBtYXBzOiBhbnlbXSA9IFtdO1xyXG4gIGxldCBzZXRzOiBhbnlbXSA9IFtdO1xyXG4gIGxldCBhcnJheXM6IGFueVtdID0gW107XHJcbiAgbGV0IHVuZGVmczogYW55W10gPSBbXTtcclxuICBsZXQgaW5maW5pdGllczogYW55W10gPSBbXTtcclxuICBsZXQgYmlnSW50czogYW55W10gPSBbXTtcclxuICBsZXQgdXJsczogYW55W10gPSBbXTtcclxuXHJcbiAgLy8gUmV0dXJucyBwbGFjZWhvbGRlcnMgZm9yIGZ1bmN0aW9ucyBhbmQgcmVnZXhwcyAoaWRlbnRpZmllZCBieSBpbmRleClcclxuICAvLyB3aGljaCBhcmUgbGF0ZXIgcmVwbGFjZWQgYnkgdGhlaXIgc3RyaW5nIHJlcHJlc2VudGF0aW9uLlxyXG4gIGZ1bmN0aW9uIHJlcGxhY2VyKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcblxyXG4gICAgLy8gRm9yIG5lc3RlZCBmdW5jdGlvblxyXG4gICAgaWYgKG9wdGlvbnMuaWdub3JlRnVuY3Rpb24pIHtcclxuICAgICAgZGVsZXRlRnVuY3Rpb25zKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXZhbHVlICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGxldCBvcmlnVmFsdWU6IGFueSA9IHRoaXNba2V5XTtcclxuICAgIGxldCBvcmlnVmFsdWU6IGFueSA9IHZhbHVlO1xyXG4gICAgbGV0IHR5cGUgPSB0eXBlb2Ygb3JpZ1ZhbHVlO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSl7XHJcbiAgICAgIGNhc2UgJ29iamVjdCc6XHJcblxyXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fUi0nICsgVUlEICsgJy0nICsgKHJlZ2V4cHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICB9IGVsc2UgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fRC0nICsgVUlEICsgJy0nICsgKGRhdGVzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBNYXApIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fTS0nICsgVUlEICsgJy0nICsgKG1hcHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICB9IGVsc2UgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIFNldCkge1xyXG4gICAgICAgICAgcmV0dXJuICdAX19TLScgKyBVSUQgKyAnLScgKyAoc2V0cy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICBsZXQgaXNTcGFyc2UgPSBvcmlnVmFsdWUuZmlsdGVyKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWVcclxuICAgICAgICAgIH0pLmxlbmd0aCAhPT0gb3JpZ1ZhbHVlLmxlbmd0aDtcclxuICAgICAgICAgIGlmIChpc1NwYXJzZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJ0BfX0EtJyArIFVJRCArICctJyArIChhcnJheXMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBVUkwpIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fTC0nICsgVUlEICsgJy0nICsgKHVybHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcclxuICAgICAgICByZXR1cm4gJ0BfX0YtJyArIFVJRCArICctJyArIChmdW5jdGlvbnMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcclxuICAgICAgICByZXR1cm4gJ0BfX1UtJyArIFVJRCArICctJyArICh1bmRlZnMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICByZXR1cm4gJ0BfX0ktJyArIFVJRCArICctJyArIChpbmZpbml0aWVzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XHJcbiAgICAgIGNhc2UgJ2JpZ2ludCc6XHJcbiAgICAgICAgcmV0dXJuICdAX19CLScgKyBVSUQgKyAnLScgKyAoYmlnSW50cy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHNlcmlhbGl6ZUZ1bmMoZm46IEZ1bmN0aW9uKSB7XHJcbiAgICBsZXQgc2VyaWFsaXplZEZuID0gZm4udG9TdHJpbmcoKTtcclxuICAgIGlmIChJU19OQVRJVkVfQ09ERV9SRUdFWFAudGVzdChzZXJpYWxpemVkRm4pKSB7XHJcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1NlcmlhbGl6aW5nIG5hdGl2ZSBmdW5jdGlvbjogJyArIGZuLm5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHB1cmUgZnVuY3Rpb25zLCBleGFtcGxlOiB7a2V5OiBmdW5jdGlvbigpIHt9fVxyXG4gICAgaWYgKElTX1BVUkVfRlVOQ1RJT04udGVzdChzZXJpYWxpemVkRm4pKSB7XHJcbiAgICAgIHJldHVybiBzZXJpYWxpemVkRm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYXJyb3cgZnVuY3Rpb25zLCBleGFtcGxlOiBhcmcxID0+IGFyZzErNVxyXG4gICAgaWYgKElTX0FSUk9XX0ZVTkNUSU9OLnRlc3Qoc2VyaWFsaXplZEZuKSkge1xyXG4gICAgICByZXR1cm4gc2VyaWFsaXplZEZuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBhcmdzU3RhcnRzQXQgPSBzZXJpYWxpemVkRm4uaW5kZXhPZignKCcpO1xyXG4gICAgbGV0IGRlZiA9IHNlcmlhbGl6ZWRGbi5zbGljZSgwLCBhcmdzU3RhcnRzQXQpXHJcbiAgICAudHJpbSgpXHJcbiAgICAuc3BsaXQoJyAnKVxyXG4gICAgLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XHJcbiAgICAgIHJldHVybiB2YWwubGVuZ3RoID4gMFxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IG5vblJlc2VydmVkU3ltYm9scyA9IGRlZi5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xyXG4gICAgICByZXR1cm4gUkVTRVJWRURfU1lNQk9MUy5pbmRleE9mKHZhbCkgPT09IC0xXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBlbmhhbmNlZCBsaXRlcmFsIG9iamVjdHMsIGV4YW1wbGU6IHtrZXkoKSB7fX1cclxuICAgIGlmIChub25SZXNlcnZlZFN5bWJvbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gKGRlZi5pbmRleE9mKCdhc3luYycpID4gLTEgPyAnYXN5bmMgJyA6ICcnKSArICdmdW5jdGlvbidcclxuICAgICAgICArIChkZWYuam9pbignJykuaW5kZXhPZignKicpID4gLTEgPyAnKicgOiAnJylcclxuICAgICAgICArIHNlcmlhbGl6ZWRGbi5zbGljZShhcmdzU3RhcnRzQXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGFycm93IGZ1bmN0aW9uc1xyXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcclxuICB9XHJcblxyXG4gIC8vIENoZWNrIGlmIHRoZSBwYXJhbWV0ZXIgaXMgZnVuY3Rpb25cclxuICBpZiAob3B0aW9ucy5pZ25vcmVGdW5jdGlvbiAmJiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgIG9iaiA9IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgLy8gUHJvdGVjdHMgYWdhaW5zdCBgSlNPTi5zdHJpbmdpZnkoKWAgcmV0dXJuaW5nIGB1bmRlZmluZWRgLCBieSBzZXJpYWxpemluZ1xyXG4gIC8vIHRvIHRoZSBsaXRlcmFsIHN0cmluZzogXCJ1bmRlZmluZWRcIi5cclxuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiBTdHJpbmcob2JqKTtcclxuICB9XHJcblxyXG4gIGxldCBzdHI6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvLyBDcmVhdGVzIGEgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLlxyXG4gIC8vIE5PVEU6IE5vZGUgMC4xMiBnb2VzIGludG8gc2xvdyBtb2RlIHdpdGggZXh0cmEgSlNPTi5zdHJpbmdpZnkoKSBhcmdzLlxyXG4gIGlmIChvcHRpb25zLmlzSlNPTiAmJiAhb3B0aW9ucy5zcGFjZSkge1xyXG4gICAgc3RyID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICB9IGVsc2Uge1xyXG4gICAgc3RyID0gSlNPTi5zdHJpbmdpZnkob2JqLCBvcHRpb25zLmlzSlNPTiA/IHVuZGVmaW5lZCA6IHJlcGxhY2VyLCBvcHRpb25zLnNwYWNlKTtcclxuICB9XHJcblxyXG4gIC8vIFJlcGxhY2UgdW5zYWZlIEhUTUwgYW5kIGludmFsaWQgSmF2YVNjcmlwdCBsaW5lIHRlcm1pbmF0b3IgY2hhcnMgd2l0aFxyXG4gIC8vIHRoZWlyIHNhZmUgVW5pY29kZSBjaGFyIGNvdW50ZXJwYXJ0LiBUaGlzIF9tdXN0XyBoYXBwZW4gYmVmb3JlIHRoZVxyXG4gIC8vIHJlZ2V4cHMgYW5kIGZ1bmN0aW9ucyBhcmUgc2VyaWFsaXplZCBhbmQgYWRkZWQgYmFjayB0byB0aGUgc3RyaW5nLlxyXG4gIGlmIChvcHRpb25zLnVuc2FmZSAhPT0gdHJ1ZSkge1xyXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoVU5TQUZFX0NIQVJTX1JFR0VYUCwgZXNjYXBlVW5zYWZlQ2hhcnMpO1xyXG4gIH1cclxuXHJcbiAgaWYgKGZ1bmN0aW9ucy5sZW5ndGggPT09IDAgJiYgcmVnZXhwcy5sZW5ndGggPT09IDAgJiYgZGF0ZXMubGVuZ3RoID09PSAwICYmIG1hcHMubGVuZ3RoID09PSAwICYmIHNldHMubGVuZ3RoID09PSAwICYmIGFycmF5cy5sZW5ndGggPT09IDAgJiYgdW5kZWZzLmxlbmd0aCA9PT0gMCAmJiBpbmZpbml0aWVzLmxlbmd0aCA9PT0gMCAmJiBiaWdJbnRzLmxlbmd0aCA9PT0gMCAmJiB1cmxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG4gIC8vIFJlcGxhY2VzIGFsbCBvY2N1cnJlbmNlcyBvZiBmdW5jdGlvbiwgcmVnZXhwLCBkYXRlLCBtYXAgYW5kIHNldCBwbGFjZWhvbGRlcnMgaW4gdGhlXHJcbiAgLy8gSlNPTiBzdHJpbmcgd2l0aCB0aGVpciBzdHJpbmcgcmVwcmVzZW50YXRpb25zLiBJZiB0aGUgb3JpZ2luYWwgdmFsdWUgY2FuXHJcbiAgLy8gbm90IGJlIGZvdW5kLCB0aGVuIGB1bmRlZmluZWRgIGlzIHVzZWQuXHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKFBMQUNFX0hPTERFUl9SRUdFWFAsIGZ1bmN0aW9uIChtYXRjaCwgYmFja1NsYXNoLCB0eXBlLCB2YWx1ZUluZGV4KSB7XHJcbiAgICAvLyBUaGUgcGxhY2Vob2xkZXIgbWF5IG5vdCBiZSBwcmVjZWRlZCBieSBhIGJhY2tzbGFzaC4gVGhpcyBpcyB0byBwcmV2ZW50XHJcbiAgICAvLyByZXBsYWNpbmcgdGhpbmdzIGxpa2UgYFwiYVxcXCJAX19SLTxVSUQ+LTBfX0BcImAgYW5kIHRodXMgb3V0cHV0dGluZ1xyXG4gICAgLy8gaW52YWxpZCBKUy5cclxuICAgIGlmIChiYWNrU2xhc2gpIHtcclxuICAgICAgcmV0dXJuIG1hdGNoO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodHlwZSl7XHJcbiAgICAgIGNhc2UgJ0QnOlxyXG4gICAgICAgIHJldHVybiBcIm5ldyBEYXRlKFxcXCJcIiArIGRhdGVzW3ZhbHVlSW5kZXhdLnRvSVNPU3RyaW5nKCkgKyBcIlxcXCIpXCJcclxuICAgICAgY2FzZSAnUic6XHJcbiAgICAgICAgcmV0dXJuIFwibmV3IFJlZ0V4cChcIiArIHNlcmlhbGl6ZShyZWdleHBzW3ZhbHVlSW5kZXhdLnNvdXJjZSkgKyBcIiwgXFxcIlwiICsgcmVnZXhwc1t2YWx1ZUluZGV4XS5mbGFncyArIFwiXFxcIilcIlxyXG4gICAgICBjYXNlICdNJzpcclxuICAgICAgICByZXR1cm4gXCJuZXcgTWFwKFwiICsgc2VyaWFsaXplKEFycmF5LmZyb20obWFwc1t2YWx1ZUluZGV4XS5lbnRyaWVzKCkpLCBvcHRpb25zKSArIFwiKVwiXHJcbiAgICAgIGNhc2UgJ1MnOlxyXG4gICAgICAgIHJldHVybiBcIm5ldyBTZXQoXCIgKyBzZXJpYWxpemUoQXJyYXkuZnJvbShzZXRzW3ZhbHVlSW5kZXhdLnZhbHVlcygpKSwgb3B0aW9ucykgKyBcIilcIlxyXG4gICAgICBjYXNlICdBJzpcclxuICAgICAgICByZXR1cm4gXCJBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChcIiArIHNlcmlhbGl6ZShPYmplY3QuYXNzaWduKHtsZW5ndGg6IGFycmF5c1t2YWx1ZUluZGV4XS5sZW5ndGh9LCBhcnJheXNbdmFsdWVJbmRleF0pLCBvcHRpb25zKSArIFwiKVwiXHJcbiAgICAgIGNhc2UgJ1UnOlxyXG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJ1xyXG4gICAgICBjYXNlICdJJzpcclxuICAgICAgICByZXR1cm4gaW5maW5pdGllc1t2YWx1ZUluZGV4XVxyXG4gICAgICBjYXNlICdCJzpcclxuICAgICAgICByZXR1cm4gXCJCaWdJbnQoXFxcIlwiICsgYmlnSW50c1t2YWx1ZUluZGV4XSArIFwiXFxcIilcIlxyXG4gICAgICBjYXNlICdMJzpcclxuICAgICAgICByZXR1cm4gXCJuZXcgVVJMKFxcXCJcIiArIHVybHNbdmFsdWVJbmRleF0udG9TdHJpbmcoKSArIFwiXFxcIilcIlxyXG4gICAgfVxyXG5cclxuICAgIGxldCBmbiA9IGZ1bmN0aW9uc1t2YWx1ZUluZGV4XTtcclxuXHJcbiAgICByZXR1cm4gc2VyaWFsaXplRnVuYyhmbik7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHNlcmlhbGl6ZVxyXG4iXX0=
@@ -6,4 +6,4 @@ export { BXRestMapResult } from './functions/mapResult';
6
6
  export { BXRest, BXRestNavvy, BXRestMap } from './rest';
7
7
  export { Navvy } from './services/navvy';
8
8
  export { Map as BXMap } from './map';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGJ4LXJlc3RcbiAqL1xuZXhwb3J0IHsgQlhfUkVTVF9TRVRUSU5HUyB9IGZyb20gJy4vc2V0dGluZ3MnO1xuZXhwb3J0IHsgQlhSZXN0TWFwUmVzdWx0IH0gZnJvbSAnLi9mdW5jdGlvbnMvbWFwUmVzdWx0J1xuZXhwb3J0IHsgQlhSZXN0LCBCWFJlc3ROYXZ2eSwgQlhSZXN0TWFwIH0gZnJvbSAnLi9yZXN0J1xuZXhwb3J0IHsgTmF2dnkgfSBmcm9tICcuL3NlcnZpY2VzL25hdnZ5J1xuZXhwb3J0IHsgTWFwIGFzIEJYTWFwIH0gZnJvbSAnLi9tYXAnXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYngtcmVzdFxyXG4gKi9cclxuZXhwb3J0IHsgQlhfUkVTVF9TRVRUSU5HUyB9IGZyb20gJy4vc2V0dGluZ3MnO1xyXG5leHBvcnQgeyBCWFJlc3RNYXBSZXN1bHQgfSBmcm9tICcuL2Z1bmN0aW9ucy9tYXBSZXN1bHQnXHJcbmV4cG9ydCB7IEJYUmVzdCwgQlhSZXN0TmF2dnksIEJYUmVzdE1hcCB9IGZyb20gJy4vcmVzdCdcclxuZXhwb3J0IHsgTmF2dnkgfSBmcm9tICcuL3NlcnZpY2VzL25hdnZ5J1xyXG5leHBvcnQgeyBNYXAgYXMgQlhNYXAgfSBmcm9tICcuL21hcCdcclxuIl19
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
25
25
  ]
26
26
  }]
27
27
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYngtcmVzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0L2J4LXJlc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7QUFjMUQsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLFlBUnJCLGFBQWE7WUFDYixlQUFlLGFBR2YsZUFBZTtZQUNmLGFBQWE7K0dBR0osWUFBWSxZQVJyQixhQUFhO1lBQ2IsZUFBZSxFQUdmLGVBQWU7WUFDZixhQUFhOzsyRkFHSixZQUFZO2tCQVp4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbidcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCeFJlc3RNb2R1bGUgeyB9XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYngtcmVzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0L2J4LXJlc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7QUFjMUQsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLFlBUnJCLGFBQWE7WUFDYixlQUFlLGFBR2YsZUFBZTtZQUNmLGFBQWE7K0dBR0osWUFBWSxZQVJyQixhQUFhO1lBQ2IsZUFBZSxFQUdmLGVBQWU7WUFDZixhQUFhOzsyRkFHSixZQUFZO2tCQVp4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJ4UmVzdE1vZHVsZSB7IH1cclxuIl19
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
224
224
  providedIn: 'root'
225
225
  }]
226
226
  }], ctorParameters: function () { return [{ type: i1.HttpBXServices }]; } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUN6RyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUNsRyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFDdkIsTUFBTSwrQkFBK0IsQ0FBQTs7O0FBY3RDLE1BQU0sT0FBTyxlQUFlO0lBMkMxQixZQUNVLElBQW9CO1FBQXBCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBMUM5QixRQUFHLEdBQUc7WUFDSixHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUNsQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUNwQyxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0NBQWdDO2FBQ3hFO1lBQ0QsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7WUFDOUIsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUM7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LENBQUE7SUFDekYsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BeUJFO0lBRUYsR0FBRyxDQUFDLFlBQWlDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzFGLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7SUFDL0IsT0FBTzs7UUFFUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE0QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BdUhHO0lBRUgsU0FBUyxDQUFDLEtBQWdDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hFLENBQUM7OEdBaE9VLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICAkYWRkLCAkYXBwcm92ZSwgJGF0dGFjaCwgJGNvbXBsZXRlLCAkY291bnRlcnMsICRkZWZlciwgJGRlbGVnYXRlLCAkZGVsZXRlLCAkZGlzYXBwcm92ZSwgJGZhdm9yaXRlLCAkZmlsZXMsXG4gICRnZXQsICRnZXRhY2Nlc3MsICRnZXRGaWVsZHMsICRnZXRsaXN0LCAkaGlzdG9yeSwgJGxpc3QsICRwYXVzZSwgJHBsYW5uZXIsICRyZW5ldywgJHJlc3VsdCwgJHN0YXJ0LFxuICAkdGFzaywgJHRhc2tzLCAkdXBkYXRlXG59IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0b2RzJ1xuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcbmltcG9ydCB7IGlCWFJlc3RIdHRwVGFzayB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svdGFzaydcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tBZGQgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2FkZCdcbmltcG9ydCBpQlhSZXN0UGFyYW1UYXNrR2V0IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svZ2V0J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NMaXN0LCBpQlhSZXN0UGFyYW1UYXNrc0xpc3RIdHRwIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9saXN0J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0dldEFjY2VzcywgaUJYUmVzdFRhc2tHZXRBY2Nlc3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2FjY2Vzcy9nZXRhY2Nlc3MnXG5pbXBvcnQgeyBCWFJlc3RUYXNrc1Rhc2tBcHByb3ZlSHR0cCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svYXBwcm92ZSdcbmltcG9ydCB7IEJYUmVzdFRhc2tzVGFza0NvbXBsZXRlSHR0cCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svY29tcGxldGUnXG5pbXBvcnQgeyBCWFJlc3RUYXNrc1Rhc2tEZWZlckh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2RlZmVyJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCWFJlc3RUYXNrc1Rhc2sge1xuXG4gIHVybCA9IHtcbiAgICBhZGQ6IFskdGFza3MsICR0YXNrLCAkYWRkXSwgLy8g0KHQvtC30LTQsNC10YIg0LfQsNC00LDRh9GDXG4gICAgYXBwcm92ZTogWyR0YXNrcywgJHRhc2ssICRhcHByb3ZlXSwgLy8g0J/QvtC30LLQvtC70Y/QtdGCINC/0YDQuNC90Y/RgtGMINC30LDQtNCw0YfRg1xuICAgIGNvbXBsZXRlOiBbJHRhc2tzLCAkdGFzaywgJGNvbXBsZXRlXSwgLy8g0J/QtdGA0LXQstC+0LTQuNGCINC30LDQtNCw0YfRgyDQsiDRgdGC0LDRgtGD0YEgwqvQt9Cw0LLQtdGA0YjQtdC90LDCu1xuICAgIGNvdW50ZXJzOiB7XG4gICAgICBnZXQ6IFskdGFza3MsICR0YXNrLCAkY291bnRlcnMsICRnZXRdLCAvL9Cf0L7Qu9GD0YfQsNC10YIg0YHRh9C10YLRh9C40LrQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y9cbiAgICB9LFxuICAgIGRlZmVyOiBbJHRhc2tzLCAkdGFzaywgJGRlZmVyXSwgLy8g0J/QtdGA0LXQstC+0LTQuNGCINC30LDQtNCw0YfRgyDQsiDRgdGC0LDRgtGD0YEgwqvQvtGC0LvQvtC20LXQvdCwwrtcbiAgICBkZWxlZ2F0ZTogWyR0YXNrcywgJHRhc2ssICRkZWxlZ2F0ZV0sIC8vINCc0LXRgtC+0LQg0LTQu9GPINC00LXQu9C10LPQuNGA0L7QstCw0L3QuNGPINC30LDQtNCw0YfQuFxuICAgIGRlbGV0ZTogWyR0YXNrcywgJHRhc2ssICRkZWxldGVdLCAvLyDQo9C00LDQu9GP0LXRgiDQt9Cw0LTQsNGH0YNcbiAgICBkaXNhcHByb3ZlOiBbJHRhc2tzLCAkdGFzaywgJGRpc2FwcHJvdmVdLCAvLyDQn9C+0LfQstC+0LvRj9C10YIg0L7RgtC60LvQvtC90LjRgtGMINC30LDQtNCw0YfRg1xuICAgIGZhdm9yaXRlOiB7XG4gICAgICBhZGQ6IFskdGFza3MsICR0YXNrLCAkZmF2b3JpdGUsICRhZGRdLCAvLyDQlNC+0LHQsNCy0LvRj9C10YIg0LfQsNC00LDRh9C4INCyIFwi0JjQt9Cx0YDQsNC90L3QvtC1XCJcbiAgICAgIGRlbGV0ZTogWyR0YXNrcywgJHRhc2ssICRmYXZvcml0ZSwgJGRlbGV0ZV0sIC8vINCj0LTQsNC70Y/QtdGCINC30LDQtNCw0YfQuCDQuNC3IFwi0JjQt9Cx0YDQsNC90L3QvtCz0L5cIlxuICAgIH0sXG4gICAgZmlsZXM6IHtcbiAgICAgIGF0dGFjaDogWyR0YXNrcywgJHRhc2ssICRmaWxlcywgJGF0dGFjaF0sIC8vINCf0YDQuNC60YDQtdC/0LvRj9C10YIg0LfQsNCz0YDRg9C20LXQvdC90YvQuSDQvdCwINC00LjRgdC6INGE0LDQudC7INC6INC30LDQtNCw0YfQtVxuICAgIH0sXG4gICAgZ2V0OiBbJHRhc2tzLCAkdGFzaywgJGdldF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC60L7QvdC60YDQtdGC0L3QvtC5INC30LDQtNCw0YfQtVxuICAgIGdldEZpZWxkczogWyR0YXNrcywgJHRhc2ssICRnZXRGaWVsZHNdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQstGB0LUg0LTQvtGB0YLRg9C/0L3Ri9C1INC/0L7Qu9GPXG4gICAgZ2V0YWNjZXNzOiBbJHRhc2tzLCAkdGFzaywgJGdldGFjY2Vzc10sIC8vINCc0LXRgtC+0LQg0LTQu9GPINC/0YDQvtCy0LXRgNC60Lgg0LTQvtGB0YLRg9C/0LAg0Log0LfQsNC00LDRh9C1XG4gICAgaGlzdG9yeToge1xuICAgICAgbGlzdDogWyR0YXNrcywgJHRhc2ssICRoaXN0b3J5LCAkbGlzdF0sIC8vINCf0L7Qu9GD0YfQsNC10YIg0LjRgdGC0L7RgNC40Y4g0LfQsNC00LDRh9C4XG4gICAgfSxcbiAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJGxpc3RdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQvNCw0YHRgdC40LIg0LfQsNC00LDRhywg0LrQsNC20LTQsNGPINC40Lcg0LrQvtGC0L7RgNGL0YUg0YHQvtC00LXRgNC20LjRgiDQvNCw0YHRgdC40LIg0L/QvtC70LXQuVxuICAgIHBhdXNlOiBbJHRhc2tzLCAkdGFzaywgJHBhdXNlXSwgLy8g0J7RgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRi9C/0L7Qu9C90LXQvdC40LUg0LfQsNC00LDRh9C4LCDQv9C10YDQtdCy0L7QtNGPINC10LUg0LIg0YHRgtCw0YLRg9GBIFwi0LbQtNC10YIg0LLRi9C/0L7Qu9C90LXQvdC40Y9cIlxuICAgIHJlbmV3OiBbJHRhc2tzLCAkdGFzaywgJHJlbmV3XSwgLy8g0JLQvtC30L7QsdC90L7QstC70Y/QtdGCINC30LDQtNCw0YfRgyDQv9C+0YHQu9C1INC10LUg0LfQsNCy0LXRgNGI0LXQvdC40Y9cbiAgICBzdGFydDogWyR0YXNrcywgJHRhc2ssICRzdGFydF0sIC8vINCf0LXRgNC10LLQvtC00LjRgiDQt9Cw0LTQsNGH0YMg0LIg0YHRgtCw0YLRg9GBIMKr0LLRi9C/0L7Qu9C90Y/QtdGC0YHRj8K7XG4gICAgc3RhcnR3YXRjaDogWyR0YXNrcywgJHRhc2ssICdzdGFydHdhdGNoJ10sIC8vINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQvdCw0LHQu9GO0LTQsNGC0Ywg0LfQsCDQt9Cw0LTQsNGH0LXQuVxuICAgIHN0b3B3YXRjaDogWyR0YXNrcywgJHRhc2ssICdzdG9wd2F0Y2gnXSwgLy8g0J7RgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0L3QsNCx0LvRjtC00LXQvdC40LUg0LfQsCDQt9Cw0LTQsNGH0LXQuVxuICAgIHVwZGF0ZTogWyR0YXNrcywgJHRhc2ssICR1cGRhdGVdLCAvLyDQntCx0L3QvtCy0LvRj9C10YIg0LfQsNC00LDRh9GDXG4gICAgcmVzdWx0OiB7XG4gICAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJHJlc3VsdCwgJGxpc3RdLCAvLyDQn9GA0L7RgdC80L7RgtGAINGB0L/QuNGB0LrQsCDRgNC10LfRg9C70YzRgtCw0YLQvtCyINC6INC30LDQtNCw0YfQtVxuICAgICAgYWRkRnJvbUNvbW1lbnQ6IFskdGFza3MsICR0YXNrLCAkcmVzdWx0LCAnYWRkRnJvbUNvbW1lbnQnXSwgLy8g0KHQvtC30LTQsNC90LjQtSDRgNC10LfRg9C70YzRgtCw0YLQsCDQt9Cw0LTQsNGH0Lgg0LjQtyDQutC+0LzQvNC10L3RgtCw0YDQuNGPXG4gICAgICBkZWxldGVGcm9tQ29tbWVudDogWyR0YXNrcywgJHRhc2ssICRyZXN1bHQsICdkZWxldGVGcm9tQ29tbWVudCddLCAvLyDQo9C00LDQu9C10L3QuNC1INGA0LXQt9GD0LvRjNGC0LDRgtCwINC30LDQtNCw0YfQuCDQv9C+INC60L7QvNC80LXQvdGC0LDRgNC40Y4g0LjQtyDQutC+0YLQvtGA0L7Qs9C+INC+0L0g0LHRi9C7INGB0L7Qt9C00LDQvVxuICAgIH0sXG4gICAgcGxhbm5lcjoge1xuICAgICAgZ2V0bGlzdDogWyR0YXNrLCAkcGxhbm5lciwgJGdldGxpc3RdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQvNCw0YHRgdC40LIsINGB0L7QtNC10YDQttCw0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0Ysg0LfQsNC00LDRhyDQsiDQv9C70LDQvdC1INC90LAg0LTQtdC90YxcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBCWFNlcnZpY2VzXG4gICkge1xuICB9XG5cbiAgYWRkKHBhcmFtOiB7IGZpZWxkczogaUJYUmVzdFBhcmFtVGFza0FkZCB9KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogaUJYUmVzdEh0dHBUYXNrIH0+KHRoaXMudXJsLmFkZCwgcGFyYW0pXG4gIH1cblxuICBhcHByb3ZlKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8eyB0YXNrOiBCWFJlc3RUYXNrc1Rhc2tBcHByb3ZlSHR0cCB9Pih0aGlzLnVybC5hcHByb3ZlLCB7dGFza0lkOiBpZH0pXG4gIH1cblxuICBjb21wbGV0ZShpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogQlhSZXN0VGFza3NUYXNrQ29tcGxldGVIdHRwIH0+KHRoaXMudXJsLmNvbXBsZXRlLCB7dGFza0lkOiBpZH0pXG4gIH1cblxuICBkZWZlcihpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogQlhSZXN0VGFza3NUYXNrRGVmZXJIdHRwIH0+KHRoaXMudXJsLmRlZmVyLCB7dGFza0lkOiBpZH0pXG4gIH1cblxuICAvKlxuICB1cGRhdGUodGFza0lkOiBudW1iZXIsIHVwZGF0ZUZpZWxkczogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIHRhc2s6IGlCWFJlc3RUYXNrKSB7XG4gICAgbGV0IHNlbmRUYXNrOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgICBsZXQgdGFza1RTOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGFza1xuICAgIGlmICh1cGRhdGVGaWVsZHMubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCB1cGRhdGVGaWVsZCBvZiB1cGRhdGVGaWVsZHMpIHtcbiAgICAgICAgaWYgKHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXSkge1xuICAgICAgICAgIHNlbmRUYXNrW3VwZGF0ZUZpZWxkXSA9IHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoT2JqZWN0LnZhbHVlcyhzZW5kVGFzaykubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICB0aGlzLnVybC51cGRhdGUsXG4gICAgICAgICAge3Rhc2tJZDogdGFza0lkLCBmaWVsZHM6IHNlbmRUYXNrfSxcbiAgICAgICAgICAnZXJyb3IgdG8gdXBkYXRlIHRhc2snKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJylcbiAgICAgICAgY29uc29sZS5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJywgc2VuZFRhc2ssIHRhc2spXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zbmFja0Jhci53YXJuaW5nKCdub3QgaGF2ZSBmaWVsZCBmb3IgdXBkYXRlJylcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICB9XG4gICovXG5cbiAgZ2V0KHJlcXVlc3RBcnJheTogaUJYUmVzdFBhcmFtVGFza0dldCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IGlCWFJlc3RIdHRwVGFzayB8IHVuZGVmaW5lZCB9Pih0aGlzLnVybC5nZXQsIHJlcXVlc3RBcnJheSlcbiAgfVxuXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzTGlzdFxuICAgIC8vID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RQYXJhbVRhc2tzTGlzdEh0dHA+KHRoaXMudXJsLmxpc3QsIHBhcmFtKVxuICB9XG5cbiAgLypcbiAgbGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2tzKSA/IHYudGFza3MgOiBbXSlcbiAgICApXG4gIH1cblxuICBsaXN0QWxsKHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSwgY2FjaGUgPSBmYWxzZSk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICAgIGlmIChjYWNoZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtZXJnZU1hcCh0YXNrcyA9PiB7XG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkcyA9ICh0eXBlb2YgcmVxdWVzdEFycmF5LmZpbHRlci5JRCA9PT0gJ251bWJlcicpID8gW3JlcXVlc3RBcnJheS5maWx0ZXIuSURdIDogcmVxdWVzdEFycmF5LmZpbHRlci5JRFxuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGFza3MuZGF0YS5odHRwLmxpc3QuZmlsdGVyKGkgPT4gKGkuaWQpID8gaWRzLmluY2x1ZGVzKGkuaWQpIDogZmFsc2UpXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbHRlcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICB9XG5cbiAgZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlgpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQudGFza3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMkID0gb2YoaXRlbXMucmVzdWx0LnRhc2tzKVxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gICAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgICB0b3RhbDogKGl0ZW1zLnRvdGFsKSA/IGl0ZW1zLnRvdGFsIDogMCxcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJlcXVlc3RBcnJheS5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zLnJlc3VsdC50YXNrcykgPyBpdGVtcy5yZXN1bHQudGFza3MgOiBbXVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgICAgICAgICAgIHRvdGFsOiAwLFxuICAgICAgICAgICAgbmV4dDogMFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxuICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgIGlmICh2ICYmICF2LmRhdGEuZmllbGRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdi5yZXN1bHQuZmllbGRzfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2Yoe3Jlc3VsdDogY2xvbmU8aUdldEZpZWxkc0Rlc2NyaXB0aW9uPih2LmRhdGEuZmllbGRzKX0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGFueT4+KHRoaXMudXJsLnJlc3VsdC5kZWxldGVGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcbiAgfVxuXG4gIGFkZFJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8aVRhc2tSZXN1bHRIdHRwPj4odGhpcy51cmwucmVzdWx0LmFkZEZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHBbXT4+KHRoaXMudXJsLnJlc3VsdC5saXN0LCB7dGFza0lkOiB0YXNrSWR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHYucmVzdWx0Lm1hcChpID0+IHRoaXMudGFza1Jlc3VsdE1hcC5pVGFza1Jlc3VsdEh0dHBUb2lUYXNrUmVzdWx0KGkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICB9XG5cbiAgZ2V0UGxhbm5lckxpc3QoKSB7c1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPChzdHJpbmcgfCBudW1iZXIpW10+Pih0aGlzLnVybC5wbGFubmVyLmdldGxpc3QpXG4gIH1cbiAgICovXG5cbiAgZ2V0YWNjZXNzKHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrR2V0QWNjZXNzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrR2V0QWNjZXNzPih0aGlzLnVybC5nZXRhY2Nlc3MsIHBhcmFtKVxuICB9XG5cbn1cblxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUN6RyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUNsRyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFDdkIsTUFBTSwrQkFBK0IsQ0FBQTs7O0FBY3RDLE1BQU0sT0FBTyxlQUFlO0lBMkMxQixZQUNVLElBQW9CO1FBQXBCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBMUM5QixRQUFHLEdBQUc7WUFDSixHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUNsQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUNwQyxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0NBQWdDO2FBQ3hFO1lBQ0QsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7WUFDOUIsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUM7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LENBQUE7SUFDMUYsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BeUJFO0lBRUYsR0FBRyxDQUFDLFlBQWlDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzFGLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7SUFDL0IsT0FBTzs7UUFFUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE0QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BdUhHO0lBRUgsU0FBUyxDQUFDLEtBQWdDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hFLENBQUM7OEdBaE9VLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgJGFkZCwgJGFwcHJvdmUsICRhdHRhY2gsICRjb21wbGV0ZSwgJGNvdW50ZXJzLCAkZGVmZXIsICRkZWxlZ2F0ZSwgJGRlbGV0ZSwgJGRpc2FwcHJvdmUsICRmYXZvcml0ZSwgJGZpbGVzLFxyXG4gICRnZXQsICRnZXRhY2Nlc3MsICRnZXRGaWVsZHMsICRnZXRsaXN0LCAkaGlzdG9yeSwgJGxpc3QsICRwYXVzZSwgJHBsYW5uZXIsICRyZW5ldywgJHJlc3VsdCwgJHN0YXJ0LFxyXG4gICR0YXNrLCAkdGFza3MsICR1cGRhdGVcclxufSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldG9kcydcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgaUJYUmVzdEh0dHBUYXNrIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay90YXNrJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrQWRkIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9hZGQnXHJcbmltcG9ydCBpQlhSZXN0UGFyYW1UYXNrR2V0IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svZ2V0J1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc0xpc3QsIGlCWFJlc3RQYXJhbVRhc2tzTGlzdEh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2xpc3QnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MsIGlCWFJlc3RUYXNrR2V0QWNjZXNzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9hY2Nlc3MvZ2V0YWNjZXNzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza3NUYXNrQXBwcm92ZUh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2FwcHJvdmUnXHJcbmltcG9ydCB7IGlCWFJlc3RUYXNrc1Rhc2tDb21wbGV0ZUh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2NvbXBsZXRlJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza3NUYXNrRGVmZXJIdHRwIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9kZWZlcidcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdFRhc2tzVGFzayB7XHJcblxyXG4gIHVybCA9IHtcclxuICAgIGFkZDogWyR0YXNrcywgJHRhc2ssICRhZGRdLCAvLyDQodC+0LfQtNCw0LXRgiDQt9Cw0LTQsNGH0YNcclxuICAgIGFwcHJvdmU6IFskdGFza3MsICR0YXNrLCAkYXBwcm92ZV0sIC8vINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQv9GA0LjQvdGP0YLRjCDQt9Cw0LTQsNGH0YNcclxuICAgIGNvbXBsZXRlOiBbJHRhc2tzLCAkdGFzaywgJGNvbXBsZXRlXSwgLy8g0J/QtdGA0LXQstC+0LTQuNGCINC30LDQtNCw0YfRgyDQsiDRgdGC0LDRgtGD0YEgwqvQt9Cw0LLQtdGA0YjQtdC90LDCu1xyXG4gICAgY291bnRlcnM6IHtcclxuICAgICAgZ2V0OiBbJHRhc2tzLCAkdGFzaywgJGNvdW50ZXJzLCAkZ2V0XSwgLy/Qn9C+0LvRg9GH0LDQtdGCINGB0YfQtdGC0YfQuNC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPXHJcbiAgICB9LFxyXG4gICAgZGVmZXI6IFskdGFza3MsICR0YXNrLCAkZGVmZXJdLCAvLyDQn9C10YDQtdCy0L7QtNC40YIg0LfQsNC00LDRh9GDINCyINGB0YLQsNGC0YPRgSDCq9C+0YLQu9C+0LbQtdC90LDCu1xyXG4gICAgZGVsZWdhdGU6IFskdGFza3MsICR0YXNrLCAkZGVsZWdhdGVdLCAvLyDQnNC10YLQvtC0INC00LvRjyDQtNC10LvQtdCz0LjRgNC+0LLQsNC90LjRjyDQt9Cw0LTQsNGH0LhcclxuICAgIGRlbGV0ZTogWyR0YXNrcywgJHRhc2ssICRkZWxldGVdLCAvLyDQo9C00LDQu9GP0LXRgiDQt9Cw0LTQsNGH0YNcclxuICAgIGRpc2FwcHJvdmU6IFskdGFza3MsICR0YXNrLCAkZGlzYXBwcm92ZV0sIC8vINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQvtGC0LrQu9C+0L3QuNGC0Ywg0LfQsNC00LDRh9GDXHJcbiAgICBmYXZvcml0ZToge1xyXG4gICAgICBhZGQ6IFskdGFza3MsICR0YXNrLCAkZmF2b3JpdGUsICRhZGRdLCAvLyDQlNC+0LHQsNCy0LvRj9C10YIg0LfQsNC00LDRh9C4INCyIFwi0JjQt9Cx0YDQsNC90L3QvtC1XCJcclxuICAgICAgZGVsZXRlOiBbJHRhc2tzLCAkdGFzaywgJGZhdm9yaXRlLCAkZGVsZXRlXSwgLy8g0KPQtNCw0LvRj9C10YIg0LfQsNC00LDRh9C4INC40LcgXCLQmNC30LHRgNCw0L3QvdC+0LPQvlwiXHJcbiAgICB9LFxyXG4gICAgZmlsZXM6IHtcclxuICAgICAgYXR0YWNoOiBbJHRhc2tzLCAkdGFzaywgJGZpbGVzLCAkYXR0YWNoXSwgLy8g0J/RgNC40LrRgNC10L/Qu9GP0LXRgiDQt9Cw0LPRgNGD0LbQtdC90L3Ri9C5INC90LAg0LTQuNGB0Log0YTQsNC50Lsg0Log0LfQsNC00LDRh9C1XHJcbiAgICB9LFxyXG4gICAgZ2V0OiBbJHRhc2tzLCAkdGFzaywgJGdldF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC60L7QvdC60YDQtdGC0L3QvtC5INC30LDQtNCw0YfQtVxyXG4gICAgZ2V0RmllbGRzOiBbJHRhc2tzLCAkdGFzaywgJGdldEZpZWxkc10sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINCy0YHQtSDQtNC+0YHRgtGD0L/QvdGL0LUg0L/QvtC70Y9cclxuICAgIGdldGFjY2VzczogWyR0YXNrcywgJHRhc2ssICRnZXRhY2Nlc3NdLCAvLyDQnNC10YLQvtC0INC00LvRjyDQv9GA0L7QstC10YDQutC4INC00L7RgdGC0YPQv9CwINC6INC30LDQtNCw0YfQtVxyXG4gICAgaGlzdG9yeToge1xyXG4gICAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJGhpc3RvcnksICRsaXN0XSwgLy8g0J/QvtC70YPRh9Cw0LXRgiDQuNGB0YLQvtGA0LjRjiDQt9Cw0LTQsNGH0LhcclxuICAgIH0sXHJcbiAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJGxpc3RdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQvNCw0YHRgdC40LIg0LfQsNC00LDRhywg0LrQsNC20LTQsNGPINC40Lcg0LrQvtGC0L7RgNGL0YUg0YHQvtC00LXRgNC20LjRgiDQvNCw0YHRgdC40LIg0L/QvtC70LXQuVxyXG4gICAgcGF1c2U6IFskdGFza3MsICR0YXNrLCAkcGF1c2VdLCAvLyDQntGB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGL0L/QvtC70L3QtdC90LjQtSDQt9Cw0LTQsNGH0LgsINC/0LXRgNC10LLQvtC00Y8g0LXQtSDQsiDRgdGC0LDRgtGD0YEgXCLQttC00LXRgiDQstGL0L/QvtC70L3QtdC90LjRj1wiXHJcbiAgICByZW5ldzogWyR0YXNrcywgJHRhc2ssICRyZW5ld10sIC8vINCS0L7Qt9C+0LHQvdC+0LLQu9GP0LXRgiDQt9Cw0LTQsNGH0YMg0L/QvtGB0LvQtSDQtdC1INC30LDQstC10YDRiNC10L3QuNGPXHJcbiAgICBzdGFydDogWyR0YXNrcywgJHRhc2ssICRzdGFydF0sIC8vINCf0LXRgNC10LLQvtC00LjRgiDQt9Cw0LTQsNGH0YMg0LIg0YHRgtCw0YLRg9GBIMKr0LLRi9C/0L7Qu9C90Y/QtdGC0YHRj8K7XHJcbiAgICBzdGFydHdhdGNoOiBbJHRhc2tzLCAkdGFzaywgJ3N0YXJ0d2F0Y2gnXSwgLy8g0J/QvtC30LLQvtC70Y/QtdGCINC90LDQsdC70Y7QtNCw0YLRjCDQt9CwINC30LDQtNCw0YfQtdC5XHJcbiAgICBzdG9wd2F0Y2g6IFskdGFza3MsICR0YXNrLCAnc3RvcHdhdGNoJ10sIC8vINCe0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC90LDQsdC70Y7QtNC10L3QuNC1INC30LAg0LfQsNC00LDRh9C10LlcclxuICAgIHVwZGF0ZTogWyR0YXNrcywgJHRhc2ssICR1cGRhdGVdLCAvLyDQntCx0L3QvtCy0LvRj9C10YIg0LfQsNC00LDRh9GDXHJcbiAgICByZXN1bHQ6IHtcclxuICAgICAgbGlzdDogWyR0YXNrcywgJHRhc2ssICRyZXN1bHQsICRsaXN0XSwgLy8g0J/RgNC+0YHQvNC+0YLRgCDRgdC/0LjRgdC60LAg0YDQtdC30YPQu9GM0YLQsNGC0L7QsiDQuiDQt9Cw0LTQsNGH0LVcclxuICAgICAgYWRkRnJvbUNvbW1lbnQ6IFskdGFza3MsICR0YXNrLCAkcmVzdWx0LCAnYWRkRnJvbUNvbW1lbnQnXSwgLy8g0KHQvtC30LTQsNC90LjQtSDRgNC10LfRg9C70YzRgtCw0YLQsCDQt9Cw0LTQsNGH0Lgg0LjQtyDQutC+0LzQvNC10L3RgtCw0YDQuNGPXHJcbiAgICAgIGRlbGV0ZUZyb21Db21tZW50OiBbJHRhc2tzLCAkdGFzaywgJHJlc3VsdCwgJ2RlbGV0ZUZyb21Db21tZW50J10sIC8vINCj0LTQsNC70LXQvdC40LUg0YDQtdC30YPQu9GM0YLQsNGC0LAg0LfQsNC00LDRh9C4INC/0L4g0LrQvtC80LzQtdC90YLQsNGA0LjRjiDQuNC3INC60L7RgtC+0YDQvtCz0L4g0L7QvSDQsdGL0Lsg0YHQvtC30LTQsNC9XHJcbiAgICB9LFxyXG4gICAgcGxhbm5lcjoge1xyXG4gICAgICBnZXRsaXN0OiBbJHRhc2ssICRwbGFubmVyLCAkZ2V0bGlzdF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiwg0YHQvtC00LXRgNC20LDRidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRiyDQt9Cw0LTQsNGHINCyINC/0LvQsNC90LUg0L3QsCDQtNC10L3RjFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBCWFNlcnZpY2VzXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhZGQocGFyYW06IHsgZmllbGRzOiBpQlhSZXN0UGFyYW1UYXNrQWRkIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IGlCWFJlc3RIdHRwVGFzayB9Pih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgYXBwcm92ZShpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8eyB0YXNrOiBpQlhSZXN0VGFza3NUYXNrQXBwcm92ZUh0dHAgfT4odGhpcy51cmwuYXBwcm92ZSwge3Rhc2tJZDogaWR9KVxyXG4gIH1cclxuXHJcbiAgY29tcGxldGUoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogaUJYUmVzdFRhc2tzVGFza0NvbXBsZXRlSHR0cCB9Pih0aGlzLnVybC5jb21wbGV0ZSwge3Rhc2tJZDogaWR9KVxyXG4gIH1cclxuXHJcbiAgZGVmZXIoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogaUJYUmVzdFRhc2tzVGFza0RlZmVySHR0cCB9Pih0aGlzLnVybC5kZWZlciwge3Rhc2tJZDogaWR9KVxyXG4gIH1cclxuXHJcbiAgLypcclxuICB1cGRhdGUodGFza0lkOiBudW1iZXIsIHVwZGF0ZUZpZWxkczogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIHRhc2s6IGlCWFJlc3RUYXNrKSB7XHJcbiAgICBsZXQgc2VuZFRhc2s6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxyXG4gICAgbGV0IHRhc2tUUzogUmVjb3JkPHN0cmluZywgYW55PiA9IHRhc2tcclxuICAgIGlmICh1cGRhdGVGaWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IHVwZGF0ZUZpZWxkIG9mIHVwZGF0ZUZpZWxkcykge1xyXG4gICAgICAgIGlmICh0YXNrVFNbY2FtZWxDYXNlKHVwZGF0ZUZpZWxkKV0pIHtcclxuICAgICAgICAgIHNlbmRUYXNrW3VwZGF0ZUZpZWxkXSA9IHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoT2JqZWN0LnZhbHVlcyhzZW5kVGFzaykubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICAgICAgdGhpcy51cmwudXBkYXRlLFxyXG4gICAgICAgICAge3Rhc2tJZDogdGFza0lkLCBmaWVsZHM6IHNlbmRUYXNrfSxcclxuICAgICAgICAgICdlcnJvciB0byB1cGRhdGUgdGFzaycpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJylcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snLCBzZW5kVGFzaywgdGFzaylcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zbmFja0Jhci53YXJuaW5nKCdub3QgaGF2ZSBmaWVsZCBmb3IgdXBkYXRlJylcclxuICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgfVxyXG4gICovXHJcblxyXG4gIGdldChyZXF1ZXN0QXJyYXk6IGlCWFJlc3RQYXJhbVRhc2tHZXQpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IGlCWFJlc3RIdHRwVGFzayB8IHVuZGVmaW5lZCB9Pih0aGlzLnVybC5nZXQsIHJlcXVlc3RBcnJheSlcclxuICB9XHJcblxyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzTGlzdFxyXG4gICAgLy8gPSB7fVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RQYXJhbVRhc2tzTGlzdEh0dHA+KHRoaXMudXJsLmxpc3QsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcclxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXHJcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbGlzdEFsbChyZXF1ZXN0QXJyYXk6IFJlcXVlc3RBcGlUYXNrTGlzdEJYID0ge30sIGNhY2hlID0gZmFsc2UpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XHJcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcclxuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXHJcbiAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgbWVyZ2VNYXAodGFza3MgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXHJcbiAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHRhc2tzLmRhdGEuaHR0cC5saXN0LmZpbHRlcihpID0+IChpLmlkKSA/IGlkcy5pbmNsdWRlcyhpLmlkKSA6IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zJCA9IG9mKGl0ZW1zLnJlc3VsdC50YXNrcylcclxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgdG90YWw6IChpdGVtcy50b3RhbCkgPyBpdGVtcy50b3RhbCA6IDAsXHJcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICByZXF1ZXN0QXJyYXkuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0LnRhc2tzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtcy5yZXN1bHQudGFza3MpID8gaXRlbXMucmVzdWx0LnRhc2tzIDogW11cclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICBuZXh0OiAwXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxyXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiAhdi5kYXRhLmZpZWxkcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LmZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHYucmVzdWx0LmZpZWxkc31cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcclxuICAgICAgICAgIHJldHVybiBvZih7cmVzdWx0OiBjbG9uZTxpR2V0RmllbGRzRGVzY3JpcHRpb24+KHYuZGF0YS5maWVsZHMpfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8YW55Pj4odGhpcy51cmwucmVzdWx0LmRlbGV0ZUZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxyXG4gIH1cclxuXHJcbiAgYWRkUmVzdWx0RnJvbUNvbW1lbnQoY29tbWVudElEOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cD4+KHRoaXMudXJsLnJlc3VsdC5hZGRGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cFtdPj4odGhpcy51cmwucmVzdWx0Lmxpc3QsIHt0YXNrSWQ6IHRhc2tJZH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2LnJlc3VsdC5tYXAoaSA9PiB0aGlzLnRhc2tSZXN1bHRNYXAuaVRhc2tSZXN1bHRIdHRwVG9pVGFza1Jlc3VsdChpKSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9KSlcclxuICB9XHJcblxyXG4gIGdldFBsYW5uZXJMaXN0KCkge3NcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPChzdHJpbmcgfCBudW1iZXIpW10+Pih0aGlzLnVybC5wbGFubmVyLmdldGxpc3QpXHJcbiAgfVxyXG4gICAqL1xyXG5cclxuICBnZXRhY2Nlc3MocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza0dldEFjY2Vzcz4odGhpcy51cmwuZ2V0YWNjZXNzLCBwYXJhbSlcclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=
@@ -14,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
14
14
  providedIn: 'root'
15
15
  }]
16
16
  }], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }]; } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0L3Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQU0xQyxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNTLElBQXFCO1FBQXJCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRTlCLENBQUM7OEdBTFUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJYUmVzdFRhc2tzVGFzayB9IGZyb20gJy4vdGFza3MvdGFzaydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0VGFza3Mge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YXNrOiBCWFJlc3RUYXNrc1Rhc2ssXG4gICkge1xuICB9XG5cbn1cblxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0L3Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQU0xQyxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNTLElBQXFCO1FBQXJCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRTlCLENBQUM7OEdBTFUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VGFza3NUYXNrIH0gZnJvbSAnLi90YXNrcy90YXNrJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VGFza3Mge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0YXNrOiBCWFJlc3RUYXNrc1Rhc2ssXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
57
57
  providedIn: 'root'
58
58
  }]
59
59
  }], ctorParameters: function () { return [{ type: i1.HttpBXServices }, { type: i2.BXRestUserUserfield }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBSTVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7O0FBUTFDLE1BQU0sT0FBTyxVQUFVO0lBZXJCLFlBQ1UsSUFBb0IsRUFDckIsU0FBOEI7UUFEN0IsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFmdkMsUUFBRyxHQUFHO1lBQ0osS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN2QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDM0IsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDekIsdUNBQXVDO1lBQ3ZDLDRCQUE0QjtZQUM1QixxQkFBcUI7WUFDckIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztTQUMxQixDQUFBO0lBTUQsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUE4QixFQUFFO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBRW5CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUNaLE1BQU0sQ0FDUCxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNwQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDbEUsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLE9BQU8sQ0FBQTtTQUNmO2FBQU07WUFDTCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEtBQUssRUFBRSxDQUNSLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsSUFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ2YsSUFBSSxDQUNMLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9CLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtJQUM3RixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUUsQ0FBQzs4R0E3RFUsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1Vc2VyR2V0IH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci9nZXQnXG5pbXBvcnQgeyBIdHRwQlhTZXJ2aWNlcyB9IGZyb20gJy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xuaW1wb3J0IHsgaUJYUmVzdFVzZXIsIGlCWFJlc3RVc2VySHR0cCwgaUJYUmVzdFVzZXJIdHRwRmllbGQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXG5pbXBvcnQgeyAkZ2V0LCAkc2VhcmNoLCAkdXBkYXRlLCAkdXNlciB9IGZyb20gJy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0b2RzJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1Vc2VyU2VhcmNoIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci9zZWFyY2gnXG5pbXBvcnQgeyBCWFJlc3RVc2VyVXNlcmZpZWxkIH0gZnJvbSAnLi91c2VyL3VzZXJmaWVsZCdcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0VXNlciB7XG5cbiAgdXJsID0ge1xuICAgIGFkbWluOiBbJHVzZXIsICdhZG1pbiddLFxuICAgIGdldDogWyR1c2VyLCAkZ2V0XSxcbiAgICBjdXJyZW50OiBbJHVzZXIsICdjdXJyZW50J10sXG4gICAgdXBkYXRlOiBbJHVzZXIsICR1cGRhdGVdLFxuICAgIHNlYXJjaDogWyR1c2VyLCAkc2VhcmNoXSxcbiAgICBhY2Nlc3M6IFskdXNlciwgJ2FjY2VzcyddLCAvLyBVMSAtINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRgSBpZCA9MVxuICAgIC8vIEFVIC0g0LLRgdC1INCw0LLRgtC+0YDQuNC30L7QstCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4XG4gICAgLy8gRDEgLSDQv9C+0LTRgNCw0LfQtNC10LvQtdC90LjQtSDRgSBpZD0xXG4gICAgLy8gRzEgLSDQs9GA0YPQv9C/0LAg0YEgaWQ9MVxuICAgIGZpZWxkczogWyR1c2VyLCAnZmllbGRzJ10sXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBCWFNlcnZpY2VzLFxuICAgIHB1YmxpYyB1c2VyZmllbGQ6IEJYUmVzdFVzZXJVc2VyZmllbGRcbiAgKSB7XG4gIH1cblxuICBhZG1pbigpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxib29sZWFuPih0aGlzLnVybC5hZG1pbilcbiAgfVxuXG4gIGdldChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT5cbiAgICAoXG4gICAgICB0aGlzLnVybC5nZXQsXG4gICAgICBwYXJhbXNcbiAgICApXG4gIH1cblxuICBjdXJyZW50KHVwZGF0ZSA9IGZhbHNlKSB7XG4gICAgbGV0IHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0PGlCWFJlc3RVc2VySHR0cD4odGhpcy51cmwuY3VycmVudCwge30pXG4gICAgaWYgKHVwZGF0ZSkge1xuICAgICAgcmV0dXJuIHJlcXVlc3RcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlcXVlc3QucGlwZShcbiAgICAgICAgc2hhcmUoKVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh1c2VyOiBQYXJ0aWFsPGlCWFJlc3RVc2VyPikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT4oXG4gICAgICB0aGlzLnVybC51cGRhdGUsXG4gICAgICB1c2VyXG4gICAgKVxuICB9XG5cbiAgc2VhcmNoKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlclNlYXJjaCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGlCWFJlc3RVc2VySHR0cFtdPih0aGlzLnVybC5zZWFyY2gsIHBhcmFtcylcbiAgfVxuXG4gIGFjY2VzcyhhY2Nlc3M6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUJYUmVzdEFuc3dlcjxib29sZWFuPiB8IHVuZGVmaW5lZD4odGhpcy51cmwuYWNjZXNzLCB7QUNDRVNTOiBhY2Nlc3N9KVxuICB9XG5cbiAgZmllbGRzKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGlCWFJlc3RBbnN3ZXI8aUJYUmVzdFVzZXJIdHRwRmllbGQ+Pih0aGlzLnVybC5maWVsZHMpXG4gIH1cbn1cblxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBSTVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7O0FBUTFDLE1BQU0sT0FBTyxVQUFVO0lBZXJCLFlBQ1UsSUFBb0IsRUFDckIsU0FBOEI7UUFEN0IsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFmdkMsUUFBRyxHQUFHO1lBQ0osS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN2QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDM0IsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDekIsdUNBQXVDO1lBQ3ZDLDRCQUE0QjtZQUM1QixxQkFBcUI7WUFDckIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztTQUMxQixDQUFBO0lBTUQsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUE4QixFQUFFO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBRW5CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUNaLE1BQU0sQ0FDUCxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNwQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDbEUsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLE9BQU8sQ0FBQTtTQUNmO2FBQU07WUFDTCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEtBQUssRUFBRSxDQUNSLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsSUFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ2YsSUFBSSxDQUNMLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9CLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtJQUM3RixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUUsQ0FBQzs4R0E3RFUsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJHZXQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL2dldCdcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgaUJYUmVzdFVzZXIsIGlCWFJlc3RVc2VySHR0cCwgaUJYUmVzdFVzZXJIdHRwRmllbGQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXHJcbmltcG9ydCB7ICRnZXQsICRzZWFyY2gsICR1cGRhdGUsICR1c2VyIH0gZnJvbSAnLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRvZHMnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2ggfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3NlYXJjaCdcclxuaW1wb3J0IHsgQlhSZXN0VXNlclVzZXJmaWVsZCB9IGZyb20gJy4vdXNlci91c2VyZmllbGQnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3RVc2VyIHtcclxuXHJcbiAgdXJsID0ge1xyXG4gICAgYWRtaW46IFskdXNlciwgJ2FkbWluJ10sXHJcbiAgICBnZXQ6IFskdXNlciwgJGdldF0sXHJcbiAgICBjdXJyZW50OiBbJHVzZXIsICdjdXJyZW50J10sXHJcbiAgICB1cGRhdGU6IFskdXNlciwgJHVwZGF0ZV0sXHJcbiAgICBzZWFyY2g6IFskdXNlciwgJHNlYXJjaF0sXHJcbiAgICBhY2Nlc3M6IFskdXNlciwgJ2FjY2VzcyddLCAvLyBVMSAtINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRgSBpZCA9MVxyXG4gICAgLy8gQVUgLSDQstGB0LUg0LDQstGC0L7RgNC40LfQvtCy0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LhcclxuICAgIC8vIEQxIC0g0L/QvtC00YDQsNC30LTQtdC70LXQvdC40LUg0YEgaWQ9MVxyXG4gICAgLy8gRzEgLSDQs9GA0YPQv9C/0LAg0YEgaWQ9MVxyXG4gICAgZmllbGRzOiBbJHVzZXIsICdmaWVsZHMnXSxcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQlhTZXJ2aWNlcyxcclxuICAgIHB1YmxpYyB1c2VyZmllbGQ6IEJYUmVzdFVzZXJVc2VyZmllbGRcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFkbWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Ym9vbGVhbj4odGhpcy51cmwuYWRtaW4pXHJcbiAgfVxyXG5cclxuICBnZXQocGFyYW1zOiBpQlhSZXN0UGFyYW1Vc2VyR2V0ID0ge30pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT5cclxuICAgIChcclxuICAgICAgdGhpcy51cmwuZ2V0LFxyXG4gICAgICBwYXJhbXNcclxuICAgIClcclxuICB9XHJcblxyXG4gIGN1cnJlbnQodXBkYXRlID0gZmFsc2UpIHtcclxuICAgIGxldCByZXF1ZXN0ID0gdGhpcy5odHRwLmdldDxpQlhSZXN0VXNlckh0dHA+KHRoaXMudXJsLmN1cnJlbnQsIHt9KVxyXG4gICAgaWYgKHVwZGF0ZSkge1xyXG4gICAgICByZXR1cm4gcmVxdWVzdFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHJlcXVlc3QucGlwZShcclxuICAgICAgICBzaGFyZSgpXHJcbiAgICAgIClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZSh1c2VyOiBQYXJ0aWFsPGlCWFJlc3RVc2VyPikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VySHR0cFtdPihcclxuICAgICAgdGhpcy51cmwudXBkYXRlLFxyXG4gICAgICB1c2VyXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBzZWFyY2gocGFyYW1zOiBpQlhSZXN0UGFyYW1Vc2VyU2VhcmNoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpQlhSZXN0VXNlckh0dHBbXT4odGhpcy51cmwuc2VhcmNoLCBwYXJhbXMpXHJcbiAgfVxyXG5cclxuICBhY2Nlc3MoYWNjZXNzOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUJYUmVzdEFuc3dlcjxib29sZWFuPiB8IHVuZGVmaW5lZD4odGhpcy51cmwuYWNjZXNzLCB7QUNDRVNTOiBhY2Nlc3N9KVxyXG4gIH1cclxuXHJcbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUJYUmVzdEFuc3dlcjxpQlhSZXN0VXNlckh0dHBGaWVsZD4+KHRoaXMudXJsLmZpZWxkcylcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
216
216
  providedIn: 'root'
217
217
  }]
218
218
  }], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }, { type: i2.BXRestMapTasksTask }]; } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7OztBQUs1QyxpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixJQUFJO0FBTUosTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFDVSxlQUFnQztJQUN4QyxxQ0FBcUM7SUFDckMsZ0RBQWdEO0lBQ3hDLGtCQUFzQztRQUh0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQW5CaEQsZ0JBQWdCO1FBQ2hCLCtDQUErQztRQUUvQyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUMzRixVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVU7Z0JBQ2pHLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYTtnQkFDNUcsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsb0JBQW9CO2dCQUM5RyxNQUFNLEVBQUUscUJBQXFCO2FBQzlCO1NBQ0YsQ0FBQTtRQWFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNyRSxnREFBZ0Q7UUFDaEQsd0JBQXdCO1FBQ3hCLGVBQWU7UUFDZixhQUFhO1FBQ2IsTUFBTTtJQUNSLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBc0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtRQUNELG1GQUFtRjtRQUNuRixlQUFlO1FBQ2YsOENBQThDO1FBQzlDLGdDQUFnQztRQUNoQyxlQUFlO1FBQ2YsY0FBYztRQUNkLHVFQUF1RTtRQUN2RSxlQUFlO1FBQ2YsVUFBVTtRQUNWLHlCQUF5QjtRQUN6QixRQUFRO1FBQ1IsT0FBTztJQUNULENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXlCRTtJQUVGLEdBQUcsQ0FBQyxLQUEwQjtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtJQUNILENBQUM7SUFHRCxJQUFJLENBQUMsUUFBK0IsRUFBRTtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQ3pCLEtBQUssRUFDTCxrQ0FBa0MsRUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDN0IsQ0FBQTtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1SEc7SUFFSCxTQUFTLENBQUMsS0FBZ0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQzlCLEtBQUssRUFDTCxzREFBc0QsRUFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FDbEMsQ0FBQTtJQUNILENBQUM7OEdBMU9VLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJYUmVzdFRhc2tzVGFzayB9IGZyb20gJy4uLy4uL3JlcXVlc3QvdGFza3MvdGFzaydcbmltcG9ydCB7IGlCWFJlc3RUYXNrRmllbGRzTmFtZSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svYmFzZS9maWVsZHNOYW1lJ1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0FkZCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svYWRkJ1xuaW1wb3J0IGlCWFJlc3RQYXJhbVRhc2tHZXQgZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9nZXQnXG5pbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NMaXN0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9saXN0J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0dldEFjY2VzcyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svYWNjZXNzL2dldGFjY2VzcydcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tzVGFzayB9IGZyb20gJy4uLy4uL21hcC90YXNrcy90YXNrJ1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIFRpbWVQcm9jZXNzIHtcbi8vICAgdG90YWw6IG51bWJlcixcbi8vICAgbmV4dDogbnVtYmVyXG4vLyB9XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrc1Rhc2sge1xuXG4gIC8vIHBhZ2VTaXplID0gNTBcbiAgLy8gbm93TG9hZCQgPSBuZXcgUmVwbGF5U3ViamVjdDxUaW1lUHJvY2Vzcz4oMSlcblxuICBkZWY6IHsgc2VsZWN0OiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSB9ID0ge1xuICAgIHNlbGVjdDogWydJRCcsICdQQVJFTlRfSUQnLCAnVElUTEUnLCAnREVTQ1JJUFRJT04nLCAnTUFSSycsICdQUklPUklUWScsICdTVEFUVVMnLCAnTVVMVElUQVNLJyxcbiAgICAgICdHUk9VUF9JRCcsICdTVEFHRV9JRCcsICdDUkVBVEVEX0JZJywgJ0NSRUFURURfREFURScsICdSRVNQT05TSUJMRV9JRCcsICdBQ0NPTVBMSUNFUycsICdBVURJVE9SUycsXG4gICAgICAnQ0hBTkdFRF9CWScsICdDSEFOR0VEX0RBVEUnLCAnU1RBVFVTX0NIQU5HRURfREFURScsICdDTE9TRURfQlknLCAnQ0xPU0VEX0RBVEUnLCAnREFURV9TVEFSVCcsICdWSUVXRURfREFURScsXG4gICAgICAnREVBRExJTkUnLCAnU1RBUlRfREFURV9QTEFOJywgJ0VORF9EQVRFX1BMQU4nLCAnRk9SS0VEX0JZX1RFTVBMQVRFX0lEJywgJ1RJTUVfRVNUSU1BVEUnLCAnVElNRV9TUEVOVF9JTl9MT0dTJyxcbiAgICAgICdUQUdTJywgJ0FMTE9XX1RJTUVfVFJBQ0tJTkcnXG4gICAgXVxuICB9XG5cbiAgLy8gc3RvcmVUYXNrJDogT2JzZXJ2YWJsZTxpU3RvcmVUYXNrPlxuICBOYXZ2eTogTmF2dnk8QlhSZXN0VGFza3NUYXNrLCBCWFJlc3RNYXBUYXNrc1Rhc2s+XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBCWFJlc3RUYXNrc1Rhc2s6IEJYUmVzdFRhc2tzVGFzayxcbiAgICAvLyBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgLy8gIHByaXZhdGUgc3RvcmU6IFN0b3JlPHsgdGFza3M6IElTdG9yZVRhc2sgfT4sXG4gICAgcHJpdmF0ZSBCWFJlc3RNYXBUYXNrc1Rhc2s6IEJYUmVzdE1hcFRhc2tzVGFzayxcblxuICAgIC8vIHByaXZhdGUgdGFza1Jlc3VsdE1hcDogQml0cml4QXBpVGFza1Jlc3VsdE1hcFNlcnZpY2VzXG4gICkge1xuICAgIHRoaXMuTmF2dnkgPSBuZXcgTmF2dnkodGhpcy5CWFJlc3RUYXNrc1Rhc2ssIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrKVxuICAgIC8vICB0aGlzLnN0b3JlVGFzayQgPSB0aGlzLnN0b3JlLnNlbGVjdCgndGFza3MnKVxuICAgIC8vICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgIC8vICAgIHRvdGFsOiAwLFxuICAgIC8vICAgIG5leHQ6IDBcbiAgICAvLyAgfSlcbiAgfVxuXG4gIGFkZChwYXJhbTogeyBmaWVsZHM6IGlCWFJlc3RQYXJhbVRhc2tBZGQgfSkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcoXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5hZGQsXG4gICAgICBwYXJhbSxcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDJyxcbiAgICAgIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrLmFkZFxuICAgIClcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8eyB0YXNrOiBUYXNrQlhIdHRwIH0+KHRoaXMudXJsLmFkZCwge2ZpZWxkczogcGFyYW19KS5waXBlKFxuICAgIC8vICAgbWFwKHYgPT4ge1xuICAgIC8vICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LnRhc2spIHtcbiAgICAvLyAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgIC8vICAgICAgICAgICB2LFxuICAgIC8vICAgICAgICAgICB7XG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0OiB0aGlzLnRhc2tCWE1hcC5UYXNrQlhIdHRwVG9UYXNrQlgodi5yZXN1bHQudGFzaylcbiAgICAvLyAgICAgICAgICAgfSlcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIC8vICAgICB9XG4gICAgLy8gICApKVxuICB9XG5cbiAgLypcbiAgdXBkYXRlKHRhc2tJZDogbnVtYmVyLCB1cGRhdGVGaWVsZHM6IGlCWFJlc3RUYXNrRmllbGRzTmFtZVtdLCB0YXNrOiBpQlhSZXN0VGFzaykge1xuICAgIGxldCBzZW5kVGFzazogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XG4gICAgbGV0IHRhc2tUUzogUmVjb3JkPHN0cmluZywgYW55PiA9IHRhc2tcbiAgICBpZiAodXBkYXRlRmllbGRzLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgdXBkYXRlRmllbGQgb2YgdXBkYXRlRmllbGRzKSB7XG4gICAgICAgIGlmICh0YXNrVFNbY2FtZWxDYXNlKHVwZGF0ZUZpZWxkKV0pIHtcbiAgICAgICAgICBzZW5kVGFza1t1cGRhdGVGaWVsZF0gPSB0YXNrVFNbY2FtZWxDYXNlKHVwZGF0ZUZpZWxkKV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC52YWx1ZXMoc2VuZFRhc2spLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICAgICAgdGhpcy51cmwudXBkYXRlLFxuICAgICAgICAgIHt0YXNrSWQ6IHRhc2tJZCwgZmllbGRzOiBzZW5kVGFza30sXG4gICAgICAgICAgJ2Vycm9yIHRvIHVwZGF0ZSB0YXNrJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ25vdCB2YWxpZCBzZW5kIGRhdGEgdGFzaycpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ25vdCB2YWxpZCBzZW5kIGRhdGEgdGFzaycsIHNlbmRUYXNrLCB0YXNrKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc25hY2tCYXIud2FybmluZygnbm90IGhhdmUgZmllbGQgZm9yIHVwZGF0ZScpXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgfVxuICAqL1xuXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldCkge1xuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyhcbiAgICAgIHRoaXMuQlhSZXN0VGFza3NUYXNrLmdldCxcbiAgICAgIHBhcmFtLFxuICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQt9Cw0LTQsNGH0YMnLFxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2suZ2V0XG4gICAgKVxuICB9XG5cblxuICBsaXN0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrc0xpc3QgPSB7fSkge1xuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuUGFnTmF2VGFza3MoXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5saXN0LFxuICAgICAgcGFyYW0sXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINGB0L/QuNGB0L7QuiDQt9Cw0LTQsNGHJyxcbiAgICAgIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrLmxpc3RcbiAgICApXG4gIH1cblxuICAvKlxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtYXAodiA9PiB0aGlzLmh0dHAubWFwUmVzdWx0KHYpKSxcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxuICAgIClcbiAgfVxuXG4gIGxpc3RBbGwocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9LCBjYWNoZSA9IGZhbHNlKTogT2JzZXJ2YWJsZTxUYXNrQlhbXT4ge1xuICAgIGlmICghcmVxdWVzdEFycmF5LnNlbGVjdCkge1xuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxuICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlVGFzayQucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIG1lcmdlTWFwKHRhc2tzID0+IHtcbiAgICAgICAgICAgIGlmICh0YXNrcyAmJiB0YXNrcy5kYXRhLmh0dHAubGlzdCAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyICYmIHJlcXVlc3RBcnJheS5maWx0ZXIuSUQpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXG4gICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB0YXNrcy5kYXRhLmh0dHAubGlzdC5maWx0ZXIoaSA9PiAoaS5pZCkgPyBpZHMuaW5jbHVkZXMoaS5pZCkgOiBmYWxzZSlcbiAgICAgICAgICAgICAgaWYgKGZpbHRlci5sZW5ndGggPT09IGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXG4gIH1cblxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcbiAgICAgIG1lcmdlTWFwKChpdGVtczogQW5zd2VyQXBpVGFza0JYIHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZUlucHV0PGFueT4gfCBPYnNlcnZhYmxlPEFuc3dlckFwaVRhc2tCWFtdPiA9PiB7XG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBpdGVtcyQgPSBvZihpdGVtcy5yZXN1bHQudGFza3MpXG4gICAgICAgICAgaWYgKGl0ZW1zLm5leHQpIHtcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XG4gICAgICAgICAgICAgIHRvdGFsOiAoaXRlbXMudG90YWwpID8gaXRlbXMudG90YWwgOiAwLFxuICAgICAgICAgICAgICBuZXh0OiBpdGVtcy5uZXh0XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmVxdWVzdEFycmF5LnN0YXJ0ID0gaXRlbXMubmV4dFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSkucGlwZShcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2RW5kICYmIGl0ZW1zLnJlc3VsdC50YXNrcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5pdGVtcy5yZXN1bHQudGFza3MsIC4uLnZFbmRdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAoaXRlbXMucmVzdWx0LnRhc2tzKSA/IGl0ZW1zLnJlc3VsdC50YXNrcyA6IFtdXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgdG90YWw6IDAsXG4gICAgICAgICAgICBuZXh0OiAwXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm4gaXRlbXMkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldEZpZWxkcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgaWYgKHYgJiYgIXYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDx7IGZpZWxkczogaUdldEZpZWxkc0Rlc2NyaXB0aW9uIH0+Pih0aGlzLnVybC5nZXRGaWVsZHMpLnBpcGUoXG4gICAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlRmllbGRzKHYucmVzdWx0KSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LmZpZWxkcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB2LnJlc3VsdC5maWVsZHN9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBpZiAodi5kYXRhLmZpZWxkcykge1xuICAgICAgICAgIHJldHVybiBvZih7cmVzdWx0OiBjbG9uZTxpR2V0RmllbGRzRGVzY3JpcHRpb24+KHYuZGF0YS5maWVsZHMpfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGRlbGV0ZVJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8YW55Pj4odGhpcy51cmwucmVzdWx0LmRlbGV0ZUZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICB9XG5cbiAgYWRkUmVzdWx0RnJvbUNvbW1lbnQoY29tbWVudElEOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHA+Pih0aGlzLnVybC5yZXN1bHQuYWRkRnJvbUNvbW1lbnQsIHtjb21tZW50SWQ6IGNvbW1lbnRJRH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tSZXN1bHRNYXAuaVRhc2tSZXN1bHRIdHRwVG9pVGFza1Jlc3VsdCh2LnJlc3VsdClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9KSlcbiAgfVxuXG4gIGdldFJlc3VsTGlzdCh0YXNrSWQ6IG51bWJlcik6IE9ic2VydmFibGU8aVRhc2tSZXN1bHRbXSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cFtdPj4odGhpcy51cmwucmVzdWx0Lmxpc3QsIHt0YXNrSWQ6IHRhc2tJZH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gdi5yZXN1bHQubWFwKGkgPT4gdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQoaSkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRQbGFubmVyTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDwoc3RyaW5nIHwgbnVtYmVyKVtdPj4odGhpcy51cmwucGxhbm5lci5nZXRsaXN0KVxuICB9XG4gICAqL1xuXG4gIGdldGFjY2VzcyhwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldEFjY2Vzcykge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcoXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5nZXRhY2Nlc3MsXG4gICAgICBwYXJhbSxcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/RgNCw0LLQsCDQvdCwINGD0LrQsNC30LDQvdC90YvRhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuScsXG4gICAgICB0aGlzLkJYUmVzdE1hcFRhc2tzVGFzay5nZXRhY2Nlc3NcbiAgICApXG4gIH1cblxufVxuIl19
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7OztBQUs1QyxpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixJQUFJO0FBTUosTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFDVSxlQUFnQztJQUN4QyxxQ0FBcUM7SUFDckMsZ0RBQWdEO0lBQ3hDLGtCQUFzQztRQUh0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQW5CaEQsZ0JBQWdCO1FBQ2hCLCtDQUErQztRQUUvQyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUMzRixVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVU7Z0JBQ2pHLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYTtnQkFDNUcsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsb0JBQW9CO2dCQUM5RyxNQUFNLEVBQUUscUJBQXFCO2FBQzlCO1NBQ0YsQ0FBQTtRQWFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNyRSxnREFBZ0Q7UUFDaEQsd0JBQXdCO1FBQ3hCLGVBQWU7UUFDZixhQUFhO1FBQ2IsTUFBTTtJQUNSLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBc0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtRQUNELG1GQUFtRjtRQUNuRixlQUFlO1FBQ2YsOENBQThDO1FBQzlDLGdDQUFnQztRQUNoQyxlQUFlO1FBQ2YsY0FBYztRQUNkLHVFQUF1RTtRQUN2RSxlQUFlO1FBQ2YsVUFBVTtRQUNWLHlCQUF5QjtRQUN6QixRQUFRO1FBQ1IsT0FBTztJQUNULENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXlCRTtJQUVGLEdBQUcsQ0FBQyxLQUEwQjtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtJQUNILENBQUM7SUFHRCxJQUFJLENBQUMsUUFBK0IsRUFBRTtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQ3pCLEtBQUssRUFDTCxrQ0FBa0MsRUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDN0IsQ0FBQTtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1SEc7SUFFSCxTQUFTLENBQUMsS0FBZ0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQzlCLEtBQUssRUFDTCxzREFBc0QsRUFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FDbEMsQ0FBQTtJQUNILENBQUM7OEdBMU9VLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VGFza3NUYXNrIH0gZnJvbSAnLi4vLi4vcmVxdWVzdC90YXNrcy90YXNrJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza0ZpZWxkc05hbWUgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2Jhc2UvZmllbGRzTmFtZSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0FkZCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svYWRkJ1xyXG5pbXBvcnQgaUJYUmVzdFBhcmFtVGFza0dldCBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2dldCdcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NMaXN0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9saXN0J1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrR2V0QWNjZXNzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9hY2Nlc3MvZ2V0YWNjZXNzJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBUYXNrc1Rhc2sgfSBmcm9tICcuLi8uLi9tYXAvdGFza3MvdGFzaydcclxuXHJcbi8vIGV4cG9ydCBpbnRlcmZhY2UgVGltZVByb2Nlc3Mge1xyXG4vLyAgIHRvdGFsOiBudW1iZXIsXHJcbi8vICAgbmV4dDogbnVtYmVyXHJcbi8vIH1cclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVRhc2tzVGFzayB7XHJcblxyXG4gIC8vIHBhZ2VTaXplID0gNTBcclxuICAvLyBub3dMb2FkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRpbWVQcm9jZXNzPigxKVxyXG5cclxuICBkZWY6IHsgc2VsZWN0OiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSB9ID0ge1xyXG4gICAgc2VsZWN0OiBbJ0lEJywgJ1BBUkVOVF9JRCcsICdUSVRMRScsICdERVNDUklQVElPTicsICdNQVJLJywgJ1BSSU9SSVRZJywgJ1NUQVRVUycsICdNVUxUSVRBU0snLFxyXG4gICAgICAnR1JPVVBfSUQnLCAnU1RBR0VfSUQnLCAnQ1JFQVRFRF9CWScsICdDUkVBVEVEX0RBVEUnLCAnUkVTUE9OU0lCTEVfSUQnLCAnQUNDT01QTElDRVMnLCAnQVVESVRPUlMnLFxyXG4gICAgICAnQ0hBTkdFRF9CWScsICdDSEFOR0VEX0RBVEUnLCAnU1RBVFVTX0NIQU5HRURfREFURScsICdDTE9TRURfQlknLCAnQ0xPU0VEX0RBVEUnLCAnREFURV9TVEFSVCcsICdWSUVXRURfREFURScsXHJcbiAgICAgICdERUFETElORScsICdTVEFSVF9EQVRFX1BMQU4nLCAnRU5EX0RBVEVfUExBTicsICdGT1JLRURfQllfVEVNUExBVEVfSUQnLCAnVElNRV9FU1RJTUFURScsICdUSU1FX1NQRU5UX0lOX0xPR1MnLFxyXG4gICAgICAnVEFHUycsICdBTExPV19USU1FX1RSQUNLSU5HJ1xyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgLy8gc3RvcmVUYXNrJDogT2JzZXJ2YWJsZTxpU3RvcmVUYXNrPlxyXG4gIE5hdnZ5OiBOYXZ2eTxCWFJlc3RUYXNrc1Rhc2ssIEJYUmVzdE1hcFRhc2tzVGFzaz5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEJYUmVzdFRhc2tzVGFzazogQlhSZXN0VGFza3NUYXNrLFxyXG4gICAgLy8gcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgLy8gIHByaXZhdGUgc3RvcmU6IFN0b3JlPHsgdGFza3M6IElTdG9yZVRhc2sgfT4sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcFRhc2tzVGFzazogQlhSZXN0TWFwVGFza3NUYXNrLFxyXG5cclxuICAgIC8vIHByaXZhdGUgdGFza1Jlc3VsdE1hcDogQml0cml4QXBpVGFza1Jlc3VsdE1hcFNlcnZpY2VzXHJcbiAgKSB7XHJcbiAgICB0aGlzLk5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0VGFza3NUYXNrLCB0aGlzLkJYUmVzdE1hcFRhc2tzVGFzaylcclxuICAgIC8vICB0aGlzLnN0b3JlVGFzayQgPSB0aGlzLnN0b3JlLnNlbGVjdCgndGFza3MnKVxyXG4gICAgLy8gIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAvLyAgICB0b3RhbDogMCxcclxuICAgIC8vICAgIG5leHQ6IDBcclxuICAgIC8vICB9KVxyXG4gIH1cclxuXHJcbiAgYWRkKHBhcmFtOiB7IGZpZWxkczogaUJYUmVzdFBhcmFtVGFza0FkZCB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGVXaXRoQXJnKFxyXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5hZGQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC30LDQtNCw0YfRgycsXHJcbiAgICAgIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrLmFkZFxyXG4gICAgKVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogVGFza0JYSHR0cCB9Pih0aGlzLnVybC5hZGQsIHtmaWVsZHM6IHBhcmFtfSkucGlwZShcclxuICAgIC8vICAgbWFwKHYgPT4ge1xyXG4gICAgLy8gICAgICAgaWYgKHYgJiYgdi5yZXN1bHQgJiYgdi5yZXN1bHQudGFzaykge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcclxuICAgIC8vICAgICAgICAgICB2LFxyXG4gICAgLy8gICAgICAgICAgIHtcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdDogdGhpcy50YXNrQlhNYXAuVGFza0JYSHR0cFRvVGFza0JYKHYucmVzdWx0LnRhc2spXHJcbiAgICAvLyAgICAgICAgICAgfSlcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICkpXHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIHVwZGF0ZSh0YXNrSWQ6IG51bWJlciwgdXBkYXRlRmllbGRzOiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSwgdGFzazogaUJYUmVzdFRhc2spIHtcclxuICAgIGxldCBzZW5kVGFzazogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XHJcbiAgICBsZXQgdGFza1RTOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGFza1xyXG4gICAgaWYgKHVwZGF0ZUZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgdXBkYXRlRmllbGQgb2YgdXBkYXRlRmllbGRzKSB7XHJcbiAgICAgICAgaWYgKHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXSkge1xyXG4gICAgICAgICAgc2VuZFRhc2tbdXBkYXRlRmllbGRdID0gdGFza1RTW2NhbWVsQ2FzZSh1cGRhdGVGaWVsZCldXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChPYmplY3QudmFsdWVzKHNlbmRUYXNrKS5sZW5ndGgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgICAgICB0aGlzLnVybC51cGRhdGUsXHJcbiAgICAgICAgICB7dGFza0lkOiB0YXNrSWQsIGZpZWxkczogc2VuZFRhc2t9LFxyXG4gICAgICAgICAgJ2Vycm9yIHRvIHVwZGF0ZSB0YXNrJylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snKVxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ25vdCB2YWxpZCBzZW5kIGRhdGEgdGFzaycsIHNlbmRUYXNrLCB0YXNrKVxyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNuYWNrQmFyLndhcm5pbmcoJ25vdCBoYXZlIGZpZWxkIGZvciB1cGRhdGUnKVxyXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcbiAgKi9cclxuXHJcbiAgZ2V0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrR2V0KSB7XHJcbiAgICBpZiAoIXBhcmFtLnNlbGVjdCkge1xyXG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcoXHJcbiAgICAgIHRoaXMuQlhSZXN0VGFza3NUYXNrLmdldCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LfQsNC00LDRh9GDJyxcclxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2suZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuXHJcbiAgbGlzdChwYXJhbTogaUJYUmVzdFBhcmFtVGFza3NMaXN0ID0ge30pIHtcclxuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XHJcbiAgICAgIHBhcmFtLnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuUGFnTmF2VGFza3MoXHJcbiAgICAgIHRoaXMuQlhSZXN0VGFza3NUYXNrLmxpc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINGB0L/QuNGB0L7QuiDQt9Cw0LTQsNGHJyxcclxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2subGlzdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcclxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXHJcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbGlzdEFsbChyZXF1ZXN0QXJyYXk6IFJlcXVlc3RBcGlUYXNrTGlzdEJYID0ge30sIGNhY2hlID0gZmFsc2UpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XHJcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcclxuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXHJcbiAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgbWVyZ2VNYXAodGFza3MgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXHJcbiAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHRhc2tzLmRhdGEuaHR0cC5saXN0LmZpbHRlcihpID0+IChpLmlkKSA/IGlkcy5pbmNsdWRlcyhpLmlkKSA6IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zJCA9IG9mKGl0ZW1zLnJlc3VsdC50YXNrcylcclxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgdG90YWw6IChpdGVtcy50b3RhbCkgPyBpdGVtcy50b3RhbCA6IDAsXHJcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICByZXF1ZXN0QXJyYXkuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0LnRhc2tzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtcy5yZXN1bHQudGFza3MpID8gaXRlbXMucmVzdWx0LnRhc2tzIDogW11cclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICBuZXh0OiAwXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxyXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiAhdi5kYXRhLmZpZWxkcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LmZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHYucmVzdWx0LmZpZWxkc31cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcclxuICAgICAgICAgIHJldHVybiBvZih7cmVzdWx0OiBjbG9uZTxpR2V0RmllbGRzRGVzY3JpcHRpb24+KHYuZGF0YS5maWVsZHMpfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8YW55Pj4odGhpcy51cmwucmVzdWx0LmRlbGV0ZUZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxyXG4gIH1cclxuXHJcbiAgYWRkUmVzdWx0RnJvbUNvbW1lbnQoY29tbWVudElEOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cD4+KHRoaXMudXJsLnJlc3VsdC5hZGRGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cFtdPj4odGhpcy51cmwucmVzdWx0Lmxpc3QsIHt0YXNrSWQ6IHRhc2tJZH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2LnJlc3VsdC5tYXAoaSA9PiB0aGlzLnRhc2tSZXN1bHRNYXAuaVRhc2tSZXN1bHRIdHRwVG9pVGFza1Jlc3VsdChpKSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9KSlcclxuICB9XHJcblxyXG4gIGdldFBsYW5uZXJMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8KHN0cmluZyB8IG51bWJlcilbXT4+KHRoaXMudXJsLnBsYW5uZXIuZ2V0bGlzdClcclxuICB9XHJcbiAgICovXHJcblxyXG4gIGdldGFjY2VzcyhwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldEFjY2Vzcykge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyhcclxuICAgICAgdGhpcy5CWFJlc3RUYXNrc1Rhc2suZ2V0YWNjZXNzLFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9GA0LDQstCwINC90LAg0YPQutCw0LfQsNC90L3Ri9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JyxcclxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2suZ2V0YWNjZXNzXHJcbiAgICApXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -14,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
14
14
  providedIn: 'root'
15
15
  }]
16
16
  }], ctorParameters: function () { return [{ type: i1.BXRestNavvyTasksTask }]; } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQU0xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLElBQTBCO1FBQTFCLFNBQUksR0FBSixJQUFJLENBQXNCO0lBQzdDLENBQUM7OEdBSFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzVGFzayB9IGZyb20gJy4vdGFza3MvdGFzaydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrcyB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRhc2s6IEJYUmVzdE5hdnZ5VGFza3NUYXNrKSB7XG4gIH1cbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQU0xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLElBQTBCO1FBQTFCLFNBQUksR0FBSixJQUFJLENBQXNCO0lBQzdDLENBQUM7OEdBSFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VGFza3NUYXNrIH0gZnJvbSAnLi90YXNrcy90YXNrJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrcyB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0YXNrOiBCWFJlc3ROYXZ2eVRhc2tzVGFzaykge1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -183,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
183
183
  providedIn: 'root'
184
184
  }]
185
185
  }], ctorParameters: function () { return [{ type: i1.BXRestMapUser }, { type: i2.BXRestUser }, { type: i3.BXRestNavvyUserUserfield }]; } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBR25FLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTs7Ozs7QUFROUIsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFDVSxhQUE0QixFQUM1QixVQUFzQixFQUN2QixTQUFtQztRQUZsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQTBCO1FBVDVDLFFBQUcsR0FBd0M7WUFDekMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1NBQzlCLENBQUE7UUFTQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ3JCLDZFQUE2RSxDQUM5RSxDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUE4QixFQUFFO1FBQ2xDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FB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QUFFO1lBQ3RELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7U0FDNUI7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtTQUNyQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQTtTQUNuQztJQUNILENBQUM7OEdBaE5VLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YsIHRhcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQlhSZXN0VXNlciB9IGZyb20gJy4uL3JlcXVlc3QvdXNlcidcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vc2VydmljZXMvbmF2dnknXG5pbXBvcnQgeyBpQlhSZXN0VXNlckh0dHAgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbmlsbGEvc2Vzc2lvblN0b3JhZ2UnXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1Vc2VyR2V0IH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci9nZXQnXG5pbXBvcnQgY2xvbmUgZnJvbSAnanVzdC1jbG9uZSdcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2ggfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3NlYXJjaCdcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VXNlclVzZXJmaWVsZCB9IGZyb20gJy4vdXNlci91c2VyZmllbGQnXG5pbXBvcnQgeyBCWFJlc3RNYXBVc2VyIH0gZnJvbSAnLi4vbWFwL3VzZXInXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VXNlciB7XG5cbiAgZGVmOiB7IHBhcmFtczogeyBBQ1RJVkU6IDEsIHN0YXJ0OiAwIH0gfSA9IHtcbiAgICBwYXJhbXM6IHtBQ1RJVkU6IDEsIHN0YXJ0OiAwfVxuICB9XG5cbiAgcHJpdmF0ZSBOYXZ2eTogTmF2dnk8QlhSZXN0VXNlciwgQlhSZXN0TWFwVXNlcj5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFVzZXJNYXA6IEJYUmVzdE1hcFVzZXIsXG4gICAgcHJpdmF0ZSBCWFJlc3RVc2VyOiBCWFJlc3RVc2VyLFxuICAgIHB1YmxpYyB1c2VyZmllbGQ6IEJYUmVzdE5hdnZ5VXNlclVzZXJmaWVsZFxuICApIHtcbiAgICB0aGlzLk5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0VXNlciwgdGhpcy5CWFJlc3RVc2VyTWFwKVxuICB9XG5cbiAgYWRtaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxuICAgICAgdGhpcy5CWFJlc3RVc2VyLmFkbWluLFxuICAgICAgJ9CY0L3RhNC+0YDQvNCw0YbQuNGPINC+INCy0L7Qt9C80L7QttC90YvRhSDQv9GA0LjQvdCw0LTQu9C10LbQvdC+0YHRgtC4INGH0LXQu9C+0LLQtdC60LAg0Log0LDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YDRgyDQvdC1INC/0L7Qu9GD0YfQtdC90LAnXG4gICAgKVxuICB9XG5cbiAgZ2V0KHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCA9IHt9KXtcbiAgICBsZXQgY29weVBhcmFtcyA9IGNsb25lKHBhcmFtcylcbiAgICB0aGlzLnNldERlZlBhcmFtKGNvcHlQYXJhbXMpXG5cbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5QYWdOYXYoXG4gICAgICB0aGlzLkJYUmVzdFVzZXIuZ2V0LFxuICAgICAgY29weVBhcmFtcyxcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LknLFxuICAgICAgdGhpcy5CWFJlc3RVc2VyTWFwLmdldFxuICAgIClcbiAgfVxuXG4gIGN1cnJlbnQodXBkYXRlID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGVXaXRoQXJnKFxuICAgICAgdGhpcy5zZWxmLFxuICAgICAgdXBkYXRlLFxuICAgICAgJycsXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuY3VycmVudFxuICAgIClcbiAgfVxuXG4gIC8qXG4gIHVwZGF0ZSh1c2VyOiBpQlhSZXN0VXNlciwgZmllbGRVcGRhdGU6IHN0cmluZ1tdKSB7XG5cbiAgICAgIGlmIChmaWVsZFVwZGF0ZSAmJiBmaWVsZFVwZGF0ZS5sZW5ndGgpIHtcbiAgICAgIGxldCBzZW5kRGF0YTogYW55ID0ge1xuICAgICAgICBJRDogdXNlci5JRCxcbiAgICAgIH1cbiAgICAgIGNvbnN0IHVzZXJCWCA9IHRoaXMuQlhSZXN0VXNlck1hcC5CWHRvSHR0cCh1c2VyKVxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZFVwZGF0ZSkge1xuICAgICAgICBpZiAodXNlckJYW2ZpZWxkXSkge1xuICAgICAgICAgIHNlbmREYXRhW2ZpZWxkXSA9IHVzZXJCWFtmaWVsZF1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnT25lIHNlbnQgZmllbGQgaXMgZW1wdHknKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFVzZXJIdHRwW10+KFxuICAgICAgICB0aGlzLnVybC51cGRhdGUsXG4gICAgICAgIHNlbmREYXRhXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdBbGwgc2VudCBmaWVsZCBmb3IgZWRpdCBpcyBlbXB0eScpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZShcbiAgICAgIHRoaXMuQlhSZXN0VXNlci51cGRhdGUodXNlciwgZmllbGRVcGRhdGUpLFxuICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YEgSUQnICsgdXNlci5JRFxuICAgIClcbiAgfVxuICAqL1xuICBzZWFyY2gocGFyYW1zOiBzdHJpbmcgfCBpQlhSZXN0UGFyYW1Vc2VyU2VhcmNoKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBwYXJhbXMgPSB7RklORDogcGFyYW1zfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIHBhcmFtcy5BQ1RJVkUgIT09ICdib29sZWFuJykge1xuICAgICAgcGFyYW1zLkFDVElWRSA9IHRydWVcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuUGFnTmF2KFxuICAgICAgdGhpcy5CWFJlc3RVc2VyLnNlYXJjaCxcbiAgICAgIHBhcmFtcyxcbiAgICAgICfQodC10YDQstC10YAg0L3QtSDQvtGC0LLQtdGH0LDQtdGCINC90LAg0LfQsNC/0YDQvtGBINC/0L7QuNGB0LrQsCcsXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuZ2V0XG4gICAgKVxuICB9XG5cbiAgYWNjZXNzKHBhcmFtczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGVXaXRoQXJnKFxuICAgICAgdGhpcy5CWFJlc3RVc2VyLmFjY2VzcyxcbiAgICAgIHBhcmFtcyxcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/RgNCw0LLQsCdcbiAgICApXG4gIH1cblxuICBmaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKHRoaXMuQlhSZXN0VXNlci5maWVsZHMsICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GPJylcbiAgfVxuXG4gIHByaXZhdGUgc2VsZih1cGRhdGUgPSBmYWxzZSkge1xuICAgIGlmICh1cGRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLkJYUmVzdFVzZXIuY3VycmVudCh1cGRhdGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBzZWxmID0gU2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyB0aGlzLnNlbGYubmFtZSkgYXMgaUJYUmVzdFVzZXJIdHRwXG4gICAgICBpZiAoc2VsZikge1xuICAgICAgICByZXR1cm4gb2Yoe3Jlc3VsdDogc2VsZn0gYXMgaUJYUmVzdEFuc3dlcjxpQlhSZXN0VXNlckh0dHA+KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0VXNlci5jdXJyZW50KHVwZGF0ZSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICBTZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuY29uc3RydWN0b3IubmFtZSArIHRoaXMuc2VsZi5uYW1lLCB2KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgfVxuICB9XG5cbiAgLy8gZ2V0QWxsKHBhcmFtczogaUJYR2V0UGFyYW0gPSB7fSk6IE9ic2VydmFibGU8aUJYUmVzdFVzZXIgW10gfCB1bmRlZmluZWQ+IHtcbiAgLy8gICBpZiAoIU9iamVjdC5rZXlzKHBhcmFtcykubGVuZ3RoKSB7XG4gIC8vICAgICBwYXJhbXMgPSBjbG9uZSh0aGlzLmRlZi5wYXJhbXMpXG4gIC8vICAgfVxuICAvL1xuICAvLyAgIGNvbnN0IHNhdmVBbGxVc2VyID0gY29tcGFyZShwYXJhbXMsIHRoaXMuZGVmLnBhcmFtcylcbiAgLy8gICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAvLyAgICAgdGFrZSgxKSxcbiAgLy8gICAgIG1lcmdlTWFwKHYgPT4ge1xuICAvLyAgICAgICBpZiAodi5sb2FkLmFsbCkge1xuICAvLyAgICAgICAgIGlmIChjb21wYXJlKHRoaXMuZGVmLnBhcmFtcywgcGFyYW1zKSkge1xuICAvLyAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YSkpXG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vXG4gIC8vICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShcbiAgLy8gICAgICAgICB0YWtlKDEpLFxuICAvLyAgICAgICAgIG1hcCh2ID0+IHtcbiAgLy8gICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gIC8vICAgICAgICAgICAgIGxldCBjbCA9IGNsb25lKHYucmVzdWx0KVxuICAvLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYXZlQXJyVXNlcihjbClcbiAgLy8gICAgICAgICAgIH1cbiAgLy8gICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgLy8gICAgICAgICB9KSxcbiAgLy8gICAgICAgKVxuICAvLyAgICAgfSksXG4gIC8vICAgICB0YXAodiA9PiB7XG4gIC8vICAgICAgIGlmICh2ICYmIHYubGVuZ3RoICYmIHNhdmVBbGxVc2VyKSB7XG4gIC8vICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChsb2FkQWxsKHtsb2FkOiB0cnVlfSkpXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgcGFyYW1zLnN0YXJ0ID0gdGhpcy5kZWYucGFyYW1zLnN0YXJ0XG4gIC8vICAgICB9KVxuICAvLyAgIClcbiAgLy8gfVxuXG4gIC8vIHByaXZhdGUgc2F2ZUFyclVzZXIodXNlcnM6IGlCWFJlc3RVc2VySHR0cFtdKSB7XG4gIC8vICAgbGV0IHJlc3VsdDogaUJYUmVzdFVzZXIgW10gPSBbXVxuICAvLyAgIGZvciAoY29uc3QgdXNlciBvZiB1c2Vycykge1xuICAvLyAgICAgcmVzdWx0LnB1c2godGhpcy51c2VyTWFwLkh0dHBUb0JYKHVzZXIpKVxuICAvLyAgIH1cbiAgLy8gICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNhdmVBcnIoe2FycjogcmVzdWx0fSkpXG4gIC8vXG4gIC8vICAgcmV0dXJuIHJlc3VsdFxuICAvLyB9XG5cbiAgLy8gZ2V0RW5kQXJyYXkocGFyYW1zOiBVc2VyRmlsdGVyID0ge30pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZ2V0KHBhcmFtcykucGlwZShcbiAgLy8gICAgIG1lcmdlTWFwKGl0ZW1zID0+IHtcbiAgLy8gICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLnJlc3VsdCAmJiB0eXBlb2YgaXRlbXMucmVzdWx0ID09PSAnb2JqZWN0Jykge1xuICAvLyAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gIC8vICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSBpdGVtcy5uZXh0XG4gIC8vICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRBcnJheShwYXJhbXMpLnBpcGUobWFwKHZFbmQgPT4ge1xuICAvLyAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQgJiYgdkVuZC5yZXN1bHQpIHtcbiAgLy8gICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfVxuICAvLyAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICAgIHJldHVybiAoaXRlbXMpID8gaXRlbXMgOiB1bmRlZmluZWRcbiAgLy8gICAgICAgICAgIH0pKVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgICByZXR1cm4gb2YoaXRlbXMpXG4gIC8vICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSksXG4gIC8vICAgKVxuICAvLyB9XG5cbiAgcHJpdmF0ZSBzZXREZWZQYXJhbShwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQpIHtcbiAgICBpZighcGFyYW1zLkZJTFRFUikge1xuICAgICAgcGFyYW1zLkZJTFRFUiA9IHt9XG4gICAgfVxuXG4gICAgaWYgKCFwYXJhbXMuaGFzT3duUHJvcGVydHkoJ0FDVElWRScpKSB7XG4gICAgICBwYXJhbXMuRklMVEVSLkFDVElWRSA9IHRoaXMuZGVmLnBhcmFtcy5BQ1RJVkVcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5GSUxURVIuQUNUSVZFICYmIHBhcmFtcy5GSUxURVIuQUNUSVZFID09PSAyKSB7XG4gICAgICBkZWxldGUgcGFyYW1zLkZJTFRFUi5BQ1RJVkVcbiAgICB9XG4gICAgaWYgKCFwYXJhbXMuaGFzT3duUHJvcGVydHkoJ3N0YXJ0JykpIHtcbiAgICAgIHBhcmFtcy5zdGFydCA9IHRoaXMuZGVmLnBhcmFtcy5zdGFydFxuICAgIH1cblxuICAgIGlmIChwYXJhbXMuRklMVEVSLlVGX0RFUEFSVE1FTlQgJiYgIXBhcmFtcy5GSUxURVIuVUZfREVQQVJUTUVOVC5sZW5ndGgpIHtcbiAgICAgIGRlbGV0ZSBwYXJhbXMuRklMVEVSLlVGX0RFUEFSVE1FTlRcbiAgICB9XG4gIH1cblxufVxuXG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBR25FLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTs7Ozs7QUFROUIsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFDVSxhQUE0QixFQUM1QixVQUFzQixFQUN2QixTQUFtQztRQUZsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQTBCO1FBVDVDLFFBQUcsR0FBd0M7WUFDekMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1NBQzlCLENBQUE7UUFTQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ3JCLDZFQUE2RSxDQUM5RSxDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUE4QixFQUFFO1FBQ2xDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FB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QUFFO1lBQ3RELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7U0FDNUI7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtTQUNyQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQTtTQUNuQztJQUNILENBQUM7OEdBaE5VLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YsIHRhcCB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VXNlciB9IGZyb20gJy4uL3JlcXVlc3QvdXNlcidcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgaUJYUmVzdFVzZXJIdHRwIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci91c2VyJ1xyXG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbmlsbGEvc2Vzc2lvblN0b3JhZ2UnXHJcbmltcG9ydCB7IGlCWFJlc3RBbnN3ZXIgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2Fuc3dlcidcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVXNlckdldCB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvZ2V0J1xyXG5pbXBvcnQgY2xvbmUgZnJvbSAnanVzdC1jbG9uZSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVXNlclNlYXJjaCB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvc2VhcmNoJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXJVc2VyZmllbGQgfSBmcm9tICcuL3VzZXIvdXNlcmZpZWxkJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBVc2VyIH0gZnJvbSAnLi4vbWFwL3VzZXInXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVVzZXIge1xyXG5cclxuICBkZWY6IHsgcGFyYW1zOiB7IEFDVElWRTogMSwgc3RhcnQ6IDAgfSB9ID0ge1xyXG4gICAgcGFyYW1zOiB7QUNUSVZFOiAxLCBzdGFydDogMH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTmF2dnk6IE5hdnZ5PEJYUmVzdFVzZXIsIEJYUmVzdE1hcFVzZXI+XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBCWFJlc3RVc2VyTWFwOiBCWFJlc3RNYXBVc2VyLFxyXG4gICAgcHJpdmF0ZSBCWFJlc3RVc2VyOiBCWFJlc3RVc2VyLFxyXG4gICAgcHVibGljIHVzZXJmaWVsZDogQlhSZXN0TmF2dnlVc2VyVXNlcmZpZWxkXHJcbiAgKSB7XHJcbiAgICB0aGlzLk5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0VXNlciwgdGhpcy5CWFJlc3RVc2VyTWFwKVxyXG4gIH1cclxuXHJcbiAgYWRtaW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci5hZG1pbixcclxuICAgICAgJ9CY0L3RhNC+0YDQvNCw0YbQuNGPINC+INCy0L7Qt9C80L7QttC90YvRhSDQv9GA0LjQvdCw0LTQu9C10LbQvdC+0YHRgtC4INGH0LXQu9C+0LLQtdC60LAg0Log0LDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YDRgyDQvdC1INC/0L7Qu9GD0YfQtdC90LAnXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXQocGFyYW1zOiBpQlhSZXN0UGFyYW1Vc2VyR2V0ID0ge30pe1xyXG4gICAgbGV0IGNvcHlQYXJhbXMgPSBjbG9uZShwYXJhbXMpXHJcbiAgICB0aGlzLnNldERlZlBhcmFtKGNvcHlQYXJhbXMpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuUGFnTmF2KFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXIuZ2V0LFxyXG4gICAgICBjb3B5UGFyYW1zLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JyxcclxuICAgICAgdGhpcy5CWFJlc3RVc2VyTWFwLmdldFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY3VycmVudCh1cGRhdGUgPSBmYWxzZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyhcclxuICAgICAgdGhpcy5zZWxmLFxyXG4gICAgICB1cGRhdGUsXHJcbiAgICAgICcnLFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuY3VycmVudFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICB1cGRhdGUodXNlcjogaUJYUmVzdFVzZXIsIGZpZWxkVXBkYXRlOiBzdHJpbmdbXSkge1xyXG5cclxuICAgICAgaWYgKGZpZWxkVXBkYXRlICYmIGZpZWxkVXBkYXRlLmxlbmd0aCkge1xyXG4gICAgICBsZXQgc2VuZERhdGE6IGFueSA9IHtcclxuICAgICAgICBJRDogdXNlci5JRCxcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB1c2VyQlggPSB0aGlzLkJYUmVzdFVzZXJNYXAuQlh0b0h0dHAodXNlcilcclxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZFVwZGF0ZSkge1xyXG4gICAgICAgIGlmICh1c2VyQlhbZmllbGRdKSB7XHJcbiAgICAgICAgICBzZW5kRGF0YVtmaWVsZF0gPSB1c2VyQlhbZmllbGRdXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdPbmUgc2VudCBmaWVsZCBpcyBlbXB0eScpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT4oXHJcbiAgICAgICAgdGhpcy51cmwudXBkYXRlLFxyXG4gICAgICAgIHNlbmREYXRhXHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdBbGwgc2VudCBmaWVsZCBmb3IgZWRpdCBpcyBlbXB0eScpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci51cGRhdGUodXNlciwgZmllbGRVcGRhdGUpLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgSBJRCcgKyB1c2VyLklEXHJcbiAgICApXHJcbiAgfVxyXG4gICovXHJcbiAgc2VhcmNoKHBhcmFtczogc3RyaW5nIHwgaUJYUmVzdFBhcmFtVXNlclNlYXJjaCkge1xyXG4gICAgaWYgKHR5cGVvZiBwYXJhbXMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHBhcmFtcyA9IHtGSU5EOiBwYXJhbXN9XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHBhcmFtcy5BQ1RJVkUgIT09ICdib29sZWFuJykge1xyXG4gICAgICBwYXJhbXMuQUNUSVZFID0gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuUGFnTmF2KFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXIuc2VhcmNoLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgICfQodC10YDQstC10YAg0L3QtSDQvtGC0LLQtdGH0LDQtdGCINC90LAg0LfQsNC/0YDQvtGBINC/0L7QuNGB0LrQsCcsXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlck1hcC5nZXRcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFjY2VzcyhwYXJhbXM6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGVXaXRoQXJnKFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXIuYWNjZXNzLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/RgNCw0LLQsCdcclxuICAgIClcclxuICB9XHJcblxyXG4gIGZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZSh0aGlzLkJYUmVzdFVzZXIuZmllbGRzLCAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRjycpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGYodXBkYXRlID0gZmFsc2UpIHtcclxuICAgIGlmICh1cGRhdGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0VXNlci5jdXJyZW50KHVwZGF0ZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBzZWxmID0gU2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyB0aGlzLnNlbGYubmFtZSkgYXMgaUJYUmVzdFVzZXJIdHRwXHJcbiAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHtyZXN1bHQ6IHNlbGZ9IGFzIGlCWFJlc3RBbnN3ZXI8aUJYUmVzdFVzZXJIdHRwPilcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5CWFJlc3RVc2VyLmN1cnJlbnQodXBkYXRlKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICBpZiAodikge1xyXG4gICAgICAgICAgICAgIHJldHVybiB2XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgICAgU2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyB0aGlzLnNlbGYubmFtZSwgdilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZ2V0QWxsKHBhcmFtczogaUJYR2V0UGFyYW0gPSB7fSk6IE9ic2VydmFibGU8aUJYUmVzdFVzZXIgW10gfCB1bmRlZmluZWQ+IHtcclxuICAvLyAgIGlmICghT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGgpIHtcclxuICAvLyAgICAgcGFyYW1zID0gY2xvbmUodGhpcy5kZWYucGFyYW1zKVxyXG4gIC8vICAgfVxyXG4gIC8vXHJcbiAgLy8gICBjb25zdCBzYXZlQWxsVXNlciA9IGNvbXBhcmUocGFyYW1zLCB0aGlzLmRlZi5wYXJhbXMpXHJcbiAgLy8gICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxyXG4gIC8vICAgICB0YWtlKDEpLFxyXG4gIC8vICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAvLyAgICAgICBpZiAodi5sb2FkLmFsbCkge1xyXG4gIC8vICAgICAgICAgaWYgKGNvbXBhcmUodGhpcy5kZWYucGFyYW1zLCBwYXJhbXMpKSB7XHJcbiAgLy8gICAgICAgICAgIHJldHVybiBvZihjbG9uZSh2LmRhdGEpKVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH1cclxuICAvL1xyXG4gIC8vICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShcclxuICAvLyAgICAgICAgIHRha2UoMSksXHJcbiAgLy8gICAgICAgICBtYXAodiA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgLy8gICAgICAgICAgICAgbGV0IGNsID0gY2xvbmUodi5yZXN1bHQpXHJcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUFyclVzZXIoY2wpXHJcbiAgLy8gICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIC8vICAgICAgICAgfSksXHJcbiAgLy8gICAgICAgKVxyXG4gIC8vICAgICB9KSxcclxuICAvLyAgICAgdGFwKHYgPT4ge1xyXG4gIC8vICAgICAgIGlmICh2ICYmIHYubGVuZ3RoICYmIHNhdmVBbGxVc2VyKSB7XHJcbiAgLy8gICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKGxvYWRBbGwoe2xvYWQ6IHRydWV9KSlcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgcGFyYW1zLnN0YXJ0ID0gdGhpcy5kZWYucGFyYW1zLnN0YXJ0XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICApXHJcbiAgLy8gfVxyXG5cclxuICAvLyBwcml2YXRlIHNhdmVBcnJVc2VyKHVzZXJzOiBpQlhSZXN0VXNlckh0dHBbXSkge1xyXG4gIC8vICAgbGV0IHJlc3VsdDogaUJYUmVzdFVzZXIgW10gPSBbXVxyXG4gIC8vICAgZm9yIChjb25zdCB1c2VyIG9mIHVzZXJzKSB7XHJcbiAgLy8gICAgIHJlc3VsdC5wdXNoKHRoaXMudXNlck1hcC5IdHRwVG9CWCh1c2VyKSlcclxuICAvLyAgIH1cclxuICAvLyAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUFycih7YXJyOiByZXN1bHR9KSlcclxuICAvL1xyXG4gIC8vICAgcmV0dXJuIHJlc3VsdFxyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0RW5kQXJyYXkocGFyYW1zOiBVc2VyRmlsdGVyID0ge30pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPiB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5nZXQocGFyYW1zKS5waXBlKFxyXG4gIC8vICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XHJcbiAgLy8gICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLnJlc3VsdCAmJiB0eXBlb2YgaXRlbXMucmVzdWx0ID09PSAnb2JqZWN0Jykge1xyXG4gIC8vICAgICAgICAgaWYgKGl0ZW1zLm5leHQpIHtcclxuICAvLyAgICAgICAgICAgcGFyYW1zLnN0YXJ0ID0gaXRlbXMubmV4dFxyXG4gIC8vICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRBcnJheShwYXJhbXMpLnBpcGUobWFwKHZFbmQgPT4ge1xyXG4gIC8vICAgICAgICAgICAgIGlmICh2RW5kICYmIGl0ZW1zLnJlc3VsdCAmJiB2RW5kLnJlc3VsdCkge1xyXG4gIC8vICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IFsuLi5pdGVtcy5yZXN1bHQsIC4uLnZFbmQucmVzdWx0XX1cclxuICAvLyAgICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIChpdGVtcykgPyBpdGVtcyA6IHVuZGVmaW5lZFxyXG4gIC8vICAgICAgICAgICB9KSlcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICAgIHJldHVybiBvZihpdGVtcylcclxuICAvLyAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pLFxyXG4gIC8vICAgKVxyXG4gIC8vIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREZWZQYXJhbShwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQpIHtcclxuICAgIGlmKCFwYXJhbXMuRklMVEVSKSB7XHJcbiAgICAgIHBhcmFtcy5GSUxURVIgPSB7fVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghcGFyYW1zLmhhc093blByb3BlcnR5KCdBQ1RJVkUnKSkge1xyXG4gICAgICBwYXJhbXMuRklMVEVSLkFDVElWRSA9IHRoaXMuZGVmLnBhcmFtcy5BQ1RJVkVcclxuICAgIH1cclxuICAgIGlmIChwYXJhbXMuRklMVEVSLkFDVElWRSAmJiBwYXJhbXMuRklMVEVSLkFDVElWRSA9PT0gMikge1xyXG4gICAgICBkZWxldGUgcGFyYW1zLkZJTFRFUi5BQ1RJVkVcclxuICAgIH1cclxuICAgIGlmICghcGFyYW1zLmhhc093blByb3BlcnR5KCdzdGFydCcpKSB7XHJcbiAgICAgIHBhcmFtcy5zdGFydCA9IHRoaXMuZGVmLnBhcmFtcy5zdGFydFxyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJhbXMuRklMVEVSLlVGX0RFUEFSVE1FTlQgJiYgIXBhcmFtcy5GSUxURVIuVUZfREVQQVJUTUVOVC5sZW5ndGgpIHtcclxuICAgICAgZGVsZXRlIHBhcmFtcy5GSUxURVIuVUZfREVQQVJUTUVOVFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==