@vendasta/social-posts 5.9.3 → 5.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/esm2020/lib/_generated/host.service.mjs +4 -4
  2. package/esm2020/lib/_internal/hash-tags.api.service.mjs +4 -4
  3. package/esm2020/lib/_internal/linkedin.api.service.mjs +4 -4
  4. package/esm2020/lib/_internal/multilocation-post.api.service.mjs +4 -4
  5. package/esm2020/lib/_internal/objects/api-v2.mjs +61 -61
  6. package/esm2020/lib/_internal/objects/api.mjs +293 -293
  7. package/esm2020/lib/_internal/objects/field-mask.mjs +6 -6
  8. package/esm2020/lib/_internal/objects/hashtag.mjs +7 -7
  9. package/esm2020/lib/_internal/objects/linkedin-v2.mjs +7 -7
  10. package/esm2020/lib/_internal/objects/multilocation-post.mjs +17 -17
  11. package/esm2020/lib/_internal/objects/pixabay-image.mjs +7 -7
  12. package/esm2020/lib/_internal/objects/social-post-stats.mjs +19 -19
  13. package/esm2020/lib/_internal/objects/social-post-v2.mjs +46 -46
  14. package/esm2020/lib/_internal/objects/social-posts.mjs +53 -53
  15. package/esm2020/lib/_internal/objects/tenor-gif.mjs +19 -19
  16. package/esm2020/lib/_internal/partner-social-posts.api.service.mjs +4 -4
  17. package/esm2020/lib/_internal/pixabay-images.api.service.mjs +4 -4
  18. package/esm2020/lib/_internal/post-performance.api.service.mjs +4 -4
  19. package/esm2020/lib/_internal/post-templates.api.service.mjs +4 -4
  20. package/esm2020/lib/_internal/social-posts-v2.api.service.mjs +4 -4
  21. package/esm2020/lib/_internal/social-posts.api.service.mjs +4 -4
  22. package/esm2020/lib/_internal/tenor-gifs.api.service.mjs +4 -4
  23. package/esm2020/lib/hashtag.service.mjs +4 -4
  24. package/esm2020/lib/multilocation-posts.service.mjs +4 -4
  25. package/esm2020/lib/pixabay-image.service.mjs +4 -4
  26. package/esm2020/lib/post-performance.service.mjs +4 -4
  27. package/esm2020/lib/post-templates.service.mjs +4 -4
  28. package/esm2020/lib/social-post-v2.service.mjs +7 -4
  29. package/esm2020/lib/social-posts.service.mjs +4 -4
  30. package/esm2020/lib/tenor-gifs.service.mjs +4 -4
  31. package/fesm2015/vendasta-social-posts.mjs +597 -594
  32. package/fesm2015/vendasta-social-posts.mjs.map +1 -1
  33. package/fesm2020/vendasta-social-posts.mjs +597 -594
  34. package/fesm2020/vendasta-social-posts.mjs.map +1 -1
  35. package/lib/social-post-v2.service.d.ts +3 -1
  36. package/package.json +3 -3
  37. package/src/README.md +0 -1
@@ -6,12 +6,6 @@ export function enumStringToValue(enumRef, value) {
6
6
  return enumRef[value];
7
7
  }
