@vendasta/social-posts 5.45.8 → 5.47.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/enums/engagement.enum.mjs +13 -0
- package/esm2020/lib/_internal/enums/index.mjs +3 -1
- package/esm2020/lib/_internal/enums/stock-image.enum.mjs +12 -0
- package/esm2020/lib/_internal/image-library.api.service.mjs +40 -0
- package/esm2020/lib/_internal/index.mjs +4 -1
- package/esm2020/lib/_internal/interfaces/api.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/engagement.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/index.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/social-post-stats.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/social-posts.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/api.mjs +83 -2
- package/esm2020/lib/_internal/objects/engagement.mjs +221 -0
- package/esm2020/lib/_internal/objects/index.mjs +7 -5
- package/esm2020/lib/_internal/objects/social-post-stats.mjs +213 -1
- package/esm2020/lib/_internal/objects/social-posts.mjs +33 -1
- package/esm2020/lib/_internal/objects/stock-image.mjs +110 -0
- package/esm2020/lib/_internal/social-mentions.api.service.mjs +40 -0
- package/esm2020/lib/_internal/social-post-engagements.api.service.mjs +40 -0
- package/esm2020/lib/index.mjs +2 -1
- package/esm2020/lib/multilocation-posts.service.mjs +1 -1
- package/esm2020/lib/social-mentions.service.mjs +27 -0
- package/fesm2015/vendasta-social-posts.mjs +962 -164
- package/fesm2015/vendasta-social-posts.mjs.map +1 -1
- package/fesm2020/vendasta-social-posts.mjs +962 -164
- package/fesm2020/vendasta-social-posts.mjs.map +1 -1
- package/lib/_internal/enums/engagement.enum.d.ts +5 -0
- package/lib/_internal/enums/index.d.ts +2 -0
- package/lib/_internal/enums/stock-image.enum.d.ts +4 -0
- package/lib/_internal/image-library.api.service.d.ts +13 -0
- package/lib/_internal/index.d.ts +3 -0
- package/lib/_internal/interfaces/api.interface.d.ts +17 -1
- package/lib/_internal/interfaces/engagement.interface.d.ts +37 -0
- package/lib/_internal/interfaces/index.d.ts +6 -4
- package/lib/_internal/interfaces/social-post-stats.interface.d.ts +32 -0
- package/lib/_internal/interfaces/social-posts.interface.d.ts +7 -0
- package/lib/_internal/interfaces/stock-image.interface.d.ts +21 -0
- package/lib/_internal/multilocation-post.api.service.d.ts +1 -1
- package/lib/_internal/objects/api.d.ts +26 -1
- package/lib/_internal/objects/engagement.d.ts +60 -0
- package/lib/_internal/objects/index.d.ts +6 -4
- package/lib/_internal/objects/social-post-stats.d.ts +44 -0
- package/lib/_internal/objects/social-posts.d.ts +10 -0
- package/lib/_internal/objects/stock-image.d.ts +32 -0
- package/lib/_internal/social-mentions.api.service.d.ts +13 -0
- package/lib/_internal/social-post-engagements.api.service.d.ts +13 -0
- package/lib/index.d.ts +1 -0
- package/lib/multilocation-posts.service.d.ts +1 -1
- package/lib/social-mentions.service.d.ts +11 -0
- package/package.json +1 -1
|
@@ -57,6 +57,100 @@ export class FacebookPostStats {
|
|
|
57
57
|
return toReturn;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
+
export class InstagramPostStats {
|
|
61
|
+
static fromProto(proto) {
|
|
62
|
+
let m = new InstagramPostStats();
|
|
63
|
+
m = Object.assign(m, proto);
|
|
64
|
+
if (proto.likeCount) {
|
|
65
|
+
m.likeCount = parseInt(proto.likeCount, 10);
|
|
66
|
+
}
|
|
67
|
+
if (proto.commentCount) {
|
|
68
|
+
m.commentCount = parseInt(proto.commentCount, 10);
|
|
69
|
+
}
|
|
70
|
+
if (proto.saves) {
|
|
71
|
+
m.saves = parseInt(proto.saves, 10);
|
|
72
|
+
}
|
|
73
|
+
if (proto.reach) {
|
|
74
|
+
m.reach = parseInt(proto.reach, 10);
|
|
75
|
+
}
|
|
76
|
+
if (proto.videoViews) {
|
|
77
|
+
m.videoViews = parseInt(proto.videoViews, 10);
|
|
78
|
+
}
|
|
79
|
+
return m;
|
|
80
|
+
}
|
|
81
|
+
constructor(kwargs) {
|
|
82
|
+
if (!kwargs) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
Object.assign(this, kwargs);
|
|
86
|
+
}
|
|
87
|
+
toApiJson() {
|
|
88
|
+
const toReturn = {};
|
|
89
|
+
if (typeof this.likeCount !== 'undefined') {
|
|
90
|
+
toReturn['likeCount'] = this.likeCount;
|
|
91
|
+
}
|
|
92
|
+
if (typeof this.commentCount !== 'undefined') {
|
|
93
|
+
toReturn['commentCount'] = this.commentCount;
|
|
94
|
+
}
|
|
95
|
+
if (typeof this.saves !== 'undefined') {
|
|
96
|
+
toReturn['saves'] = this.saves;
|
|
97
|
+
}
|
|
98
|
+
if (typeof this.reach !== 'undefined') {
|
|
99
|
+
toReturn['reach'] = this.reach;
|
|
100
|
+
}
|
|
101
|
+
if (typeof this.videoViews !== 'undefined') {
|
|
102
|
+
toReturn['videoViews'] = this.videoViews;
|
|
103
|
+
}
|
|
104
|
+
return toReturn;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export class LinkedInPostStats {
|
|
108
|
+
static fromProto(proto) {
|
|
109
|
+
let m = new LinkedInPostStats();
|
|
110
|
+
m = Object.assign(m, proto);
|
|
111
|
+
if (proto.likeCount) {
|
|
112
|
+
m.likeCount = parseInt(proto.likeCount, 10);
|
|
113
|
+
}
|
|
114
|
+
if (proto.commentCount) {
|
|
115
|
+
m.commentCount = parseInt(proto.commentCount, 10);
|
|
116
|
+
}
|
|
117
|
+
if (proto.shareCount) {
|
|
118
|
+
m.shareCount = parseInt(proto.shareCount, 10);
|
|
119
|
+
}
|
|
120
|
+
if (proto.clicks) {
|
|
121
|
+
m.clicks = parseInt(proto.clicks, 10);
|
|
122
|
+
}
|
|
123
|
+
if (proto.impressions) {
|
|
124
|
+
m.impressions = parseInt(proto.impressions, 10);
|
|
125
|
+
}
|
|
126
|
+
return m;
|
|
127
|
+
}
|
|
128
|
+
constructor(kwargs) {
|
|
129
|
+
if (!kwargs) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
Object.assign(this, kwargs);
|
|
133
|
+
}
|
|
134
|
+
toApiJson() {
|
|
135
|
+
const toReturn = {};
|
|
136
|
+
if (typeof this.likeCount !== 'undefined') {
|
|
137
|
+
toReturn['likeCount'] = this.likeCount;
|
|
138
|
+
}
|
|
139
|
+
if (typeof this.commentCount !== 'undefined') {
|
|
140
|
+
toReturn['commentCount'] = this.commentCount;
|
|
141
|
+
}
|
|
142
|
+
if (typeof this.shareCount !== 'undefined') {
|
|
143
|
+
toReturn['shareCount'] = this.shareCount;
|
|
144
|
+
}
|
|
145
|
+
if (typeof this.clicks !== 'undefined') {
|
|
146
|
+
toReturn['clicks'] = this.clicks;
|
|
147
|
+
}
|
|
148
|
+
if (typeof this.impressions !== 'undefined') {
|
|
149
|
+
toReturn['impressions'] = this.impressions;
|
|
150
|
+
}
|
|
151
|
+
return toReturn;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
60
154
|
export class SocialPostStats {
|
|
61
155
|
static fromProto(proto) {
|
|
62
156
|
let m = new SocialPostStats();
|
|
@@ -67,6 +161,18 @@ export class SocialPostStats {
|
|
|
67
161
|
if (proto.twitterPostStats) {
|
|
68
162
|
m.twitterPostStats = TwitterPostStats.fromProto(proto.twitterPostStats);
|
|
69
163
|
}
|
|
164
|
+
if (proto.linkedinPostStats) {
|
|
165
|
+
m.linkedinPostStats = LinkedInPostStats.fromProto(proto.linkedinPostStats);
|
|
166
|
+
}
|
|
167
|
+
if (proto.instagramPostStats) {
|
|
168
|
+
m.instagramPostStats = InstagramPostStats.fromProto(proto.instagramPostStats);
|
|
169
|
+
}
|
|
170
|
+
if (proto.youtubePostStats) {
|
|
171
|
+
m.youtubePostStats = YoutubePostStats.fromProto(proto.youtubePostStats);
|
|
172
|
+
}
|
|
173
|
+
if (proto.tiktokPostStats) {
|
|
174
|
+
m.tiktokPostStats = TikTokPostStats.fromProto(proto.tiktokPostStats);
|
|
175
|
+
}
|
|
70
176
|
return m;
|
|
71
177
|
}
|
|
72
178
|
constructor(kwargs) {
|
|
@@ -86,6 +192,59 @@ export class SocialPostStats {
|
|
|
86
192
|
if (typeof this.twitterPostStats !== 'undefined' && this.twitterPostStats !== null) {
|
|
87
193
|
toReturn['twitterPostStats'] = 'toApiJson' in this.twitterPostStats ? this.twitterPostStats.toApiJson() : this.twitterPostStats;
|
|
88
194
|
}
|
|
195
|
+
if (typeof this.linkedinPostStats !== 'undefined' && this.linkedinPostStats !== null) {
|
|
196
|
+
toReturn['linkedinPostStats'] = 'toApiJson' in this.linkedinPostStats ? this.linkedinPostStats.toApiJson() : this.linkedinPostStats;
|
|
197
|
+
}
|
|
198
|
+
if (typeof this.instagramPostStats !== 'undefined' && this.instagramPostStats !== null) {
|
|
199
|
+
toReturn['instagramPostStats'] = 'toApiJson' in this.instagramPostStats ? this.instagramPostStats.toApiJson() : this.instagramPostStats;
|
|
200
|
+
}
|
|
201
|
+
if (typeof this.youtubePostStats !== 'undefined' && this.youtubePostStats !== null) {
|
|
202
|
+
toReturn['youtubePostStats'] = 'toApiJson' in this.youtubePostStats ? this.youtubePostStats.toApiJson() : this.youtubePostStats;
|
|
203
|
+
}
|
|
204
|
+
if (typeof this.tiktokPostStats !== 'undefined' && this.tiktokPostStats !== null) {
|
|
205
|
+
toReturn['tiktokPostStats'] = 'toApiJson' in this.tiktokPostStats ? this.tiktokPostStats.toApiJson() : this.tiktokPostStats;
|
|
206
|
+
}
|
|
207
|
+
return toReturn;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
export class TikTokPostStats {
|
|
211
|
+
static fromProto(proto) {
|
|
212
|
+
let m = new TikTokPostStats();
|
|
213
|
+
m = Object.assign(m, proto);
|
|
214
|
+
if (proto.likeCount) {
|
|
215
|
+
m.likeCount = parseInt(proto.likeCount, 10);
|
|
216
|
+
}
|
|
217
|
+
if (proto.commentCount) {
|
|
218
|
+
m.commentCount = parseInt(proto.commentCount, 10);
|
|
219
|
+
}
|
|
220
|
+
if (proto.shareCount) {
|
|
221
|
+
m.shareCount = parseInt(proto.shareCount, 10);
|
|
222
|
+
}
|
|
223
|
+
if (proto.peopleReached) {
|
|
224
|
+
m.peopleReached = parseInt(proto.peopleReached, 10);
|
|
225
|
+
}
|
|
226
|
+
return m;
|
|
227
|
+
}
|
|
228
|
+
constructor(kwargs) {
|
|
229
|
+
if (!kwargs) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
Object.assign(this, kwargs);
|
|
233
|
+
}
|
|
234
|
+
toApiJson() {
|
|
235
|
+
const toReturn = {};
|
|
236
|
+
if (typeof this.likeCount !== 'undefined') {
|
|
237
|
+
toReturn['likeCount'] = this.likeCount;
|
|
238
|
+
}
|
|
239
|
+
if (typeof this.commentCount !== 'undefined') {
|
|
240
|
+
toReturn['commentCount'] = this.commentCount;
|
|
241
|
+
}
|
|
242
|
+
if (typeof this.shareCount !== 'undefined') {
|
|
243
|
+
toReturn['shareCount'] = this.shareCount;
|
|
244
|
+
}
|
|
245
|
+
if (typeof this.peopleReached !== 'undefined') {
|
|
246
|
+
toReturn['peopleReached'] = this.peopleReached;
|
|
247
|
+
}
|
|
89
248
|
return toReturn;
|
|
90
249
|
}
|
|
91
250
|
}
|
|
@@ -124,4 +283,57 @@ export class TwitterPostStats {
|
|
|
124
283
|
return toReturn;
|
|
125
284
|
}
|
|
126
285
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXBvc3Qtc3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvc29jaWFsLXBvc3Qtc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtJQVMxQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQUM7UUFDNUUsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxD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QUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUFDO1FBQ2hHLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUM7UUFDakYsSUFBSSxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FBQztRQUM3RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEZhY2Vib29rUG9zdFN0YXRzIGltcGxlbWVudHMgaS5GYWNlYm9va1Bvc3RTdGF0c0ludGVyZmFjZSB7XG4gICAgY29tbWVudENvdW50OiBudW1iZXI7XG4gICAgc2hhcmVDb3VudDogbnVtYmVyO1xuICAgIGxpa2VDb3VudDogbnVtYmVyO1xuICAgIGhhc0xpa2U6IGJvb2xlYW47XG4gICAgY2FuTGlrZTogYm9vbGVhbjtcbiAgICByZWFjdGlvbnM6IG51bWJlcjtcbiAgICBwZW9wbGVSZWFjaGVkOiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBGYWNlYm9va1Bvc3RTdGF0cyB7XG4gICAgICAgIGxldCBtID0gbmV3IEZhY2Vib29rUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmNvbW1lbnRDb3VudCkge20uY29tbWVudENvdW50ID0gcGFyc2VJbnQocHJvdG8uY29tbWVudENvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uc2hhcmVDb3VudCkge20uc2hhcmVDb3VudCA9IHBhcnNlSW50KHByb3RvLnNoYXJlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5saWtlQ291bnQpIHttLmxpa2VDb3VudCA9IHBhcnNlSW50KHByb3RvLmxpa2VDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnJlYWN0aW9ucykge20ucmVhY3Rpb25zID0gcGFyc2VJbnQocHJvdG8ucmVhY3Rpb25zLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ucGVvcGxlUmVhY2hlZCkge20ucGVvcGxlUmVhY2hlZCA9IHBhcnNlSW50KHByb3RvLnBlb3BsZVJlYWNoZWQsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRmFjZWJvb2tQb3N0U3RhdHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb21tZW50Q291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbW1lbnRDb3VudCddID0gdGhpcy5jb21tZW50Q291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2hhcmVDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2hhcmVDb3VudCddID0gdGhpcy5zaGFyZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpa2VDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlrZUNvdW50J10gPSB0aGlzLmxpa2VDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oYXNMaWtlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNMaWtlJ10gPSB0aGlzLmhhc0xpa2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2FuTGlrZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2FuTGlrZSddID0gdGhpcy5jYW5MaWtlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlYWN0aW9ucyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVhY3Rpb25zJ10gPSB0aGlzLnJlYWN0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wZW9wbGVSZWFjaGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwZW9wbGVSZWFjaGVkJ10gPSB0aGlzLnBlb3BsZVJlYWNoZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU29jaWFsUG9zdFN0YXRzIGltcGxlbWVudHMgaS5Tb2NpYWxQb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGludGVybmFsUG9zdElkOiBzdHJpbmc7XG4gICAgZmFjZWJvb2tQb3N0U3RhdHM6IEZhY2Vib29rUG9zdFN0YXRzO1xuICAgIHR3aXR0ZXJQb3N0U3RhdHM6IFR3aXR0ZXJQb3N0U3RhdHM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTb2NpYWxQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBTb2NpYWxQb3N0U3RhdHMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmFjZWJvb2tQb3N0U3RhdHMpIHttLmZhY2Vib29rUG9zdFN0YXRzID0gRmFjZWJvb2tQb3N0U3RhdHMuZnJvbVByb3RvKHByb3RvLmZhY2Vib29rUG9zdFN0YXRzKTt9XG4gICAgICAgIGlmIChwcm90by50d2l0dGVyUG9zdFN0YXRzKSB7bS50d2l0dGVyUG9zdFN0YXRzID0gVHdpdHRlclBvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8udHdpdHRlclBvc3RTdGF0cyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlNvY2lhbFBvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmludGVybmFsUG9zdElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbnRlcm5hbFBvc3RJZCddID0gdGhpcy5pbnRlcm5hbFBvc3RJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mYWNlYm9va1Bvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5mYWNlYm9va1Bvc3RTdGF0cyAhPT0gbnVsbCkge3RvUmV0dXJuWydmYWNlYm9va1Bvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5mYWNlYm9va1Bvc3RTdGF0cyA/ICh0aGlzLmZhY2Vib29rUG9zdFN0YXRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnR3aXR0ZXJQb3N0U3RhdHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudHdpdHRlclBvc3RTdGF0cyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0d2l0dGVyUG9zdFN0YXRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnR3aXR0ZXJQb3N0U3RhdHMgPyAodGhpcy50d2l0dGVyUG9zdFN0YXRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnR3aXR0ZXJQb3N0U3RhdHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHdpdHRlclBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuVHdpdHRlclBvc3RTdGF0c0ludGVyZmFjZSB7XG4gICAgZmF2b3VyaXRlczogbnVtYmVyO1xuICAgIGhhc0Zhdm91cml0ZWQ6IGJvb2xlYW47XG4gICAgcmV0d2VldHM6IG51bWJlcjtcbiAgICBoYXNSZXR3ZWV0ZWQ6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUd2l0dGVyUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVHdpdHRlclBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5mYXZvdXJpdGVzKSB7bS5mYXZvdXJpdGVzID0gcGFyc2VJbnQocHJvdG8uZmF2b3VyaXRlcywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnJldHdlZXRzKSB7bS5yZXR3ZWV0cyA9IHBhcnNlSW50KHByb3RvLnJldHdlZXRzLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlR3aXR0ZXJQb3N0U3RhdHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mYXZvdXJpdGVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmYXZvdXJpdGVzJ10gPSB0aGlzLmZhdm91cml0ZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFzRmF2b3VyaXRlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzRmF2b3VyaXRlZCddID0gdGhpcy5oYXNGYXZvdXJpdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJldHdlZXRzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXR3ZWV0cyddID0gdGhpcy5yZXR3ZWV0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oYXNSZXR3ZWV0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2hhc1JldHdlZXRlZCddID0gdGhpcy5oYXNSZXR3ZWV0ZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
286
|
+
export class YoutubePostStats {
|
|
287
|
+
static fromProto(proto) {
|
|
288
|
+
let m = new YoutubePostStats();
|
|
289
|
+
m = Object.assign(m, proto);
|
|
290
|
+
if (proto.likeCount) {
|
|
291
|
+
m.likeCount = parseInt(proto.likeCount, 10);
|
|
292
|
+
}
|
|
293
|
+
if (proto.commentCount) {
|
|
294
|
+
m.commentCount = parseInt(proto.commentCount, 10);
|
|
295
|
+
}
|
|
296
|
+
if (proto.favourites) {
|
|
297
|
+
m.favourites = parseInt(proto.favourites, 10);
|
|
298
|
+
}
|
|
299
|
+
if (proto.views) {
|
|
300
|
+
m.views = parseInt(proto.views, 10);
|
|
301
|
+
}
|
|
302
|
+
if (proto.videoViews) {
|
|
303
|
+
m.videoViews = parseInt(proto.videoViews, 10);
|
|
304
|
+
}
|
|
305
|
+
if (proto.dislikeCount) {
|
|
306
|
+
m.dislikeCount = parseInt(proto.dislikeCount, 10);
|
|
307
|
+
}
|
|
308
|
+
return m;
|
|
309
|
+
}
|
|
310
|
+
constructor(kwargs) {
|
|
311
|
+
if (!kwargs) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
Object.assign(this, kwargs);
|
|
315
|
+
}
|
|
316
|
+
toApiJson() {
|
|
317
|
+
const toReturn = {};
|
|
318
|
+
if (typeof this.likeCount !== 'undefined') {
|
|
319
|
+
toReturn['likeCount'] = this.likeCount;
|
|
320
|
+
}
|
|
321
|
+
if (typeof this.commentCount !== 'undefined') {
|
|
322
|
+
toReturn['commentCount'] = this.commentCount;
|
|
323
|
+
}
|
|
324
|
+
if (typeof this.favourites !== 'undefined') {
|
|
325
|
+
toReturn['favourites'] = this.favourites;
|
|
326
|
+
}
|
|
327
|
+
if (typeof this.views !== 'undefined') {
|
|
328
|
+
toReturn['views'] = this.views;
|
|
329
|
+
}
|
|
330
|
+
if (typeof this.videoViews !== 'undefined') {
|
|
331
|
+
toReturn['videoViews'] = this.videoViews;
|
|
332
|
+
}
|
|
333
|
+
if (typeof this.dislikeCount !== 'undefined') {
|
|
334
|
+
toReturn['dislikeCount'] = this.dislikeCount;
|
|
335
|
+
}
|
|
336
|
+
return toReturn;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXBvc3Qtc3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zb2NpYWxfcG9zdHNfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvc29jaWFsLXBvc3Qtc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtJQVMxQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQUM7UUFDNUUsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxD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LElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUN4RSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDN0YsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBGYWNlYm9va1Bvc3RTdGF0cyBpbXBsZW1lbnRzIGkuRmFjZWJvb2tQb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGNvbW1lbnRDb3VudDogbnVtYmVyO1xuICAgIHNoYXJlQ291bnQ6IG51bWJlcjtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBoYXNMaWtlOiBib29sZWFuO1xuICAgIGNhbkxpa2U6IGJvb2xlYW47XG4gICAgcmVhY3Rpb25zOiBudW1iZXI7XG4gICAgcGVvcGxlUmVhY2hlZDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRmFjZWJvb2tQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBGYWNlYm9va1Bvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jb21tZW50Q291bnQpIHttLmNvbW1lbnRDb3VudCA9IHBhcnNlSW50KHByb3RvLmNvbW1lbnRDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnNoYXJlQ291bnQpIHttLnNoYXJlQ291bnQgPSBwYXJzZUludChwcm90by5zaGFyZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ubGlrZUNvdW50KSB7bS5saWtlQ291bnQgPSBwYXJzZUludChwcm90by5saWtlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZWFjdGlvbnMpIHttLnJlYWN0aW9ucyA9IHBhcnNlSW50KHByb3RvLnJlYWN0aW9ucywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBlb3BsZVJlYWNoZWQpIHttLnBlb3BsZVJlYWNoZWQgPSBwYXJzZUludChwcm90by5wZW9wbGVSZWFjaGVkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkZhY2Vib29rUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29tbWVudENvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb21tZW50Q291bnQnXSA9IHRoaXMuY29tbWVudENvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNoYXJlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NoYXJlQ291bnQnXSA9IHRoaXMuc2hhcmVDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saWtlQ291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xpa2VDb3VudCddID0gdGhpcy5saWtlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFzTGlrZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzTGlrZSddID0gdGhpcy5oYXNMaWtlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbkxpa2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Nhbkxpa2UnXSA9IHRoaXMuY2FuTGlrZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWFjdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlYWN0aW9ucyddID0gdGhpcy5yZWFjdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGVvcGxlUmVhY2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGVvcGxlUmVhY2hlZCddID0gdGhpcy5wZW9wbGVSZWFjaGVkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc3RhZ3JhbVBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuSW5zdGFncmFtUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBzYXZlczogbnVtYmVyO1xuICAgIHJlYWNoOiBudW1iZXI7XG4gICAgdmlkZW9WaWV3czogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSW5zdGFncmFtUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSW5zdGFncmFtUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxpa2VDb3VudCkge20ubGlrZUNvdW50ID0gcGFyc2VJbnQocHJvdG8ubGlrZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uY29tbWVudENvdW50KSB7bS5jb21tZW50Q291bnQgPSBwYXJzZUludChwcm90by5jb21tZW50Q291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zYXZlcykge20uc2F2ZXMgPSBwYXJzZUludChwcm90by5zYXZlcywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnJlYWNoKSB7bS5yZWFjaCA9IHBhcnNlSW50KHByb3RvLnJlYWNoLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udmlkZW9WaWV3cykge20udmlkZW9WaWV3cyA9IHBhcnNlSW50KHByb3RvLnZpZGVvVmlld3MsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuSW5zdGFncmFtUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsaWtlQ291bnQnXSA9IHRoaXMubGlrZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbW1lbnRDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29tbWVudENvdW50J10gPSB0aGlzLmNvbW1lbnRDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zYXZlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2F2ZXMnXSA9IHRoaXMuc2F2ZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVhY2ggIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlYWNoJ10gPSB0aGlzLnJlYWNoO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZpZGVvVmlld3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZpZGVvVmlld3MnXSA9IHRoaXMudmlkZW9WaWV3czt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rZWRJblBvc3RTdGF0cyBpbXBsZW1lbnRzIGkuTGlua2VkSW5Qb3N0U3RhdHNJbnRlcmZhY2Uge1xuICAgIGxpa2VDb3VudDogbnVtYmVyO1xuICAgIGNvbW1lbnRDb3VudDogbnVtYmVyO1xuICAgIHNoYXJlQ291bnQ6IG51bWJlcjtcbiAgICBjbGlja3M6IG51bWJlcjtcbiAgICBpbXByZXNzaW9uczogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlua2VkSW5Qb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaW5rZWRJblBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5saWtlQ291bnQpIHttLmxpa2VDb3VudCA9IHBhcnNlSW50KHByb3RvLmxpa2VDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNvbW1lbnRDb3VudCkge20uY29tbWVudENvdW50ID0gcGFyc2VJbnQocHJvdG8uY29tbWVudENvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uc2hhcmVDb3VudCkge20uc2hhcmVDb3VudCA9IHBhcnNlSW50KHByb3RvLnNoYXJlQ291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5jbGlja3MpIHttLmNsaWNrcyA9IHBhcnNlSW50KHByb3RvLmNsaWNrcywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmltcHJlc3Npb25zKSB7bS5pbXByZXNzaW9ucyA9IHBhcnNlSW50KHByb3RvLmltcHJlc3Npb25zLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpbmtlZEluUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsaWtlQ291bnQnXSA9IHRoaXMubGlrZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbW1lbnRDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29tbWVudENvdW50J10gPSB0aGlzLmNvbW1lbnRDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaGFyZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzaGFyZUNvdW50J10gPSB0aGlzLnNoYXJlQ291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2xpY2tzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjbGlja3MnXSA9IHRoaXMuY2xpY2tzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmltcHJlc3Npb25zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbXByZXNzaW9ucyddID0gdGhpcy5pbXByZXNzaW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTb2NpYWxQb3N0U3RhdHMgaW1wbGVtZW50cyBpLlNvY2lhbFBvc3RTdGF0c0ludGVyZmFjZSB7XG4gICAgaW50ZXJuYWxQb3N0SWQ6IHN0cmluZztcbiAgICBmYWNlYm9va1Bvc3RTdGF0czogRmFjZWJvb2tQb3N0U3RhdHM7XG4gICAgdHdpdHRlclBvc3RTdGF0czogVHdpdHRlclBvc3RTdGF0cztcbiAgICBsaW5rZWRpblBvc3RTdGF0czogTGlua2VkSW5Qb3N0U3RhdHM7XG4gICAgaW5zdGFncmFtUG9zdFN0YXRzOiBJbnN0YWdyYW1Qb3N0U3RhdHM7XG4gICAgeW91dHViZVBvc3RTdGF0czogWW91dHViZVBvc3RTdGF0cztcbiAgICB0aWt0b2tQb3N0U3RhdHM6IFRpa1Rva1Bvc3RTdGF0cztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNvY2lhbFBvc3RTdGF0cyB7XG4gICAgICAgIGxldCBtID0gbmV3IFNvY2lhbFBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5mYWNlYm9va1Bvc3RTdGF0cykge20uZmFjZWJvb2tQb3N0U3RhdHMgPSBGYWNlYm9va1Bvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8uZmFjZWJvb2tQb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLnR3aXR0ZXJQb3N0U3RhdHMpIHttLnR3aXR0ZXJQb3N0U3RhdHMgPSBUd2l0dGVyUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by50d2l0dGVyUG9zdFN0YXRzKTt9XG4gICAgICAgIGlmIChwcm90by5saW5rZWRpblBvc3RTdGF0cykge20ubGlua2VkaW5Qb3N0U3RhdHMgPSBMaW5rZWRJblBvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8ubGlua2VkaW5Qb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLmluc3RhZ3JhbVBvc3RTdGF0cykge20uaW5zdGFncmFtUG9zdFN0YXRzID0gSW5zdGFncmFtUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by5pbnN0YWdyYW1Qb3N0U3RhdHMpO31cbiAgICAgICAgaWYgKHByb3RvLnlvdXR1YmVQb3N0U3RhdHMpIHttLnlvdXR1YmVQb3N0U3RhdHMgPSBZb3V0dWJlUG9zdFN0YXRzLmZyb21Qcm90byhwcm90by55b3V0dWJlUG9zdFN0YXRzKTt9XG4gICAgICAgIGlmIChwcm90by50aWt0b2tQb3N0U3RhdHMpIHttLnRpa3Rva1Bvc3RTdGF0cyA9IFRpa1Rva1Bvc3RTdGF0cy5mcm9tUHJvdG8ocHJvdG8udGlrdG9rUG9zdFN0YXRzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU29jaWFsUG9zdFN0YXRzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW50ZXJuYWxQb3N0SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ludGVybmFsUG9zdElkJ10gPSB0aGlzLmludGVybmFsUG9zdElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZhY2Vib29rUG9zdFN0YXRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZhY2Vib29rUG9zdFN0YXRzID8gKHRoaXMuZmFjZWJvb2tQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmFjZWJvb2tQb3N0U3RhdHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHdpdHRlclBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50d2l0dGVyUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3R3aXR0ZXJQb3N0U3RhdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHdpdHRlclBvc3RTdGF0cyA/ICh0aGlzLnR3aXR0ZXJQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudHdpdHRlclBvc3RTdGF0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5saW5rZWRpblBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5saW5rZWRpblBvc3RTdGF0cyAhPT0gbnVsbCkge3RvUmV0dXJuWydsaW5rZWRpblBvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5saW5rZWRpblBvc3RTdGF0cyA/ICh0aGlzLmxpbmtlZGluUG9zdFN0YXRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmxpbmtlZGluUG9zdFN0YXRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pbnN0YWdyYW1Qb3N0U3RhdHMgIT09IG51bGwpIHt0b1JldHVyblsnaW5zdGFncmFtUG9zdFN0YXRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyA/ICh0aGlzLmluc3RhZ3JhbVBvc3RTdGF0cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pbnN0YWdyYW1Qb3N0U3RhdHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMueW91dHViZVBvc3RTdGF0cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy55b3V0dWJlUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3lvdXR1YmVQb3N0U3RhdHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMueW91dHViZVBvc3RTdGF0cyA/ICh0aGlzLnlvdXR1YmVQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMueW91dHViZVBvc3RTdGF0czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aWt0b2tQb3N0U3RhdHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGlrdG9rUG9zdFN0YXRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Rpa3Rva1Bvc3RTdGF0cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50aWt0b2tQb3N0U3RhdHMgPyAodGhpcy50aWt0b2tQb3N0U3RhdHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGlrdG9rUG9zdFN0YXRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRpa1Rva1Bvc3RTdGF0cyBpbXBsZW1lbnRzIGkuVGlrVG9rUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBzaGFyZUNvdW50OiBudW1iZXI7XG4gICAgcGVvcGxlUmVhY2hlZDogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGlrVG9rUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGlrVG9rUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxpa2VDb3VudCkge20ubGlrZUNvdW50ID0gcGFyc2VJbnQocHJvdG8ubGlrZUNvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uY29tbWVudENvdW50KSB7bS5jb21tZW50Q291bnQgPSBwYXJzZUludChwcm90by5jb21tZW50Q291bnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zaGFyZUNvdW50KSB7bS5zaGFyZUNvdW50ID0gcGFyc2VJbnQocHJvdG8uc2hhcmVDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBlb3BsZVJlYWNoZWQpIHttLnBlb3BsZVJlYWNoZWQgPSBwYXJzZUludChwcm90by5wZW9wbGVSZWFjaGVkLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRpa1Rva1Bvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpa2VDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlrZUNvdW50J10gPSB0aGlzLmxpa2VDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb21tZW50Q291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbW1lbnRDb3VudCddID0gdGhpcy5jb21tZW50Q291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2hhcmVDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2hhcmVDb3VudCddID0gdGhpcy5zaGFyZUNvdW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBlb3BsZVJlYWNoZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Blb3BsZVJlYWNoZWQnXSA9IHRoaXMucGVvcGxlUmVhY2hlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUd2l0dGVyUG9zdFN0YXRzIGltcGxlbWVudHMgaS5Ud2l0dGVyUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBmYXZvdXJpdGVzOiBudW1iZXI7XG4gICAgaGFzRmF2b3VyaXRlZDogYm9vbGVhbjtcbiAgICByZXR3ZWV0czogbnVtYmVyO1xuICAgIGhhc1JldHdlZXRlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFR3aXR0ZXJQb3N0U3RhdHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBUd2l0dGVyUG9zdFN0YXRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZhdm91cml0ZXMpIHttLmZhdm91cml0ZXMgPSBwYXJzZUludChwcm90by5mYXZvdXJpdGVzLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ucmV0d2VldHMpIHttLnJldHdlZXRzID0gcGFyc2VJbnQocHJvdG8ucmV0d2VldHMsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVHdpdHRlclBvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhdm91cml0ZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Zhdm91cml0ZXMnXSA9IHRoaXMuZmF2b3VyaXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oYXNGYXZvdXJpdGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNGYXZvdXJpdGVkJ10gPSB0aGlzLmhhc0Zhdm91cml0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmV0d2VldHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldHdlZXRzJ10gPSB0aGlzLnJldHdlZXRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhhc1JldHdlZXRlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzUmV0d2VldGVkJ10gPSB0aGlzLmhhc1JldHdlZXRlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBZb3V0dWJlUG9zdFN0YXRzIGltcGxlbWVudHMgaS5Zb3V0dWJlUG9zdFN0YXRzSW50ZXJmYWNlIHtcbiAgICBsaWtlQ291bnQ6IG51bWJlcjtcbiAgICBjb21tZW50Q291bnQ6IG51bWJlcjtcbiAgICBmYXZvdXJpdGVzOiBudW1iZXI7XG4gICAgdmlld3M6IG51bWJlcjtcbiAgICB2aWRlb1ZpZXdzOiBudW1iZXI7XG4gICAgZGlzbGlrZUNvdW50OiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBZb3V0dWJlUG9zdFN0YXRzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgWW91dHViZVBvc3RTdGF0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5saWtlQ291bnQpIHttLmxpa2VDb3VudCA9IHBhcnNlSW50KHByb3RvLmxpa2VDb3VudCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNvbW1lbnRDb3VudCkge20uY29tbWVudENvdW50ID0gcGFyc2VJbnQocHJvdG8uY29tbWVudENvdW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uZmF2b3VyaXRlcykge20uZmF2b3VyaXRlcyA9IHBhcnNlSW50KHByb3RvLmZhdm91cml0ZXMsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by52aWV3cykge20udmlld3MgPSBwYXJzZUludChwcm90by52aWV3cywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnZpZGVvVmlld3MpIHttLnZpZGVvVmlld3MgPSBwYXJzZUludChwcm90by52aWRlb1ZpZXdzLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uZGlzbGlrZUNvdW50KSB7bS5kaXNsaWtlQ291bnQgPSBwYXJzZUludChwcm90by5kaXNsaWtlQ291bnQsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuWW91dHViZVBvc3RTdGF0c0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxpa2VDb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGlrZUNvdW50J10gPSB0aGlzLmxpa2VDb3VudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb21tZW50Q291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbW1lbnRDb3VudCddID0gdGhpcy5jb21tZW50Q291bnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmF2b3VyaXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmF2b3VyaXRlcyddID0gdGhpcy5mYXZvdXJpdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZpZXdzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2aWV3cyddID0gdGhpcy52aWV3czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52aWRlb1ZpZXdzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2aWRlb1ZpZXdzJ10gPSB0aGlzLnZpZGVvVmlld3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzbGlrZUNvdW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNsaWtlQ291bnQnXSA9IHRoaXMuZGlzbGlrZUNvdW50O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|