@vendasta/social-posts 5.46.0 → 5.48.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.
- package/esm2020/lib/_internal/blog-website.api.service.mjs +40 -0
- package/esm2020/lib/_internal/drafts.api.service.mjs +82 -0
- package/esm2020/lib/_internal/enums/drafts-api.enum.mjs +14 -0
- package/esm2020/lib/_internal/enums/drafts.enum.mjs +27 -0
- package/esm2020/lib/_internal/enums/engagement.enum.mjs +13 -0
- package/esm2020/lib/_internal/enums/index.mjs +7 -1
- package/esm2020/lib/_internal/enums/provisioning.enum.mjs +14 -0
- package/esm2020/lib/_internal/enums/social-content.enum.mjs +51 -0
- package/esm2020/lib/_internal/enums/stock-image.enum.mjs +19 -0
- package/esm2020/lib/_internal/image-library.api.service.mjs +40 -0
- package/esm2020/lib/_internal/index.mjs +7 -1
- package/esm2020/lib/_internal/interfaces/blog-website-info.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/drafts-api.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/drafts.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/engagement.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/index.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/provisioning.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/social-content.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/social-post-stats.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/stock-image.interface.mjs +8 -0
- package/esm2020/lib/_internal/multilocation-post.api.service.mjs +2 -3
- package/esm2020/lib/_internal/objects/blog-website-info.mjs +149 -0
- package/esm2020/lib/_internal/objects/drafts-api.mjs +622 -0
- package/esm2020/lib/_internal/objects/drafts.mjs +446 -0
- package/esm2020/lib/_internal/objects/engagement.mjs +221 -0
- package/esm2020/lib/_internal/objects/index.mjs +9 -2
- package/esm2020/lib/_internal/objects/provisioning.mjs +43 -0
- package/esm2020/lib/_internal/objects/social-content.mjs +384 -0
- package/esm2020/lib/_internal/objects/social-post-stats.mjs +7 -1
- package/esm2020/lib/_internal/objects/stock-image.mjs +168 -0
- package/esm2020/lib/_internal/provisioning.api.service.mjs +38 -0
- package/esm2020/lib/_internal/social-content.api.service.mjs +40 -0
- package/esm2020/lib/_internal/social-post-engagements.api.service.mjs +40 -0
- package/esm2020/lib/drafts.service.mjs +46 -0
- package/esm2020/lib/index.mjs +2 -1
- package/esm2020/lib/multilocation-posts.service.mjs +1 -1
- package/fesm2015/vendasta-social-posts.mjs +4202 -1755
- package/fesm2015/vendasta-social-posts.mjs.map +1 -1
- package/fesm2020/vendasta-social-posts.mjs +4202 -1755
- package/fesm2020/vendasta-social-posts.mjs.map +1 -1
- package/lib/_internal/blog-website.api.service.d.ts +13 -0
- package/lib/_internal/drafts.api.service.d.ts +23 -0
- package/lib/_internal/enums/drafts-api.enum.d.ts +6 -0
- package/lib/_internal/enums/drafts.enum.d.ts +18 -0
- package/lib/_internal/enums/engagement.enum.d.ts +5 -0
- package/lib/_internal/enums/index.d.ts +6 -0
- package/lib/_internal/enums/provisioning.enum.d.ts +6 -0
- package/lib/_internal/enums/social-content.enum.d.ts +39 -0
- package/lib/_internal/enums/stock-image.enum.d.ts +10 -0
- package/lib/_internal/image-library.api.service.d.ts +13 -0
- package/lib/_internal/index.d.ts +6 -0
- package/lib/_internal/interfaces/blog-website-info.interface.d.ts +24 -0
- package/lib/_internal/interfaces/drafts-api.interface.d.ts +109 -0
- package/lib/_internal/interfaces/drafts.interface.d.ts +82 -0
- package/lib/_internal/interfaces/engagement.interface.d.ts +37 -0
- package/lib/_internal/interfaces/index.d.ts +8 -1
- package/lib/_internal/interfaces/provisioning.interface.d.ts +8 -0
- package/lib/_internal/interfaces/social-content.interface.d.ts +71 -0
- package/lib/_internal/interfaces/social-post-stats.interface.d.ts +1 -0
- package/lib/_internal/interfaces/stock-image.interface.d.ts +30 -0
- package/lib/_internal/multilocation-post.api.service.d.ts +1 -1
- package/lib/_internal/objects/blog-website-info.d.ts +41 -0
- package/lib/_internal/objects/drafts-api.d.ts +162 -0
- package/lib/_internal/objects/drafts.d.ts +120 -0
- package/lib/_internal/objects/engagement.d.ts +60 -0
- package/lib/_internal/objects/index.d.ts +8 -1
- package/lib/_internal/objects/provisioning.d.ts +13 -0
- package/lib/_internal/objects/social-content.d.ts +103 -0
- package/lib/_internal/objects/social-post-stats.d.ts +1 -0
- package/lib/_internal/objects/stock-image.d.ts +47 -0
- package/lib/_internal/provisioning.api.service.d.ts +14 -0
- package/lib/_internal/social-content.api.service.d.ts +13 -0
- package/lib/_internal/social-post-engagements.api.service.d.ts +13 -0
- package/lib/drafts.service.d.ts +20 -0
- package/lib/index.d.ts +1 -0
- package/lib/multilocation-posts.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
import { BlogAuthor, BlogCategory } from './blog-website-info';
|
|
2
|
+
import { YoutubeCustomization, TikTokCustomization } from './social-posts';
|
|
3
|
+
import * as e from '../enums';
|
|
4
|
+
export function enumStringToValue(enumRef, value) {
|
|
5
|
+
if (typeof value === 'number') {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
return enumRef[value];
|
|
9
|
+
}
|
|
10
|
+
export class BlogPostOptions {
|
|
11
|
+
static fromProto(proto) {
|
|
12
|
+
let m = new BlogPostOptions();
|
|
13
|
+
m = Object.assign(m, proto);
|
|
14
|
+
if (proto.author) {
|
|
15
|
+
m.author = BlogAuthor.fromProto(proto.author);
|
|
16
|
+
}
|
|
17
|
+
if (proto.categories) {
|
|
18
|
+
m.categories = proto.categories.map(BlogCategory.fromProto);
|
|
19
|
+
}
|
|
20
|
+
return m;
|
|
21
|
+
}
|
|
22
|
+
constructor(kwargs) {
|
|
23
|
+
if (!kwargs) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
Object.assign(this, kwargs);
|
|
27
|
+
}
|
|
28
|
+
toApiJson() {
|
|
29
|
+
const toReturn = {};
|
|
30
|
+
if (typeof this.title !== 'undefined') {
|
|
31
|
+
toReturn['title'] = this.title;
|
|
32
|
+
}
|
|
33
|
+
if (typeof this.author !== 'undefined' && this.author !== null) {
|
|
34
|
+
toReturn['author'] = 'toApiJson' in this.author ? this.author.toApiJson() : this.author;
|
|
35
|
+
}
|
|
36
|
+
if (typeof this.categories !== 'undefined' && this.categories !== null) {
|
|
37
|
+
toReturn['categories'] = 'toApiJson' in this.categories ? this.categories.toApiJson() : this.categories;
|
|
38
|
+
}
|
|
39
|
+
if (typeof this.tags !== 'undefined') {
|
|
40
|
+
toReturn['tags'] = this.tags;
|
|
41
|
+
}
|
|
42
|
+
if (typeof this.siteType !== 'undefined') {
|
|
43
|
+
toReturn['siteType'] = this.siteType;
|
|
44
|
+
}
|
|
45
|
+
return toReturn;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class ContentMetadata {
|
|
49
|
+
static fromProto(proto) {
|
|
50
|
+
let m = new ContentMetadata();
|
|
51
|
+
m = Object.assign(m, proto);
|
|
52
|
+
return m;
|
|
53
|
+
}
|
|
54
|
+
constructor(kwargs) {
|
|
55
|
+
if (!kwargs) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
Object.assign(this, kwargs);
|
|
59
|
+
}
|
|
60
|
+
toApiJson() {
|
|
61
|
+
const toReturn = {};
|
|
62
|
+
if (typeof this.name !== 'undefined') {
|
|
63
|
+
toReturn['name'] = this.name;
|
|
64
|
+
}
|
|
65
|
+
if (typeof this.value !== 'undefined') {
|
|
66
|
+
toReturn['value'] = this.value;
|
|
67
|
+
}
|
|
68
|
+
return toReturn;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export class CreateContentRequest {
|
|
72
|
+
static fromProto(proto) {
|
|
73
|
+
let m = new CreateContentRequest();
|
|
74
|
+
m = Object.assign(m, proto);
|
|
75
|
+
if (proto.items) {
|
|
76
|
+
m.items = proto.items.map(SocialContentItem.fromProto);
|
|
77
|
+
}
|
|
78
|
+
return m;
|
|
79
|
+
}
|
|
80
|
+
constructor(kwargs) {
|
|
81
|
+
if (!kwargs) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
Object.assign(this, kwargs);
|
|
85
|
+
}
|
|
86
|
+
toApiJson() {
|
|
87
|
+
const toReturn = {};
|
|
88
|
+
if (typeof this.accountGroupId !== 'undefined') {
|
|
89
|
+
toReturn['accountGroupId'] = this.accountGroupId;
|
|
90
|
+
}
|
|
91
|
+
if (typeof this.username !== 'undefined') {
|
|
92
|
+
toReturn['username'] = this.username;
|
|
93
|
+
}
|
|
94
|
+
if (typeof this.userId !== 'undefined') {
|
|
95
|
+
toReturn['userId'] = this.userId;
|
|
96
|
+
}
|
|
97
|
+
if (typeof this.items !== 'undefined' && this.items !== null) {
|
|
98
|
+
toReturn['items'] = 'toApiJson' in this.items ? this.items.toApiJson() : this.items;
|
|
99
|
+
}
|
|
100
|
+
return toReturn;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export class CreateContentResponse {
|
|
104
|
+
static fromProto(proto) {
|
|
105
|
+
let m = new CreateContentResponse();
|
|
106
|
+
m = Object.assign(m, proto);
|
|
107
|
+
if (proto.results) {
|
|
108
|
+
m.results = proto.results.map(SocialContentResult.fromProto);
|
|
109
|
+
}
|
|
110
|
+
return m;
|
|
111
|
+
}
|
|
112
|
+
constructor(kwargs) {
|
|
113
|
+
if (!kwargs) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
Object.assign(this, kwargs);
|
|
117
|
+
}
|
|
118
|
+
toApiJson() {
|
|
119
|
+
const toReturn = {};
|
|
120
|
+
if (typeof this.results !== 'undefined' && this.results !== null) {
|
|
121
|
+
toReturn['results'] = 'toApiJson' in this.results ? this.results.toApiJson() : this.results;
|
|
122
|
+
}
|
|
123
|
+
return toReturn;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
export class GMBCustomization {
|
|
127
|
+
static fromProto(proto) {
|
|
128
|
+
let m = new GMBCustomization();
|
|
129
|
+
m = Object.assign(m, proto);
|
|
130
|
+
if (proto.eventStart) {
|
|
131
|
+
m.eventStart = new Date(proto.eventStart);
|
|
132
|
+
}
|
|
133
|
+
if (proto.eventEnd) {
|
|
134
|
+
m.eventEnd = new Date(proto.eventEnd);
|
|
135
|
+
}
|
|
136
|
+
if (proto.ctaType) {
|
|
137
|
+
m.ctaType = enumStringToValue(e.CallToActionType, proto.ctaType);
|
|
138
|
+
}
|
|
139
|
+
return m;
|
|
140
|
+
}
|
|
141
|
+
constructor(kwargs) {
|
|
142
|
+
if (!kwargs) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
Object.assign(this, kwargs);
|
|
146
|
+
}
|
|
147
|
+
toApiJson() {
|
|
148
|
+
const toReturn = {};
|
|
149
|
+
if (typeof this.title !== 'undefined') {
|
|
150
|
+
toReturn['title'] = this.title;
|
|
151
|
+
}
|
|
152
|
+
if (typeof this.eventStart !== 'undefined' && this.eventStart !== null) {
|
|
153
|
+
toReturn['eventStart'] = 'toApiJson' in this.eventStart ? this.eventStart.toApiJson() : this.eventStart;
|
|
154
|
+
}
|
|
155
|
+
if (typeof this.eventEnd !== 'undefined' && this.eventEnd !== null) {
|
|
156
|
+
toReturn['eventEnd'] = 'toApiJson' in this.eventEnd ? this.eventEnd.toApiJson() : this.eventEnd;
|
|
157
|
+
}
|
|
158
|
+
if (typeof this.ctaType !== 'undefined') {
|
|
159
|
+
toReturn['ctaType'] = this.ctaType;
|
|
160
|
+
}
|
|
161
|
+
if (typeof this.linkUrl !== 'undefined') {
|
|
162
|
+
toReturn['linkUrl'] = this.linkUrl;
|
|
163
|
+
}
|
|
164
|
+
return toReturn;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
export class Link {
|
|
168
|
+
static fromProto(proto) {
|
|
169
|
+
let m = new Link();
|
|
170
|
+
m = Object.assign(m, proto);
|
|
171
|
+
return m;
|
|
172
|
+
}
|
|
173
|
+
constructor(kwargs) {
|
|
174
|
+
if (!kwargs) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
Object.assign(this, kwargs);
|
|
178
|
+
}
|
|
179
|
+
toApiJson() {
|
|
180
|
+
const toReturn = {};
|
|
181
|
+
if (typeof this.name !== 'undefined') {
|
|
182
|
+
toReturn['name'] = this.name;
|
|
183
|
+
}
|
|
184
|
+
if (typeof this.picture !== 'undefined') {
|
|
185
|
+
toReturn['picture'] = this.picture;
|
|
186
|
+
}
|
|
187
|
+
if (typeof this.description !== 'undefined') {
|
|
188
|
+
toReturn['description'] = this.description;
|
|
189
|
+
}
|
|
190
|
+
if (typeof this.title !== 'undefined') {
|
|
191
|
+
toReturn['title'] = this.title;
|
|
192
|
+
}
|
|
193
|
+
if (typeof this.url !== 'undefined') {
|
|
194
|
+
toReturn['url'] = this.url;
|
|
195
|
+
}
|
|
196
|
+
if (typeof this.shortcode !== 'undefined') {
|
|
197
|
+
toReturn['shortcode'] = this.shortcode;
|
|
198
|
+
}
|
|
199
|
+
return toReturn;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
export class MediaItem {
|
|
203
|
+
static fromProto(proto) {
|
|
204
|
+
let m = new MediaItem();
|
|
205
|
+
m = Object.assign(m, proto);
|
|
206
|
+
if (proto.mediaType) {
|
|
207
|
+
m.mediaType = enumStringToValue(e.MediaType, proto.mediaType);
|
|
208
|
+
}
|
|
209
|
+
return m;
|
|
210
|
+
}
|
|
211
|
+
constructor(kwargs) {
|
|
212
|
+
if (!kwargs) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
Object.assign(this, kwargs);
|
|
216
|
+
}
|
|
217
|
+
toApiJson() {
|
|
218
|
+
const toReturn = {};
|
|
219
|
+
if (typeof this.mediaId !== 'undefined') {
|
|
220
|
+
toReturn['mediaId'] = this.mediaId;
|
|
221
|
+
}
|
|
222
|
+
if (typeof this.mediaType !== 'undefined') {
|
|
223
|
+
toReturn['mediaType'] = this.mediaType;
|
|
224
|
+
}
|
|
225
|
+
if (typeof this.path !== 'undefined') {
|
|
226
|
+
toReturn['path'] = this.path;
|
|
227
|
+
}
|
|
228
|
+
if (typeof this.url !== 'undefined') {
|
|
229
|
+
toReturn['url'] = this.url;
|
|
230
|
+
}
|
|
231
|
+
return toReturn;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
export class SocialContentItem {
|
|
235
|
+
static fromProto(proto) {
|
|
236
|
+
let m = new SocialContentItem();
|
|
237
|
+
m = Object.assign(m, proto);
|
|
238
|
+
if (proto.type) {
|
|
239
|
+
m.type = enumStringToValue(e.SocialContentType, proto.type);
|
|
240
|
+
}
|
|
241
|
+
if (proto.mode) {
|
|
242
|
+
m.mode = enumStringToValue(e.PublishMode, proto.mode);
|
|
243
|
+
}
|
|
244
|
+
if (proto.ssidTypes) {
|
|
245
|
+
m.ssidTypes = proto.ssidTypes.map(SsidPostType.fromProto);
|
|
246
|
+
}
|
|
247
|
+
if (proto.media) {
|
|
248
|
+
m.media = proto.media.map(MediaItem.fromProto);
|
|
249
|
+
}
|
|
250
|
+
if (proto.links) {
|
|
251
|
+
m.links = proto.links.map(Link.fromProto);
|
|
252
|
+
}
|
|
253
|
+
if (proto.scheduleAt) {
|
|
254
|
+
m.scheduleAt = new Date(proto.scheduleAt);
|
|
255
|
+
}
|
|
256
|
+
if (proto.gmbCustomization) {
|
|
257
|
+
m.gmbCustomization = GMBCustomization.fromProto(proto.gmbCustomization);
|
|
258
|
+
}
|
|
259
|
+
if (proto.youtubeCustomization) {
|
|
260
|
+
m.youtubeCustomization = YoutubeCustomization.fromProto(proto.youtubeCustomization);
|
|
261
|
+
}
|
|
262
|
+
if (proto.tiktokCustomization) {
|
|
263
|
+
m.tiktokCustomization = TikTokCustomization.fromProto(proto.tiktokCustomization);
|
|
264
|
+
}
|
|
265
|
+
if (proto.blogPostOptions) {
|
|
266
|
+
m.blogPostOptions = BlogPostOptions.fromProto(proto.blogPostOptions);
|
|
267
|
+
}
|
|
268
|
+
if (proto.contentMetadata) {
|
|
269
|
+
m.contentMetadata = proto.contentMetadata.map(ContentMetadata.fromProto);
|
|
270
|
+
}
|
|
271
|
+
return m;
|
|
272
|
+
}
|
|
273
|
+
constructor(kwargs) {
|
|
274
|
+
if (!kwargs) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
Object.assign(this, kwargs);
|
|
278
|
+
}
|
|
279
|
+
toApiJson() {
|
|
280
|
+
const toReturn = {};
|
|
281
|
+
if (typeof this.type !== 'undefined') {
|
|
282
|
+
toReturn['type'] = this.type;
|
|
283
|
+
}
|
|
284
|
+
if (typeof this.mode !== 'undefined') {
|
|
285
|
+
toReturn['mode'] = this.mode;
|
|
286
|
+
}
|
|
287
|
+
if (typeof this.ssidTypes !== 'undefined' && this.ssidTypes !== null) {
|
|
288
|
+
toReturn['ssidTypes'] = 'toApiJson' in this.ssidTypes ? this.ssidTypes.toApiJson() : this.ssidTypes;
|
|
289
|
+
}
|
|
290
|
+
if (typeof this.text !== 'undefined') {
|
|
291
|
+
toReturn['text'] = this.text;
|
|
292
|
+
}
|
|
293
|
+
if (typeof this.description !== 'undefined') {
|
|
294
|
+
toReturn['description'] = this.description;
|
|
295
|
+
}
|
|
296
|
+
if (typeof this.media !== 'undefined' && this.media !== null) {
|
|
297
|
+
toReturn['media'] = 'toApiJson' in this.media ? this.media.toApiJson() : this.media;
|
|
298
|
+
}
|
|
299
|
+
if (typeof this.links !== 'undefined' && this.links !== null) {
|
|
300
|
+
toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;
|
|
301
|
+
}
|
|
302
|
+
if (typeof this.scheduleAt !== 'undefined' && this.scheduleAt !== null) {
|
|
303
|
+
toReturn['scheduleAt'] = 'toApiJson' in this.scheduleAt ? this.scheduleAt.toApiJson() : this.scheduleAt;
|
|
304
|
+
}
|
|
305
|
+
if (typeof this.gmbCustomization !== 'undefined' && this.gmbCustomization !== null) {
|
|
306
|
+
toReturn['gmbCustomization'] = 'toApiJson' in this.gmbCustomization ? this.gmbCustomization.toApiJson() : this.gmbCustomization;
|
|
307
|
+
}
|
|
308
|
+
if (typeof this.youtubeCustomization !== 'undefined' && this.youtubeCustomization !== null) {
|
|
309
|
+
toReturn['youtubeCustomization'] = 'toApiJson' in this.youtubeCustomization ? this.youtubeCustomization.toApiJson() : this.youtubeCustomization;
|
|
310
|
+
}
|
|
311
|
+
if (typeof this.tiktokCustomization !== 'undefined' && this.tiktokCustomization !== null) {
|
|
312
|
+
toReturn['tiktokCustomization'] = 'toApiJson' in this.tiktokCustomization ? this.tiktokCustomization.toApiJson() : this.tiktokCustomization;
|
|
313
|
+
}
|
|
314
|
+
if (typeof this.blogPostOptions !== 'undefined' && this.blogPostOptions !== null) {
|
|
315
|
+
toReturn['blogPostOptions'] = 'toApiJson' in this.blogPostOptions ? this.blogPostOptions.toApiJson() : this.blogPostOptions;
|
|
316
|
+
}
|
|
317
|
+
if (typeof this.campaignId !== 'undefined') {
|
|
318
|
+
toReturn['campaignId'] = this.campaignId;
|
|
319
|
+
}
|
|
320
|
+
if (typeof this.contentMetadata !== 'undefined' && this.contentMetadata !== null) {
|
|
321
|
+
toReturn['contentMetadata'] = 'toApiJson' in this.contentMetadata ? this.contentMetadata.toApiJson() : this.contentMetadata;
|
|
322
|
+
}
|
|
323
|
+
return toReturn;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
export class SocialContentResult {
|
|
327
|
+
static fromProto(proto) {
|
|
328
|
+
let m = new SocialContentResult();
|
|
329
|
+
m = Object.assign(m, proto);
|
|
330
|
+
return m;
|
|
331
|
+
}
|
|
332
|
+
constructor(kwargs) {
|
|
333
|
+
if (!kwargs) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
Object.assign(this, kwargs);
|
|
337
|
+
}
|
|
338
|
+
toApiJson() {
|
|
339
|
+
const toReturn = {};
|
|
340
|
+
if (typeof this.postId !== 'undefined') {
|
|
341
|
+
toReturn['postId'] = this.postId;
|
|
342
|
+
}
|
|
343
|
+
if (typeof this.ssid !== 'undefined') {
|
|
344
|
+
toReturn['ssid'] = this.ssid;
|
|
345
|
+
}
|
|
346
|
+
if (typeof this.network !== 'undefined') {
|
|
347
|
+
toReturn['network'] = this.network;
|
|
348
|
+
}
|
|
349
|
+
if (typeof this.status !== 'undefined') {
|
|
350
|
+
toReturn['status'] = this.status;
|
|
351
|
+
}
|
|
352
|
+
if (typeof this.errorMessage !== 'undefined') {
|
|
353
|
+
toReturn['errorMessage'] = this.errorMessage;
|
|
354
|
+
}
|
|
355
|
+
return toReturn;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
export class SsidPostType {
|
|
359
|
+
static fromProto(proto) {
|
|
360
|
+
let m = new SsidPostType();
|
|
361
|
+
m = Object.assign(m, proto);
|
|
362
|
+
if (proto.mediaContentType) {
|
|
363
|
+
m.mediaContentType = enumStringToValue(e.MediaContentType, proto.mediaContentType);
|
|
364
|
+
}
|
|
365
|
+
return m;
|
|
366
|
+
}
|
|
367
|
+
constructor(kwargs) {
|
|
368
|
+
if (!kwargs) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
Object.assign(this, kwargs);
|
|
372
|
+
}
|
|
373
|
+
toApiJson() {
|
|
374
|
+
const toReturn = {};
|
|
375
|
+
if (typeof this.ssid !== 'undefined') {
|
|
376
|
+
toReturn['ssid'] = this.ssid;
|
|
377
|
+
}
|
|
378
|
+
if (typeof this.mediaContentType !== 'undefined') {
|
|
379
|
+
toReturn['mediaContentType'] = this.mediaContentType;
|
|
380
|
+
}
|
|
381
|
+
return toReturn;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvc29jaWFsLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQU94QixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUM5QixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUFDO1FBQ2xFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDcEYsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUFtQztRQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFDO1FBQ25LLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFVBQWtCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUMzTCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFDO1FBQ3JFLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUM7UUFDakYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFJeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBbUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFNN0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUNuQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQzFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBd0M7UUFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUFDO1FBQ25HLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUM7UUFDakYsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FBQztRQUMzRSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUM3SixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBRzlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7U0FBQztRQUNsRixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQXlDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE9BQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQ3pLLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFPekIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUMvQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7U0FBQztRQUNsRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUFDO1FBQzVELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQXFCLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FBQztRQUMxRyxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQW9DO1FBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUM7UUFDeEUsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsVUFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQzNMLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFFBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUMvSyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQzlFLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDOUUsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLElBQUk7SUFRYixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUF3QjtRQUNoQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFDO1FBQ3JFLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDOUUsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FBQztRQUMxRixJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FBQztRQUNwRixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sU0FBUztJQU1sQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN4QixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ2xHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBNkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUFDO1FBQ3BGLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUM7UUFDckUsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FBQztRQUNsRSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBZ0IxQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFzQixDQUFDLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQUM7UUFDbkcsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBZ0IsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FBQztRQUN2RixJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ2pGLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtZQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDbEUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FBQztRQUM3RCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFBQyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUFDO1FBQ2xFLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFO1lBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUFDO1FBQ3RHLElBQUksS0FBSyxDQUFDLG9CQUFvQixFQUFFO1lBQUMsQ0FBQyxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUFDO1FBQ3RILElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUFDO1FBQ2xILElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7U0FBQztRQUNsRyxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFBQyxDQUFDLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ3RHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBcUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFDO1FBQ3JFLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFNBQWlCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FBQztRQUNyTCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFDO1FBQ3JFLElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQUM7UUFDMUYsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUM7UUFDN0osSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUM7UUFDN0osSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsVUFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQzNMLElBQUksT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZ0JBQXdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUFDO1FBQy9OLElBQUksT0FBTyxJQUFJLENBQUMsb0JBQW9CLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsb0JBQTRCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUFDO1FBQ3ZQLElBQUksT0FBTyxJQUFJLENBQUMsbUJBQW1CLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsbUJBQTJCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztTQUFDO1FBQ2pQLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZUFBdUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUFDO1FBQ3pOLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxlQUF1QixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQUM7UUFDek4sT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtJQU81QixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQXVDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQzlFLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsSUFBSSxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FBQztRQUM3RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUlyQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7WUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQXFCLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUFDO1FBQ3JJLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBZ0M7UUFDeEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUFDO1FBQ3pHLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJsb2dBdXRob3IsIEJsb2dDYXRlZ29yeSB9IGZyb20gJy4vYmxvZy13ZWJzaXRlLWluZm8nO1xuaW1wb3J0IHsgWW91dHViZUN1c3RvbWl6YXRpb24sIFRpa1Rva0N1c3RvbWl6YXRpb24gfSBmcm9tICcuL3NvY2lhbC1wb3N0cyc7XG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBCbG9nUG9zdE9wdGlvbnMgaW1wbGVtZW50cyBpLkJsb2dQb3N0T3B0aW9uc0ludGVyZmFjZSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBhdXRob3I6IEJsb2dBdXRob3I7XG4gICAgY2F0ZWdvcmllczogQmxvZ0NhdGVnb3J5W107XG4gICAgdGFnczogc3RyaW5nW107XG4gICAgc2l0ZVR5cGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJsb2dQb3N0T3B0aW9ucyB7XG4gICAgICAgIGxldCBtID0gbmV3IEJsb2dQb3N0T3B0aW9ucygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hdXRob3IpIHttLmF1dGhvciA9IEJsb2dBdXRob3IuZnJvbVByb3RvKHByb3RvLmF1dGhvcik7fVxuICAgICAgICBpZiAocHJvdG8uY2F0ZWdvcmllcykge20uY2F0ZWdvcmllcyA9IHByb3RvLmNhdGVnb3JpZXMubWFwKEJsb2dDYXRlZ29yeS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CbG9nUG9zdE9wdGlvbnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXV0aG9yICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmF1dGhvciAhPT0gbnVsbCkge3RvUmV0dXJuWydhdXRob3InXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXV0aG9yID8gKHRoaXMuYXV0aG9yIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmF1dGhvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jYXRlZ29yaWVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNhdGVnb3JpZXMgIT09IG51bGwpIHt0b1JldHVyblsnY2F0ZWdvcmllcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jYXRlZ29yaWVzID8gKHRoaXMuY2F0ZWdvcmllcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jYXRlZ29yaWVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRhZ3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RhZ3MnXSA9IHRoaXMudGFnczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaXRlVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2l0ZVR5cGUnXSA9IHRoaXMuc2l0ZVR5cGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGVudE1ldGFkYXRhIGltcGxlbWVudHMgaS5Db250ZW50TWV0YWRhdGFJbnRlcmZhY2Uge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ29udGVudE1ldGFkYXRhIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ29udGVudE1ldGFkYXRhKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Db250ZW50TWV0YWRhdGFJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZhbHVlJ10gPSB0aGlzLnZhbHVlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbnRlbnRSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVDb250ZW50UmVxdWVzdEludGVyZmFjZSB7XG4gICAgYWNjb3VudEdyb3VwSWQ6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIGl0ZW1zOiBTb2NpYWxDb250ZW50SXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlQ29udGVudFJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBDcmVhdGVDb250ZW50UmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtcykge20uaXRlbXMgPSBwcm90by5pdGVtcy5tYXAoU29jaWFsQ29udGVudEl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlQ29udGVudFJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY2NvdW50R3JvdXBJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWNjb3VudEdyb3VwSWQnXSA9IHRoaXMuYWNjb3VudEdyb3VwSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXNlcm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VzZXJuYW1lJ10gPSB0aGlzLnVzZXJuYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlcklkJ10gPSB0aGlzLnVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pdGVtcyAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtcyA/ICh0aGlzLml0ZW1zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW1zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbnRlbnRSZXNwb25zZSBpbXBsZW1lbnRzIGkuQ3JlYXRlQ29udGVudFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICByZXN1bHRzOiBTb2NpYWxDb250ZW50UmVzdWx0W107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDcmVhdGVDb250ZW50UmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBDcmVhdGVDb250ZW50UmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucmVzdWx0cykge20ucmVzdWx0cyA9IHByb3RvLnJlc3VsdHMubWFwKFNvY2lhbENvbnRlbnRSZXN1bHQuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlQ29udGVudFJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzdWx0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5yZXN1bHRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Jlc3VsdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucmVzdWx0cyA/ICh0aGlzLnJlc3VsdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucmVzdWx0czt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHTUJDdXN0b21pemF0aW9uIGltcGxlbWVudHMgaS5HTUJDdXN0b21pemF0aW9uSW50ZXJmYWNlIHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGV2ZW50U3RhcnQ6IERhdGU7XG4gICAgZXZlbnRFbmQ6IERhdGU7XG4gICAgY3RhVHlwZTogZS5DYWxsVG9BY3Rpb25UeXBlO1xuICAgIGxpbmtVcmw6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdNQkN1c3RvbWl6YXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBHTUJDdXN0b21pemF0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmV2ZW50U3RhcnQpIHttLmV2ZW50U3RhcnQgPSBuZXcgRGF0ZShwcm90by5ldmVudFN0YXJ0KTt9XG4gICAgICAgIGlmIChwcm90by5ldmVudEVuZCkge20uZXZlbnRFbmQgPSBuZXcgRGF0ZShwcm90by5ldmVudEVuZCk7fVxuICAgICAgICBpZiAocHJvdG8uY3RhVHlwZSkge20uY3RhVHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuQ2FsbFRvQWN0aW9uVHlwZT4oZS5DYWxsVG9BY3Rpb25UeXBlLCBwcm90by5jdGFUeXBlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR01CQ3VzdG9taXphdGlvbkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpdGxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aXRsZSddID0gdGhpcy50aXRsZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ldmVudFN0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV2ZW50U3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnZXZlbnRTdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5ldmVudFN0YXJ0ID8gKHRoaXMuZXZlbnRTdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5ldmVudFN0YXJ0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50RW5kICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV2ZW50RW5kICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V2ZW50RW5kJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV2ZW50RW5kID8gKHRoaXMuZXZlbnRFbmQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXZlbnRFbmQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3RhVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3RhVHlwZSddID0gdGhpcy5jdGFUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpbmtVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xpbmtVcmwnXSA9IHRoaXMubGlua1VybDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rIGltcGxlbWVudHMgaS5MaW5rSW50ZXJmYWNlIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGljdHVyZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICBzaG9ydGNvZGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpbmsge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaW5rKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaW5rSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBpY3R1cmUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BpY3R1cmUnXSA9IHRoaXMucGljdHVyZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGl0bGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpdGxlJ10gPSB0aGlzLnRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXJsJ10gPSB0aGlzLnVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaG9ydGNvZGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Nob3J0Y29kZSddID0gdGhpcy5zaG9ydGNvZGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVkaWFJdGVtIGltcGxlbWVudHMgaS5NZWRpYUl0ZW1JbnRlcmZhY2Uge1xuICAgIG1lZGlhSWQ6IHN0cmluZztcbiAgICBtZWRpYVR5cGU6IGUuTWVkaWFUeXBlO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IE1lZGlhSXRlbSB7XG4gICAgICAgIGxldCBtID0gbmV3IE1lZGlhSXRlbSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5tZWRpYVR5cGUpIHttLm1lZGlhVHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuTWVkaWFUeXBlPihlLk1lZGlhVHlwZSwgcHJvdG8ubWVkaWFUeXBlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTWVkaWFJdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVkaWFJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVkaWFJZCddID0gdGhpcy5tZWRpYUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVkaWFUeXBlJ10gPSB0aGlzLm1lZGlhVHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYXRoICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwYXRoJ10gPSB0aGlzLnBhdGg7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1cmwnXSA9IHRoaXMudXJsO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvY2lhbENvbnRlbnRJdGVtIGltcGxlbWVudHMgaS5Tb2NpYWxDb250ZW50SXRlbUludGVyZmFjZSB7XG4gICAgdHlwZTogZS5Tb2NpYWxDb250ZW50VHlwZTtcbiAgICBtb2RlOiBlLlB1Ymxpc2hNb2RlO1xuICAgIHNzaWRUeXBlczogU3NpZFBvc3RUeXBlW107XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgbWVkaWE6IE1lZGlhSXRlbVtdO1xuICAgIGxpbmtzOiBMaW5rW107XG4gICAgc2NoZWR1bGVBdDogRGF0ZTtcbiAgICBnbWJDdXN0b21pemF0aW9uOiBHTUJDdXN0b21pemF0aW9uO1xuICAgIHlvdXR1YmVDdXN0b21pemF0aW9uOiBZb3V0dWJlQ3VzdG9taXphdGlvbjtcbiAgICB0aWt0b2tDdXN0b21pemF0aW9uOiBUaWtUb2tDdXN0b21pemF0aW9uO1xuICAgIGJsb2dQb3N0T3B0aW9uczogQmxvZ1Bvc3RPcHRpb25zO1xuICAgIGNhbXBhaWduSWQ6IHN0cmluZztcbiAgICBjb250ZW50TWV0YWRhdGE6IENvbnRlbnRNZXRhZGF0YVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogU29jaWFsQ29udGVudEl0ZW0ge1xuICAgICAgICBsZXQgbSA9IG5ldyBTb2NpYWxDb250ZW50SXRlbSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Tb2NpYWxDb250ZW50VHlwZT4oZS5Tb2NpYWxDb250ZW50VHlwZSwgcHJvdG8udHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8ubW9kZSkge20ubW9kZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuUHVibGlzaE1vZGU+KGUuUHVibGlzaE1vZGUsIHByb3RvLm1vZGUpO31cbiAgICAgICAgaWYgKHByb3RvLnNzaWRUeXBlcykge20uc3NpZFR5cGVzID0gcHJvdG8uc3NpZFR5cGVzLm1hcChTc2lkUG9zdFR5cGUuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5tZWRpYSkge20ubWVkaWEgPSBwcm90by5tZWRpYS5tYXAoTWVkaWFJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ubGlua3MpIHttLmxpbmtzID0gcHJvdG8ubGlua3MubWFwKExpbmsuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5zY2hlZHVsZUF0KSB7bS5zY2hlZHVsZUF0ID0gbmV3IERhdGUocHJvdG8uc2NoZWR1bGVBdCk7fVxuICAgICAgICBpZiAocHJvdG8uZ21iQ3VzdG9taXphdGlvbikge20uZ21iQ3VzdG9taXphdGlvbiA9IEdNQkN1c3RvbWl6YXRpb24uZnJvbVByb3RvKHByb3RvLmdtYkN1c3RvbWl6YXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLnlvdXR1YmVDdXN0b21pemF0aW9uKSB7bS55b3V0dWJlQ3VzdG9taXphdGlvbiA9IFlvdXR1YmVDdXN0b21pemF0aW9uLmZyb21Qcm90byhwcm90by55b3V0dWJlQ3VzdG9taXphdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8udGlrdG9rQ3VzdG9taXphdGlvbikge20udGlrdG9rQ3VzdG9taXphdGlvbiA9IFRpa1Rva0N1c3RvbWl6YXRpb24uZnJvbVByb3RvKHByb3RvLnRpa3Rva0N1c3RvbWl6YXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmJsb2dQb3N0T3B0aW9ucykge20uYmxvZ1Bvc3RPcHRpb25zID0gQmxvZ1Bvc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5ibG9nUG9zdE9wdGlvbnMpO31cbiAgICAgICAgaWYgKHByb3RvLmNvbnRlbnRNZXRhZGF0YSkge20uY29udGVudE1ldGFkYXRhID0gcHJvdG8uY29udGVudE1ldGFkYXRhLm1hcChDb250ZW50TWV0YWRhdGEuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU29jaWFsQ29udGVudEl0ZW1JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubW9kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbW9kZSddID0gdGhpcy5tb2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNzaWRUeXBlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zc2lkVHlwZXMgIT09IG51bGwpIHt0b1JldHVyblsnc3NpZFR5cGVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNzaWRUeXBlcyA/ICh0aGlzLnNzaWRUeXBlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zc2lkVHlwZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGV4dCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGV4dCddID0gdGhpcy50ZXh0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWRpYSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZWRpYSAhPT0gbnVsbCkge3RvUmV0dXJuWydtZWRpYSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tZWRpYSA/ICh0aGlzLm1lZGlhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1lZGlhO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpbmtzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmxpbmtzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2xpbmtzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmxpbmtzID8gKHRoaXMubGlua3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubGlua3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2NoZWR1bGVBdCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zY2hlZHVsZUF0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NjaGVkdWxlQXQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc2NoZWR1bGVBdCA/ICh0aGlzLnNjaGVkdWxlQXQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2NoZWR1bGVBdDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5nbWJDdXN0b21pemF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmdtYkN1c3RvbWl6YXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnZ21iQ3VzdG9taXphdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5nbWJDdXN0b21pemF0aW9uID8gKHRoaXMuZ21iQ3VzdG9taXphdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5nbWJDdXN0b21pemF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnlvdXR1YmVDdXN0b21pemF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnlvdXR1YmVDdXN0b21pemF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ3lvdXR1YmVDdXN0b21pemF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnlvdXR1YmVDdXN0b21pemF0aW9uID8gKHRoaXMueW91dHViZUN1c3RvbWl6YXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMueW91dHViZUN1c3RvbWl6YXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGlrdG9rQ3VzdG9taXphdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50aWt0b2tDdXN0b21pemF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Rpa3Rva0N1c3RvbWl6YXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGlrdG9rQ3VzdG9taXphdGlvbiA/ICh0aGlzLnRpa3Rva0N1c3RvbWl6YXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGlrdG9rQ3VzdG9taXphdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ibG9nUG9zdE9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmxvZ1Bvc3RPcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2Jsb2dQb3N0T3B0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5ibG9nUG9zdE9wdGlvbnMgPyAodGhpcy5ibG9nUG9zdE9wdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYmxvZ1Bvc3RPcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbXBhaWduSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NhbXBhaWduSWQnXSA9IHRoaXMuY2FtcGFpZ25JZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb250ZW50TWV0YWRhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY29udGVudE1ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvbnRlbnRNZXRhZGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jb250ZW50TWV0YWRhdGEgPyAodGhpcy5jb250ZW50TWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY29udGVudE1ldGFkYXRhO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvY2lhbENvbnRlbnRSZXN1bHQgaW1wbGVtZW50cyBpLlNvY2lhbENvbnRlbnRSZXN1bHRJbnRlcmZhY2Uge1xuICAgIHBvc3RJZDogc3RyaW5nO1xuICAgIHNzaWQ6IHN0cmluZztcbiAgICBuZXR3b3JrOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTb2NpYWxDb250ZW50UmVzdWx0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU29jaWFsQ29udGVudFJlc3VsdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU29jaWFsQ29udGVudFJlc3VsdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3RJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncG9zdElkJ10gPSB0aGlzLnBvc3RJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zc2lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzc2lkJ10gPSB0aGlzLnNzaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmV0d29yayAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmV0d29yayddID0gdGhpcy5uZXR3b3JrO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzJ10gPSB0aGlzLnN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lcnJvck1lc3NhZ2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Vycm9yTWVzc2FnZSddID0gdGhpcy5lcnJvck1lc3NhZ2U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3NpZFBvc3RUeXBlIGltcGxlbWVudHMgaS5Tc2lkUG9zdFR5cGVJbnRlcmZhY2Uge1xuICAgIHNzaWQ6IHN0cmluZztcbiAgICBtZWRpYUNvbnRlbnRUeXBlOiBlLk1lZGlhQ29udGVudFR5cGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTc2lkUG9zdFR5cGUge1xuICAgICAgICBsZXQgbSA9IG5ldyBTc2lkUG9zdFR5cGUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubWVkaWFDb250ZW50VHlwZSkge20ubWVkaWFDb250ZW50VHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuTWVkaWFDb250ZW50VHlwZT4oZS5NZWRpYUNvbnRlbnRUeXBlLCBwcm90by5tZWRpYUNvbnRlbnRUeXBlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU3NpZFBvc3RUeXBlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3NpZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3NpZCddID0gdGhpcy5zc2lkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhQ29udGVudFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lZGlhQ29udGVudFR5cGUnXSA9IHRoaXMubWVkaWFDb250ZW50VHlwZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
|
|
@@ -302,6 +302,9 @@ export class YoutubePostStats {
|
|
|
302
302
|
if (proto.videoViews) {
|
|
303
303
|
m.videoViews = parseInt(proto.videoViews, 10);
|
|
304
304
|
}
|
|
305
|
+
if (proto.dislikeCount) {
|
|
306
|
+
m.dislikeCount = parseInt(proto.dislikeCount, 10);
|
|
307
|
+
}
|
|
305
308
|
return m;
|
|
306
309
|
}
|
|
307
310
|
constructor(kwargs) {
|
|
@@ -327,7 +330,10 @@ export class YoutubePostStats {
|
|
|
327
330
|
if (typeof this.videoViews !== 'undefined') {
|
|
328
331
|
toReturn['videoViews'] = this.videoViews;
|
|
329
332
|
}
|
|
333
|
+
if (typeof this.dislikeCount !== 'undefined') {
|
|
334
|
+
toReturn['dislikeCount'] = this.dislikeCount;
|
|
335
|
+
}
|
|
330
336
|
return toReturn;
|
|
331
337
|
}
|
|
332
338
|
}
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXBvc3Qtc3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvc29jaWFsLXBvc3Qtc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtJQVMxQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQUM7UUFDNUUsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxD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LENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBGYWNlYm9va1Bvc3RTdGF0cyBpbXBsZW1lbnRzIGkuRmFjZWJvb2tQb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGNvbW1lbnRDb3VudDogbnVtYmVyO1xuICAgIHNoYXJlQ291bnQ6IG51bWJlcjtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBoYXNMaWtlOiBib29sZWFuO1xuICAgIGNhbkxpa2U6IGJvb2xlYW47XG4gICAgcmVhY3Rpb25zOiBudW1iZXI7XG4gICAgcGVvcGxlUmVhY2hlZDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRmFjZWJvb2tQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBGYWNlYm9va1Bvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jb21tZW50Q291bnQpIHttLmNvbW1lbnRDb3VudCA9IHBhcnNlSW50KHByb3RvLmNvbW1lbnRDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnNoYXJlQ291bnQpIHttLnNoYXJlQ291bnQgPSBwYXJzZUludChwcm90by5zaGFyZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ubGlrZUNvdW50KSB7bS5saWtlQ291bnQgPSBwYXJzZUludChwcm90by5saWtlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZWFjdGlvbnMpIHttLnJlYWN0aW9ucyA9IHBhcnNlSW50KHByb3RvLnJlYWN0aW9ucywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBlb3BsZVJlYWNoZWQpIHttLnBlb3BsZVJlYWNoZWQgPSBwYXJzZUludChwcm90by5wZW9wbGVSZWFjaGVkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkZhY2Vib29rUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29tbWVudENvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb21tZW50Q291bnQnXSA9IHRoaXMuY29tbWVudENvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNoYXJlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NoYXJlQ291bnQnXSA9IHRoaXMuc2hhcmVDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saWtlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xpa2VDb3VudCddID0gdGhpcy5saWtlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFzTGlrZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzTGlrZSddID0gdGhpcy5oYXNMaWtlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbkxpa2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Nhbkxpa2UnXSA9IHRoaXMuY2FuTGlrZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWFjdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlYWN0aW9ucyddID0gdGhpcy5yZWFjdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGVvcGxlUmVhY2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGVvcGxlUmVhY2hlZCddID0gdGhpcy5wZW9wbGVSZWFjaGVkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc3RhZ3JhbVBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuSW5zdGFncmFtUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBzYXZlczogbnVtYmVyO1xuICAgIHJlYWNoOiBudW1iZXI7XG4gICAgdmlkZW9WaWV3czogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSW5zdGFncmFtUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSW5zdGFncmFtUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxpa2VDb3VudCkge20ubGlrZUNvdW50ID0gcGFyc2VJbnQocHJvdG8ubGlrZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uY29tbWVudENvdW50KSB7bS5jb21tZW50Q291bnQgPSBwYXJzZUludChwcm90by5jb21tZW50Q291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zYXZlcykge20uc2F2ZXMgPSBwYXJzZUludChwcm90by5zYXZlcywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnJlYWNoKSB7bS5yZWFjaCA9IHBhcnNlSW50KHByb3RvLnJlYWNoLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udmlkZW9WaWV3cykge20udmlkZW9WaWV3cyA9IHBhcnNlSW50KHByb3RvLnZpZGVvVmlld3MsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuSW5zdGFncmFtUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsaWtlQ291bnQnXSA9IHRoaXMubGlrZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbW1lbnRDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29tbWVudENvdW50J10gPSB0aGlzLmNvbW1lbnRDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zYXZlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2F2ZXMnXSA9IHRoaXMuc2F2ZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVhY2ggIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlYWNoJ10gPSB0aGlzLnJlYWNoO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZpZGVvVmlld3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZpZGVvVmlld3MnXSA9IHRoaXMudmlkZW9WaWV3czt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rZWRJblBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuTGlua2VkSW5Qb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGxpa2VDb3VudDogbnVtYmVyO1xuICAgIGNvbW1lbnRDb3VudDogbnVtYmVyO1xuICAgIHNoYXJlQ291bnQ6IG51bWJlcjtcbiAgICBjbGlja3M6IG51bWJlcjtcbiAgICBpbXByZXNzaW9uczogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlua2VkSW5Qb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaW5rZWRJblBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5saWtlQ291bnQpIHttLmxpa2VDb3VudCA9IHBhcnNlSW50KHByb3RvLmxpa2VDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNvbW1lbnRDb3VudCkge20uY29tbWVudENvdW50ID0gcGFyc2VJbnQocHJvdG8uY29tbWVudENvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uc2hhcmVDb3VudCkge20uc2hhcmVDb3VudCA9IHBhcnNlSW50KHByb3RvLnNoYXJlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5jbGlja3MpIHttLmNsaWNrcyA9IHBhcnNlSW50KHByb3RvLmNsaWNrcywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmltcHJlc3Npb25zKSB7bS5pbXByZXNzaW9ucyA9IHBhcnNlSW50KHByb3RvLmltcHJlc3Npb25zLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpbmtlZEluUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsaWtlQ291bnQnXSA9IHRoaXMubGlrZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbW1lbnRDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29tbWVudENvdW50J10gPSB0aGlzLmNvbW1lbnRDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaGFyZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzaGFyZUNvdW50J10gPSB0aGlzLnNoYXJlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2xpY2tzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjbGlja3MnXSA9IHRoaXMuY2xpY2tzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmltcHJlc3Npb25zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbXByZXNzaW9ucyddID0gdGhpcy5pbXByZXNzaW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTb2NpYWxQb3N0U3RhdHMgaW1wbGVtZW50cyBpLlNvY2lhbFBvc3RTdGF0c0ludGVyZmFjZSB7XG4gICAgaW50ZXJuYWxQb3N0SWQ6IHN0cmluZztcbiAgICBmYWNlYm9va1Bvc3RTdGF0czogRmFjZWJvb2tQb3N0U3RhdHM7XG4gICAgdHdpdHRlclBvc3RTdGF0czogVHdpdHRlclBvc3RTdGF0cztcbiAgICBsaW5rZWRpblBvc3RTdGF0czogTGlua2VkSW5Qb3N0U3RhdHM7XG4gICAgaW5zdGFncmFtUG9zdFN0YXRzOiBJbnN0YWdyYW1Qb3N0U3RhdHM7XG4gICAgeW91dHViZVBvc3RTdGF0czogWW91dHViZVBvc3RTdGF0cztcbiAgICB0aWt0b2tQb3N0U3RhdHM6IFRpa1Rva1Bvc3RTdGF0cztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNvY2lhbFBvc3RTdGF0cyB7XG4gICAgICAgIGxldCBtID0gbmV3IFNvY2lhbFBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5mYWNlYm9va1Bvc3RTdGF0cykge20uZmFjZWJvb2tQb3N0U3RhdHMgPSBGYWNlYm9va1Bvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8uZmFjZWJvb2tQb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLnR3aXR0ZXJQb3N0U3RhdHMpIHttLnR3aXR0ZXJQb3N0U3RhdHMgPSBUd2l0dGVyUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by50d2l0dGVyUG9zdFN0YXRzKTt9XG4gICAgICAgIGlmIChwcm90by5saW5rZWRpblBvc3RTdGF0cykge20ubGlua2VkaW5Qb3N0U3RhdHMgPSBMaW5rZWRJblBvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8ubGlua2VkaW5Qb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLmluc3RhZ3JhbVBvc3RTdGF0cykge20uaW5zdGFncmFtUG9zdFN0YXRzID0gSW5zdGFncmFtUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by5pbnN0YWdyYW1Qb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLnlvdXR1YmVQb3N0U3RhdHMpIHttLnlvdXR1YmVQb3N0U3RhdHMgPSBZb3V0dWJlUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by55b3V0dWJlUG9zdFN0YXRzKTt9XG4gICAgICAgIGlmIChwcm90by50aWt0b2tQb3N0U3RhdHMpIHttLnRpa3Rva1Bvc3RTdGF0cyA9IFRpa1Rva1Bvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8udGlrdG9rUG9zdFN0YXRzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU29jaWFsUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW50ZXJuYWxQb3N0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ludGVybmFsUG9zdElkJ10gPSB0aGlzLmludGVybmFsUG9zdElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZhY2Vib29rUG9zdFN0YXRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzID8gKHRoaXMuZmFjZWJvb2tQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmFjZWJvb2tQb3N0U3RhdHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHdpdHRlclBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50d2l0dGVyUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3R3aXR0ZXJQb3N0U3RhdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHdpdHRlclBvc3RTdGF0cyA/ICh0aGlzLnR3aXR0ZXJQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudHdpdHRlclBvc3RTdGF0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saW5rZWRpblBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5saW5rZWRpblBvc3RTdGF0cyAhPT0gbnVsbCkge3RvUmV0dXJuWydsaW5rZWRpblBvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5saW5rZWRpblBvc3RTdGF0cyA/ICh0aGlzLmxpbmtlZGluUG9zdFN0YXRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmxpbmtlZGluUG9zdFN0YXRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pbnN0YWdyYW1Qb3N0U3RhdHMgIT09IG51bGwpIHt0b1JldHVyblsnaW5zdGFncmFtUG9zdFN0YXRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyA/ICh0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pbnN0YWdyYW1Qb3N0U3RhdHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMueW91dHViZVBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy55b3V0dWJlUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3lvdXR1YmVQb3N0U3RhdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMueW91dHViZVBvc3RTdGF0cyA/ICh0aGlzLnlvdXR1YmVQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMueW91dHViZVBvc3RTdGF0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aWt0b2tQb3N0U3RhdHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGlrdG9rUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Rpa3Rva1Bvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50aWt0b2tQb3N0U3RhdHMgPyAodGhpcy50aWt0b2tQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGlrdG9rUG9zdFN0YXRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRpa1Rva1Bvc3RTdGF0cyBpbXBsZW1lbnRzIGkuVGlrVG9rUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBzaGFyZUNvdW50OiBudW1iZXI7XG4gICAgcGVvcGxlUmVhY2hlZDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGlrVG9rUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGlrVG9rUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxpa2VDb3VudCkge20ubGlrZUNvdW50ID0gcGFyc2VJbnQocHJvdG8ubGlrZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uY29tbWVudENvdW50KSB7bS5jb21tZW50Q291bnQgPSBwYXJzZUludChwcm90by5jb21tZW50Q291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zaGFyZUNvdW50KSB7bS5zaGFyZUNvdW50ID0gcGFyc2VJbnQocHJvdG8uc2hhcmVDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBlb3BsZVJlYWNoZWQpIHttLnBlb3BsZVJlYWNoZWQgPSBwYXJzZUludChwcm90by5wZW9wbGVSZWFjaGVkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRpa1Rva1Bvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpa2VDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlrZUNvdW50J10gPSB0aGlzLmxpa2VDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb21tZW50Q291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbW1lbnRDb3VudCddID0gdGhpcy5jb21tZW50Q291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2hhcmVDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2hhcmVDb3VudCddID0gdGhpcy5zaGFyZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBlb3BsZVJlYWNoZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Blb3BsZVJlYWNoZWQnXSA9IHRoaXMucGVvcGxlUmVhY2hlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUd2l0dGVyUG9zdFN0YXRzIGltcGxlbWVudHMgaS5Ud2l0dGVyUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBmYXZvdXJpdGVzOiBudW1iZXI7XG4gICAgaGFzRmF2b3VyaXRlZDogYm9vbGVhbjtcbiAgICByZXR3ZWV0czogbnVtYmVyO1xuICAgIGhhc1JldHdlZXRlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFR3aXR0ZXJQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBUd2l0dGVyUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZhdm91cml0ZXMpIHttLmZhdm91cml0ZXMgPSBwYXJzZUludChwcm90by5mYXZvdXJpdGVzLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ucmV0d2VldHMpIHttLnJldHdlZXRzID0gcGFyc2VJbnQocHJvdG8ucmV0d2VldHMsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVHdpdHRlclBvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhdm91cml0ZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Zhdm91cml0ZXMnXSA9IHRoaXMuZmF2b3VyaXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oYXNGYXZvdXJpdGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNGYXZvdXJpdGVkJ10gPSB0aGlzLmhhc0Zhdm91cml0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmV0d2VldHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldHdlZXRzJ10gPSB0aGlzLnJldHdlZXRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhhc1JldHdlZXRlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzUmV0d2VldGVkJ10gPSB0aGlzLmhhc1JldHdlZXRlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBZb3V0dWJlUG9zdFN0YXRzIGltcGxlbWVudHMgaS5Zb3V0dWJlUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBmYXZvdXJpdGVzOiBudW1iZXI7XG4gICAgdmlld3M6IG51bWJlcjtcbiAgICB2aWRlb1ZpZXdzOiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBZb3V0dWJlUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgWW91dHViZVBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5saWtlQ291bnQpIHttLmxpa2VDb3VudCA9IHBhcnNlSW50KHByb3RvLmxpa2VDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNvbW1lbnRDb3VudCkge20uY29tbWVudENvdW50ID0gcGFyc2VJbnQocHJvdG8uY29tbWVudENvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uZmF2b3VyaXRlcykge20uZmF2b3VyaXRlcyA9IHBhcnNlSW50KHByb3RvLmZhdm91cml0ZXMsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by52aWV3cykge20udmlld3MgPSBwYXJzZUludChwcm90by52aWV3cywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnZpZGVvVmlld3MpIHttLnZpZGVvVmlld3MgPSBwYXJzZUludChwcm90by52aWRlb1ZpZXdzLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLllvdXR1YmVQb3N0U3RhdHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saWtlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xpa2VDb3VudCddID0gdGhpcy5saWtlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29tbWVudENvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb21tZW50Q291bnQnXSA9IHRoaXMuY29tbWVudENvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhdm91cml0ZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Zhdm91cml0ZXMnXSA9IHRoaXMuZmF2b3VyaXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52aWV3cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndmlld3MnXSA9IHRoaXMudmlld3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmlkZW9WaWV3cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndmlkZW9WaWV3cyddID0gdGhpcy52aWRlb1ZpZXdzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXBvc3Qtc3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvc29jaWFsLXBvc3Qtc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtJQVMxQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQUM7UUFDNUUsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxD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LElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUN4RSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDN0YsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBGYWNlYm9va1Bvc3RTdGF0cyBpbXBsZW1lbnRzIGkuRmFjZWJvb2tQb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGNvbW1lbnRDb3VudDogbnVtYmVyO1xuICAgIHNoYXJlQ291bnQ6IG51bWJlcjtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBoYXNMaWtlOiBib29sZWFuO1xuICAgIGNhbkxpa2U6IGJvb2xlYW47XG4gICAgcmVhY3Rpb25zOiBudW1iZXI7XG4gICAgcGVvcGxlUmVhY2hlZDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRmFjZWJvb2tQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBGYWNlYm9va1Bvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jb21tZW50Q291bnQpIHttLmNvbW1lbnRDb3VudCA9IHBhcnNlSW50KHByb3RvLmNvbW1lbnRDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnNoYXJlQ291bnQpIHttLnNoYXJlQ291bnQgPSBwYXJzZUludChwcm90by5zaGFyZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ubGlrZUNvdW50KSB7bS5saWtlQ291bnQgPSBwYXJzZUludChwcm90by5saWtlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZWFjdGlvbnMpIHttLnJlYWN0aW9ucyA9IHBhcnNlSW50KHByb3RvLnJlYWN0aW9ucywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBlb3BsZVJlYWNoZWQpIHttLnBlb3BsZVJlYWNoZWQgPSBwYXJzZUludChwcm90by5wZW9wbGVSZWFjaGVkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkZhY2Vib29rUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29tbWVudENvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb21tZW50Q291bnQnXSA9IHRoaXMuY29tbWVudENvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNoYXJlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NoYXJlQ291bnQnXSA9IHRoaXMuc2hhcmVDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saWtlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xpa2VDb3VudCddID0gdGhpcy5saWtlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFzTGlrZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzTGlrZSddID0gdGhpcy5oYXNMaWtlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbkxpa2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Nhbkxpa2UnXSA9IHRoaXMuY2FuTGlrZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWFjdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlYWN0aW9ucyddID0gdGhpcy5yZWFjdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGVvcGxlUmVhY2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGVvcGxlUmVhY2hlZCddID0gdGhpcy5wZW9wbGVSZWFjaGVkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc3RhZ3JhbVBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuSW5zdGFncmFtUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBzYXZlczogbnVtYmVyO1xuICAgIHJlYWNoOiBudW1iZXI7XG4gICAgdmlkZW9WaWV3czogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSW5zdGFncmFtUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSW5zdGFncmFtUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxpa2VDb3VudCkge20ubGlrZUNvdW50ID0gcGFyc2VJbnQocHJvdG8ubGlrZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uY29tbWVudENvdW50KSB7bS5jb21tZW50Q291bnQgPSBwYXJzZUludChwcm90by5jb21tZW50Q291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zYXZlcykge20uc2F2ZXMgPSBwYXJzZUludChwcm90by5zYXZlcywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnJlYWNoKSB7bS5yZWFjaCA9IHBhcnNlSW50KHByb3RvLnJlYWNoLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udmlkZW9WaWV3cykge20udmlkZW9WaWV3cyA9IHBhcnNlSW50KHByb3RvLnZpZGVvVmlld3MsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuSW5zdGFncmFtUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsaWtlQ291bnQnXSA9IHRoaXMubGlrZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbW1lbnRDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29tbWVudENvdW50J10gPSB0aGlzLmNvbW1lbnRDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zYXZlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2F2ZXMnXSA9IHRoaXMuc2F2ZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVhY2ggIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlYWNoJ10gPSB0aGlzLnJlYWNoO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZpZGVvVmlld3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZpZGVvVmlld3MnXSA9IHRoaXMudmlkZW9WaWV3czt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rZWRJblBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuTGlua2VkSW5Qb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGxpa2VDb3VudDogbnVtYmVyO1xuICAgIGNvbW1lbnRDb3VudDogbnVtYmVyO1xuICAgIHNoYXJlQ291bnQ6IG51bWJlcjtcbiAgICBjbGlja3M6IG51bWJlcjtcbiAgICBpbXByZXNzaW9uczogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlua2VkSW5Qb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaW5rZWRJblBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5saWtlQ291bnQpIHttLmxpa2VDb3VudCA9IHBhcnNlSW50KHByb3RvLmxpa2VDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNvbW1lbnRDb3VudCkge20uY29tbWVudENvdW50ID0gcGFyc2VJbnQocHJvdG8uY29tbWVudENvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uc2hhcmVDb3VudCkge20uc2hhcmVDb3VudCA9IHBhcnNlSW50KHByb3RvLnNoYXJlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5jbGlja3MpIHttLmNsaWNrcyA9IHBhcnNlSW50KHByb3RvLmNsaWNrcywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmltcHJlc3Npb25zKSB7bS5pbXByZXNzaW9ucyA9IHBhcnNlSW50KHByb3RvLmltcHJlc3Npb25zLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpbmtlZEluUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsaWtlQ291bnQnXSA9IHRoaXMubGlrZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbW1lbnRDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29tbWVudENvdW50J10gPSB0aGlzLmNvbW1lbnRDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaGFyZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzaGFyZUNvdW50J10gPSB0aGlzLnNoYXJlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2xpY2tzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjbGlja3MnXSA9IHRoaXMuY2xpY2tzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmltcHJlc3Npb25zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbXByZXNzaW9ucyddID0gdGhpcy5pbXByZXNzaW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTb2NpYWxQb3N0U3RhdHMgaW1wbGVtZW50cyBpLlNvY2lhbFBvc3RTdGF0c0ludGVyZmFjZSB7XG4gICAgaW50ZXJuYWxQb3N0SWQ6IHN0cmluZztcbiAgICBmYWNlYm9va1Bvc3RTdGF0czogRmFjZWJvb2tQb3N0U3RhdHM7XG4gICAgdHdpdHRlclBvc3RTdGF0czogVHdpdHRlclBvc3RTdGF0cztcbiAgICBsaW5rZWRpblBvc3RTdGF0czogTGlua2VkSW5Qb3N0U3RhdHM7XG4gICAgaW5zdGFncmFtUG9zdFN0YXRzOiBJbnN0YWdyYW1Qb3N0U3RhdHM7XG4gICAgeW91dHViZVBvc3RTdGF0czogWW91dHViZVBvc3RTdGF0cztcbiAgICB0aWt0b2tQb3N0U3RhdHM6IFRpa1Rva1Bvc3RTdGF0cztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNvY2lhbFBvc3RTdGF0cyB7XG4gICAgICAgIGxldCBtID0gbmV3IFNvY2lhbFBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5mYWNlYm9va1Bvc3RTdGF0cykge20uZmFjZWJvb2tQb3N0U3RhdHMgPSBGYWNlYm9va1Bvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8uZmFjZWJvb2tQb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLnR3aXR0ZXJQb3N0U3RhdHMpIHttLnR3aXR0ZXJQb3N0U3RhdHMgPSBUd2l0dGVyUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by50d2l0dGVyUG9zdFN0YXRzKTt9XG4gICAgICAgIGlmIChwcm90by5saW5rZWRpblBvc3RTdGF0cykge20ubGlua2VkaW5Qb3N0U3RhdHMgPSBMaW5rZWRJblBvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8ubGlua2VkaW5Qb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLmluc3RhZ3JhbVBvc3RTdGF0cykge20uaW5zdGFncmFtUG9zdFN0YXRzID0gSW5zdGFncmFtUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by5pbnN0YWdyYW1Qb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLnlvdXR1YmVQb3N0U3RhdHMpIHttLnlvdXR1YmVQb3N0U3RhdHMgPSBZb3V0dWJlUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by55b3V0dWJlUG9zdFN0YXRzKTt9XG4gICAgICAgIGlmIChwcm90by50aWt0b2tQb3N0U3RhdHMpIHttLnRpa3Rva1Bvc3RTdGF0cyA9IFRpa1Rva1Bvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8udGlrdG9rUG9zdFN0YXRzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU29jaWFsUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW50ZXJuYWxQb3N0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ludGVybmFsUG9zdElkJ10gPSB0aGlzLmludGVybmFsUG9zdElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZhY2Vib29rUG9zdFN0YXRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzID8gKHRoaXMuZmFjZWJvb2tQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmFjZWJvb2tQb3N0U3RhdHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHdpdHRlclBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50d2l0dGVyUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3R3aXR0ZXJQb3N0U3RhdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHdpdHRlclBvc3RTdGF0cyA/ICh0aGlzLnR3aXR0ZXJQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudHdpdHRlclBvc3RTdGF0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saW5rZWRpblBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5saW5rZWRpblBvc3RTdGF0cyAhPT0gbnVsbCkge3RvUmV0dXJuWydsaW5rZWRpblBvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5saW5rZWRpblBvc3RTdGF0cyA/ICh0aGlzLmxpbmtlZGluUG9zdFN0YXRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmxpbmtlZGluUG9zdFN0YXRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pbnN0YWdyYW1Qb3N0U3RhdHMgIT09IG51bGwpIHt0b1JldHVyblsnaW5zdGFncmFtUG9zdFN0YXRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyA/ICh0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pbnN0YWdyYW1Qb3N0U3RhdHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMueW91dHViZVBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy55b3V0dWJlUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3lvdXR1YmVQb3N0U3RhdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMueW91dHViZVBvc3RTdGF0cyA/ICh0aGlzLnlvdXR1YmVQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMueW91dHViZVBvc3RTdGF0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aWt0b2tQb3N0U3RhdHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGlrdG9rUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Rpa3Rva1Bvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50aWt0b2tQb3N0U3RhdHMgPyAodGhpcy50aWt0b2tQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGlrdG9rUG9zdFN0YXRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRpa1Rva1Bvc3RTdGF0cyBpbXBsZW1lbnRzIGkuVGlrVG9rUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBzaGFyZUNvdW50OiBudW1iZXI7XG4gICAgcGVvcGxlUmVhY2hlZDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGlrVG9rUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGlrVG9rUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxpa2VDb3VudCkge20ubGlrZUNvdW50ID0gcGFyc2VJbnQocHJvdG8ubGlrZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uY29tbWVudENvdW50KSB7bS5jb21tZW50Q291bnQgPSBwYXJzZUludChwcm90by5jb21tZW50Q291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zaGFyZUNvdW50KSB7bS5zaGFyZUNvdW50ID0gcGFyc2VJbnQocHJvdG8uc2hhcmVDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBlb3BsZVJlYWNoZWQpIHttLnBlb3BsZVJlYWNoZWQgPSBwYXJzZUludChwcm90by5wZW9wbGVSZWFjaGVkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRpa1Rva1Bvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpa2VDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlrZUNvdW50J10gPSB0aGlzLmxpa2VDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb21tZW50Q291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbW1lbnRDb3VudCddID0gdGhpcy5jb21tZW50Q291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2hhcmVDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2hhcmVDb3VudCddID0gdGhpcy5zaGFyZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBlb3BsZVJlYWNoZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Blb3BsZVJlYWNoZWQnXSA9IHRoaXMucGVvcGxlUmVhY2hlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUd2l0dGVyUG9zdFN0YXRzIGltcGxlbWVudHMgaS5Ud2l0dGVyUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBmYXZvdXJpdGVzOiBudW1iZXI7XG4gICAgaGFzRmF2b3VyaXRlZDogYm9vbGVhbjtcbiAgICByZXR3ZWV0czogbnVtYmVyO1xuICAgIGhhc1JldHdlZXRlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFR3aXR0ZXJQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBUd2l0dGVyUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZhdm91cml0ZXMpIHttLmZhdm91cml0ZXMgPSBwYXJzZUludChwcm90by5mYXZvdXJpdGVzLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ucmV0d2VldHMpIHttLnJldHdlZXRzID0gcGFyc2VJbnQocHJvdG8ucmV0d2VldHMsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVHdpdHRlclBvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhdm91cml0ZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Zhdm91cml0ZXMnXSA9IHRoaXMuZmF2b3VyaXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oYXNGYXZvdXJpdGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNGYXZvdXJpdGVkJ10gPSB0aGlzLmhhc0Zhdm91cml0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmV0d2VldHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldHdlZXRzJ10gPSB0aGlzLnJldHdlZXRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhhc1JldHdlZXRlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzUmV0d2VldGVkJ10gPSB0aGlzLmhhc1JldHdlZXRlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBZb3V0dWJlUG9zdFN0YXRzIGltcGxlbWVudHMgaS5Zb3V0dWJlUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBmYXZvdXJpdGVzOiBudW1iZXI7XG4gICAgdmlld3M6IG51bWJlcjtcbiAgICB2aWRlb1ZpZXdzOiBudW1iZXI7XG4gICAgZGlzbGlrZUNvdW50OiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBZb3V0dWJlUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgWW91dHViZVBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5saWtlQ291bnQpIHttLmxpa2VDb3VudCA9IHBhcnNlSW50KHByb3RvLmxpa2VDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNvbW1lbnRDb3VudCkge20uY29tbWVudENvdW50ID0gcGFyc2VJbnQocHJvdG8uY29tbWVudENvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uZmF2b3VyaXRlcykge20uZmF2b3VyaXRlcyA9IHBhcnNlSW50KHByb3RvLmZhdm91cml0ZXMsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by52aWV3cykge20udmlld3MgPSBwYXJzZUludChwcm90by52aWV3cywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnZpZGVvVmlld3MpIHttLnZpZGVvVmlld3MgPSBwYXJzZUludChwcm90by52aWRlb1ZpZXdzLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uZGlzbGlrZUNvdW50KSB7bS5kaXNsaWtlQ291bnQgPSBwYXJzZUludChwcm90by5kaXNsaWtlQ291bnQsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuWW91dHViZVBvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpa2VDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlrZUNvdW50J10gPSB0aGlzLmxpa2VDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb21tZW50Q291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbW1lbnRDb3VudCddID0gdGhpcy5jb21tZW50Q291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmF2b3VyaXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmF2b3VyaXRlcyddID0gdGhpcy5mYXZvdXJpdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZpZXdzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2aWV3cyddID0gdGhpcy52aWV3czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52aWRlb1ZpZXdzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2aWRlb1ZpZXdzJ10gPSB0aGlzLnZpZGVvVmlld3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzbGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNsaWtlQ291bnQnXSA9IHRoaXMuZGlzbGlrZUNvdW50O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|