8
8
  export class CallToAction {
9
- constructor(kwargs) {
10
- if (!kwargs) {
11
- return;
12
- }
13
- Object.assign(this, kwargs);
14
- }
15
9
  static fromProto(proto) {
16
10
  let m = new CallToAction();
17
11
  m = Object.assign(m, proto);
@@ -20,6 +14,12 @@ export class CallToAction {
20
14
  }
21
15
  return m;
22
16
  }
17
+ constructor(kwargs) {
18
+ if (!kwargs) {
19
+ return;
20
+ }
21
+ Object.assign(this, kwargs);
22
+ }
23
23
  toApiJson() {
24
24
  const toReturn = {};
25
25
  if (typeof this.url !== 'undefined') {
@@ -32,17 +32,17 @@ export class CallToAction {
32
32
  }
33
33
  }
34
34
  export class Error {
35
+ static fromProto(proto) {
36
+ let m = new Error();
37
+ m = Object.assign(m, proto);
38
+ return m;
39
+ }
35
40
  constructor(kwargs) {
36
41
  if (!kwargs) {
37
42
  return;
38
43
  }
39
44
  Object.assign(this, kwargs);
40
45
  }
41
- static fromProto(proto) {
42
- let m = new Error();
43
- m = Object.assign(m, proto);
44
- return m;
45
- }
46
46
  toApiJson() {
47
47
  const toReturn = {};
48
48
  if (typeof this.reason !== 'undefined') {
@@ -55,12 +55,6 @@ export class Error {
55
55
  }
56
56
  }
57
57
  export class Event {
58
- constructor(kwargs) {
59
- if (!kwargs) {
60
- return;
61
- }
62
- Object.assign(this, kwargs);
63
- }
64
58
  static fromProto(proto) {
65
59
  let m = new Event();
66
60
  m = Object.assign(m, proto);
@@ -72,6 +66,12 @@ export class Event {
72
66
  }
73
67
  return m;
74
68
  }
69
+ constructor(kwargs) {
70
+ if (!kwargs) {
71
+ return;
72
+ }
73
+ Object.assign(this, kwargs);
74
+ }
75
75
  toApiJson() {
76
76
  const toReturn = {};
77
77
  if (typeof this.title !== 'undefined') {
@@ -87,12 +87,6 @@ export class Event {
87
87
  }
88
88
  }
89
89
  export class MediaEntry {
90
- constructor(kwargs) {
91
- if (!kwargs) {
92
- return;
93
- }
94
- Object.assign(this, kwargs);
95
- }
96
90
  static fromProto(proto) {
97
91
  let m = new MediaEntry();
98
92
  m = Object.assign(m, proto);
@@ -101,6 +95,12 @@ export class MediaEntry {
101
95
  }
102
96
  return m;
103
97
  }
98
+ constructor(kwargs) {
99
+ if (!kwargs) {
100
+ return;
101
+ }
102
+ Object.assign(this, kwargs);
103
+ }
104
104
  toApiJson() {
105
105
  const toReturn = {};
106
106
  if (typeof this.mediaEntryId !== 'undefined') {
@@ -122,17 +122,17 @@ export class MediaEntry {
122
122
  }
123
123
  }
124
124
  export class MetaData {
125
+ static fromProto(proto) {
126
+ let m = new MetaData();
127
+ m = Object.assign(m, proto);
128
+ return m;
129
+ }
125
130
  constructor(kwargs) {
126
131
  if (!kwargs) {
127
132
  return;
128
133
  }
129
134
  Object.assign(this, kwargs);
130
135
  }
131
- static fromProto(proto) {
132
- let m = new MetaData();
133
- m = Object.assign(m, proto);
134
- return m;
135
- }
136
136
  toApiJson() {
137
137
  const toReturn = {};
138
138
  if (typeof this.propertyName !== 'undefined') {
@@ -145,12 +145,6 @@ export class MetaData {
145
145
  }
146
146
  }
147
147
  export class PostTemplate {
148
- constructor(kwargs) {
149
- if (!kwargs) {
150
- return;
151
- }
152
- Object.assign(this, kwargs);
153
- }
154
148
  static fromProto(proto) {
155
149
  let m = new PostTemplate();
156
150
  m = Object.assign(m, proto);
@@ -174,6 +168,12 @@ export class PostTemplate {
174
168
  }
175
169
  return m;
176
170
  }
171
+ constructor(kwargs) {
172
+ if (!kwargs) {
173
+ return;
174
+ }
175
+ Object.assign(this, kwargs);
176
+ }
177
177
  toApiJson() {
178
178
  const toReturn = {};
179
179
  if (typeof this.accountGroupId !== 'undefined') {
@@ -231,12 +231,6 @@ export class PostTemplate {
231
231
  }
232
232
  }
233
233
  export class SchedulePostStatus {
234
- constructor(kwargs) {
235
- if (!kwargs) {
236
- return;
237
- }
238
- Object.assign(this, kwargs);
239
- }
240
234
  static fromProto(proto) {
241
235
  let m = new SchedulePostStatus();
242
236
  m = Object.assign(m, proto);
@@ -245,6 +239,12 @@ export class SchedulePostStatus {
245
239
  }
246
240
  return m;
247
241
  }
242
+ constructor(kwargs) {
243
+ if (!kwargs) {
244
+ return;
245
+ }
246
+ Object.assign(this, kwargs);
247
+ }
248
248
  toApiJson() {
249
249
  const toReturn = {};
250
250
  if (typeof this.socialPostId !== 'undefined') {
@@ -263,12 +263,6 @@ export class SchedulePostStatus {
263
263
  }
264
264
  }
265
265
  export class SocialPost {
266
- constructor(kwargs) {
267
- if (!kwargs) {
268
- return;
269
- }
270
- Object.assign(this, kwargs);
271
- }
272
266
  static fromProto(proto) {
273
267
  let m = new SocialPost();
274
268
  m = Object.assign(m, proto);
@@ -310,6 +304,12 @@ export class SocialPost {
310
304
  }
311
305
  return m;
312
306
  }
307
+ constructor(kwargs) {
308
+ if (!kwargs) {
309
+ return;
310
+ }
311
+ Object.assign(this, kwargs);
312
+ }
313
313
  toApiJson() {
314
314
  const toReturn = {};
315
315
  if (typeof this.businessId !== 'undefined') {
@@ -403,12 +403,6 @@ export class SocialPost {
403
403
  }
404
404
  }
405
405
  export class SocialPostData {
406
- constructor(kwargs) {
407
- if (!kwargs) {
408
- return;
409
- }
410
- Object.assign(this, kwargs);
411
- }
412
406
  static fromProto(proto) {
413
407
  let m = new SocialPostData();
414
408
  m = Object.assign(m, proto);
@@ -417,6 +411,12 @@ export class SocialPostData {
417
411
  }
418
412
  return m;
419
413
  }
414
+ constructor(kwargs) {
415
+ if (!kwargs) {
416
+ return;
417
+ }
418
+ Object.assign(this, kwargs);
419
+ }
420
420
  toApiJson() {
421
421
  const toReturn = {};
422
422
  if (typeof this.postText !== 'undefined') {
@@ -431,4 +431,4 @@ export class SocialPostData {
431
431
  return toReturn;
432
432
  }
433
433
  }
434
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXBvc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc29jaWFsX3Bvc3RzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3NvY2lhbC1wb3N0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQVdyQixZQUFZLE1BQWdDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBWkQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQWlDLENBQUMsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7U0FBQztRQUMzSSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FB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KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQ2FsbFRvQWN0aW9uIGltcGxlbWVudHMgaS5DYWxsVG9BY3Rpb25JbnRlcmZhY2Uge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGFjdGlvblR5cGU6IGUuQ2FsbFRvQWN0aW9uQ2FsbFRvQWN0aW9uVHlwZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENhbGxUb0FjdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGxUb0FjdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hY3Rpb25UeXBlKSB7bS5hY3Rpb25UeXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5DYWxsVG9BY3Rpb25DYWxsVG9BY3Rpb25UeXBlPihlLkNhbGxUb0FjdGlvbkNhbGxUb0FjdGlvblR5cGUsIHByb3RvLmFjdGlvblR5cGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DYWxsVG9BY3Rpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VybCddID0gdGhpcy51cmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWN0aW9uVHlwZSddID0gdGhpcy5hY3Rpb25UeXBlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yIGltcGxlbWVudHMgaS5FcnJvckludGVyZmFjZSB7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgY2F0ZWdvcnk6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEVycm9yIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRXJyb3IoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkVycm9ySW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVhc29uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZWFzb24nXSA9IHRoaXMucmVhc29uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhdGVnb3J5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjYXRlZ29yeSddID0gdGhpcy5jYXRlZ29yeTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFdmVudCBpbXBsZW1lbnRzIGkuRXZlbnRJbnRlcmZhY2Uge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgc3RhcnREYXRldGltZTogRGF0ZTtcbiAgICBlbmREYXRldGltZTogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEV2ZW50IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRXZlbnQoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3RhcnREYXRldGltZSkge20uc3RhcnREYXRldGltZSA9IG5ldyBEYXRlKHByb3RvLnN0YXJ0RGF0ZXRpbWUpO31cbiAgICAgICAgaWYgKHByb3RvLmVuZERhdGV0aW1lKSB7bS5lbmREYXRldGltZSA9IG5ldyBEYXRlKHByb3RvLmVuZERhdGV0aW1lKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRXZlbnRJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhcnREYXRldGltZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdGFydERhdGV0aW1lICE9PSBudWxsKSB7dG9SZXR1cm5bJ3N0YXJ0RGF0ZXRpbWUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc3RhcnREYXRldGltZSA/ICh0aGlzLnN0YXJ0RGF0ZXRpbWUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3RhcnREYXRldGltZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmREYXRldGltZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5lbmREYXRldGltZSAhPT0gbnVsbCkge3RvUmV0dXJuWydlbmREYXRldGltZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5lbmREYXRldGltZSA/ICh0aGlzLmVuZERhdGV0aW1lIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmVuZERhdGV0aW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1lZGlhRW50cnkgaW1wbGVtZW50cyBpLk1lZGlhRW50cnlJbnRlcmZhY2Uge1xuICAgIG1lZGlhRW50cnlJZDogc3RyaW5nO1xuICAgIG1lZGlhVXJsOiBzdHJpbmc7XG4gICAgbWVkaWFUeXBlOiBzdHJpbmc7XG4gICAgY29udGFpbmVySWQ6IHN0cmluZztcbiAgICBtZXRhRGF0YTogTWV0YURhdGFbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IE1lZGlhRW50cnkge1xuICAgICAgICBsZXQgbSA9IG5ldyBNZWRpYUVudHJ5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm1ldGFEYXRhKSB7bS5tZXRhRGF0YSA9IHByb3RvLm1ldGFEYXRhLm1hcChNZXRhRGF0YS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5NZWRpYUVudHJ5SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVkaWFFbnRyeUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZWRpYUVudHJ5SWQnXSA9IHRoaXMubWVkaWFFbnRyeUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZWRpYVVybCddID0gdGhpcy5tZWRpYVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWRpYVR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lZGlhVHlwZSddID0gdGhpcy5tZWRpYVR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29udGFpbmVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbnRhaW5lcklkJ10gPSB0aGlzLmNvbnRhaW5lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1ldGFEYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1ldGFEYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ21ldGFEYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1ldGFEYXRhID8gKHRoaXMubWV0YURhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWV0YURhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWV0YURhdGEgaW1wbGVtZW50cyBpLk1ldGFEYXRhSW50ZXJmYWNlIHtcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgICBwcm9wZXJ0eVZhbHVlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBNZXRhRGF0YSB7XG4gICAgICAgIGxldCBtID0gbmV3IE1ldGFEYXRhKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5NZXRhRGF0YUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BlcnR5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJvcGVydHlOYW1lJ10gPSB0aGlzLnByb3BlcnR5TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wZXJ0eVZhbHVlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcm9wZXJ0eVZhbHVlJ10gPSB0aGlzLnByb3BlcnR5VmFsdWU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUG9zdFRlbXBsYXRlIGltcGxlbWVudHMgaS5Qb3N0VGVtcGxhdGVJbnRlcmZhY2Uge1xuICAgIGFjY291bnRHcm91cElkOiBzdHJpbmc7XG4gICAgdGVtcGxhdGVJZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgY3JlYXRlZDogRGF0ZTtcbiAgICB1cGRhdGVkOiBEYXRlO1xuICAgIHBvc3RUZXh0OiBzdHJpbmc7XG4gICAgcG9zdERhdGVUaW1lOiBEYXRlO1xuICAgIGdtYlBvc3RDdXN0b21pemF0aW9uOiBzdHJpbmc7XG4gICAgaW1hZ2VVcmw6IHN0cmluZztcbiAgICBpbWFnZVBhdGg6IHN0cmluZztcbiAgICBpbWFnZVNpemU6IHN0cmluZztcbiAgICBwcmV2aWV3czogc3RyaW5nO1xuICAgIG9wdGlvbnM6IHN0cmluZ1tdO1xuICAgIHZpZGVvVXJsOiBzdHJpbmc7XG4gICAgbWVkaWFFbnRyaWVzOiBNZWRpYUVudHJ5W107XG4gICAgbWV0YURhdGE6IE1ldGFEYXRhW107XG4gICAgcG9zdFR5cGU6IGUuUG9zdFR5cGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBQb3N0VGVtcGxhdGUge1xuICAgICAgICBsZXQgbSA9IG5ldyBQb3N0VGVtcGxhdGUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uY3JlYXRlZCkge20uY3JlYXRlZCA9IG5ldyBEYXRlKHByb3RvLmNyZWF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLnVwZGF0ZWQpIHttLnVwZGF0ZWQgPSBuZXcgRGF0ZShwcm90by51cGRhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by5wb3N0RGF0ZVRpbWUpIHttLnBvc3REYXRlVGltZSA9IG5ldyBEYXRlKHByb3RvLnBvc3REYXRlVGltZSk7fVxuICAgICAgICBpZiAocHJvdG8ubWVkaWFFbnRyaWVzKSB7bS5tZWRpYUVudHJpZXMgPSBwcm90by5tZWRpYUVudHJpZXMubWFwKE1lZGlhRW50cnkuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5tZXRhRGF0YSkge20ubWV0YURhdGEgPSBwcm90by5tZXRhRGF0YS5tYXAoTWV0YURhdGEuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wb3N0VHlwZSkge20ucG9zdFR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlBvc3RUeXBlPihlLlBvc3RUeXBlLCBwcm90by5wb3N0VHlwZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlBvc3RUZW1wbGF0ZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjY291bnRHcm91cElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhY2NvdW50R3JvdXBJZCddID0gdGhpcy5hY2NvdW50R3JvdXBJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50ZW1wbGF0ZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0ZW1wbGF0ZUlkJ10gPSB0aGlzLnRlbXBsYXRlSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGl0bGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpdGxlJ10gPSB0aGlzLnRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3JlYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydjcmVhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNyZWF0ZWQgPyAodGhpcy5jcmVhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNyZWF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXBkYXRlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy51cGRhdGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ3VwZGF0ZWQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudXBkYXRlZCA/ICh0aGlzLnVwZGF0ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudXBkYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wb3N0VGV4dCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncG9zdFRleHQnXSA9IHRoaXMucG9zdFRleHQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucG9zdERhdGVUaW1lICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBvc3REYXRlVGltZSAhPT0gbnVsbCkge3RvUmV0dXJuWydwb3N0RGF0ZVRpbWUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucG9zdERhdGVUaW1lID8gKHRoaXMucG9zdERhdGVUaW1lIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBvc3REYXRlVGltZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5nbWJQb3N0Q3VzdG9taXphdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZ21iUG9zdEN1c3RvbWl6YXRpb24nXSA9IHRoaXMuZ21iUG9zdEN1c3RvbWl6YXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW1hZ2VVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ltYWdlVXJsJ10gPSB0aGlzLmltYWdlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmltYWdlUGF0aCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW1hZ2VQYXRoJ10gPSB0aGlzLmltYWdlUGF0aDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbWFnZVNpemUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ltYWdlU2l6ZSddID0gdGhpcy5pbWFnZVNpemU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJldmlld3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ByZXZpZXdzJ10gPSB0aGlzLnByZXZpZXdzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29wdGlvbnMnXSA9IHRoaXMub3B0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52aWRlb1VybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndmlkZW9VcmwnXSA9IHRoaXMudmlkZW9Vcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVkaWFFbnRyaWVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1lZGlhRW50cmllcyAhPT0gbnVsbCkge3RvUmV0dXJuWydtZWRpYUVudHJpZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubWVkaWFFbnRyaWVzID8gKHRoaXMubWVkaWFFbnRyaWVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1lZGlhRW50cmllczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXRhRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZXRhRGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydtZXRhRGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tZXRhRGF0YSA/ICh0aGlzLm1ldGFEYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1ldGFEYXRhO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3RUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwb3N0VHlwZSddID0gdGhpcy5wb3N0VHlwZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY2hlZHVsZVBvc3RTdGF0dXMgaW1wbGVtZW50cyBpLlNjaGVkdWxlUG9zdFN0YXR1c0ludGVyZmFjZSB7XG4gICAgc29jaWFsUG9zdElkOiBzdHJpbmc7XG4gICAgc29jaWFsU2VydmljZUlkOiBzdHJpbmc7XG4gICAgc29jaWFsU2VydmljZUxhYmVsOiBzdHJpbmc7XG4gICAgZXJyb3I6IEVycm9yO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogU2NoZWR1bGVQb3N0U3RhdHVzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU2NoZWR1bGVQb3N0U3RhdHVzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmVycm9yKSB7bS5lcnJvciA9IEVycm9yLmZyb21Qcm90byhwcm90by5lcnJvcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlNjaGVkdWxlUG9zdFN0YXR1c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNvY2lhbFBvc3RJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc29jaWFsUG9zdElkJ10gPSB0aGlzLnNvY2lhbFBvc3RJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zb2NpYWxTZXJ2aWNlSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NvY2lhbFNlcnZpY2VJZCddID0gdGhpcy5zb2NpYWxTZXJ2aWNlSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc29jaWFsU2VydmljZUxhYmVsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzb2NpYWxTZXJ2aWNlTGFiZWwnXSA9IHRoaXMuc29jaWFsU2VydmljZUxhYmVsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVycm9yICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVycm9yICE9PSBudWxsKSB7dG9SZXR1cm5bJ2Vycm9yJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmVycm9yID8gKHRoaXMuZXJyb3IgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXJyb3I7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU29jaWFsUG9zdCBpbXBsZW1lbnRzIGkuU29jaWFsUG9zdEludGVyZmFjZSB7XG4gICAgYnVzaW5lc3NJZDogc3RyaW5nO1xuICAgIHNvY2lhbFBvc3RJZDogc3RyaW5nO1xuICAgIHBvc3RUZXh0OiBzdHJpbmc7XG4gICAgcG9zdGVkOiBEYXRlO1xuICAgIGlzRXJyb3I6IGJvb2xlYW47XG4gICAgZGVsZXRpb25TdGF0dXM6IGUuU29jaWFsUG9zdERlbGV0aW9uU3RhdHVzO1xuICAgIHNlcnZpY2U6IGUuU29jaWFsUG9zdFNlcnZpY2U7XG4gICAgcGVybWFsaW5rOiBzdHJpbmc7XG4gICAgY3JlYXRlZDogRGF0ZTtcbiAgICBwcm9maWxlVXJsOiBzdHJpbmc7XG4gICAgcHJvZmlsZUltYWdlVXJsOiBzdHJpbmc7XG4gICAgc2NoZWR1bGVkOiBEYXRlO1xuICAgIHN0YXR1czogZS5Qb3N0aW5nU3RhdHVzO1xuICAgIGltYWdlVXJsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgcGFyZW50SWQ6IHN0cmluZztcbiAgICBzb2NpYWxTZXJ2aWNlSWQ6IHN0cmluZztcbiAgICBldmVudDogRXZlbnQ7XG4gICAgY2FsbFRvQWN0aW9uOiBDYWxsVG9BY3Rpb247XG4gICAgdmlkZW9Vcmw6IHN0cmluZztcbiAgICBlcnJvcjogRXJyb3I7XG4gICAgaW1hZ2VVcmxzOiBzdHJpbmdbXTtcbiAgICBsaW5rUHJldmlld0ltYWdlVXJsOiBzdHJpbmc7XG4gICAgYnJhbmRJZDogc3RyaW5nO1xuICAgIG11bHRpbG9jYXRpb25Qb3N0SWQ6IHN0cmluZztcbiAgICBwb3N0VHlwZTogZS5Qb3N0VHlwZTtcbiAgICBtZWRpYUVudHJpZXM6IE1lZGlhRW50cnlbXTtcbiAgICBtZXRhRGF0YTogTWV0YURhdGFbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNvY2lhbFBvc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBTb2NpYWxQb3N0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnBvc3RlZCkge20ucG9zdGVkID0gbmV3IERhdGUocHJvdG8ucG9zdGVkKTt9XG4gICAgICAgIGlmIChwcm90by5kZWxldGlvblN0YXR1cykge20uZGVsZXRpb25TdGF0dXMgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlNvY2lhbFBvc3REZWxldGlvblN0YXR1cz4oZS5Tb2NpYWxQb3N0RGVsZXRpb25TdGF0dXMsIHByb3RvLmRlbGV0aW9uU3RhdHVzKTt9XG4gICAgICAgIGlmIChwcm90by5zZXJ2aWNlKSB7bS5zZXJ2aWNlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Tb2NpYWxQb3N0U2VydmljZT4oZS5Tb2NpYWxQb3N0U2VydmljZSwgcHJvdG8uc2VydmljZSk7fVxuICAgICAgICBpZiAocHJvdG8uY3JlYXRlZCkge20uY3JlYXRlZCA9IG5ldyBEYXRlKHByb3RvLmNyZWF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLnNjaGVkdWxlZCkge20uc2NoZWR1bGVkID0gbmV3IERhdGUocHJvdG8uc2NoZWR1bGVkKTt9XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuUG9zdGluZ1N0YXR1cz4oZS5Qb3N0aW5nU3RhdHVzLCBwcm90by5zdGF0dXMpO31cbiAgICAgICAgaWYgKHByb3RvLmV2ZW50KSB7bS5ldmVudCA9IEV2ZW50LmZyb21Qcm90byhwcm90by5ldmVudCk7fVxuICAgICAgICBpZiAocHJvdG8uY2FsbFRvQWN0aW9uKSB7bS5jYWxsVG9BY3Rpb24gPSBDYWxsVG9BY3Rpb24uZnJvbVByb3RvKHByb3RvLmNhbGxUb0FjdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8uZXJyb3IpIHttLmVycm9yID0gRXJyb3IuZnJvbVByb3RvKHByb3RvLmVycm9yKTt9XG4gICAgICAgIGlmIChwcm90by5wb3N0VHlwZSkge20ucG9zdFR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlBvc3RUeXBlPihlLlBvc3RUeXBlLCBwcm90by5wb3N0VHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8ubWVkaWFFbnRyaWVzKSB7bS5tZWRpYUVudHJpZXMgPSBwcm90by5tZWRpYUVudHJpZXMubWFwKE1lZGlhRW50cnkuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5tZXRhRGF0YSkge20ubWV0YURhdGEgPSBwcm90by5tZXRhRGF0YS5tYXAoTWV0YURhdGEuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU29jaWFsUG9zdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJ1c2luZXNzSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2J1c2luZXNzSWQnXSA9IHRoaXMuYnVzaW5lc3NJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zb2NpYWxQb3N0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NvY2lhbFBvc3RJZCddID0gdGhpcy5zb2NpYWxQb3N0SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucG9zdFRleHQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bvc3RUZXh0J10gPSB0aGlzLnBvc3RUZXh0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3RlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wb3N0ZWQgIT09IG51bGwpIHt0b1JldHVyblsncG9zdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBvc3RlZCA/ICh0aGlzLnBvc3RlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wb3N0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNFcnJvciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaXNFcnJvciddID0gdGhpcy5pc0Vycm9yO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlbGV0aW9uU3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZWxldGlvblN0YXR1cyddID0gdGhpcy5kZWxldGlvblN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZXJ2aWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZXJ2aWNlJ10gPSB0aGlzLnNlcnZpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGVybWFsaW5rICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwZXJtYWxpbmsnXSA9IHRoaXMucGVybWFsaW5rO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3JlYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydjcmVhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNyZWF0ZWQgPyAodGhpcy5jcmVhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNyZWF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvZmlsZVVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJvZmlsZVVybCddID0gdGhpcy5wcm9maWxlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2ZpbGVJbWFnZVVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJvZmlsZUltYWdlVXJsJ10gPSB0aGlzLnByb2ZpbGVJbWFnZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zY2hlZHVsZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc2NoZWR1bGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NjaGVkdWxlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zY2hlZHVsZWQgPyAodGhpcy5zY2hlZHVsZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2NoZWR1bGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzJ10gPSB0aGlzLnN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbWFnZVVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW1hZ2VVcmwnXSA9IHRoaXMuaW1hZ2VVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZXJuYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1c2VybmFtZSddID0gdGhpcy51c2VybmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYXJlbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGFyZW50SWQnXSA9IHRoaXMucGFyZW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc29jaWFsU2VydmljZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzb2NpYWxTZXJ2aWNlSWQnXSA9IHRoaXMuc29jaWFsU2VydmljZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV2ZW50ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V2ZW50J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV2ZW50ID8gKHRoaXMuZXZlbnQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXZlbnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2FsbFRvQWN0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNhbGxUb0FjdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydjYWxsVG9BY3Rpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY2FsbFRvQWN0aW9uID8gKHRoaXMuY2FsbFRvQWN0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNhbGxUb0FjdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52aWRlb1VybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndmlkZW9VcmwnXSA9IHRoaXMudmlkZW9Vcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXJyb3IgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXJyb3IgIT09IG51bGwpIHt0b1JldHVyblsnZXJyb3InXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXJyb3IgPyAodGhpcy5lcnJvciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lcnJvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbWFnZVVybHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ltYWdlVXJscyddID0gdGhpcy5pbWFnZVVybHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlua1ByZXZpZXdJbWFnZVVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlua1ByZXZpZXdJbWFnZVVybCddID0gdGhpcy5saW5rUHJldmlld0ltYWdlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJyYW5kSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2JyYW5kSWQnXSA9IHRoaXMuYnJhbmRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tdWx0aWxvY2F0aW9uUG9zdElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtdWx0aWxvY2F0aW9uUG9zdElkJ10gPSB0aGlzLm11bHRpbG9jYXRpb25Qb3N0SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucG9zdFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bvc3RUeXBlJ10gPSB0aGlzLnBvc3RUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhRW50cmllcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZWRpYUVudHJpZXMgIT09IG51bGwpIHt0b1JldHVyblsnbWVkaWFFbnRyaWVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1lZGlhRW50cmllcyA/ICh0aGlzLm1lZGlhRW50cmllcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5tZWRpYUVudHJpZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWV0YURhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubWV0YURhdGEgIT09IG51bGwpIHt0b1JldHVyblsnbWV0YURhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubWV0YURhdGEgPyAodGhpcy5tZXRhRGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5tZXRhRGF0YTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTb2NpYWxQb3N0RGF0YSBpbXBsZW1lbnRzIGkuU29jaWFsUG9zdERhdGFJbnRlcmZhY2Uge1xuICAgIHBvc3RUZXh0OiBzdHJpbmc7XG4gICAgaW1hZ2VVcmw6IHN0cmluZztcbiAgICBzY2hlZHVsZUZvcjogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNvY2lhbFBvc3REYXRhIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU29jaWFsUG9zdERhdGEoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc2NoZWR1bGVGb3IpIHttLnNjaGVkdWxlRm9yID0gbmV3IERhdGUocHJvdG8uc2NoZWR1bGVGb3IpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Tb2NpYWxQb3N0RGF0YUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3RUZXh0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwb3N0VGV4dCddID0gdGhpcy5wb3N0VGV4dDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbWFnZVVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW1hZ2VVcmwnXSA9IHRoaXMuaW1hZ2VVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2NoZWR1bGVGb3IgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc2NoZWR1bGVGb3IgIT09IG51bGwpIHt0b1JldHVyblsnc2NoZWR1bGVGb3InXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc2NoZWR1bGVGb3IgPyAodGhpcy5zY2hlZHVsZUZvciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zY2hlZHVsZUZvcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
434
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXBvc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc29jaWFsX3Bvc3RzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3NvY2lhbC1wb3N0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUlyQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBaUMsQ0FBQyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUFDO1FBQzNJLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBZ0M7UUFDeEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FB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KioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIENhbGxUb0FjdGlvbiBpbXBsZW1lbnRzIGkuQ2FsbFRvQWN0aW9uSW50ZXJmYWNlIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBhY3Rpb25UeXBlOiBlLkNhbGxUb0FjdGlvbkNhbGxUb0FjdGlvblR5cGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYWxsVG9BY3Rpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBDYWxsVG9BY3Rpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYWN0aW9uVHlwZSkge20uYWN0aW9uVHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuQ2FsbFRvQWN0aW9uQ2FsbFRvQWN0aW9uVHlwZT4oZS5DYWxsVG9BY3Rpb25DYWxsVG9BY3Rpb25UeXBlLCBwcm90by5hY3Rpb25UeXBlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsbFRvQWN0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1cmwnXSA9IHRoaXMudXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGlvblR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FjdGlvblR5cGUnXSA9IHRoaXMuYWN0aW9uVHlwZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvciBpbXBsZW1lbnRzIGkuRXJyb3JJbnRlcmZhY2Uge1xuICAgIHJlYXNvbjogc3RyaW5nO1xuICAgIGNhdGVnb3J5OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFcnJvciB7XG4gICAgICAgIGxldCBtID0gbmV3IEVycm9yKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FcnJvckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlYXNvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVhc29uJ10gPSB0aGlzLnJlYXNvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jYXRlZ29yeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2F0ZWdvcnknXSA9IHRoaXMuY2F0ZWdvcnk7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXZlbnQgaW1wbGVtZW50cyBpLkV2ZW50SW50ZXJmYWNlIHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHN0YXJ0RGF0ZXRpbWU6IERhdGU7XG4gICAgZW5kRGF0ZXRpbWU6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFdmVudCB7XG4gICAgICAgIGxldCBtID0gbmV3IEV2ZW50KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnN0YXJ0RGF0ZXRpbWUpIHttLnN0YXJ0RGF0ZXRpbWUgPSBuZXcgRGF0ZShwcm90by5zdGFydERhdGV0aW1lKTt9XG4gICAgICAgIGlmIChwcm90by5lbmREYXRldGltZSkge20uZW5kRGF0ZXRpbWUgPSBuZXcgRGF0ZShwcm90by5lbmREYXRldGltZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkV2ZW50SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGl0bGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpdGxlJ10gPSB0aGlzLnRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0RGF0ZXRpbWUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3RhcnREYXRldGltZSAhPT0gbnVsbCkge3RvUmV0dXJuWydzdGFydERhdGV0aW1lJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN0YXJ0RGF0ZXRpbWUgPyAodGhpcy5zdGFydERhdGV0aW1lIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN0YXJ0RGF0ZXRpbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5kRGF0ZXRpbWUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZW5kRGF0ZXRpbWUgIT09IG51bGwpIHt0b1JldHVyblsnZW5kRGF0ZXRpbWUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZW5kRGF0ZXRpbWUgPyAodGhpcy5lbmREYXRldGltZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lbmREYXRldGltZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZWRpYUVudHJ5IGltcGxlbWVudHMgaS5NZWRpYUVudHJ5SW50ZXJmYWNlIHtcbiAgICBtZWRpYUVudHJ5SWQ6IHN0cmluZztcbiAgICBtZWRpYVVybDogc3RyaW5nO1xuICAgIG1lZGlhVHlwZTogc3RyaW5nO1xuICAgIGNvbnRhaW5lcklkOiBzdHJpbmc7XG4gICAgbWV0YURhdGE6IE1ldGFEYXRhW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBNZWRpYUVudHJ5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTWVkaWFFbnRyeSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5tZXRhRGF0YSkge20ubWV0YURhdGEgPSBwcm90by5tZXRhRGF0YS5tYXAoTWV0YURhdGEuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTWVkaWFFbnRyeUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhRW50cnlJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVkaWFFbnRyeUlkJ10gPSB0aGlzLm1lZGlhRW50cnlJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWRpYVVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVkaWFVcmwnXSA9IHRoaXMubWVkaWFVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVkaWFUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZWRpYVR5cGUnXSA9IHRoaXMubWVkaWFUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbnRhaW5lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb250YWluZXJJZCddID0gdGhpcy5jb250YWluZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXRhRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZXRhRGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydtZXRhRGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tZXRhRGF0YSA/ICh0aGlzLm1ldGFEYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1ldGFEYXRhO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1ldGFEYXRhIGltcGxlbWVudHMgaS5NZXRhRGF0YUludGVyZmFjZSB7XG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG4gICAgcHJvcGVydHlWYWx1ZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTWV0YURhdGEge1xuICAgICAgICBsZXQgbSA9IG5ldyBNZXRhRGF0YSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTWV0YURhdGFJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wZXJ0eU5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Byb3BlcnR5TmFtZSddID0gdGhpcy5wcm9wZXJ0eU5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcGVydHlWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJvcGVydHlWYWx1ZSddID0gdGhpcy5wcm9wZXJ0eVZhbHVlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBvc3RUZW1wbGF0ZSBpbXBsZW1lbnRzIGkuUG9zdFRlbXBsYXRlSW50ZXJmYWNlIHtcbiAgICBhY2NvdW50R3JvdXBJZDogc3RyaW5nO1xuICAgIHRlbXBsYXRlSWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgdXBkYXRlZDogRGF0ZTtcbiAgICBwb3N0VGV4dDogc3RyaW5nO1xuICAgIHBvc3REYXRlVGltZTogRGF0ZTtcbiAgICBnbWJQb3N0Q3VzdG9taXphdGlvbjogc3RyaW5nO1xuICAgIGltYWdlVXJsOiBzdHJpbmc7XG4gICAgaW1hZ2VQYXRoOiBzdHJpbmc7XG4gICAgaW1hZ2VTaXplOiBzdHJpbmc7XG4gICAgcHJldmlld3M6IHN0cmluZztcbiAgICBvcHRpb25zOiBzdHJpbmdbXTtcbiAgICB2aWRlb1VybDogc3RyaW5nO1xuICAgIG1lZGlhRW50cmllczogTWVkaWFFbnRyeVtdO1xuICAgIG1ldGFEYXRhOiBNZXRhRGF0YVtdO1xuICAgIHBvc3RUeXBlOiBlLlBvc3RUeXBlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUG9zdFRlbXBsYXRlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUG9zdFRlbXBsYXRlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmNyZWF0ZWQpIHttLmNyZWF0ZWQgPSBuZXcgRGF0ZShwcm90by5jcmVhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by51cGRhdGVkKSB7bS51cGRhdGVkID0gbmV3IERhdGUocHJvdG8udXBkYXRlZCk7fVxuICAgICAgICBpZiAocHJvdG8ucG9zdERhdGVUaW1lKSB7bS5wb3N0RGF0ZVRpbWUgPSBuZXcgRGF0ZShwcm90by5wb3N0RGF0ZVRpbWUpO31cbiAgICAgICAgaWYgKHByb3RvLm1lZGlhRW50cmllcykge20ubWVkaWFFbnRyaWVzID0gcHJvdG8ubWVkaWFFbnRyaWVzLm1hcChNZWRpYUVudHJ5LmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ubWV0YURhdGEpIHttLm1ldGFEYXRhID0gcHJvdG8ubWV0YURhdGEubWFwKE1ldGFEYXRhLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ucG9zdFR5cGUpIHttLnBvc3RUeXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Qb3N0VHlwZT4oZS5Qb3N0VHlwZSwgcHJvdG8ucG9zdFR5cGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Qb3N0VGVtcGxhdGVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY2NvdW50R3JvdXBJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWNjb3VudEdyb3VwSWQnXSA9IHRoaXMuYWNjb3VudEdyb3VwSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGVtcGxhdGVJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGVtcGxhdGVJZCddID0gdGhpcy50ZW1wbGF0ZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpdGxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aXRsZSddID0gdGhpcy50aXRsZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXBkYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVwZGF0ZWQgPyAodGhpcy51cGRhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucG9zdFRleHQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bvc3RUZXh0J10gPSB0aGlzLnBvc3RUZXh0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3REYXRlVGltZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wb3N0RGF0ZVRpbWUgIT09IG51bGwpIHt0b1JldHVyblsncG9zdERhdGVUaW1lJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBvc3REYXRlVGltZSA/ICh0aGlzLnBvc3REYXRlVGltZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wb3N0RGF0ZVRpbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ21iUG9zdEN1c3RvbWl6YXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2dtYlBvc3RDdXN0b21pemF0aW9uJ10gPSB0aGlzLmdtYlBvc3RDdXN0b21pemF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmltYWdlVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbWFnZVVybCddID0gdGhpcy5pbWFnZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbWFnZVBhdGggIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ltYWdlUGF0aCddID0gdGhpcy5pbWFnZVBhdGg7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW1hZ2VTaXplICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbWFnZVNpemUnXSA9IHRoaXMuaW1hZ2VTaXplO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZXZpZXdzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcmV2aWV3cyddID0gdGhpcy5wcmV2aWV3czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcHRpb25zJ10gPSB0aGlzLm9wdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmlkZW9VcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZpZGVvVXJsJ10gPSB0aGlzLnZpZGVvVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhRW50cmllcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZWRpYUVudHJpZXMgIT09IG51bGwpIHt0b1JldHVyblsnbWVkaWFFbnRyaWVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1lZGlhRW50cmllcyA/ICh0aGlzLm1lZGlhRW50cmllcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5tZWRpYUVudHJpZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWV0YURhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubWV0YURhdGEgIT09IG51bGwpIHt0b1JldHVyblsnbWV0YURhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubWV0YURhdGEgPyAodGhpcy5tZXRhRGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5tZXRhRGF0YTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wb3N0VHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncG9zdFR5cGUnXSA9IHRoaXMucG9zdFR5cGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVQb3N0U3RhdHVzIGltcGxlbWVudHMgaS5TY2hlZHVsZVBvc3RTdGF0dXNJbnRlcmZhY2Uge1xuICAgIHNvY2lhbFBvc3RJZDogc3RyaW5nO1xuICAgIHNvY2lhbFNlcnZpY2VJZDogc3RyaW5nO1xuICAgIHNvY2lhbFNlcnZpY2VMYWJlbDogc3RyaW5nO1xuICAgIGVycm9yOiBFcnJvcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNjaGVkdWxlUG9zdFN0YXR1cyB7XG4gICAgICAgIGxldCBtID0gbmV3IFNjaGVkdWxlUG9zdFN0YXR1cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5lcnJvcikge20uZXJyb3IgPSBFcnJvci5mcm9tUHJvdG8ocHJvdG8uZXJyb3IpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5TY2hlZHVsZVBvc3RTdGF0dXNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zb2NpYWxQb3N0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NvY2lhbFBvc3RJZCddID0gdGhpcy5zb2NpYWxQb3N0SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc29jaWFsU2VydmljZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzb2NpYWxTZXJ2aWNlSWQnXSA9IHRoaXMuc29jaWFsU2VydmljZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNvY2lhbFNlcnZpY2VMYWJlbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc29jaWFsU2VydmljZUxhYmVsJ10gPSB0aGlzLnNvY2lhbFNlcnZpY2VMYWJlbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lcnJvciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5lcnJvciAhPT0gbnVsbCkge3RvUmV0dXJuWydlcnJvciddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5lcnJvciA/ICh0aGlzLmVycm9yIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmVycm9yO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvY2lhbFBvc3QgaW1wbGVtZW50cyBpLlNvY2lhbFBvc3RJbnRlcmZhY2Uge1xuICAgIGJ1c2luZXNzSWQ6IHN0cmluZztcbiAgICBzb2NpYWxQb3N0SWQ6IHN0cmluZztcbiAgICBwb3N0VGV4dDogc3RyaW5nO1xuICAgIHBvc3RlZDogRGF0ZTtcbiAgICBpc0Vycm9yOiBib29sZWFuO1xuICAgIGRlbGV0aW9uU3RhdHVzOiBlLlNvY2lhbFBvc3REZWxldGlvblN0YXR1cztcbiAgICBzZXJ2aWNlOiBlLlNvY2lhbFBvc3RTZXJ2aWNlO1xuICAgIHBlcm1hbGluazogc3RyaW5nO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgcHJvZmlsZVVybDogc3RyaW5nO1xuICAgIHByb2ZpbGVJbWFnZVVybDogc3RyaW5nO1xuICAgIHNjaGVkdWxlZDogRGF0ZTtcbiAgICBzdGF0dXM6IGUuUG9zdGluZ1N0YXR1cztcbiAgICBpbWFnZVVybDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHBhcmVudElkOiBzdHJpbmc7XG4gICAgc29jaWFsU2VydmljZUlkOiBzdHJpbmc7XG4gICAgZXZlbnQ6IEV2ZW50O1xuICAgIGNhbGxUb0FjdGlvbjogQ2FsbFRvQWN0aW9uO1xuICAgIHZpZGVvVXJsOiBzdHJpbmc7XG4gICAgZXJyb3I6IEVycm9yO1xuICAgIGltYWdlVXJsczogc3RyaW5nW107XG4gICAgbGlua1ByZXZpZXdJbWFnZVVybDogc3RyaW5nO1xuICAgIGJyYW5kSWQ6IHN0cmluZztcbiAgICBtdWx0aWxvY2F0aW9uUG9zdElkOiBzdHJpbmc7XG4gICAgcG9zdFR5cGU6IGUuUG9zdFR5cGU7XG4gICAgbWVkaWFFbnRyaWVzOiBNZWRpYUVudHJ5W107XG4gICAgbWV0YURhdGE6IE1ldGFEYXRhW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTb2NpYWxQb3N0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU29jaWFsUG9zdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5wb3N0ZWQpIHttLnBvc3RlZCA9IG5ldyBEYXRlKHByb3RvLnBvc3RlZCk7fVxuICAgICAgICBpZiAocHJvdG8uZGVsZXRpb25TdGF0dXMpIHttLmRlbGV0aW9uU3RhdHVzID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Tb2NpYWxQb3N0RGVsZXRpb25TdGF0dXM+KGUuU29jaWFsUG9zdERlbGV0aW9uU3RhdHVzLCBwcm90by5kZWxldGlvblN0YXR1cyk7fVxuICAgICAgICBpZiAocHJvdG8uc2VydmljZSkge20uc2VydmljZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU29jaWFsUG9zdFNlcnZpY2U+KGUuU29jaWFsUG9zdFNlcnZpY2UsIHByb3RvLnNlcnZpY2UpO31cbiAgICAgICAgaWYgKHByb3RvLmNyZWF0ZWQpIHttLmNyZWF0ZWQgPSBuZXcgRGF0ZShwcm90by5jcmVhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by5zY2hlZHVsZWQpIHttLnNjaGVkdWxlZCA9IG5ldyBEYXRlKHByb3RvLnNjaGVkdWxlZCk7fVxuICAgICAgICBpZiAocHJvdG8uc3RhdHVzKSB7bS5zdGF0dXMgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlBvc3RpbmdTdGF0dXM+KGUuUG9zdGluZ1N0YXR1cywgcHJvdG8uc3RhdHVzKTt9XG4gICAgICAgIGlmIChwcm90by5ldmVudCkge20uZXZlbnQgPSBFdmVudC5mcm9tUHJvdG8ocHJvdG8uZXZlbnQpO31cbiAgICAgICAgaWYgKHByb3RvLmNhbGxUb0FjdGlvbikge20uY2FsbFRvQWN0aW9uID0gQ2FsbFRvQWN0aW9uLmZyb21Qcm90byhwcm90by5jYWxsVG9BY3Rpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmVycm9yKSB7bS5lcnJvciA9IEVycm9yLmZyb21Qcm90byhwcm90by5lcnJvcik7fVxuICAgICAgICBpZiAocHJvdG8ucG9zdFR5cGUpIHttLnBvc3RUeXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Qb3N0VHlwZT4oZS5Qb3N0VHlwZSwgcHJvdG8ucG9zdFR5cGUpO31cbiAgICAgICAgaWYgKHByb3RvLm1lZGlhRW50cmllcykge20ubWVkaWFFbnRyaWVzID0gcHJvdG8ubWVkaWFFbnRyaWVzLm1hcChNZWRpYUVudHJ5LmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ubWV0YURhdGEpIHttLm1ldGFEYXRhID0gcHJvdG8ubWV0YURhdGEubWFwKE1ldGFEYXRhLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlNvY2lhbFBvc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idXNpbmVzc0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydidXNpbmVzc0lkJ10gPSB0aGlzLmJ1c2luZXNzSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc29jaWFsUG9zdElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzb2NpYWxQb3N0SWQnXSA9IHRoaXMuc29jaWFsUG9zdElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3RUZXh0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwb3N0VGV4dCddID0gdGhpcy5wb3N0VGV4dDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wb3N0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucG9zdGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Bvc3RlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wb3N0ZWQgPyAodGhpcy5wb3N0ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucG9zdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlzRXJyb3IgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzRXJyb3InXSA9IHRoaXMuaXNFcnJvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZWxldGlvblN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVsZXRpb25TdGF0dXMnXSA9IHRoaXMuZGVsZXRpb25TdGF0dXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2VydmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2VydmljZSddID0gdGhpcy5zZXJ2aWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBlcm1hbGluayAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGVybWFsaW5rJ10gPSB0aGlzLnBlcm1hbGluazt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2ZpbGVVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Byb2ZpbGVVcmwnXSA9IHRoaXMucHJvZmlsZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9maWxlSW1hZ2VVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Byb2ZpbGVJbWFnZVVybCddID0gdGhpcy5wcm9maWxlSW1hZ2VVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2NoZWR1bGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNjaGVkdWxlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydzY2hlZHVsZWQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc2NoZWR1bGVkID8gKHRoaXMuc2NoZWR1bGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnNjaGVkdWxlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0dXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXR1cyddID0gdGhpcy5zdGF0dXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW1hZ2VVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ltYWdlVXJsJ10gPSB0aGlzLmltYWdlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hbWUnXSA9IHRoaXMubmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51c2VybmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlcm5hbWUnXSA9IHRoaXMudXNlcm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFyZW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BhcmVudElkJ10gPSB0aGlzLnBhcmVudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNvY2lhbFNlcnZpY2VJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc29jaWFsU2VydmljZUlkJ10gPSB0aGlzLnNvY2lhbFNlcnZpY2VJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ldmVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5ldmVudCAhPT0gbnVsbCkge3RvUmV0dXJuWydldmVudCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5ldmVudCA/ICh0aGlzLmV2ZW50IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmV2ZW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbGxUb0FjdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jYWxsVG9BY3Rpb24gIT09IG51bGwpIHt0b1JldHVyblsnY2FsbFRvQWN0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNhbGxUb0FjdGlvbiA/ICh0aGlzLmNhbGxUb0FjdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jYWxsVG9BY3Rpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmlkZW9VcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZpZGVvVXJsJ10gPSB0aGlzLnZpZGVvVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVycm9yICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVycm9yICE9PSBudWxsKSB7dG9SZXR1cm5bJ2Vycm9yJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmVycm9yID8gKHRoaXMuZXJyb3IgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXJyb3I7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW1hZ2VVcmxzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbWFnZVVybHMnXSA9IHRoaXMuaW1hZ2VVcmxzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpbmtQcmV2aWV3SW1hZ2VVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xpbmtQcmV2aWV3SW1hZ2VVcmwnXSA9IHRoaXMubGlua1ByZXZpZXdJbWFnZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5icmFuZElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydicmFuZElkJ10gPSB0aGlzLmJyYW5kSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubXVsdGlsb2NhdGlvblBvc3RJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbXVsdGlsb2NhdGlvblBvc3RJZCddID0gdGhpcy5tdWx0aWxvY2F0aW9uUG9zdElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3RUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwb3N0VHlwZSddID0gdGhpcy5wb3N0VHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWRpYUVudHJpZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubWVkaWFFbnRyaWVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ21lZGlhRW50cmllcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tZWRpYUVudHJpZXMgPyAodGhpcy5tZWRpYUVudHJpZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWVkaWFFbnRyaWVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1ldGFEYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1ldGFEYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ21ldGFEYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1ldGFEYXRhID8gKHRoaXMubWV0YURhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWV0YURhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU29jaWFsUG9zdERhdGEgaW1wbGVtZW50cyBpLlNvY2lhbFBvc3REYXRhSW50ZXJmYWNlIHtcbiAgICBwb3N0VGV4dDogc3RyaW5nO1xuICAgIGltYWdlVXJsOiBzdHJpbmc7XG4gICAgc2NoZWR1bGVGb3I6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTb2NpYWxQb3N0RGF0YSB7XG4gICAgICAgIGxldCBtID0gbmV3IFNvY2lhbFBvc3REYXRhKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnNjaGVkdWxlRm9yKSB7bS5zY2hlZHVsZUZvciA9IG5ldyBEYXRlKHByb3RvLnNjaGVkdWxlRm9yKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU29jaWFsUG9zdERhdGFJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wb3N0VGV4dCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncG9zdFRleHQnXSA9IHRoaXMucG9zdFRleHQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW1hZ2VVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ltYWdlVXJsJ10gPSB0aGlzLmltYWdlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNjaGVkdWxlRm9yICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNjaGVkdWxlRm9yICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NjaGVkdWxlRm9yJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNjaGVkdWxlRm9yID8gKHRoaXMuc2NoZWR1bGVGb3IgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2NoZWR1bGVGb3I7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
@@ -5,12 +5,6 @@ export function enumStringToValue(enumRef, value) {
5
5
  return enumRef[value];
6
6
  }
7
7
  export class TenorGifMediaEntry {
8
- constructor(kwargs) {
9
- if (!kwargs) {
10
- return;
11
- }
12
- Object.assign(this, kwargs);
13
- }
14
8
  static fromProto(proto) {
15
9
  let m = new TenorGifMediaEntry();
16
10
  m = Object.assign(m, proto);
@@ -19,6 +13,12 @@ export class TenorGifMediaEntry {
19
13
  }
20
14
  return m;
21
15
  }
16
+ constructor(kwargs) {
17
+ if (!kwargs) {
18
+ return;
19
+ }
20
+ Object.assign(this, kwargs);
21
+ }
22
22
  toApiJson() {
23
23
  const toReturn = {};
24
24
  if (typeof this.key !== 'undefined') {
@@ -31,12 +31,6 @@ export class TenorGifMediaEntry {
31
31
  }
32
32
  }
33
33
  export class TenorGif {
34
- constructor(kwargs) {
35
- if (!kwargs) {
36
- return;
37
- }
38
- Object.assign(this, kwargs);
39
- }
40
34
  static fromProto(proto) {
41
35
  let m = new TenorGif();
42
36
  m = Object.assign(m, proto);
@@ -45,6 +39,12 @@ export class TenorGif {
45
39
  }
46
40
  return m;
47
41
  }
42
+ constructor(kwargs) {
43
+ if (!kwargs) {
44
+ return;
45
+ }
46
+ Object.assign(this, kwargs);
47
+ }
48
48
  toApiJson() {
49
49
  const toReturn = {};
50
50
  if (typeof this.media !== 'undefined' && this.media !== null) {
@@ -69,12 +69,6 @@ export class TenorGif {
69
69
  }
70
70
  }
71
71
  export class TenorMediaObject {
72
- constructor(kwargs) {
73
- if (!kwargs) {
74
- return;
75
- }
76
- Object.assign(this, kwargs);
77
- }
78
72
  static fromProto(proto) {
79
73
  let m = new TenorMediaObject();
80
74
  m = Object.assign(m, proto);
@@ -86,6 +80,12 @@ export class TenorMediaObject {
86
80
  }
87
81
  return m;
88
82
  }
83
+ constructor(kwargs) {
84
+ if (!kwargs) {
85
+ return;
86
+ }
87
+ Object.assign(this, kwargs);
88
+ }
89
89
  toApiJson() {
90
90
  const toReturn = {};
91
91
  if (typeof this.preview !== 'undefined') {
@@ -103,4 +103,4 @@ export class TenorMediaObject {
103
103
  return toReturn;
104
104
  }
105
105
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVub3ItZ2lmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc29jaWFsX3Bvc3RzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3Rlbm9yLWdpZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBVzNCLFlBQVksTUFBc0M7UUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFaRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ2pDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFBQyxDQUFDLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBQztRQUNyRSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FB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KioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgVGVub3JHaWZNZWRpYUVudHJ5IGltcGxlbWVudHMgaS5UZW5vckdpZk1lZGlhRW50cnlJbnRlcmZhY2Uge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBUZW5vck1lZGlhT2JqZWN0O1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGVub3JHaWZNZWRpYUVudHJ5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGVub3JHaWZNZWRpYUVudHJ5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnZhbHVlKSB7bS52YWx1ZSA9IFRlbm9yTWVkaWFPYmplY3QuZnJvbVByb3RvKHByb3RvLnZhbHVlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVGVub3JHaWZNZWRpYUVudHJ5SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydrZXknXSA9IHRoaXMua2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnZhbHVlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3ZhbHVlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnZhbHVlID8gKHRoaXMudmFsdWUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudmFsdWU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVub3JHaWYgaW1wbGVtZW50cyBpLlRlbm9yR2lmSW50ZXJmYWNlIHtcbiAgICBtZWRpYToge1trZXk6IHN0cmluZ106IFRlbm9yTWVkaWFPYmplY3R9O1xuICAgIHRhZ3M6IHN0cmluZ1tdO1xuICAgIGhhc0F1ZGlvOiBib29sZWFuO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICBjcmVhdGVkOiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUZW5vckdpZiB7XG4gICAgICAgIGxldCBtID0gbmV3IFRlbm9yR2lmKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm1lZGlhKSB7bS5tZWRpYSA9IE9iamVjdC5rZXlzKHByb3RvLm1lZGlhKS5yZWR1Y2U8YW55Pigob2JqLCBrKSA9PiB7IG9ialtrXSA9IFRlbm9yTWVkaWFPYmplY3QuZnJvbVByb3RvKHByb3RvLm1lZGlhW2tdKTsgcmV0dXJuIG9iajsgfSwge30pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UZW5vckdpZkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1lZGlhICE9PSBudWxsKSB7dG9SZXR1cm5bJ21lZGlhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1lZGlhID8gKHRoaXMubWVkaWEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWVkaWE7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFncyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGFncyddID0gdGhpcy50YWdzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhhc0F1ZGlvICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNBdWRpbyddID0gdGhpcy5oYXNBdWRpbzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NyZWF0ZWQnXSA9IHRoaXMuY3JlYXRlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5vck1lZGlhT2JqZWN0IGltcGxlbWVudHMgaS5UZW5vck1lZGlhT2JqZWN0SW50ZXJmYWNlIHtcbiAgICBwcmV2aWV3OiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgZGltZW5zaW9uczogbnVtYmVyW107XG4gICAgc2l6ZTogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGVub3JNZWRpYU9iamVjdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRlbm9yTWVkaWFPYmplY3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZGltZW5zaW9ucykge20uZGltZW5zaW9ucyA9IHByb3RvLmRpbWVuc2lvbnMubWFwKChpOiBhbnkpID0+IHBhcnNlSW50KGksIDEwKSk7fVxuICAgICAgICBpZiAocHJvdG8uc2l6ZSkge20uc2l6ZSA9IHBhcnNlSW50KHByb3RvLnNpemUsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVGVub3JNZWRpYU9iamVjdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZXZpZXcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ByZXZpZXcnXSA9IHRoaXMucHJldmlldzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VybCddID0gdGhpcy51cmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGltZW5zaW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGltZW5zaW9ucyddID0gdGhpcy5kaW1lbnNpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNpemUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NpemUnXSA9IHRoaXMuc2l6ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVub3ItZ2lmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc29jaWFsX3Bvc3RzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3Rlbm9yLWdpZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBSTNCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDakMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtZQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUFDO1FBQ3JFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBc0M7UUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FB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KioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgVGVub3JHaWZNZWRpYUVudHJ5IGltcGxlbWVudHMgaS5UZW5vckdpZk1lZGlhRW50cnlJbnRlcmZhY2Uge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBUZW5vck1lZGlhT2JqZWN0O1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGVub3JHaWZNZWRpYUVudHJ5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGVub3JHaWZNZWRpYUVudHJ5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnZhbHVlKSB7bS52YWx1ZSA9IFRlbm9yTWVkaWFPYmplY3QuZnJvbVByb3RvKHByb3RvLnZhbHVlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVGVub3JHaWZNZWRpYUVudHJ5SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydrZXknXSA9IHRoaXMua2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnZhbHVlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3ZhbHVlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnZhbHVlID8gKHRoaXMudmFsdWUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudmFsdWU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVub3JHaWYgaW1wbGVtZW50cyBpLlRlbm9yR2lmSW50ZXJmYWNlIHtcbiAgICBtZWRpYToge1trZXk6IHN0cmluZ106IFRlbm9yTWVkaWFPYmplY3R9O1xuICAgIHRhZ3M6IHN0cmluZ1tdO1xuICAgIGhhc0F1ZGlvOiBib29sZWFuO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICBjcmVhdGVkOiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUZW5vckdpZiB7XG4gICAgICAgIGxldCBtID0gbmV3IFRlbm9yR2lmKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm1lZGlhKSB7bS5tZWRpYSA9IE9iamVjdC5rZXlzKHByb3RvLm1lZGlhKS5yZWR1Y2U8YW55Pigob2JqLCBrKSA9PiB7IG9ialtrXSA9IFRlbm9yTWVkaWFPYmplY3QuZnJvbVByb3RvKHByb3RvLm1lZGlhW2tdKTsgcmV0dXJuIG9iajsgfSwge30pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UZW5vckdpZkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1lZGlhICE9PSBudWxsKSB7dG9SZXR1cm5bJ21lZGlhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1lZGlhID8gKHRoaXMubWVkaWEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWVkaWE7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFncyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGFncyddID0gdGhpcy50YWdzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhhc0F1ZGlvICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNBdWRpbyddID0gdGhpcy5oYXNBdWRpbzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NyZWF0ZWQnXSA9IHRoaXMuY3JlYXRlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5vck1lZGlhT2JqZWN0IGltcGxlbWVudHMgaS5UZW5vck1lZGlhT2JqZWN0SW50ZXJmYWNlIHtcbiAgICBwcmV2aWV3OiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgZGltZW5zaW9uczogbnVtYmVyW107XG4gICAgc2l6ZTogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGVub3JNZWRpYU9iamVjdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFRlbm9yTWVkaWFPYmplY3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZGltZW5zaW9ucykge20uZGltZW5zaW9ucyA9IHByb3RvLmRpbWVuc2lvbnMubWFwKChpOiBhbnkpID0+IHBhcnNlSW50KGksIDEwKSk7fVxuICAgICAgICBpZiAocHJvdG8uc2l6ZSkge20uc2l6ZSA9IHBhcnNlSW50KHByb3RvLnNpemUsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVGVub3JNZWRpYU9iamVjdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZXZpZXcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ByZXZpZXcnXSA9IHRoaXMucHJldmlldzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VybCddID0gdGhpcy51cmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGltZW5zaW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGltZW5zaW9ucyddID0gdGhpcy5kaW1lbnNpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNpemUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NpemUnXSA9IHRoaXMuc2l6ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
@@ -37,10 +37,10 @@ export class PartnerSocialPostsApiService {
37
37
  .pipe(map(resp => PartnerListScheduledPostsResponse.fromProto(resp)));
38
38
  }
39
39
  }
40
- PartnerSocialPostsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PartnerSocialPostsApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
41
- PartnerSocialPostsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PartnerSocialPostsApiService, providedIn: 'root' });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PartnerSocialPostsApiService, decorators: [{
40
+ PartnerSocialPostsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: PartnerSocialPostsApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ PartnerSocialPostsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: PartnerSocialPostsApiService, providedIn: 'root' });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: PartnerSocialPostsApiService, decorators: [{
43
43
  type: Injectable,
44
44
  args: [{ providedIn: 'root' }]
45
45
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydG5lci1zb2NpYWwtcG9zdHMuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL3BhcnRuZXItc29jaWFsLXBvc3RzLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGlDQUFpQyxFQUNqQyxzQ0FBc0MsR0FDN0MsTUFBTSxZQUFZLENBQUM7QUFLcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyw0QkFBNEI7SUFHckMsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFGOUQsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBR2hELENBQUM7SUFFTyxVQUFVO1FBQ2QsT0FBTztZQUNILE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDckIsY0FBYyxFQUFFLGtCQUFrQjthQUNyQyxDQUFDO1lBQ0YsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhLENBQUMsQ0FBMkY7UUFDckcsTUFBTSxPQUFPLEdBQUcsQ0FBMEMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMEMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZDLElBQUksQ0FBQyxLQUFLLEdBQUcsa0RBQWtELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNySyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2pFLENBQUM7SUFDVixDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsQ0FBMkY7UUFDOUcsTUFBTSxPQUFPLEdBQUcsQ0FBMEMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMEMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZDLElBQUksQ0FBQyxLQUFLLEdBQUcsMkRBQTJELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM5SyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2pFLENBQUM7SUFDVixDQUFDOzswSEE1QlEsNEJBQTRCOzhIQUE1Qiw0QkFBNEIsY0FEaEIsTUFBTTs0RkFDbEIsNEJBQTRCO2tCQUR4QyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2UsXG4gICAgICAgIFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0LFxufSBmcm9tICcuL29iamVjdHMvJztcbmltcG9ydCB7XG4gICAgICAgIFBhcnRuZXJMaXN0U2NoZWR1bGVkUG9zdHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgUGFydG5lckxpc3RTY2hlZHVsZWRTb2NpYWxQb3N0c1JlcXVlc3RJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUGFydG5lclNvY2lhbFBvc3RzQXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbGlzdFNjaGVkdWxlZChyOiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFNvY2lhbFBvc3RzUmVxdWVzdCB8IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpIDogbmV3IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UGFydG5lckxpc3RTY2hlZHVsZWRQb3N0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvc29jaWFscG9zdHMudjEuUGFydG5lclNvY2lhbFBvc3RzL0xpc3RTY2hlZHVsZWRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdFNjaGVkdWxlZEJ5Q3JlYXRlZChyOiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFNvY2lhbFBvc3RzUmVxdWVzdCB8IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpIDogbmV3IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UGFydG5lckxpc3RTY2hlZHVsZWRQb3N0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvc29jaWFscG9zdHMudjEuUGFydG5lclNvY2lhbFBvc3RzL0xpc3RTY2hlZHVsZWRCeUNyZWF0ZWRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydG5lci1zb2NpYWwtcG9zdHMuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL3BhcnRuZXItc29jaWFsLXBvc3RzLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGlDQUFpQyxFQUNqQyxzQ0FBc0MsR0FDN0MsTUFBTSxZQUFZLENBQUM7QUFLcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyw0QkFBNEI7SUFHckMsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFGOUQsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBR2hELENBQUM7SUFFTyxVQUFVO1FBQ2QsT0FBTztZQUNILE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDckIsY0FBYyxFQUFFLGtCQUFrQjthQUNyQyxDQUFDO1lBQ0YsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhLENBQUMsQ0FBMkY7UUFDckcsTUFBTSxPQUFPLEdBQUcsQ0FBMEMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMEMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZDLElBQUksQ0FBQyxLQUFLLEdBQUcsa0RBQWtELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNySyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2pFLENBQUM7SUFDVixDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsQ0FBMkY7UUFDOUcsTUFBTSxPQUFPLEdBQUcsQ0FBMEMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMEMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZDLElBQUksQ0FBQyxLQUFLLEdBQUcsMkRBQTJELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM5SyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2pFLENBQUM7SUFDVixDQUFDOzt5SEE1QlEsNEJBQTRCOzZIQUE1Qiw0QkFBNEIsY0FEaEIsTUFBTTsyRkFDbEIsNEJBQTRCO2tCQUR4QyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2UsXG4gICAgICAgIFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0LFxufSBmcm9tICcuL29iamVjdHMvJztcbmltcG9ydCB7XG4gICAgICAgIFBhcnRuZXJMaXN0U2NoZWR1bGVkUG9zdHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgUGFydG5lckxpc3RTY2hlZHVsZWRTb2NpYWxQb3N0c1JlcXVlc3RJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUGFydG5lclNvY2lhbFBvc3RzQXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbGlzdFNjaGVkdWxlZChyOiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFNvY2lhbFBvc3RzUmVxdWVzdCB8IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpIDogbmV3IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UGFydG5lckxpc3RTY2hlZHVsZWRQb3N0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvc29jaWFscG9zdHMudjEuUGFydG5lclNvY2lhbFBvc3RzL0xpc3RTY2hlZHVsZWRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdFNjaGVkdWxlZEJ5Q3JlYXRlZChyOiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFNvY2lhbFBvc3RzUmVxdWVzdCB8IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0PnIpIDogbmV3IFBhcnRuZXJMaXN0U2NoZWR1bGVkU29jaWFsUG9zdHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UGFydG5lckxpc3RTY2hlZHVsZWRQb3N0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvc29jaWFscG9zdHMudjEuUGFydG5lclNvY2lhbFBvc3RzL0xpc3RTY2hlZHVsZWRCeUNyZWF0ZWRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBQYXJ0bmVyTGlzdFNjaGVkdWxlZFBvc3RzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
@@ -32,10 +32,10 @@ export class PixabayImagesApiService {
32
32
  .pipe(map(resp => ListPixabayImagesResponse.fromProto(resp)));
33
33
  }
34
34
  }
35
- PixabayImagesApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PixabayImagesApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
36
- PixabayImagesApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PixabayImagesApiService, providedIn: 'root' });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PixabayImagesApiService, decorators: [{
35
+ PixabayImagesApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: PixabayImagesApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ PixabayImagesApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: PixabayImagesApiService, providedIn: 'root' });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: PixabayImagesApiService, decorators: [{
38
38
  type: Injectable,
39
39
  args: [{ providedIn: 'root' }]
40
40
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4YWJheS1pbWFnZXMuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL3BpeGFiYXktaW1hZ2VzLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLHdCQUF3QixFQUN4Qix5QkFBeUIsR0FDaEMsTUFBTSxZQUFZLENBQUM7QUFLcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyx1QkFBdUI7SUFHaEMsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFGOUQsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBR2hELENBQUM7SUFFTyxVQUFVO1FBQ2QsT0FBTztZQUNILE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDckIsY0FBYyxFQUFFLGtCQUFrQjthQUNyQyxDQUFDO1lBQ0YsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUErRDtRQUM3RSxNQUFNLE9BQU8sR0FBRyxDQUE0QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUE0QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBcUMsSUFBSSxDQUFDLEtBQUssR0FBRyxpREFBaUQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzVKLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUNWLENBQUM7O3FIQXJCUSx1QkFBdUI7eUhBQXZCLHVCQUF1QixjQURYLE1BQU07NEZBQ2xCLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEFQSSBTZXJ2aWNlLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICAgICAgTGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0LFxuICAgICAgICBMaXN0UGl4YWJheUltYWdlc1Jlc3BvbnNlLFxufSBmcm9tICcuL29iamVjdHMvJztcbmltcG9ydCB7XG4gICAgICAgIExpc3RQaXhhYmF5SW1hZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFBpeGFiYXlJbWFnZXNSZXNwb25zZUludGVyZmFjZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLyc7XG5pbXBvcnQge0h0dHBIZWFkZXJzLCBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4uL19nZW5lcmF0ZWQvaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBQaXhhYmF5SW1hZ2VzQXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbGlzdFBpeGFiYXlJbWFnZXMocjogTGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0IHwgTGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0UGl4YWJheUltYWdlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0UGl4YWJheUltYWdlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RQaXhhYmF5SW1hZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RQaXhhYmF5SW1hZ2VzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9zb2NpYWxwb3N0cy52MS5QaXhhYmF5SW1hZ2VzL0xpc3RQaXhhYmF5SW1hZ2VzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFBpeGFiYXlJbWFnZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBcbn1cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4YWJheS1pbWFnZXMuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL3BpeGFiYXktaW1hZ2VzLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLHdCQUF3QixFQUN4Qix5QkFBeUIsR0FDaEMsTUFBTSxZQUFZLENBQUM7QUFLcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyx1QkFBdUI7SUFHaEMsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFGOUQsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBR2hELENBQUM7SUFFTyxVQUFVO1FBQ2QsT0FBTztZQUNILE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDckIsY0FBYyxFQUFFLGtCQUFrQjthQUNyQyxDQUFDO1lBQ0YsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUErRDtRQUM3RSxNQUFNLE9BQU8sR0FBRyxDQUE0QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUE0QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBcUMsSUFBSSxDQUFDLEtBQUssR0FBRyxpREFBaUQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzVKLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUNWLENBQUM7O29IQXJCUSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQURYLE1BQU07MkZBQ2xCLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEFQSSBTZXJ2aWNlLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICAgICAgTGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0LFxuICAgICAgICBMaXN0UGl4YWJheUltYWdlc1Jlc3BvbnNlLFxufSBmcm9tICcuL29iamVjdHMvJztcbmltcG9ydCB7XG4gICAgICAgIExpc3RQaXhhYmF5SW1hZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFBpeGFiYXlJbWFnZXNSZXNwb25zZUludGVyZmFjZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLyc7XG5pbXBvcnQge0h0dHBIZWFkZXJzLCBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4uL19nZW5lcmF0ZWQvaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBQaXhhYmF5SW1hZ2VzQXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbGlzdFBpeGFiYXlJbWFnZXMocjogTGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0IHwgTGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0UGl4YWJheUltYWdlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0UGl4YWJheUltYWdlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFBpeGFiYXlJbWFnZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RQaXhhYmF5SW1hZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RQaXhhYmF5SW1hZ2VzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9zb2NpYWxwb3N0cy52MS5QaXhhYmF5SW1hZ2VzL0xpc3RQaXhhYmF5SW1hZ2VzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFBpeGFiYXlJbWFnZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBcbn1cbiJdfQ==