@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,446 @@
|
|
|
1
|
+
import * as e from '../enums';
|
|
2
|
+
export function enumStringToValue(enumRef, value) {
|
|
3
|
+
if (typeof value === 'number') {
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
return enumRef[value];
|
|
7
|
+
}
|
|
8
|
+
export class CampaignCustomization {
|
|
9
|
+
static fromProto(proto) {
|
|
10
|
+
let m = new CampaignCustomization();
|
|
11
|
+
m = Object.assign(m, proto);
|
|
12
|
+
return m;
|
|
13
|
+
}
|
|
14
|
+
constructor(kwargs) {
|
|
15
|
+
if (!kwargs) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
Object.assign(this, kwargs);
|
|
19
|
+
}
|
|
20
|
+
toApiJson() {
|
|
21
|
+
const toReturn = {};
|
|
22
|
+
if (typeof this.id !== 'undefined') {
|
|
23
|
+
toReturn['id'] = this.id;
|
|
24
|
+
}
|
|
25
|
+
if (typeof this.name !== 'undefined') {
|
|
26
|
+
toReturn['name'] = this.name;
|
|
27
|
+
}
|
|
28
|
+
if (typeof this.shortCode !== 'undefined') {
|
|
29
|
+
toReturn['shortCode'] = this.shortCode;
|
|
30
|
+
}
|
|
31
|
+
return toReturn;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class Categories {
|
|
35
|
+
static fromProto(proto) {
|
|
36
|
+
let m = new Categories();
|
|
37
|
+
m = Object.assign(m, proto);
|
|
38
|
+
if (proto.id) {
|
|
39
|
+
m.id = parseInt(proto.id, 10);
|
|
40
|
+
}
|
|
41
|
+
return m;
|
|
42
|
+
}
|
|
43
|
+
constructor(kwargs) {
|
|
44
|
+
if (!kwargs) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
Object.assign(this, kwargs);
|
|
48
|
+
}
|
|
49
|
+
toApiJson() {
|
|
50
|
+
const toReturn = {};
|
|
51
|
+
if (typeof this.id !== 'undefined') {
|
|
52
|
+
toReturn['id'] = this.id;
|
|
53
|
+
}
|
|
54
|
+
if (typeof this.name !== 'undefined') {
|
|
55
|
+
toReturn['name'] = this.name;
|
|
56
|
+
}
|
|
57
|
+
return toReturn;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export class Draft {
|
|
61
|
+
static fromProto(proto) {
|
|
62
|
+
let m = new Draft();
|
|
63
|
+
m = Object.assign(m, proto);
|
|
64
|
+
if (proto.created) {
|
|
65
|
+
m.created = new Date(proto.created);
|
|
66
|
+
}
|
|
67
|
+
if (proto.updated) {
|
|
68
|
+
m.updated = new Date(proto.updated);
|
|
69
|
+
}
|
|
70
|
+
if (proto.postDateTime) {
|
|
71
|
+
m.postDateTime = new Date(proto.postDateTime);
|
|
72
|
+
}
|
|
73
|
+
if (proto.gmbPostCustomization) {
|
|
74
|
+
m.gmbPostCustomization = GMBPostCustomization.fromProto(proto.gmbPostCustomization);
|
|
75
|
+
}
|
|
76
|
+
if (proto.media) {
|
|
77
|
+
m.media = proto.media.map(DraftMedia.fromProto);
|
|
78
|
+
}
|
|
79
|
+
if (proto.draftType) {
|
|
80
|
+
m.draftType = enumStringToValue(e.DraftType, proto.draftType);
|
|
81
|
+
}
|
|
82
|
+
if (proto.metadata) {
|
|
83
|
+
m.metadata = proto.metadata.map(DraftMetaData.fromProto);
|
|
84
|
+
}
|
|
85
|
+
if (proto.youtubeCustomization) {
|
|
86
|
+
m.youtubeCustomization = DraftYoutubeCustomization.fromProto(proto.youtubeCustomization);
|
|
87
|
+
}
|
|
88
|
+
if (proto.ssidDraftTypes) {
|
|
89
|
+
m.ssidDraftTypes = proto.ssidDraftTypes.map(SSIDDraftType.fromProto);
|
|
90
|
+
}
|
|
91
|
+
if (proto.tiktokCustomization) {
|
|
92
|
+
m.tiktokCustomization = DraftTikTokCustomization.fromProto(proto.tiktokCustomization);
|
|
93
|
+
}
|
|
94
|
+
if (proto.blogPostCustomization) {
|
|
95
|
+
m.blogPostCustomization = DraftBlogPostCustomization.fromProto(proto.blogPostCustomization);
|
|
96
|
+
}
|
|
97
|
+
if (proto.campaignCustomization) {
|
|
98
|
+
m.campaignCustomization = CampaignCustomization.fromProto(proto.campaignCustomization);
|
|
99
|
+
}
|
|
100
|
+
return m;
|
|
101
|
+
}
|
|
102
|
+
constructor(kwargs) {
|
|
103
|
+
if (!kwargs) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
Object.assign(this, kwargs);
|
|
107
|
+
}
|
|
108
|
+
toApiJson() {
|
|
109
|
+
const toReturn = {};
|
|
110
|
+
if (typeof this.accountGroupId !== 'undefined') {
|
|
111
|
+
toReturn['accountGroupId'] = this.accountGroupId;
|
|
112
|
+
}
|
|
113
|
+
if (typeof this.draftId !== 'undefined') {
|
|
114
|
+
toReturn['draftId'] = this.draftId;
|
|
115
|
+
}
|
|
116
|
+
if (typeof this.created !== 'undefined' && this.created !== null) {
|
|
117
|
+
toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;
|
|
118
|
+
}
|
|
119
|
+
if (typeof this.updated !== 'undefined' && this.updated !== null) {
|
|
120
|
+
toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;
|
|
121
|
+
}
|
|
122
|
+
if (typeof this.draftText !== 'undefined') {
|
|
123
|
+
toReturn['draftText'] = this.draftText;
|
|
124
|
+
}
|
|
125
|
+
if (typeof this.postDateTime !== 'undefined' && this.postDateTime !== null) {
|
|
126
|
+
toReturn['postDateTime'] = 'toApiJson' in this.postDateTime ? this.postDateTime.toApiJson() : this.postDateTime;
|
|
127
|
+
}
|
|
128
|
+
if (typeof this.gmbPostCustomization !== 'undefined' && this.gmbPostCustomization !== null) {
|
|
129
|
+
toReturn['gmbPostCustomization'] = 'toApiJson' in this.gmbPostCustomization ? this.gmbPostCustomization.toApiJson() : this.gmbPostCustomization;
|
|
130
|
+
}
|
|
131
|
+
if (typeof this.previews !== 'undefined') {
|
|
132
|
+
toReturn['previews'] = this.previews;
|
|
133
|
+
}
|
|
134
|
+
if (typeof this.options !== 'undefined') {
|
|
135
|
+
toReturn['options'] = this.options;
|
|
136
|
+
}
|
|
137
|
+
if (typeof this.media !== 'undefined' && this.media !== null) {
|
|
138
|
+
toReturn['media'] = 'toApiJson' in this.media ? this.media.toApiJson() : this.media;
|
|
139
|
+
}
|
|
140
|
+
if (typeof this.ssids !== 'undefined') {
|
|
141
|
+
toReturn['ssids'] = this.ssids;
|
|
142
|
+
}
|
|
143
|
+
if (typeof this.draftType !== 'undefined') {
|
|
144
|
+
toReturn['draftType'] = this.draftType;
|
|
145
|
+
}
|
|
146
|
+
if (typeof this.metadata !== 'undefined' && this.metadata !== null) {
|
|
147
|
+
toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;
|
|
148
|
+
}
|
|
149
|
+
if (typeof this.youtubeCustomization !== 'undefined' && this.youtubeCustomization !== null) {
|
|
150
|
+
toReturn['youtubeCustomization'] = 'toApiJson' in this.youtubeCustomization ? this.youtubeCustomization.toApiJson() : this.youtubeCustomization;
|
|
151
|
+
}
|
|
152
|
+
if (typeof this.ssidDraftTypes !== 'undefined' && this.ssidDraftTypes !== null) {
|
|
153
|
+
toReturn['ssidDraftTypes'] = 'toApiJson' in this.ssidDraftTypes ? this.ssidDraftTypes.toApiJson() : this.ssidDraftTypes;
|
|
154
|
+
}
|
|
155
|
+
if (typeof this.isHidden !== 'undefined') {
|
|
156
|
+
toReturn['isHidden'] = this.isHidden;
|
|
157
|
+
}
|
|
158
|
+
if (typeof this.tiktokCustomization !== 'undefined' && this.tiktokCustomization !== null) {
|
|
159
|
+
toReturn['tiktokCustomization'] = 'toApiJson' in this.tiktokCustomization ? this.tiktokCustomization.toApiJson() : this.tiktokCustomization;
|
|
160
|
+
}
|
|
161
|
+
if (typeof this.blogPostCustomization !== 'undefined' && this.blogPostCustomization !== null) {
|
|
162
|
+
toReturn['blogPostCustomization'] = 'toApiJson' in this.blogPostCustomization ? this.blogPostCustomization.toApiJson() : this.blogPostCustomization;
|
|
163
|
+
}
|
|
164
|
+
if (typeof this.campaignCustomization !== 'undefined' && this.campaignCustomization !== null) {
|
|
165
|
+
toReturn['campaignCustomization'] = 'toApiJson' in this.campaignCustomization ? this.campaignCustomization.toApiJson() : this.campaignCustomization;
|
|
166
|
+
}
|
|
167
|
+
if (typeof this.brandId !== 'undefined') {
|
|
168
|
+
toReturn['brandId'] = this.brandId;
|
|
169
|
+
}
|
|
170
|
+
if (typeof this.multilocationPostId !== 'undefined') {
|
|
171
|
+
toReturn['multilocationPostId'] = this.multilocationPostId;
|
|
172
|
+
}
|
|
173
|
+
if (typeof this.socialNetworkIdentifier !== 'undefined') {
|
|
174
|
+
toReturn['socialNetworkIdentifier'] = this.socialNetworkIdentifier;
|
|
175
|
+
}
|
|
176
|
+
return toReturn;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
export class DraftAuthor {
|
|
180
|
+
static fromProto(proto) {
|
|
181
|
+
let m = new DraftAuthor();
|
|
182
|
+
m = Object.assign(m, proto);
|
|
183
|
+
if (proto.id) {
|
|
184
|
+
m.id = parseInt(proto.id, 10);
|
|
185
|
+
}
|
|
186
|
+
return m;
|
|
187
|
+
}
|
|
188
|
+
constructor(kwargs) {
|
|
189
|
+
if (!kwargs) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
Object.assign(this, kwargs);
|
|
193
|
+
}
|
|
194
|
+
toApiJson() {
|
|
195
|
+
const toReturn = {};
|
|
196
|
+
if (typeof this.id !== 'undefined') {
|
|
197
|
+
toReturn['id'] = this.id;
|
|
198
|
+
}
|
|
199
|
+
if (typeof this.name !== 'undefined') {
|
|
200
|
+
toReturn['name'] = this.name;
|
|
201
|
+
}
|
|
202
|
+
return toReturn;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
export class DraftBlogPostCustomization {
|
|
206
|
+
static fromProto(proto) {
|
|
207
|
+
let m = new DraftBlogPostCustomization();
|
|
208
|
+
m = Object.assign(m, proto);
|
|
209
|
+
if (proto.author) {
|
|
210
|
+
m.author = DraftAuthor.fromProto(proto.author);
|
|
211
|
+
}
|
|
212
|
+
if (proto.categories) {
|
|
213
|
+
m.categories = proto.categories.map(Categories.fromProto);
|
|
214
|
+
}
|
|
215
|
+
return m;
|
|
216
|
+
}
|
|
217
|
+
constructor(kwargs) {
|
|
218
|
+
if (!kwargs) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
Object.assign(this, kwargs);
|
|
222
|
+
}
|
|
223
|
+
toApiJson() {
|
|
224
|
+
const toReturn = {};
|
|
225
|
+
if (typeof this.title !== 'undefined') {
|
|
226
|
+
toReturn['title'] = this.title;
|
|
227
|
+
}
|
|
228
|
+
if (typeof this.author !== 'undefined' && this.author !== null) {
|
|
229
|
+
toReturn['author'] = 'toApiJson' in this.author ? this.author.toApiJson() : this.author;
|
|
230
|
+
}
|
|
231
|
+
if (typeof this.categories !== 'undefined' && this.categories !== null) {
|
|
232
|
+
toReturn['categories'] = 'toApiJson' in this.categories ? this.categories.toApiJson() : this.categories;
|
|
233
|
+
}
|
|
234
|
+
if (typeof this.tags !== 'undefined') {
|
|
235
|
+
toReturn['tags'] = this.tags;
|
|
236
|
+
}
|
|
237
|
+
if (typeof this.siteType !== 'undefined') {
|
|
238
|
+
toReturn['siteType'] = this.siteType;
|
|
239
|
+
}
|
|
240
|
+
return toReturn;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
export class DraftMedia {
|
|
244
|
+
static fromProto(proto) {
|
|
245
|
+
let m = new DraftMedia();
|
|
246
|
+
m = Object.assign(m, proto);
|
|
247
|
+
if (proto.metaData) {
|
|
248
|
+
m.metaData = proto.metaData.map(DraftMetaData.fromProto);
|
|
249
|
+
}
|
|
250
|
+
return m;
|
|
251
|
+
}
|
|
252
|
+
constructor(kwargs) {
|
|
253
|
+
if (!kwargs) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
Object.assign(this, kwargs);
|
|
257
|
+
}
|
|
258
|
+
toApiJson() {
|
|
259
|
+
const toReturn = {};
|
|
260
|
+
if (typeof this.imageUrl !== 'undefined') {
|
|
261
|
+
toReturn['imageUrl'] = this.imageUrl;
|
|
262
|
+
}
|
|
263
|
+
if (typeof this.videoUrl !== 'undefined') {
|
|
264
|
+
toReturn['videoUrl'] = this.videoUrl;
|
|
265
|
+
}
|
|
266
|
+
if (typeof this.gifUrl !== 'undefined') {
|
|
267
|
+
toReturn['gifUrl'] = this.gifUrl;
|
|
268
|
+
}
|
|
269
|
+
if (typeof this.mediaId !== 'undefined') {
|
|
270
|
+
toReturn['mediaId'] = this.mediaId;
|
|
271
|
+
}
|
|
272
|
+
if (typeof this.metaData !== 'undefined' && this.metaData !== null) {
|
|
273
|
+
toReturn['metaData'] = 'toApiJson' in this.metaData ? this.metaData.toApiJson() : this.metaData;
|
|
274
|
+
}
|
|
275
|
+
return toReturn;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
export class DraftMetaData {
|
|
279
|
+
static fromProto(proto) {
|
|
280
|
+
let m = new DraftMetaData();
|
|
281
|
+
m = Object.assign(m, proto);
|
|
282
|
+
return m;
|
|
283
|
+
}
|
|
284
|
+
constructor(kwargs) {
|
|
285
|
+
if (!kwargs) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
Object.assign(this, kwargs);
|
|
289
|
+
}
|
|
290
|
+
toApiJson() {
|
|
291
|
+
const toReturn = {};
|
|
292
|
+
if (typeof this.propertyName !== 'undefined') {
|
|
293
|
+
toReturn['propertyName'] = this.propertyName;
|
|
294
|
+
}
|
|
295
|
+
if (typeof this.propertyValue !== 'undefined') {
|
|
296
|
+
toReturn['propertyValue'] = this.propertyValue;
|
|
297
|
+
}
|
|
298
|
+
return toReturn;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
export class DraftTikTokCustomization {
|
|
302
|
+
static fromProto(proto) {
|
|
303
|
+
let m = new DraftTikTokCustomization();
|
|
304
|
+
m = Object.assign(m, proto);
|
|
305
|
+
return m;
|
|
306
|
+
}
|
|
307
|
+
constructor(kwargs) {
|
|
308
|
+
if (!kwargs) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
Object.assign(this, kwargs);
|
|
312
|
+
}
|
|
313
|
+
toApiJson() {
|
|
314
|
+
const toReturn = {};
|
|
315
|
+
if (typeof this.allowComment !== 'undefined') {
|
|
316
|
+
toReturn['allowComment'] = this.allowComment;
|
|
317
|
+
}
|
|
318
|
+
if (typeof this.allowDuet !== 'undefined') {
|
|
319
|
+
toReturn['allowDuet'] = this.allowDuet;
|
|
320
|
+
}
|
|
321
|
+
if (typeof this.allowStitch !== 'undefined') {
|
|
322
|
+
toReturn['allowStitch'] = this.allowStitch;
|
|
323
|
+
}
|
|
324
|
+
if (typeof this.isBrandOrganic !== 'undefined') {
|
|
325
|
+
toReturn['isBrandOrganic'] = this.isBrandOrganic;
|
|
326
|
+
}
|
|
327
|
+
if (typeof this.isBrandedContent !== 'undefined') {
|
|
328
|
+
toReturn['isBrandedContent'] = this.isBrandedContent;
|
|
329
|
+
}
|
|
330
|
+
return toReturn;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
export class DraftYoutubeCustomization {
|
|
334
|
+
static fromProto(proto) {
|
|
335
|
+
let m = new DraftYoutubeCustomization();
|
|
336
|
+
m = Object.assign(m, proto);
|
|
337
|
+
if (proto.privacyStatus) {
|
|
338
|
+
m.privacyStatus = enumStringToValue(e.DraftYoutubeCustomizationPrivacyStatus, proto.privacyStatus);
|
|
339
|
+
}
|
|
340
|
+
return m;
|
|
341
|
+
}
|
|
342
|
+
constructor(kwargs) {
|
|
343
|
+
if (!kwargs) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
Object.assign(this, kwargs);
|
|
347
|
+
}
|
|
348
|
+
toApiJson() {
|
|
349
|
+
const toReturn = {};
|
|
350
|
+
if (typeof this.title !== 'undefined') {
|
|
351
|
+
toReturn['title'] = this.title;
|
|
352
|
+
}
|
|
353
|
+
if (typeof this.privacyStatus !== 'undefined') {
|
|
354
|
+
toReturn['privacyStatus'] = this.privacyStatus;
|
|
355
|
+
}
|
|
356
|
+
return toReturn;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
export class GMBPostCustomization {
|
|
360
|
+
static fromProto(proto) {
|
|
361
|
+
let m = new GMBPostCustomization();
|
|
362
|
+
m = Object.assign(m, proto);
|
|
363
|
+
if (proto.eventStart) {
|
|
364
|
+
m.eventStart = new Date(proto.eventStart);
|
|
365
|
+
}
|
|
366
|
+
if (proto.eventEnd) {
|
|
367
|
+
m.eventEnd = new Date(proto.eventEnd);
|
|
368
|
+
}
|
|
369
|
+
return m;
|
|
370
|
+
}
|
|
371
|
+
constructor(kwargs) {
|
|
372
|
+
if (!kwargs) {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
Object.assign(this, kwargs);
|
|
376
|
+
}
|
|
377
|
+
toApiJson() {
|
|
378
|
+
const toReturn = {};
|
|
379
|
+
if (typeof this.title !== 'undefined') {
|
|
380
|
+
toReturn['title'] = this.title;
|
|
381
|
+
}
|
|
382
|
+
if (typeof this.eventStart !== 'undefined' && this.eventStart !== null) {
|
|
383
|
+
toReturn['eventStart'] = 'toApiJson' in this.eventStart ? this.eventStart.toApiJson() : this.eventStart;
|
|
384
|
+
}
|
|
385
|
+
if (typeof this.eventEnd !== 'undefined' && this.eventEnd !== null) {
|
|
386
|
+
toReturn['eventEnd'] = 'toApiJson' in this.eventEnd ? this.eventEnd.toApiJson() : this.eventEnd;
|
|
387
|
+
}
|
|
388
|
+
if (typeof this.ctaType !== 'undefined') {
|
|
389
|
+
toReturn['ctaType'] = this.ctaType;
|
|
390
|
+
}
|
|
391
|
+
if (typeof this.linkUrl !== 'undefined') {
|
|
392
|
+
toReturn['linkUrl'] = this.linkUrl;
|
|
393
|
+
}
|
|
394
|
+
return toReturn;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
export class MlDraftPost {
|
|
398
|
+
static fromProto(proto) {
|
|
399
|
+
let m = new MlDraftPost();
|
|
400
|
+
m = Object.assign(m, proto);
|
|
401
|
+
return m;
|
|
402
|
+
}
|
|
403
|
+
constructor(kwargs) {
|
|
404
|
+
if (!kwargs) {
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
Object.assign(this, kwargs);
|
|
408
|
+
}
|
|
409
|
+
toApiJson() {
|
|
410
|
+
const toReturn = {};
|
|
411
|
+
if (typeof this.multilocationPostId !== 'undefined') {
|
|
412
|
+
toReturn['multilocationPostId'] = this.multilocationPostId;
|
|
413
|
+
}
|
|
414
|
+
if (typeof this.accountGroupIds !== 'undefined') {
|
|
415
|
+
toReturn['accountGroupIds'] = this.accountGroupIds;
|
|
416
|
+
}
|
|
417
|
+
return toReturn;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
export class SSIDDraftType {
|
|
421
|
+
static fromProto(proto) {
|
|
422
|
+
let m = new SSIDDraftType();
|
|
423
|
+
m = Object.assign(m, proto);
|
|
424
|
+
if (proto.draftType) {
|
|
425
|
+
m.draftType = enumStringToValue(e.DraftType, proto.draftType);
|
|
426
|
+
}
|
|
427
|
+
return m;
|
|
428
|
+
}
|
|
429
|
+
constructor(kwargs) {
|
|
430
|
+
if (!kwargs) {
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
Object.assign(this, kwargs);
|
|
434
|
+
}
|
|
435
|
+
toApiJson() {
|
|
436
|
+
const toReturn = {};
|
|
437
|
+
if (typeof this.ssid !== 'undefined') {
|
|
438
|
+
toReturn['ssid'] = this.ssid;
|
|
439
|
+
}
|
|
440
|
+
if (typeof this.draftType !== 'undefined') {
|
|
441
|
+
toReturn['draftType'] = this.draftType;
|
|
442
|
+
}
|
|
443
|
+
return toReturn;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc29jaWFsX3Bvc3RzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2RyYWZ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBSzlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBeUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7U0FBQztRQUMvRCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFDO1FBQ3JFLElBQUks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U0FBUyxFQUFFO1lBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ2xHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBaUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUFDO1FBQ3BGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25DdXN0b21pemF0aW9uIGltcGxlbWVudHMgaS5DYW1wYWlnbkN1c3RvbWl6YXRpb25JbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNob3J0Q29kZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FtcGFpZ25DdXN0b21pemF0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ2FtcGFpZ25DdXN0b21pemF0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DYW1wYWlnbkN1c3RvbWl6YXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNob3J0Q29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2hvcnRDb2RlJ10gPSB0aGlzLnNob3J0Q29kZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yaWVzIGltcGxlbWVudHMgaS5DYXRlZ29yaWVzSW50ZXJmYWNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENhdGVnb3JpZXMge1xuICAgICAgICBsZXQgbSA9IG5ldyBDYXRlZ29yaWVzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmlkKSB7bS5pZCA9IHBhcnNlSW50KHByb3RvLmlkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNhdGVnb3JpZXNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyYWZ0IGltcGxlbWVudHMgaS5EcmFmdEludGVyZmFjZSB7XG4gICAgYWNjb3VudEdyb3VwSWQ6IHN0cmluZztcbiAgICBkcmFmdElkOiBzdHJpbmc7XG4gICAgY3JlYXRlZDogRGF0ZTtcbiAgICB1cGRhdGVkOiBEYXRlO1xuICAgIGRyYWZ0VGV4dDogc3RyaW5nO1xuICAgIHBvc3REYXRlVGltZTogRGF0ZTtcbiAgICBnbWJQb3N0Q3VzdG9taXphdGlvbjogR01CUG9zdEN1c3RvbWl6YXRpb247XG4gICAgcHJldmlld3M6IHN0cmluZztcbiAgICBvcHRpb25zOiBzdHJpbmdbXTtcbiAgICBtZWRpYTogRHJhZnRNZWRpYVtdO1xuICAgIHNzaWRzOiBzdHJpbmdbXTtcbiAgICBkcmFmdFR5cGU6IGUuRHJhZnRUeXBlO1xuICAgIG1ldGFkYXRhOiBEcmFmdE1ldGFEYXRhW107XG4gICAgeW91dHViZUN1c3RvbWl6YXRpb246IERyYWZ0WW91dHViZUN1c3RvbWl6YXRpb247XG4gICAgc3NpZERyYWZ0VHlwZXM6IFNTSUREcmFmdFR5cGVbXTtcbiAgICBpc0hpZGRlbjogYm9vbGVhbjtcbiAgICB0aWt0b2tDdXN0b21pemF0aW9uOiBEcmFmdFRpa1Rva0N1c3RvbWl6YXRpb247XG4gICAgYmxvZ1Bvc3RDdXN0b21pemF0aW9uOiBEcmFmdEJsb2dQb3N0Q3VzdG9taXphdGlvbjtcbiAgICBjYW1wYWlnbkN1c3RvbWl6YXRpb246IENhbXBhaWduQ3VzdG9taXphdGlvbjtcbiAgICBicmFuZElkOiBzdHJpbmc7XG4gICAgbXVsdGlsb2NhdGlvblBvc3RJZDogc3RyaW5nO1xuICAgIHNvY2lhbE5ldHdvcmtJZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEcmFmdCB7XG4gICAgICAgIGxldCBtID0gbmV3IERyYWZ0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmNyZWF0ZWQpIHttLmNyZWF0ZWQgPSBuZXcgRGF0ZShwcm90by5jcmVhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by51cGRhdGVkKSB7bS51cGRhdGVkID0gbmV3IERhdGUocHJvdG8udXBkYXRlZCk7fVxuICAgICAgICBpZiAocHJvdG8ucG9zdERhdGVUaW1lKSB7bS5wb3N0RGF0ZVRpbWUgPSBuZXcgRGF0ZShwcm90by5wb3N0RGF0ZVRpbWUpO31cbiAgICAgICAgaWYgKHByb3RvLmdtYlBvc3RDdXN0b21pemF0aW9uKSB7bS5nbWJQb3N0Q3VzdG9taXphdGlvbiA9IEdNQlBvc3RDdXN0b21pemF0aW9uLmZyb21Qcm90byhwcm90by5nbWJQb3N0Q3VzdG9taXphdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8ubWVkaWEpIHttLm1lZGlhID0gcHJvdG8ubWVkaWEubWFwKERyYWZ0TWVkaWEuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5kcmFmdFR5cGUpIHttLmRyYWZ0VHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRHJhZnRUeXBlPihlLkRyYWZ0VHlwZSwgcHJvdG8uZHJhZnRUeXBlKTt9XG4gICAgICAgIGlmIChwcm90by5tZXRhZGF0YSkge20ubWV0YWRhdGEgPSBwcm90by5tZXRhZGF0YS5tYXAoRHJhZnRNZXRhRGF0YS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnlvdXR1YmVDdXN0b21pemF0aW9uKSB7bS55b3V0dWJlQ3VzdG9taXphdGlvbiA9IERyYWZ0WW91dHViZUN1c3RvbWl6YXRpb24uZnJvbVByb3RvKHByb3RvLnlvdXR1YmVDdXN0b21pemF0aW9uKTt9XG4gICAgICAgIGlmIChwcm90by5zc2lkRHJhZnRUeXBlcykge20uc3NpZERyYWZ0VHlwZXMgPSBwcm90by5zc2lkRHJhZnRUeXBlcy5tYXAoU1NJRERyYWZ0VHlwZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnRpa3Rva0N1c3RvbWl6YXRpb24pIHttLnRpa3Rva0N1c3RvbWl6YXRpb24gPSBEcmFmdFRpa1Rva0N1c3RvbWl6YXRpb24uZnJvbVByb3RvKHByb3RvLnRpa3Rva0N1c3RvbWl6YXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmJsb2dQb3N0Q3VzdG9taXphdGlvbikge20uYmxvZ1Bvc3RDdXN0b21pemF0aW9uID0gRHJhZnRCbG9nUG9zdEN1c3RvbWl6YXRpb24uZnJvbVByb3RvKHByb3RvLmJsb2dQb3N0Q3VzdG9taXphdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8uY2FtcGFpZ25DdXN0b21pemF0aW9uKSB7bS5jYW1wYWlnbkN1c3RvbWl6YXRpb24gPSBDYW1wYWlnbkN1c3RvbWl6YXRpb24uZnJvbVByb3RvKHByb3RvLmNhbXBhaWduQ3VzdG9taXphdGlvbik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRyYWZ0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWNjb3VudEdyb3VwSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FjY291bnRHcm91cElkJ10gPSB0aGlzLmFjY291bnRHcm91cElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRyYWZ0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2RyYWZ0SWQnXSA9IHRoaXMuZHJhZnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXBkYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVwZGF0ZWQgPyAodGhpcy51cGRhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZHJhZnRUZXh0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkcmFmdFRleHQnXSA9IHRoaXMuZHJhZnRUZXh0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc3REYXRlVGltZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wb3N0RGF0ZVRpbWUgIT09IG51bGwpIHt0b1JldHVyblsncG9zdERhdGVUaW1lJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBvc3REYXRlVGltZSA/ICh0aGlzLnBvc3REYXRlVGltZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wb3N0RGF0ZVRpbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ21iUG9zdEN1c3RvbWl6YXRpb24gIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZ21iUG9zdEN1c3RvbWl6YXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnZ21iUG9zdEN1c3RvbWl6YXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZ21iUG9zdEN1c3RvbWl6YXRpb24gPyAodGhpcy5nbWJQb3N0Q3VzdG9taXphdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5nbWJQb3N0Q3VzdG9taXphdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmV2aWV3cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJldmlld3MnXSA9IHRoaXMucHJldmlld3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3B0aW9ucyddID0gdGhpcy5vcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZGlhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1lZGlhICE9PSBudWxsKSB7dG9SZXR1cm5bJ21lZGlhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1lZGlhID8gKHRoaXMubWVkaWEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWVkaWE7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3NpZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NzaWRzJ10gPSB0aGlzLnNzaWRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRyYWZ0VHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZHJhZnRUeXBlJ10gPSB0aGlzLmRyYWZ0VHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXRhZGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZXRhZGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydtZXRhZGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tZXRhZGF0YSA/ICh0aGlzLm1ldGFkYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1ldGFkYXRhO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnlvdXR1YmVDdXN0b21pemF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnlvdXR1YmVDdXN0b21pemF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ3lvdXR1YmVDdXN0b21pemF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnlvdXR1YmVDdXN0b21pemF0aW9uID8gKHRoaXMueW91dHViZUN1c3RvbWl6YXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMueW91dHViZUN1c3RvbWl6YXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3NpZERyYWZ0VHlwZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3NpZERyYWZ0VHlwZXMgIT09IG51bGwpIHt0b1JldHVyblsnc3NpZERyYWZ0VHlwZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc3NpZERyYWZ0VHlwZXMgPyAodGhpcy5zc2lkRHJhZnRUeXBlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zc2lkRHJhZnRUeXBlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc0hpZGRlbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaXNIaWRkZW4nXSA9IHRoaXMuaXNIaWRkZW47fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGlrdG9rQ3VzdG9taXphdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50aWt0b2tDdXN0b21pemF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Rpa3Rva0N1c3RvbWl6YXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGlrdG9rQ3VzdG9taXphdGlvbiA/ICh0aGlzLnRpa3Rva0N1c3RvbWl6YXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGlrdG9rQ3VzdG9taXphdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ibG9nUG9zdEN1c3RvbWl6YXRpb24gIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmxvZ1Bvc3RDdXN0b21pemF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ2Jsb2dQb3N0Q3VzdG9taXphdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5ibG9nUG9zdEN1c3RvbWl6YXRpb24gPyAodGhpcy5ibG9nUG9zdEN1c3RvbWl6YXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYmxvZ1Bvc3RDdXN0b21pemF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbXBhaWduQ3VzdG9taXphdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jYW1wYWlnbkN1c3RvbWl6YXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnY2FtcGFpZ25DdXN0b21pemF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNhbXBhaWduQ3VzdG9taXphdGlvbiA/ICh0aGlzLmNhbXBhaWduQ3VzdG9taXphdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jYW1wYWlnbkN1c3RvbWl6YXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnJhbmRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnJhbmRJZCddID0gdGhpcy5icmFuZElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm11bHRpbG9jYXRpb25Qb3N0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ211bHRpbG9jYXRpb25Qb3N0SWQnXSA9IHRoaXMubXVsdGlsb2NhdGlvblBvc3RJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zb2NpYWxOZXR3b3JrSWRlbnRpZmllciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc29jaWFsTmV0d29ya0lkZW50aWZpZXInXSA9IHRoaXMuc29jaWFsTmV0d29ya0lkZW50aWZpZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJhZnRBdXRob3IgaW1wbGVtZW50cyBpLkRyYWZ0QXV0aG9ySW50ZXJmYWNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERyYWZ0QXV0aG9yIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRHJhZnRBdXRob3IoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaWQpIHttLmlkID0gcGFyc2VJbnQocHJvdG8uaWQsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRHJhZnRBdXRob3JJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyYWZ0QmxvZ1Bvc3RDdXN0b21pemF0aW9uIGltcGxlbWVudHMgaS5EcmFmdEJsb2dQb3N0Q3VzdG9taXphdGlvbkludGVyZmFjZSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBhdXRob3I6IERyYWZ0QXV0aG9yO1xuICAgIGNhdGVnb3JpZXM6IENhdGVnb3JpZXNbXTtcbiAgICB0YWdzOiBzdHJpbmdbXTtcbiAgICBzaXRlVHlwZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRHJhZnRCbG9nUG9zdEN1c3RvbWl6YXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBEcmFmdEJsb2dQb3N0Q3VzdG9taXphdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hdXRob3IpIHttLmF1dGhvciA9IERyYWZ0QXV0aG9yLmZyb21Qcm90byhwcm90by5hdXRob3IpO31cbiAgICAgICAgaWYgKHByb3RvLmNhdGVnb3JpZXMpIHttLmNhdGVnb3JpZXMgPSBwcm90by5jYXRlZ29yaWVzLm1hcChDYXRlZ29yaWVzLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRyYWZ0QmxvZ1Bvc3RDdXN0b21pemF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGl0bGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpdGxlJ10gPSB0aGlzLnRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF1dGhvciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hdXRob3IgIT09IG51bGwpIHt0b1JldHVyblsnYXV0aG9yJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmF1dGhvciA/ICh0aGlzLmF1dGhvciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hdXRob3I7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2F0ZWdvcmllcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jYXRlZ29yaWVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NhdGVnb3JpZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY2F0ZWdvcmllcyA/ICh0aGlzLmNhdGVnb3JpZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY2F0ZWdvcmllczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YWdzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YWdzJ10gPSB0aGlzLnRhZ3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2l0ZVR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NpdGVUeXBlJ10gPSB0aGlzLnNpdGVUeXBlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyYWZ0TWVkaWEgaW1wbGVtZW50cyBpLkRyYWZ0TWVkaWFJbnRlcmZhY2Uge1xuICAgIGltYWdlVXJsOiBzdHJpbmc7XG4gICAgdmlkZW9Vcmw6IHN0cmluZztcbiAgICBnaWZVcmw6IHN0cmluZztcbiAgICBtZWRpYUlkOiBzdHJpbmc7XG4gICAgbWV0YURhdGE6IERyYWZ0TWV0YURhdGFbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERyYWZ0TWVkaWEge1xuICAgICAgICBsZXQgbSA9IG5ldyBEcmFmdE1lZGlhKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm1ldGFEYXRhKSB7bS5tZXRhRGF0YSA9IHByb3RvLm1ldGFEYXRhLm1hcChEcmFmdE1ldGFEYXRhLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRyYWZ0TWVkaWFJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbWFnZVVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW1hZ2VVcmwnXSA9IHRoaXMuaW1hZ2VVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmlkZW9VcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZpZGVvVXJsJ10gPSB0aGlzLnZpZGVvVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmdpZlVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZ2lmVXJsJ10gPSB0aGlzLmdpZlVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWRpYUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZWRpYUlkJ10gPSB0aGlzLm1lZGlhSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWV0YURhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubWV0YURhdGEgIT09IG51bGwpIHt0b1JldHVyblsnbWV0YURhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubWV0YURhdGEgPyAodGhpcy5tZXRhRGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5tZXRhRGF0YTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEcmFmdE1ldGFEYXRhIGltcGxlbWVudHMgaS5EcmFmdE1ldGFEYXRhSW50ZXJmYWNlIHtcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgICBwcm9wZXJ0eVZhbHVlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEcmFmdE1ldGFEYXRhIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRHJhZnRNZXRhRGF0YSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRHJhZnRNZXRhRGF0YUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BlcnR5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJvcGVydHlOYW1lJ10gPSB0aGlzLnByb3BlcnR5TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wZXJ0eVZhbHVlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcm9wZXJ0eVZhbHVlJ10gPSB0aGlzLnByb3BlcnR5VmFsdWU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJhZnRUaWtUb2tDdXN0b21pemF0aW9uIGltcGxlbWVudHMgaS5EcmFmdFRpa1Rva0N1c3RvbWl6YXRpb25JbnRlcmZhY2Uge1xuICAgIGFsbG93Q29tbWVudDogYm9vbGVhbjtcbiAgICBhbGxvd0R1ZXQ6IGJvb2xlYW47XG4gICAgYWxsb3dTdGl0Y2g6IGJvb2xlYW47XG4gICAgaXNCcmFuZE9yZ2FuaWM6IGJvb2xlYW47XG4gICAgaXNCcmFuZGVkQ29udGVudDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERyYWZ0VGlrVG9rQ3VzdG9taXphdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IERyYWZ0VGlrVG9rQ3VzdG9taXphdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRHJhZnRUaWtUb2tDdXN0b21pemF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWxsb3dDb21tZW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhbGxvd0NvbW1lbnQnXSA9IHRoaXMuYWxsb3dDb21tZW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFsbG93RHVldCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWxsb3dEdWV0J10gPSB0aGlzLmFsbG93RHVldDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hbGxvd1N0aXRjaCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWxsb3dTdGl0Y2gnXSA9IHRoaXMuYWxsb3dTdGl0Y2g7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNCcmFuZE9yZ2FuaWMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzQnJhbmRPcmdhbmljJ10gPSB0aGlzLmlzQnJhbmRPcmdhbmljO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlzQnJhbmRlZENvbnRlbnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzQnJhbmRlZENvbnRlbnQnXSA9IHRoaXMuaXNCcmFuZGVkQ29udGVudDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEcmFmdFlvdXR1YmVDdXN0b21pemF0aW9uIGltcGxlbWVudHMgaS5EcmFmdFlvdXR1YmVDdXN0b21pemF0aW9uSW50ZXJmYWNlIHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHByaXZhY3lTdGF0dXM6IGUuRHJhZnRZb3V0dWJlQ3VzdG9taXphdGlvblByaXZhY3lTdGF0dXM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEcmFmdFlvdXR1YmVDdXN0b21pemF0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRHJhZnRZb3V0dWJlQ3VzdG9taXphdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5wcml2YWN5U3RhdHVzKSB7bS5wcml2YWN5U3RhdHVzID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5EcmFmdFlvdXR1YmVDdXN0b21pemF0aW9uUHJpdmFjeVN0YXR1cz4oZS5EcmFmdFlvdXR1YmVDdXN0b21pemF0aW9uUHJpdmFjeVN0YXR1cywgcHJvdG8ucHJpdmFjeVN0YXR1cyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRyYWZ0WW91dHViZUN1c3RvbWl6YXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJpdmFjeVN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJpdmFjeVN0YXR1cyddID0gdGhpcy5wcml2YWN5U3RhdHVzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdNQlBvc3RDdXN0b21pemF0aW9uIGltcGxlbWVudHMgaS5HTUJQb3N0Q3VzdG9taXphdGlvbkludGVyZmFjZSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBldmVudFN0YXJ0OiBEYXRlO1xuICAgIGV2ZW50RW5kOiBEYXRlO1xuICAgIGN0YVR5cGU6IHN0cmluZztcbiAgICBsaW5rVXJsOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHTUJQb3N0Q3VzdG9taXphdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IEdNQlBvc3RDdXN0b21pemF0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmV2ZW50U3RhcnQpIHttLmV2ZW50U3RhcnQgPSBuZXcgRGF0ZShwcm90by5ldmVudFN0YXJ0KTt9XG4gICAgICAgIGlmIChwcm90by5ldmVudEVuZCkge20uZXZlbnRFbmQgPSBuZXcgRGF0ZShwcm90by5ldmVudEVuZCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdNQlBvc3RDdXN0b21pemF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGl0bGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpdGxlJ10gPSB0aGlzLnRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50U3RhcnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXZlbnRTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydldmVudFN0YXJ0J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV2ZW50U3RhcnQgPyAodGhpcy5ldmVudFN0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmV2ZW50U3RhcnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXZlbnRFbmQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXZlbnRFbmQgIT09IG51bGwpIHt0b1JldHVyblsnZXZlbnRFbmQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXZlbnRFbmQgPyAodGhpcy5ldmVudEVuZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5ldmVudEVuZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdGFUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdGFUeXBlJ10gPSB0aGlzLmN0YVR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlua1VybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlua1VybCddID0gdGhpcy5saW5rVXJsO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1sRHJhZnRQb3N0IGltcGxlbWVudHMgaS5NbERyYWZ0UG9zdEludGVyZmFjZSB7XG4gICAgbXVsdGlsb2NhdGlvblBvc3RJZDogc3RyaW5nO1xuICAgIGFjY291bnRHcm91cElkczogc3RyaW5nW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBNbERyYWZ0UG9zdCB7XG4gICAgICAgIGxldCBtID0gbmV3IE1sRHJhZnRQb3N0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5NbERyYWZ0UG9zdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm11bHRpbG9jYXRpb25Qb3N0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ211bHRpbG9jYXRpb25Qb3N0SWQnXSA9IHRoaXMubXVsdGlsb2NhdGlvblBvc3RJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY2NvdW50R3JvdXBJZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FjY291bnRHcm91cElkcyddID0gdGhpcy5hY2NvdW50R3JvdXBJZHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU1NJRERyYWZ0VHlwZSBpbXBsZW1lbnRzIGkuU1NJRERyYWZ0VHlwZUludGVyZmFjZSB7XG4gICAgc3NpZDogc3RyaW5nO1xuICAgIGRyYWZ0VHlwZTogZS5EcmFmdFR5cGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTU0lERHJhZnRUeXBlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU1NJRERyYWZ0VHlwZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5kcmFmdFR5cGUpIHttLmRyYWZ0VHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRHJhZnRUeXBlPihlLkRyYWZ0VHlwZSwgcHJvdG8uZHJhZnRUeXBlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU1NJRERyYWZ0VHlwZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNzaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NzaWQnXSA9IHRoaXMuc3NpZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kcmFmdFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2RyYWZ0VHlwZSddID0gdGhpcy5kcmFmdFR5cGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|