@discordeno/rest 21.0.1-next.f6ea699 → 22.0.0-beta.1
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/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/invalidBucket.d.ts.map +1 -0
- package/dist/invalidBucket.js +82 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +1623 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +154 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +621 -0
- package/dist/{types/types.d.ts → types.d.ts} +9 -7
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/{types/typings → typings}/routes.d.ts +3 -3
- package/dist/typings/routes.d.ts.map +1 -0
- package/dist/typings/routes.js +3 -0
- package/package.json +15 -22
- package/dist/cjs/index.cjs +0 -25
- package/dist/cjs/invalidBucket.cjs +0 -86
- package/dist/cjs/manager.cjs +0 -1643
- package/dist/cjs/queue.cjs +0 -164
- package/dist/cjs/routes.cjs +0 -630
- package/dist/cjs/types.cjs +0 -6
- package/dist/cjs/typings/routes.cjs +0 -6
- package/dist/esm/index.js +0 -8
- package/dist/esm/invalidBucket.js +0 -82
- package/dist/esm/manager.js +0 -1601
- package/dist/esm/queue.js +0 -154
- package/dist/esm/routes.js +0 -620
- package/dist/esm/types.js +0 -3
- package/dist/esm/typings/routes.js +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/invalidBucket.d.ts.map +0 -1
- package/dist/types/manager.d.ts.map +0 -1
- package/dist/types/queue.d.ts.map +0 -1
- package/dist/types/routes.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/typings/routes.d.ts.map +0 -1
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/invalidBucket.d.ts → invalidBucket.d.ts} +0 -0
- /package/dist/{types/manager.d.ts → manager.d.ts} +0 -0
- /package/dist/{types/queue.d.ts → queue.d.ts} +0 -0
- /package/dist/{types/routes.d.ts → routes.d.ts} +0 -0
package/dist/cjs/routes.cjs
DELETED
|
@@ -1,630 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "createRoutes", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return createRoutes;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _utils = require("@discordeno/utils");
|
|
12
|
-
function createRoutes() {
|
|
13
|
-
return {
|
|
14
|
-
webhooks: {
|
|
15
|
-
id: (webhookId)=>{
|
|
16
|
-
return `/webhooks/${webhookId}`;
|
|
17
|
-
},
|
|
18
|
-
message: (webhookId, token, messageId, options)=>{
|
|
19
|
-
let url = `/webhooks/${webhookId}/${token}/messages/${messageId}?`;
|
|
20
|
-
if (options) {
|
|
21
|
-
if (options.threadId) url += `thread_id=${options.threadId}`;
|
|
22
|
-
if (options.withComponents) url += `&with_components=${options.withComponents}`;
|
|
23
|
-
}
|
|
24
|
-
return url;
|
|
25
|
-
},
|
|
26
|
-
webhook: (webhookId, token, options)=>{
|
|
27
|
-
let url = `/webhooks/${webhookId}/${token}?`;
|
|
28
|
-
if (options) {
|
|
29
|
-
if (options?.wait !== undefined) url += `wait=${options.wait.toString()}`;
|
|
30
|
-
if (options.threadId) url += `&thread_id=${options.threadId}`;
|
|
31
|
-
if (options.withComponents) url += `&with_components=${options.withComponents}`;
|
|
32
|
-
}
|
|
33
|
-
return url;
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
// Channel Endpoints
|
|
37
|
-
channels: {
|
|
38
|
-
bulk: (channelId)=>{
|
|
39
|
-
return `/channels/${channelId}/messages/bulk-delete`;
|
|
40
|
-
},
|
|
41
|
-
dm: ()=>{
|
|
42
|
-
return '/users/@me/channels';
|
|
43
|
-
},
|
|
44
|
-
dmRecipient: (channelId, userId)=>{
|
|
45
|
-
return `/channels/${channelId}/recipients/${userId}`;
|
|
46
|
-
},
|
|
47
|
-
pin: (channelId, messageId)=>{
|
|
48
|
-
return `/channels/${channelId}/pins/${messageId}`;
|
|
49
|
-
},
|
|
50
|
-
pins: (channelId)=>{
|
|
51
|
-
return `/channels/${channelId}/pins`;
|
|
52
|
-
},
|
|
53
|
-
messagePins: (channelId, options)=>{
|
|
54
|
-
let url = `/channels/${channelId}/messages/pins?`;
|
|
55
|
-
if (options) {
|
|
56
|
-
if (options.before) url += `before=${options.before}`;
|
|
57
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
58
|
-
}
|
|
59
|
-
return url;
|
|
60
|
-
},
|
|
61
|
-
messagePin: (channelId, messageId)=>{
|
|
62
|
-
return `/channels/${channelId}/messages/pins/${messageId}`;
|
|
63
|
-
},
|
|
64
|
-
reactions: {
|
|
65
|
-
bot: (channelId, messageId, emoji)=>{
|
|
66
|
-
return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/@me`;
|
|
67
|
-
},
|
|
68
|
-
user: (channelId, messageId, emoji, userId)=>{
|
|
69
|
-
return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/${userId}`;
|
|
70
|
-
},
|
|
71
|
-
all: (channelId, messageId)=>{
|
|
72
|
-
return `/channels/${channelId}/messages/${messageId}/reactions`;
|
|
73
|
-
},
|
|
74
|
-
emoji: (channelId, messageId, emoji, options)=>{
|
|
75
|
-
let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`;
|
|
76
|
-
if (options) {
|
|
77
|
-
if (options.type) url += `type=${options.type}`;
|
|
78
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
79
|
-
if (options.after) url += `&after=${options.after}`;
|
|
80
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
81
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
82
|
-
}
|
|
83
|
-
return url;
|
|
84
|
-
},
|
|
85
|
-
message: (channelId, messageId, emoji, options)=>{
|
|
86
|
-
let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`;
|
|
87
|
-
if (options) {
|
|
88
|
-
if (options.after) url += `after=${options.after}`;
|
|
89
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
90
|
-
}
|
|
91
|
-
return url;
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
webhooks: (channelId)=>{
|
|
95
|
-
return `/channels/${channelId}/webhooks`;
|
|
96
|
-
},
|
|
97
|
-
channel: (channelId)=>{
|
|
98
|
-
return `/channels/${channelId}`;
|
|
99
|
-
},
|
|
100
|
-
follow: (channelId)=>{
|
|
101
|
-
return `/channels/${channelId}/followers`;
|
|
102
|
-
},
|
|
103
|
-
forum: (channelId)=>{
|
|
104
|
-
return `/channels/${channelId}/threads`;
|
|
105
|
-
},
|
|
106
|
-
invites: (channelId)=>{
|
|
107
|
-
return `/channels/${channelId}/invites`;
|
|
108
|
-
},
|
|
109
|
-
message: (channelId, messageId)=>{
|
|
110
|
-
return `/channels/${channelId}/messages/${messageId}`;
|
|
111
|
-
},
|
|
112
|
-
messages: (channelId, options)=>{
|
|
113
|
-
let url = `/channels/${channelId}/messages?`;
|
|
114
|
-
if (options) {
|
|
115
|
-
if ((0, _utils.isGetMessagesAfter)(options) && options.after) {
|
|
116
|
-
url += `after=${options.after}`;
|
|
117
|
-
}
|
|
118
|
-
if ((0, _utils.isGetMessagesBefore)(options) && options.before) {
|
|
119
|
-
url += `&before=${options.before}`;
|
|
120
|
-
}
|
|
121
|
-
if ((0, _utils.isGetMessagesAround)(options) && options.around) {
|
|
122
|
-
url += `&around=${options.around}`;
|
|
123
|
-
}
|
|
124
|
-
if ((0, _utils.isGetMessagesLimit)(options) && options.limit) {
|
|
125
|
-
url += `&limit=${options.limit}`;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return url;
|
|
129
|
-
},
|
|
130
|
-
overwrite: (channelId, overwriteId)=>{
|
|
131
|
-
return `/channels/${channelId}/permissions/${overwriteId}`;
|
|
132
|
-
},
|
|
133
|
-
crosspost: (channelId, messageId)=>{
|
|
134
|
-
return `/channels/${channelId}/messages/${messageId}/crosspost`;
|
|
135
|
-
},
|
|
136
|
-
stages: ()=>{
|
|
137
|
-
return '/stage-instances';
|
|
138
|
-
},
|
|
139
|
-
stage: (channelId)=>{
|
|
140
|
-
return `/stage-instances/${channelId}`;
|
|
141
|
-
},
|
|
142
|
-
// Thread Endpoints
|
|
143
|
-
threads: {
|
|
144
|
-
message: (channelId, messageId)=>{
|
|
145
|
-
return `/channels/${channelId}/messages/${messageId}/threads`;
|
|
146
|
-
},
|
|
147
|
-
all: (channelId)=>{
|
|
148
|
-
return `/channels/${channelId}/threads`;
|
|
149
|
-
},
|
|
150
|
-
active: (guildId)=>{
|
|
151
|
-
return `/guilds/${guildId}/threads/active`;
|
|
152
|
-
},
|
|
153
|
-
members: (channelId, options)=>{
|
|
154
|
-
let url = `/channels/${channelId}/thread-members?`;
|
|
155
|
-
if (options) {
|
|
156
|
-
if (options.withMember) url += `with_member=${options.withMember}`;
|
|
157
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
158
|
-
if (options.after) url += `&after=${options.after}`;
|
|
159
|
-
}
|
|
160
|
-
return url;
|
|
161
|
-
},
|
|
162
|
-
me: (channelId)=>{
|
|
163
|
-
return `/channels/${channelId}/thread-members/@me`;
|
|
164
|
-
},
|
|
165
|
-
getUser (channelId, userId, options) {
|
|
166
|
-
let url = `/channels/${channelId}/thread-members/${userId}?`;
|
|
167
|
-
if (options) {
|
|
168
|
-
if (options.withMember) url += `with_member=${options.withMember}`;
|
|
169
|
-
}
|
|
170
|
-
return url;
|
|
171
|
-
},
|
|
172
|
-
user: (channelId, userId)=>{
|
|
173
|
-
return `/channels/${channelId}/thread-members/${userId}`;
|
|
174
|
-
},
|
|
175
|
-
archived: (channelId)=>{
|
|
176
|
-
return `/channels/${channelId}/threads/archived`;
|
|
177
|
-
},
|
|
178
|
-
public: (channelId, options)=>{
|
|
179
|
-
let url = `/channels/${channelId}/threads/archived/public?`;
|
|
180
|
-
if (options) {
|
|
181
|
-
if (options.before) {
|
|
182
|
-
url += `before=${new Date(options.before).toISOString()}`;
|
|
183
|
-
}
|
|
184
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
185
|
-
}
|
|
186
|
-
return url;
|
|
187
|
-
},
|
|
188
|
-
private: (channelId, options)=>{
|
|
189
|
-
let url = `/channels/${channelId}/threads/archived/private?`;
|
|
190
|
-
if (options) {
|
|
191
|
-
if (options.before) {
|
|
192
|
-
url += `before=${new Date(options.before).toISOString()}`;
|
|
193
|
-
}
|
|
194
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
195
|
-
}
|
|
196
|
-
return url;
|
|
197
|
-
},
|
|
198
|
-
joined: (channelId, options)=>{
|
|
199
|
-
let url = `/channels/${channelId}/users/@me/threads/archived/private?`;
|
|
200
|
-
if (options) {
|
|
201
|
-
if (options.before) {
|
|
202
|
-
url += `before=${new Date(options.before).toISOString()}`;
|
|
203
|
-
}
|
|
204
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
205
|
-
}
|
|
206
|
-
return url;
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
typing: (channelId)=>{
|
|
210
|
-
return `/channels/${channelId}/typing`;
|
|
211
|
-
},
|
|
212
|
-
polls: {
|
|
213
|
-
votes: (channelId, messageId, answerId, options)=>{
|
|
214
|
-
let url = `/channels/${channelId}/polls/${messageId}/answers/${answerId}?`;
|
|
215
|
-
if (options) {
|
|
216
|
-
if (options.after) url += `after=${options.after}`;
|
|
217
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
218
|
-
}
|
|
219
|
-
return url;
|
|
220
|
-
},
|
|
221
|
-
expire: (channelId, messageId)=>{
|
|
222
|
-
return `/channels/${channelId}/polls/${messageId}/expire`;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
// Guild Endpoints
|
|
227
|
-
guilds: {
|
|
228
|
-
all: ()=>{
|
|
229
|
-
return '/guilds';
|
|
230
|
-
},
|
|
231
|
-
userGuilds: (options)=>{
|
|
232
|
-
let url = '/users/@me/guilds?';
|
|
233
|
-
if (options) {
|
|
234
|
-
if (options.after) url += `after=${options.after}`;
|
|
235
|
-
if (options.before) url += `&before=${options.before}`;
|
|
236
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
237
|
-
if (options.withCounts) url += `&with_counts=${options.withCounts}`;
|
|
238
|
-
}
|
|
239
|
-
return url;
|
|
240
|
-
},
|
|
241
|
-
auditlogs: (guildId, options)=>{
|
|
242
|
-
let url = `/guilds/${guildId}/audit-logs?`;
|
|
243
|
-
if (options) {
|
|
244
|
-
if (options.actionType) url += `action_type=${options.actionType}`;
|
|
245
|
-
if (options.before) url += `&before=${options.before}`;
|
|
246
|
-
if (options.after) url += `&after=${options.after}`;
|
|
247
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
248
|
-
if (options.userId) url += `&user_id=${options.userId}`;
|
|
249
|
-
}
|
|
250
|
-
return url;
|
|
251
|
-
},
|
|
252
|
-
automod: {
|
|
253
|
-
rule: (guildId, ruleId)=>{
|
|
254
|
-
return `/guilds/${guildId}/auto-moderation/rules/${ruleId}`;
|
|
255
|
-
},
|
|
256
|
-
rules: (guildId)=>{
|
|
257
|
-
return `/guilds/${guildId}/auto-moderation/rules`;
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
|
-
channels: (guildId)=>{
|
|
261
|
-
return `/guilds/${guildId}/channels`;
|
|
262
|
-
},
|
|
263
|
-
emoji: (guildId, emojiId)=>{
|
|
264
|
-
return `/guilds/${guildId}/emojis/${emojiId}`;
|
|
265
|
-
},
|
|
266
|
-
emojis: (guildId)=>{
|
|
267
|
-
return `/guilds/${guildId}/emojis`;
|
|
268
|
-
},
|
|
269
|
-
events: {
|
|
270
|
-
events: (guildId, withUserCount)=>{
|
|
271
|
-
let url = `/guilds/${guildId}/scheduled-events?`;
|
|
272
|
-
if (withUserCount !== undefined) {
|
|
273
|
-
url += `with_user_count=${withUserCount.toString()}`;
|
|
274
|
-
}
|
|
275
|
-
return url;
|
|
276
|
-
},
|
|
277
|
-
event: (guildId, eventId, withUserCount)=>{
|
|
278
|
-
let url = `/guilds/${guildId}/scheduled-events/${eventId}`;
|
|
279
|
-
if (withUserCount !== undefined) {
|
|
280
|
-
url += `with_user_count=${withUserCount.toString()}`;
|
|
281
|
-
}
|
|
282
|
-
return url;
|
|
283
|
-
},
|
|
284
|
-
users: (guildId, eventId, options)=>{
|
|
285
|
-
let url = `/guilds/${guildId}/scheduled-events/${eventId}/users?`;
|
|
286
|
-
if (options) {
|
|
287
|
-
if (options.limit !== undefined) url += `limit=${options.limit}`;
|
|
288
|
-
if (options.withMember !== undefined) {
|
|
289
|
-
url += `&with_member=${options.withMember.toString()}`;
|
|
290
|
-
}
|
|
291
|
-
if (options.after !== undefined) url += `&after=${options.after}`;
|
|
292
|
-
if (options.before !== undefined) url += `&before=${options.before}`;
|
|
293
|
-
}
|
|
294
|
-
return url;
|
|
295
|
-
}
|
|
296
|
-
},
|
|
297
|
-
guild (guildId, withCounts) {
|
|
298
|
-
let url = `/guilds/${guildId}?`;
|
|
299
|
-
if (withCounts !== undefined) {
|
|
300
|
-
url += `with_counts=${withCounts.toString()}`;
|
|
301
|
-
}
|
|
302
|
-
return url;
|
|
303
|
-
},
|
|
304
|
-
integration (guildId, integrationId) {
|
|
305
|
-
return `/guilds/${guildId}/integrations/${integrationId}`;
|
|
306
|
-
},
|
|
307
|
-
integrations: (guildId)=>{
|
|
308
|
-
return `/guilds/${guildId}/integrations?include_applications=true`;
|
|
309
|
-
},
|
|
310
|
-
invite (inviteCode, options) {
|
|
311
|
-
let url = `/invites/${inviteCode}?`;
|
|
312
|
-
if (options) {
|
|
313
|
-
if (options.withCounts !== undefined) {
|
|
314
|
-
url += `with_counts=${options.withCounts.toString()}`;
|
|
315
|
-
}
|
|
316
|
-
if (options.withExpiration !== undefined) {
|
|
317
|
-
url += `&with_expiration=${options.withExpiration.toString()}`;
|
|
318
|
-
}
|
|
319
|
-
if (options.scheduledEventId) {
|
|
320
|
-
url += `&guild_scheduled_event_id=${options.scheduledEventId}`;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
return url;
|
|
324
|
-
},
|
|
325
|
-
invites: (guildId)=>{
|
|
326
|
-
return `/guilds/${guildId}/invites`;
|
|
327
|
-
},
|
|
328
|
-
leave: (guildId)=>{
|
|
329
|
-
return `/users/@me/guilds/${guildId}`;
|
|
330
|
-
},
|
|
331
|
-
members: {
|
|
332
|
-
ban: (guildId, userId)=>{
|
|
333
|
-
return `/guilds/${guildId}/bans/${userId}`;
|
|
334
|
-
},
|
|
335
|
-
bans: (guildId, options)=>{
|
|
336
|
-
let url = `/guilds/${guildId}/bans?`;
|
|
337
|
-
if (options) {
|
|
338
|
-
if (options.limit) url += `limit=${options.limit}`;
|
|
339
|
-
if (options.after) url += `&after=${options.after}`;
|
|
340
|
-
if (options.before) url += `&before=${options.before}`;
|
|
341
|
-
}
|
|
342
|
-
return url;
|
|
343
|
-
},
|
|
344
|
-
bulkBan: (guildId)=>{
|
|
345
|
-
return `/guilds/${guildId}/bulk-ban`;
|
|
346
|
-
},
|
|
347
|
-
bot: (guildId)=>{
|
|
348
|
-
return `/guilds/${guildId}/members/@me`;
|
|
349
|
-
},
|
|
350
|
-
member: (guildId, userId)=>{
|
|
351
|
-
return `/guilds/${guildId}/members/${userId}`;
|
|
352
|
-
},
|
|
353
|
-
currentMember: (guildId)=>{
|
|
354
|
-
return `/users/@me/guilds/${guildId}/member`;
|
|
355
|
-
},
|
|
356
|
-
members: (guildId, options)=>{
|
|
357
|
-
let url = `/guilds/${guildId}/members?`;
|
|
358
|
-
if (options !== undefined) {
|
|
359
|
-
if (options.limit) url += `limit=${options.limit}`;
|
|
360
|
-
if (options.after) url += `&after=${options.after}`;
|
|
361
|
-
}
|
|
362
|
-
return url;
|
|
363
|
-
},
|
|
364
|
-
search: (guildId, query, options)=>{
|
|
365
|
-
let url = `/guilds/${guildId}/members/search?query=${encodeURIComponent(query)}`;
|
|
366
|
-
if (options) {
|
|
367
|
-
if (options.limit !== undefined) url += `&limit=${options.limit}`;
|
|
368
|
-
}
|
|
369
|
-
return url;
|
|
370
|
-
},
|
|
371
|
-
prune: (guildId, options)=>{
|
|
372
|
-
let url = `/guilds/${guildId}/prune?`;
|
|
373
|
-
if (options) {
|
|
374
|
-
if (options.days) url += `days=${options.days}`;
|
|
375
|
-
if (Array.isArray(options.includeRoles)) {
|
|
376
|
-
url += `&include_roles=${options.includeRoles.join(',')}`;
|
|
377
|
-
} else if (options.includeRoles) {
|
|
378
|
-
url += `&include_roles=${options.includeRoles}`;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
return url;
|
|
382
|
-
}
|
|
383
|
-
},
|
|
384
|
-
preview: (guildId)=>{
|
|
385
|
-
return `/guilds/${guildId}/preview`;
|
|
386
|
-
},
|
|
387
|
-
prune: (guildId, options)=>{
|
|
388
|
-
let url = `/guilds/${guildId}/prune?`;
|
|
389
|
-
if (options) {
|
|
390
|
-
if (options.days) url += `days=${options.days}`;
|
|
391
|
-
if (Array.isArray(options.includeRoles)) {
|
|
392
|
-
url += `&include_roles=${options.includeRoles.join(',')}`;
|
|
393
|
-
} else if (options.includeRoles) {
|
|
394
|
-
url += `&include_roles=${options.includeRoles}`;
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
return url;
|
|
398
|
-
},
|
|
399
|
-
roles: {
|
|
400
|
-
one: (guildId, roleId)=>{
|
|
401
|
-
return `/guilds/${guildId}/roles/${roleId}`;
|
|
402
|
-
},
|
|
403
|
-
all: (guildId)=>{
|
|
404
|
-
return `/guilds/${guildId}/roles`;
|
|
405
|
-
},
|
|
406
|
-
member: (guildId, memberId, roleId)=>{
|
|
407
|
-
return `/guilds/${guildId}/members/${memberId}/roles/${roleId}`;
|
|
408
|
-
}
|
|
409
|
-
},
|
|
410
|
-
stickers: (guildId)=>{
|
|
411
|
-
return `/guilds/${guildId}/stickers`;
|
|
412
|
-
},
|
|
413
|
-
sticker: (guildId, stickerId)=>{
|
|
414
|
-
return `/guilds/${guildId}/stickers/${stickerId}`;
|
|
415
|
-
},
|
|
416
|
-
voice: (guildId, userId)=>{
|
|
417
|
-
return `/guilds/${guildId}/voice-states/${userId ?? '@me'}`;
|
|
418
|
-
},
|
|
419
|
-
templates: {
|
|
420
|
-
code: (code)=>{
|
|
421
|
-
return `/guilds/templates/${code}`;
|
|
422
|
-
},
|
|
423
|
-
guild: (guildId, code)=>{
|
|
424
|
-
return `/guilds/${guildId}/templates/${code}`;
|
|
425
|
-
},
|
|
426
|
-
all: (guildId)=>{
|
|
427
|
-
return `/guilds/${guildId}/templates`;
|
|
428
|
-
}
|
|
429
|
-
},
|
|
430
|
-
vanity: (guildId)=>{
|
|
431
|
-
return `/guilds/${guildId}/vanity-url`;
|
|
432
|
-
},
|
|
433
|
-
regions: (guildId)=>{
|
|
434
|
-
return `/guilds/${guildId}/regions`;
|
|
435
|
-
},
|
|
436
|
-
webhooks: (guildId)=>{
|
|
437
|
-
return `/guilds/${guildId}/webhooks`;
|
|
438
|
-
},
|
|
439
|
-
welcome: (guildId)=>{
|
|
440
|
-
return `/guilds/${guildId}/welcome-screen`;
|
|
441
|
-
},
|
|
442
|
-
widget: (guildId)=>{
|
|
443
|
-
return `/guilds/${guildId}/widget`;
|
|
444
|
-
},
|
|
445
|
-
widgetJson: (guildId)=>{
|
|
446
|
-
return `/guilds/${guildId}/widget.json`;
|
|
447
|
-
},
|
|
448
|
-
onboarding: (guildId)=>{
|
|
449
|
-
return `/guilds/${guildId}/onboarding`;
|
|
450
|
-
},
|
|
451
|
-
incidentActions: (guildId)=>{
|
|
452
|
-
return `/guilds/${guildId}/incident-actions`;
|
|
453
|
-
}
|
|
454
|
-
},
|
|
455
|
-
sticker: (stickerId)=>{
|
|
456
|
-
return `/stickers/${stickerId}`;
|
|
457
|
-
},
|
|
458
|
-
regions: ()=>{
|
|
459
|
-
return '/voice/regions';
|
|
460
|
-
},
|
|
461
|
-
// Interaction Endpoints
|
|
462
|
-
interactions: {
|
|
463
|
-
commands: {
|
|
464
|
-
// Application Endpoints
|
|
465
|
-
commands: (applicationId)=>{
|
|
466
|
-
return `/applications/${applicationId}/commands`;
|
|
467
|
-
},
|
|
468
|
-
guilds: {
|
|
469
|
-
all (applicationId, guildId) {
|
|
470
|
-
return `/applications/${applicationId}/guilds/${guildId}/commands`;
|
|
471
|
-
},
|
|
472
|
-
one (applicationId, guildId, commandId, withLocalizations) {
|
|
473
|
-
let url = `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}?`;
|
|
474
|
-
if (withLocalizations !== undefined) {
|
|
475
|
-
url += `with_localizations=${withLocalizations.toString()}`;
|
|
476
|
-
}
|
|
477
|
-
return url;
|
|
478
|
-
}
|
|
479
|
-
},
|
|
480
|
-
permissions: (applicationId, guildId)=>{
|
|
481
|
-
return `/applications/${applicationId}/guilds/${guildId}/commands/permissions`;
|
|
482
|
-
},
|
|
483
|
-
permission: (applicationId, guildId, commandId)=>{
|
|
484
|
-
return `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}/permissions`;
|
|
485
|
-
},
|
|
486
|
-
command: (applicationId, commandId, withLocalizations)=>{
|
|
487
|
-
let url = `/applications/${applicationId}/commands/${commandId}?`;
|
|
488
|
-
if (withLocalizations !== undefined) {
|
|
489
|
-
url += `withLocalizations=${withLocalizations.toString()}`;
|
|
490
|
-
}
|
|
491
|
-
return url;
|
|
492
|
-
}
|
|
493
|
-
},
|
|
494
|
-
responses: {
|
|
495
|
-
// Interaction Endpoints
|
|
496
|
-
callback: (interactionId, token, options)=>{
|
|
497
|
-
return `/interactions/${interactionId}/${token}/callback?with_response=${!!options?.withResponse}`;
|
|
498
|
-
},
|
|
499
|
-
original: (interactionId, token)=>{
|
|
500
|
-
return `/webhooks/${interactionId}/${token}/messages/@original`;
|
|
501
|
-
},
|
|
502
|
-
message: (applicationId, token, messageId)=>{
|
|
503
|
-
return `/webhooks/${applicationId}/${token}/messages/${messageId}`;
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
},
|
|
507
|
-
// OAuth2 endpoints
|
|
508
|
-
oauth2: {
|
|
509
|
-
tokenExchange: ()=>{
|
|
510
|
-
return '/oauth2/token';
|
|
511
|
-
},
|
|
512
|
-
tokenRevoke: ()=>{
|
|
513
|
-
return '/oauth2/token/revoke';
|
|
514
|
-
},
|
|
515
|
-
currentAuthorization: ()=>{
|
|
516
|
-
return '/oauth2/@me';
|
|
517
|
-
},
|
|
518
|
-
application: ()=>{
|
|
519
|
-
return '/oauth2/applications/@me';
|
|
520
|
-
},
|
|
521
|
-
connections: ()=>{
|
|
522
|
-
return '/users/@me/connections';
|
|
523
|
-
},
|
|
524
|
-
roleConnections: (applicationId)=>{
|
|
525
|
-
return `/users/@me/applications/${applicationId}/role-connection`;
|
|
526
|
-
}
|
|
527
|
-
},
|
|
528
|
-
monetization: {
|
|
529
|
-
entitlements: (applicationId, options)=>{
|
|
530
|
-
let url = `/applications/${applicationId}/entitlements?`;
|
|
531
|
-
if (options) {
|
|
532
|
-
if (options.after) url += `after=${options.after}`;
|
|
533
|
-
if (options.before) url += `&before=${options.before}`;
|
|
534
|
-
if (options.excludeEnded) url += `&exclude_ended=${options.excludeEnded}`;
|
|
535
|
-
if (options.guildId) url += `&guild_id=${options.guildId}`;
|
|
536
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
537
|
-
if (options.skuIds) url += `&sku_ids=${options.skuIds.join(',')}`;
|
|
538
|
-
if (options.userId) url += `&user_id=${options.userId}`;
|
|
539
|
-
}
|
|
540
|
-
return url;
|
|
541
|
-
},
|
|
542
|
-
entitlement: (applicationId, entitlementId)=>{
|
|
543
|
-
return `/applications/${applicationId}/entitlements/${entitlementId}`;
|
|
544
|
-
},
|
|
545
|
-
consumeEntitlement: (applicationId, entitlementId)=>{
|
|
546
|
-
return `/applications/${applicationId}/entitlements/${entitlementId}/consume`;
|
|
547
|
-
},
|
|
548
|
-
skus: (applicationId)=>{
|
|
549
|
-
return `/applications/${applicationId}/skus`;
|
|
550
|
-
},
|
|
551
|
-
subscription: (skuId, subscriptionId)=>{
|
|
552
|
-
return `/skus/${skuId}/subscriptions/${subscriptionId}`;
|
|
553
|
-
},
|
|
554
|
-
subscriptions: (skuId, options)=>{
|
|
555
|
-
let url = `/skus/${skuId}/subscriptions?`;
|
|
556
|
-
if (options) {
|
|
557
|
-
if (options.after) url += `after=${options.after}`;
|
|
558
|
-
if (options.before) url += `&before=${options.before}`;
|
|
559
|
-
if (options.userId) url += `&user_id=${options.userId}`;
|
|
560
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
561
|
-
}
|
|
562
|
-
return url;
|
|
563
|
-
}
|
|
564
|
-
},
|
|
565
|
-
soundboard: {
|
|
566
|
-
sendSound: (channelId)=>{
|
|
567
|
-
return `/channels/${channelId}`;
|
|
568
|
-
},
|
|
569
|
-
listDefault: ()=>{
|
|
570
|
-
return `/soundboard-default-sounds`;
|
|
571
|
-
},
|
|
572
|
-
guildSounds: (guildId)=>{
|
|
573
|
-
return `/guilds/${guildId}/soundboard-sounds`;
|
|
574
|
-
},
|
|
575
|
-
guildSound: (guildId, soundId)=>{
|
|
576
|
-
return `/guilds/${guildId}/soundboard-sounds/${soundId}`;
|
|
577
|
-
}
|
|
578
|
-
},
|
|
579
|
-
lobby: {
|
|
580
|
-
create: ()=>{
|
|
581
|
-
return '/lobbies';
|
|
582
|
-
},
|
|
583
|
-
lobby: (lobbyId)=>{
|
|
584
|
-
return `/lobbies/${lobbyId}`;
|
|
585
|
-
},
|
|
586
|
-
member: (lobbyId, userId)=>{
|
|
587
|
-
return `/lobbies/${lobbyId}/members/${userId}`;
|
|
588
|
-
},
|
|
589
|
-
leave: (lobbyId)=>{
|
|
590
|
-
return `/lobbies/${lobbyId}/members/@me`;
|
|
591
|
-
},
|
|
592
|
-
link: (lobbyId)=>{
|
|
593
|
-
return `/lobbies/${lobbyId}/channel-linking`;
|
|
594
|
-
}
|
|
595
|
-
},
|
|
596
|
-
applicationEmoji (applicationId, emojiId) {
|
|
597
|
-
return `/applications/${applicationId}/emojis/${emojiId}`;
|
|
598
|
-
},
|
|
599
|
-
applicationEmojis (applicationId) {
|
|
600
|
-
return `/applications/${applicationId}/emojis`;
|
|
601
|
-
},
|
|
602
|
-
applicationRoleConnectionMetadata (applicationId) {
|
|
603
|
-
return `/applications/${applicationId}/role-connections/metadata`;
|
|
604
|
-
},
|
|
605
|
-
// User endpoints
|
|
606
|
-
user (userId) {
|
|
607
|
-
return `/users/${userId}`;
|
|
608
|
-
},
|
|
609
|
-
application () {
|
|
610
|
-
return '/applications/@me';
|
|
611
|
-
},
|
|
612
|
-
applicationActivityInstance (applicationId, instanceId) {
|
|
613
|
-
return `/applications/${applicationId}/activity-instances/${instanceId}`;
|
|
614
|
-
},
|
|
615
|
-
currentUser () {
|
|
616
|
-
return '/users/@me';
|
|
617
|
-
},
|
|
618
|
-
gatewayBot () {
|
|
619
|
-
return '/gateway/bot';
|
|
620
|
-
},
|
|
621
|
-
stickerPack (stickerPackId) {
|
|
622
|
-
return `/sticker-packs/${stickerPackId}`;
|
|
623
|
-
},
|
|
624
|
-
stickerPacks () {
|
|
625
|
-
return '/sticker-packs';
|
|
626
|
-
}
|
|
627
|
-
};
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHZXRNZXNzYWdlc09wdGlvbnMsIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IGlzR2V0TWVzc2FnZXNBZnRlciwgaXNHZXRNZXNzYWdlc0Fyb3VuZCwgaXNHZXRNZXNzYWdlc0JlZm9yZSwgaXNHZXRNZXNzYWdlc0xpbWl0IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFJlc3RSb3V0ZXMgfSBmcm9tICcuL3R5cGluZ3Mvcm91dGVzLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm91dGVzKCk6IFJlc3RSb3V0ZXMge1xuICByZXR1cm4ge1xuICAgIHdlYmhvb2tzOiB7XG4gICAgICBpZDogKHdlYmhvb2tJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC93ZWJob29rcy8ke3dlYmhvb2tJZH1gXG4gICAgICB9LFxuICAgICAgbWVzc2FnZTogKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgICBsZXQgdXJsID0gYC93ZWJob29rcy8ke3dlYmhvb2tJZH0vJHt0b2tlbn0vbWVzc2FnZXMvJHttZXNzYWdlSWR9P2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLnRocmVhZElkKSB1cmwgKz0gYHRocmVhZF9pZD0ke29wdGlvbnMudGhyZWFkSWR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLndpdGhDb21wb25lbnRzKSB1cmwgKz0gYCZ3aXRoX2NvbXBvbmVudHM9JHtvcHRpb25zLndpdGhDb21wb25lbnRzfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICB3ZWJob29rOiAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgICBsZXQgdXJsID0gYC93ZWJob29rcy8ke3dlYmhvb2tJZH0vJHt0b2tlbn0/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnM/LndhaXQgIT09IHVuZGVmaW5lZCkgdXJsICs9IGB3YWl0PSR7b3B0aW9ucy53YWl0LnRvU3RyaW5nKCl9YFxuICAgICAgICAgIGlmIChvcHRpb25zLnRocmVhZElkKSB1cmwgKz0gYCZ0aHJlYWRfaWQ9JHtvcHRpb25zLnRocmVhZElkfWBcbiAgICAgICAgICBpZiAob3B0aW9ucy53aXRoQ29tcG9uZW50cykgdXJsICs9IGAmd2l0aF9jb21wb25lbnRzPSR7b3B0aW9ucy53aXRoQ29tcG9uZW50c31gXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXJsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICAvLyBDaGFubmVsIEVuZHBvaW50c1xuICAgIGNoYW5uZWxzOiB7XG4gICAgICBidWxrOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy9idWxrLWRlbGV0ZWBcbiAgICAgIH0sXG4gICAgICBkbTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy91c2Vycy9AbWUvY2hhbm5lbHMnXG4gICAgICB9LFxuICAgICAgZG1SZWNpcGllbnQ6IChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vcmVjaXBpZW50cy8ke3VzZXJJZH1gXG4gICAgICB9LFxuICAgICAgcGluOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3BpbnMvJHttZXNzYWdlSWR9YFxuICAgICAgfSxcbiAgICAgIHBpbnM6IChjaGFubmVsSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3BpbnNgXG4gICAgICB9LFxuICAgICAgbWVzc2FnZVBpbnM6IChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzL3BpbnM/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYGJlZm9yZT0ke29wdGlvbnMuYmVmb3JlfWBcbiAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBtZXNzYWdlUGluOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzL3BpbnMvJHttZXNzYWdlSWR9YFxuICAgICAgfSxcbiAgICAgIHJlYWN0aW9uczoge1xuICAgICAgICBib3Q6IChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgZW1vamkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vbWVzc2FnZXMvJHttZXNzYWdlSWR9L3JlYWN0aW9ucy8ke2VuY29kZVVSSUNvbXBvbmVudChlbW9qaSl9L0BtZWBcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcjogKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBlbW9qaSwgdXNlcklkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoZW1vamkpfS8ke3VzZXJJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIGFsbDogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnNgXG4gICAgICAgIH0sXG4gICAgICAgIGVtb2ppOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIGVtb2ppLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoZW1vamkpfT9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudHlwZSkgdXJsICs9IGB0eXBlPSR7b3B0aW9ucy50eXBlfWBcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYCZhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9yZXN0cmljdC10ZW1wbGF0ZS1leHByZXNzaW9uc1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMubGltaXQpIHVybCArPSBgJmxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIGVtb2ppLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoZW1vamkpfT9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYWZ0ZXIpIHVybCArPSBgYWZ0ZXI9JHtvcHRpb25zLmFmdGVyfWBcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB3ZWJob29rczogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vd2ViaG9va3NgXG4gICAgICB9LFxuXG4gICAgICBjaGFubmVsOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfWBcbiAgICAgIH0sXG5cbiAgICAgIGZvbGxvdzogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vZm9sbG93ZXJzYFxuICAgICAgfSxcblxuICAgICAgZm9ydW06IChjaGFubmVsSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3RocmVhZHNgXG4gICAgICB9LFxuXG4gICAgICBpbnZpdGVzOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9pbnZpdGVzYFxuICAgICAgfSxcblxuICAgICAgbWVzc2FnZTogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy8ke21lc3NhZ2VJZH1gXG4gICAgICB9LFxuXG4gICAgICBtZXNzYWdlczogKGNoYW5uZWxJZCwgb3B0aW9ucz86IEdldE1lc3NhZ2VzT3B0aW9ucykgPT4ge1xuICAgICAgICBsZXQgdXJsID0gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vbWVzc2FnZXM/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKGlzR2V0TWVzc2FnZXNBZnRlcihvcHRpb25zKSAmJiBvcHRpb25zLmFmdGVyKSB7XG4gICAgICAgICAgICB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0dldE1lc3NhZ2VzQmVmb3JlKG9wdGlvbnMpICYmIG9wdGlvbnMuYmVmb3JlKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0dldE1lc3NhZ2VzQXJvdW5kKG9wdGlvbnMpICYmIG9wdGlvbnMuYXJvdW5kKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZhcm91bmQ9JHtvcHRpb25zLmFyb3VuZH1gXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0dldE1lc3NhZ2VzTGltaXQob3B0aW9ucykgJiYgb3B0aW9ucy5saW1pdCkge1xuICAgICAgICAgICAgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXJsXG4gICAgICB9LFxuXG4gICAgICBvdmVyd3JpdGU6IChjaGFubmVsSWQsIG92ZXJ3cml0ZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9wZXJtaXNzaW9ucy8ke292ZXJ3cml0ZUlkfWBcbiAgICAgIH0sXG5cbiAgICAgIGNyb3NzcG9zdDogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy8ke21lc3NhZ2VJZH0vY3Jvc3Nwb3N0YFxuICAgICAgfSxcblxuICAgICAgc3RhZ2VzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAnL3N0YWdlLWluc3RhbmNlcydcbiAgICAgIH0sXG5cbiAgICAgIHN0YWdlOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL3N0YWdlLWluc3RhbmNlcy8ke2NoYW5uZWxJZH1gXG4gICAgICB9LFxuXG4gICAgICAvLyBUaHJlYWQgRW5kcG9pbnRzXG4gICAgICB0aHJlYWRzOiB7XG4gICAgICAgIG1lc3NhZ2U6IChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy8ke21lc3NhZ2VJZH0vdGhyZWFkc2BcbiAgICAgICAgfSxcbiAgICAgICAgYWxsOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3RocmVhZHNgXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2ZTogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS90aHJlYWRzL2FjdGl2ZWBcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyczogKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgIGxldCB1cmwgPSBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS90aHJlYWQtbWVtYmVycz9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMud2l0aE1lbWJlcikgdXJsICs9IGB3aXRoX21lbWJlcj0ke29wdGlvbnMud2l0aE1lbWJlcn1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYCZhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgbWU6IChjaGFubmVsSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdGhyZWFkLW1lbWJlcnMvQG1lYFxuICAgICAgICB9LFxuICAgICAgICBnZXRVc2VyKGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKSB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3RocmVhZC1tZW1iZXJzLyR7dXNlcklkfT9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMud2l0aE1lbWJlcikgdXJsICs9IGB3aXRoX21lbWJlcj0ke29wdGlvbnMud2l0aE1lbWJlcn1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgICB1c2VyOiAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdGhyZWFkLW1lbWJlcnMvJHt1c2VySWR9YFxuICAgICAgICB9LFxuICAgICAgICBhcmNoaXZlZDogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS90aHJlYWRzL2FyY2hpdmVkYFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWM6IChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdGhyZWFkcy9hcmNoaXZlZC9wdWJsaWM/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkge1xuICAgICAgICAgICAgICB1cmwgKz0gYGJlZm9yZT0ke25ldyBEYXRlKG9wdGlvbnMuYmVmb3JlKS50b0lTT1N0cmluZygpfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgcHJpdmF0ZTogKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgIGxldCB1cmwgPSBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS90aHJlYWRzL2FyY2hpdmVkL3ByaXZhdGU/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkge1xuICAgICAgICAgICAgICB1cmwgKz0gYGJlZm9yZT0ke25ldyBEYXRlKG9wdGlvbnMuYmVmb3JlKS50b0lTT1N0cmluZygpfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgam9pbmVkOiAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3VzZXJzL0BtZS90aHJlYWRzL2FyY2hpdmVkL3ByaXZhdGU/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkge1xuICAgICAgICAgICAgICB1cmwgKz0gYGJlZm9yZT0ke25ldyBEYXRlKG9wdGlvbnMuYmVmb3JlKS50b0lTT1N0cmluZygpfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIHR5cGluZzogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdHlwaW5nYFxuICAgICAgfSxcblxuICAgICAgcG9sbHM6IHtcbiAgICAgICAgdm90ZXM6IChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgYW5zd2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vcG9sbHMvJHttZXNzYWdlSWR9L2Fuc3dlcnMvJHthbnN3ZXJJZH0/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIGV4cGlyZTogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3BvbGxzLyR7bWVzc2FnZUlkfS9leHBpcmVgXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICAvLyBHdWlsZCBFbmRwb2ludHNcbiAgICBndWlsZHM6IHtcbiAgICAgIGFsbDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9ndWlsZHMnXG4gICAgICB9LFxuICAgICAgdXNlckd1aWxkczogKG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9ICcvdXNlcnMvQG1lL2d1aWxkcz8nXG5cbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5hZnRlcikgdXJsICs9IGBhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkgdXJsICs9IGAmYmVmb3JlPSR7b3B0aW9ucy5iZWZvcmV9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLndpdGhDb3VudHMpIHVybCArPSBgJndpdGhfY291bnRzPSR7b3B0aW9ucy53aXRoQ291bnRzfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBhdWRpdGxvZ3M6IChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGxldCB1cmwgPSBgL2d1aWxkcy8ke2d1aWxkSWR9L2F1ZGl0LWxvZ3M/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMuYWN0aW9uVHlwZSkgdXJsICs9IGBhY3Rpb25fdHlwZT0ke29wdGlvbnMuYWN0aW9uVHlwZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYWZ0ZXIpIHVybCArPSBgJmFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMubGltaXQpIHVybCArPSBgJmxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMudXNlcklkKSB1cmwgKz0gYCZ1c2VyX2lkPSR7b3B0aW9ucy51c2VySWR9YFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfSxcbiAgICAgIGF1dG9tb2Q6IHtcbiAgICAgICAgcnVsZTogKGd1aWxkSWQsIHJ1bGVJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L2F1dG8tbW9kZXJhdGlvbi9ydWxlcy8ke3J1bGVJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bGVzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L2F1dG8tbW9kZXJhdGlvbi9ydWxlc2BcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjaGFubmVsczogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vY2hhbm5lbHNgXG4gICAgICB9LFxuICAgICAgZW1vamk6IChndWlsZElkLCBlbW9qaUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L2Vtb2ppcy8ke2Vtb2ppSWR9YFxuICAgICAgfSxcbiAgICAgIGVtb2ppczogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vZW1vamlzYFxuICAgICAgfSxcbiAgICAgIGV2ZW50czoge1xuICAgICAgICBldmVudHM6IChndWlsZElkLCB3aXRoVXNlckNvdW50PzogYm9vbGVhbikgPT4ge1xuICAgICAgICAgIGxldCB1cmwgPSBgL2d1aWxkcy8ke2d1aWxkSWR9L3NjaGVkdWxlZC1ldmVudHM/YFxuXG4gICAgICAgICAgaWYgKHdpdGhVc2VyQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdXJsICs9IGB3aXRoX3VzZXJfY291bnQ9JHt3aXRoVXNlckNvdW50LnRvU3RyaW5nKCl9YFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIGV2ZW50OiAoZ3VpbGRJZCwgZXZlbnRJZCwgd2l0aFVzZXJDb3VudD86IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfS9zY2hlZHVsZWQtZXZlbnRzLyR7ZXZlbnRJZH1gXG5cbiAgICAgICAgICBpZiAod2l0aFVzZXJDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYHdpdGhfdXNlcl9jb3VudD0ke3dpdGhVc2VyQ291bnQudG9TdHJpbmcoKX1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgICB1c2VyczogKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudFVzZXJzKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvZ3VpbGRzLyR7Z3VpbGRJZH0vc2NoZWR1bGVkLWV2ZW50cy8ke2V2ZW50SWR9L3VzZXJzP2BcblxuICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYGxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy53aXRoTWVtYmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdXJsICs9IGAmd2l0aF9tZW1iZXI9JHtvcHRpb25zLndpdGhNZW1iZXIudG9TdHJpbmcoKX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hZnRlciAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYCZhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlICE9PSB1bmRlZmluZWQpIHVybCArPSBgJmJlZm9yZT0ke29wdGlvbnMuYmVmb3JlfWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZ3VpbGQoZ3VpbGRJZCwgd2l0aENvdW50cykge1xuICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfT9gXG5cbiAgICAgICAgaWYgKHdpdGhDb3VudHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHVybCArPSBgd2l0aF9jb3VudHM9JHt3aXRoQ291bnRzLnRvU3RyaW5nKCl9YFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfSxcbiAgICAgIGludGVncmF0aW9uKGd1aWxkSWQsIGludGVncmF0aW9uSWQpIHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vaW50ZWdyYXRpb25zLyR7aW50ZWdyYXRpb25JZH1gXG4gICAgICB9LFxuICAgICAgaW50ZWdyYXRpb25zOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9pbnRlZ3JhdGlvbnM/aW5jbHVkZV9hcHBsaWNhdGlvbnM9dHJ1ZWBcbiAgICAgIH0sXG4gICAgICBpbnZpdGUoaW52aXRlQ29kZSwgb3B0aW9ucykge1xuICAgICAgICBsZXQgdXJsID0gYC9pbnZpdGVzLyR7aW52aXRlQ29kZX0/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMud2l0aENvdW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYHdpdGhfY291bnRzPSR7b3B0aW9ucy53aXRoQ291bnRzLnRvU3RyaW5nKCl9YFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9ucy53aXRoRXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZ3aXRoX2V4cGlyYXRpb249JHtvcHRpb25zLndpdGhFeHBpcmF0aW9uLnRvU3RyaW5nKCl9YFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9ucy5zY2hlZHVsZWRFdmVudElkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZndWlsZF9zY2hlZHVsZWRfZXZlbnRfaWQ9JHtvcHRpb25zLnNjaGVkdWxlZEV2ZW50SWR9YFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBpbnZpdGVzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9pbnZpdGVzYFxuICAgICAgfSxcbiAgICAgIGxlYXZlOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC91c2Vycy9AbWUvZ3VpbGRzLyR7Z3VpbGRJZH1gXG4gICAgICB9LFxuICAgICAgbWVtYmVyczoge1xuICAgICAgICBiYW46IChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9iYW5zLyR7dXNlcklkfWBcbiAgICAgICAgfSxcbiAgICAgICAgYmFuczogKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfS9iYW5zP2BcblxuICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGBsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYWZ0ZXIpIHVybCArPSBgJmFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5iZWZvcmUpIHVybCArPSBgJmJlZm9yZT0ke29wdGlvbnMuYmVmb3JlfWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIGJ1bGtCYW46IChndWlsZElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vYnVsay1iYW5gXG4gICAgICAgIH0sXG4gICAgICAgIGJvdDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9tZW1iZXJzL0BtZWBcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyOiAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vbWVtYmVycy8ke3VzZXJJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIGN1cnJlbnRNZW1iZXI6IChndWlsZElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvdXNlcnMvQG1lL2d1aWxkcy8ke2d1aWxkSWR9L21lbWJlcmBcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyczogKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfS9tZW1iZXJzP2BcblxuICAgICAgICAgIGlmIChvcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYGxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hZnRlcikgdXJsICs9IGAmYWZ0ZXI9JHtvcHRpb25zLmFmdGVyfWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaDogKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvZ3VpbGRzLyR7Z3VpbGRJZH0vbWVtYmVycy9zZWFyY2g/cXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQocXVlcnkpfWBcblxuICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgcHJ1bmU6IChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvZ3VpbGRzLyR7Z3VpbGRJZH0vcHJ1bmU/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRheXMpIHVybCArPSBgZGF5cz0ke29wdGlvbnMuZGF5c31gXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLmluY2x1ZGVSb2xlcykpIHtcbiAgICAgICAgICAgICAgdXJsICs9IGAmaW5jbHVkZV9yb2xlcz0ke29wdGlvbnMuaW5jbHVkZVJvbGVzLmpvaW4oJywnKX1gXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaW5jbHVkZVJvbGVzKSB7XG4gICAgICAgICAgICAgIHVybCArPSBgJmluY2x1ZGVfcm9sZXM9JHtvcHRpb25zLmluY2x1ZGVSb2xlc31gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByZXZpZXc6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3ByZXZpZXdgXG4gICAgICB9LFxuICAgICAgcHJ1bmU6IChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGxldCB1cmwgPSBgL2d1aWxkcy8ke2d1aWxkSWR9L3BydW5lP2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmRheXMpIHVybCArPSBgZGF5cz0ke29wdGlvbnMuZGF5c31gXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy5pbmNsdWRlUm9sZXMpKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZpbmNsdWRlX3JvbGVzPSR7b3B0aW9ucy5pbmNsdWRlUm9sZXMuam9pbignLCcpfWBcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaW5jbHVkZVJvbGVzKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZpbmNsdWRlX3JvbGVzPSR7b3B0aW9ucy5pbmNsdWRlUm9sZXN9YFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICByb2xlczoge1xuICAgICAgICBvbmU6IChndWlsZElkLCByb2xlSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9yb2xlcy8ke3JvbGVJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIGFsbDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9yb2xlc2BcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyOiAoZ3VpbGRJZCwgbWVtYmVySWQsIHJvbGVJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L21lbWJlcnMvJHttZW1iZXJJZH0vcm9sZXMvJHtyb2xlSWR9YFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHN0aWNrZXJzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9zdGlja2Vyc2BcbiAgICAgIH0sXG4gICAgICBzdGlja2VyOiAoZ3VpbGRJZCwgc3RpY2tlcklkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3N0aWNrZXJzLyR7c3RpY2tlcklkfWBcbiAgICAgIH0sXG4gICAgICB2b2ljZTogKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS92b2ljZS1zdGF0ZXMvJHt1c2VySWQgPz8gJ0BtZSd9YFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlczoge1xuICAgICAgICBjb2RlOiAoY29kZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy90ZW1wbGF0ZXMvJHtjb2RlfWBcbiAgICAgICAgfSxcbiAgICAgICAgZ3VpbGQ6IChndWlsZElkLCBjb2RlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vdGVtcGxhdGVzLyR7Y29kZX1gXG4gICAgICAgIH0sXG4gICAgICAgIGFsbDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS90ZW1wbGF0ZXNgXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmFuaXR5OiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS92YW5pdHktdXJsYFxuICAgICAgfSxcbiAgICAgIHJlZ2lvbnM6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3JlZ2lvbnNgXG4gICAgICB9LFxuICAgICAgd2ViaG9va3M6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3dlYmhvb2tzYFxuICAgICAgfSxcbiAgICAgIHdlbGNvbWU6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3dlbGNvbWUtc2NyZWVuYFxuICAgICAgfSxcbiAgICAgIHdpZGdldDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vd2lkZ2V0YFxuICAgICAgfSxcbiAgICAgIHdpZGdldEpzb246IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3dpZGdldC5qc29uYFxuICAgICAgfSxcbiAgICAgIG9uYm9hcmRpbmc6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L29uYm9hcmRpbmdgXG4gICAgICB9LFxuICAgICAgaW5jaWRlbnRBY3Rpb25zOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9pbmNpZGVudC1hY3Rpb25zYFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgc3RpY2tlcjogKHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuICAgIH0sXG5cbiAgICByZWdpb25zOiAoKSA9PiB7XG4gICAgICByZXR1cm4gJy92b2ljZS9yZWdpb25zJ1xuICAgIH0sXG5cbiAgICAvLyBJbnRlcmFjdGlvbiBFbmRwb2ludHNcbiAgICBpbnRlcmFjdGlvbnM6IHtcbiAgICAgIGNvbW1hbmRzOiB7XG4gICAgICAgIC8vIEFwcGxpY2F0aW9uIEVuZHBvaW50c1xuICAgICAgICBjb21tYW5kczogKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9jb21tYW5kc2BcbiAgICAgICAgfSxcblxuICAgICAgICBndWlsZHM6IHtcbiAgICAgICAgICBhbGwoYXBwbGljYXRpb25JZCwgZ3VpbGRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZ3VpbGRzLyR7Z3VpbGRJZH0vY29tbWFuZHNgXG4gICAgICAgICAgfSxcblxuICAgICAgICAgIG9uZShhcHBsaWNhdGlvbklkLCBndWlsZElkLCBjb21tYW5kSWQsIHdpdGhMb2NhbGl6YXRpb25zKSB7XG4gICAgICAgICAgICBsZXQgdXJsID0gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9ndWlsZHMvJHtndWlsZElkfS9jb21tYW5kcy8ke2NvbW1hbmRJZH0/YFxuXG4gICAgICAgICAgICBpZiAod2l0aExvY2FsaXphdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB1cmwgKz0gYHdpdGhfbG9jYWxpemF0aW9ucz0ke3dpdGhMb2NhbGl6YXRpb25zLnRvU3RyaW5nKCl9YFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IChhcHBsaWNhdGlvbklkLCBndWlsZElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZ3VpbGRzLyR7Z3VpbGRJZH0vY29tbWFuZHMvcGVybWlzc2lvbnNgXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb246IChhcHBsaWNhdGlvbklkLCBndWlsZElkLCBjb21tYW5kSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9ndWlsZHMvJHtndWlsZElkfS9jb21tYW5kcy8ke2NvbW1hbmRJZH0vcGVybWlzc2lvbnNgXG4gICAgICAgIH0sXG4gICAgICAgIGNvbW1hbmQ6IChhcHBsaWNhdGlvbklkLCBjb21tYW5kSWQsIHdpdGhMb2NhbGl6YXRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vY29tbWFuZHMvJHtjb21tYW5kSWR9P2BcblxuICAgICAgICAgIGlmICh3aXRoTG9jYWxpemF0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYHdpdGhMb2NhbGl6YXRpb25zPSR7d2l0aExvY2FsaXphdGlvbnMudG9TdHJpbmcoKX1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgfSxcblxuICAgICAgcmVzcG9uc2VzOiB7XG4gICAgICAgIC8vIEludGVyYWN0aW9uIEVuZHBvaW50c1xuICAgICAgICBjYWxsYmFjazogKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvaW50ZXJhY3Rpb25zLyR7aW50ZXJhY3Rpb25JZH0vJHt0b2tlbn0vY2FsbGJhY2s/d2l0aF9yZXNwb25zZT0keyEhb3B0aW9ucz8ud2l0aFJlc3BvbnNlfWBcbiAgICAgICAgfSxcbiAgICAgICAgb3JpZ2luYWw6IChpbnRlcmFjdGlvbklkLCB0b2tlbikgPT4ge1xuICAgICAgICAgIHJldHVybiBgL3dlYmhvb2tzLyR7aW50ZXJhY3Rpb25JZH0vJHt0b2tlbn0vbWVzc2FnZXMvQG9yaWdpbmFsYFxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlOiAoYXBwbGljYXRpb25JZCwgdG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL3dlYmhvb2tzLyR7YXBwbGljYXRpb25JZH0vJHt0b2tlbn0vbWVzc2FnZXMvJHttZXNzYWdlSWR9YFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgLy8gT0F1dGgyIGVuZHBvaW50c1xuICAgIG9hdXRoMjoge1xuICAgICAgdG9rZW5FeGNoYW5nZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9vYXV0aDIvdG9rZW4nXG4gICAgICB9LFxuICAgICAgdG9rZW5SZXZva2U6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuICcvb2F1dGgyL3Rva2VuL3Jldm9rZSdcbiAgICAgIH0sXG4gICAgICBjdXJyZW50QXV0aG9yaXphdGlvbjogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9vYXV0aDIvQG1lJ1xuICAgICAgfSxcbiAgICAgIGFwcGxpY2F0aW9uOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAnL29hdXRoMi9hcHBsaWNhdGlvbnMvQG1lJ1xuICAgICAgfSxcbiAgICAgIGNvbm5lY3Rpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAnL3VzZXJzL0BtZS9jb25uZWN0aW9ucydcbiAgICAgIH0sXG4gICAgICByb2xlQ29ubmVjdGlvbnM6IChhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL3VzZXJzL0BtZS9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9yb2xlLWNvbm5lY3Rpb25gXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBtb25ldGl6YXRpb246IHtcbiAgICAgIGVudGl0bGVtZW50czogKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9IGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZW50aXRsZW1lbnRzP2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuZXhjbHVkZUVuZGVkKSB1cmwgKz0gYCZleGNsdWRlX2VuZGVkPSR7b3B0aW9ucy5leGNsdWRlRW5kZWR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmd1aWxkSWQpIHVybCArPSBgJmd1aWxkX2lkPSR7b3B0aW9ucy5ndWlsZElkfWBcbiAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICBpZiAob3B0aW9ucy5za3VJZHMpIHVybCArPSBgJnNrdV9pZHM9JHtvcHRpb25zLnNrdUlkcy5qb2luKCcsJyl9YFxuICAgICAgICAgIGlmIChvcHRpb25zLnVzZXJJZCkgdXJsICs9IGAmdXNlcl9pZD0ke29wdGlvbnMudXNlcklkfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBlbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZW50aXRsZW1lbnRzLyR7ZW50aXRsZW1lbnRJZH1gXG4gICAgICB9LFxuICAgICAgY29uc3VtZUVudGl0bGVtZW50OiAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9lbnRpdGxlbWVudHMvJHtlbnRpdGxlbWVudElkfS9jb25zdW1lYFxuICAgICAgfSxcblxuICAgICAgc2t1czogKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vc2t1c2BcbiAgICAgIH0sXG5cbiAgICAgIHN1YnNjcmlwdGlvbjogKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9za3VzLyR7c2t1SWR9L3N1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb25JZH1gXG4gICAgICB9LFxuXG4gICAgICBzdWJzY3JpcHRpb25zOiAoc2t1SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9IGAvc2t1cy8ke3NrdUlkfS9zdWJzY3JpcHRpb25zP2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMudXNlcklkKSB1cmwgKz0gYCZ1c2VyX2lkPSR7b3B0aW9ucy51c2VySWR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgc291bmRib2FyZDoge1xuICAgICAgc2VuZFNvdW5kOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfWBcbiAgICAgIH0sXG4gICAgICBsaXN0RGVmYXVsdDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9zb3VuZGJvYXJkLWRlZmF1bHQtc291bmRzYFxuICAgICAgfSxcbiAgICAgIGd1aWxkU291bmRzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9zb3VuZGJvYXJkLXNvdW5kc2BcbiAgICAgIH0sXG4gICAgICBndWlsZFNvdW5kOiAoZ3VpbGRJZCwgc291bmRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9zb3VuZGJvYXJkLXNvdW5kcy8ke3NvdW5kSWR9YFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgbG9iYnk6IHtcbiAgICAgIGNyZWF0ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9sb2JiaWVzJ1xuICAgICAgfSxcblxuICAgICAgbG9iYnk6IChsb2JieUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2xvYmJpZXMvJHtsb2JieUlkfWBcbiAgICAgIH0sXG5cbiAgICAgIG1lbWJlcjogKGxvYmJ5SWQsIHVzZXJJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9sb2JiaWVzLyR7bG9iYnlJZH0vbWVtYmVycy8ke3VzZXJJZH1gXG4gICAgICB9LFxuXG4gICAgICBsZWF2ZTogKGxvYmJ5SWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvbG9iYmllcy8ke2xvYmJ5SWR9L21lbWJlcnMvQG1lYFxuICAgICAgfSxcblxuICAgICAgbGluazogKGxvYmJ5SWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvbG9iYmllcy8ke2xvYmJ5SWR9L2NoYW5uZWwtbGlua2luZ2BcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGFwcGxpY2F0aW9uRW1vamkoYXBwbGljYXRpb25JZCwgZW1vamlJZCkge1xuICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZW1vamlzLyR7ZW1vamlJZH1gXG4gICAgfSxcblxuICAgIGFwcGxpY2F0aW9uRW1vamlzKGFwcGxpY2F0aW9uSWQpIHtcbiAgICAgIHJldHVybiBgL2FwcGxpY2F0aW9ucy8ke2FwcGxpY2F0aW9uSWR9L2Vtb2ppc2BcbiAgICB9LFxuXG4gICAgYXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhKGFwcGxpY2F0aW9uSWQpIHtcbiAgICAgIHJldHVybiBgL2FwcGxpY2F0aW9ucy8ke2FwcGxpY2F0aW9uSWR9L3JvbGUtY29ubmVjdGlvbnMvbWV0YWRhdGFgXG4gICAgfSxcblxuICAgIC8vIFVzZXIgZW5kcG9pbnRzXG4gICAgdXNlcih1c2VySWQpIHtcbiAgICAgIHJldHVybiBgL3VzZXJzLyR7dXNlcklkfWBcbiAgICB9LFxuXG4gICAgYXBwbGljYXRpb24oKSB7XG4gICAgICByZXR1cm4gJy9hcHBsaWNhdGlvbnMvQG1lJ1xuICAgIH0sXG5cbiAgICBhcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UoYXBwbGljYXRpb25JZCwgaW5zdGFuY2VJZCkge1xuICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vYWN0aXZpdHktaW5zdGFuY2VzLyR7aW5zdGFuY2VJZH1gXG4gICAgfSxcblxuICAgIGN1cnJlbnRVc2VyKCkge1xuICAgICAgcmV0dXJuICcvdXNlcnMvQG1lJ1xuICAgIH0sXG5cbiAgICBnYXRld2F5Qm90KCkge1xuICAgICAgcmV0dXJuICcvZ2F0ZXdheS9ib3QnXG4gICAgfSxcblxuICAgIHN0aWNrZXJQYWNrKHN0aWNrZXJQYWNrSWQpIHtcbiAgICAgIHJldHVybiBgL3N0aWNrZXItcGFja3MvJHtzdGlja2VyUGFja0lkfWBcbiAgICB9LFxuXG4gICAgc3RpY2tlclBhY2tzKCkge1xuICAgICAgcmV0dXJuICcvc3RpY2tlci1wYWNrcydcbiAgICB9LFxuICB9XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUm91dGVzIiwid2ViaG9va3MiLCJpZCIsIndlYmhvb2tJZCIsIm1lc3NhZ2UiLCJ0b2tlbiIsIm1lc3NhZ2VJZCIsIm9wdGlvbnMiLCJ1cmwiLCJ0aHJlYWRJZCIsIndpdGhDb21wb25lbnRzIiwid2ViaG9vayIsIndhaXQiLCJ1bmRlZmluZWQiLCJ0b1N0cmluZyIsImNoYW5uZWxzIiwiYnVsayIsImNoYW5uZWxJZCIsImRtIiwiZG1SZWNpcGllbnQiLCJ1c2VySWQiLCJwaW4iLCJwaW5zIiwibWVzc2FnZVBpbnMiLCJiZWZvcmUiLCJsaW1pdCIsIm1lc3NhZ2VQaW4iLCJyZWFjdGlvbnMiLCJib3QiLCJlbW9qaSIsImVuY29kZVVSSUNvbXBvbmVudCIsInVzZXIiLCJhbGwiLCJ0eXBlIiwiYWZ0ZXIiLCJjaGFubmVsIiwiZm9sbG93IiwiZm9ydW0iLCJpbnZpdGVzIiwibWVzc2FnZXMiLCJpc0dldE1lc3NhZ2VzQWZ0ZXIiLCJpc0dldE1lc3NhZ2VzQmVmb3JlIiwiaXNHZXRNZXNzYWdlc0Fyb3VuZCIsImFyb3VuZCIsImlzR2V0TWVzc2FnZXNMaW1pdCIsIm92ZXJ3cml0ZSIsIm92ZXJ3cml0ZUlkIiwiY3Jvc3Nwb3N0Iiwic3RhZ2VzIiwic3RhZ2UiLCJ0aHJlYWRzIiwiYWN0aXZlIiwiZ3VpbGRJZCIsIm1lbWJlcnMiLCJ3aXRoTWVtYmVyIiwibWUiLCJnZXRVc2VyIiwiYXJjaGl2ZWQiLCJwdWJsaWMiLCJEYXRlIiwidG9JU09TdHJpbmciLCJwcml2YXRlIiwiam9pbmVkIiwidHlwaW5nIiwicG9sbHMiLCJ2b3RlcyIsImFuc3dlcklkIiwiZXhwaXJlIiwiZ3VpbGRzIiwidXNlckd1aWxkcyIsIndpdGhDb3VudHMiLCJhdWRpdGxvZ3MiLCJhY3Rpb25UeXBlIiwiYXV0b21vZCIsInJ1bGUiLCJydWxlSWQiLCJydWxlcyIsImVtb2ppSWQiLCJlbW9qaXMiLCJldmVudHMiLCJ3aXRoVXNlckNvdW50IiwiZXZlbnQiLCJldmVudElkIiwidXNlcnMiLCJndWlsZCIsImludGVncmF0aW9uIiwiaW50ZWdyYXRpb25JZCIsImludGVncmF0aW9ucyIsImludml0ZSIsImludml0ZUNvZGUiLCJ3aXRoRXhwaXJhdGlvbiIsInNjaGVkdWxlZEV2ZW50SWQiLCJsZWF2ZSIsImJhbiIsImJhbnMiLCJidWxrQmFuIiwibWVtYmVyIiwiY3VycmVudE1lbWJlciIsInNlYXJjaCIsInF1ZXJ5IiwicHJ1bmUiLCJkYXlzIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5jbHVkZVJvbGVzIiwiam9pbiIsInByZXZpZXciLCJyb2xlcyIsIm9uZSIsInJvbGVJZCIsIm1lbWJlcklkIiwic3RpY2tlcnMiLCJzdGlja2VyIiwic3RpY2tlcklkIiwidm9pY2UiLCJ0ZW1wbGF0ZXMiLCJjb2RlIiwidmFuaXR5IiwicmVnaW9ucyIsIndlbGNvbWUiLCJ3aWRnZXQiLCJ3aWRnZXRKc29uIiwib25ib2FyZGluZyIsImluY2lkZW50QWN0aW9ucyIsImludGVyYWN0aW9ucyIsImNvbW1hbmRzIiwiYXBwbGljYXRpb25JZCIsImNvbW1hbmRJZCIsIndpdGhMb2NhbGl6YXRpb25zIiwicGVybWlzc2lvbnMiLCJwZXJtaXNzaW9uIiwiY29tbWFuZCIsInJlc3BvbnNlcyIsImNhbGxiYWNrIiwiaW50ZXJhY3Rpb25JZCIsIndpdGhSZXNwb25zZSIsIm9yaWdpbmFsIiwib2F1dGgyIiwidG9rZW5FeGNoYW5nZSIsInRva2VuUmV2b2tlIiwiY3VycmVudEF1dGhvcml6YXRpb24iLCJhcHBsaWNhdGlvbiIsImNvbm5lY3Rpb25zIiwicm9sZUNvbm5lY3Rpb25zIiwibW9uZXRpemF0aW9uIiwiZW50aXRsZW1lbnRzIiwiZXhjbHVkZUVuZGVkIiwic2t1SWRzIiwiZW50aXRsZW1lbnQiLCJlbnRpdGxlbWVudElkIiwiY29uc3VtZUVudGl0bGVtZW50Iiwic2t1cyIsInN1YnNjcmlwdGlvbiIsInNrdUlkIiwic3Vic2NyaXB0aW9uSWQiLCJzdWJzY3JpcHRpb25zIiwic291bmRib2FyZCIsInNlbmRTb3VuZCIsImxpc3REZWZhdWx0IiwiZ3VpbGRTb3VuZHMiLCJndWlsZFNvdW5kIiwic291bmRJZCIsImxvYmJ5IiwiY3JlYXRlIiwibG9iYnlJZCIsImxpbmsiLCJhcHBsaWNhdGlvbkVtb2ppIiwiYXBwbGljYXRpb25FbW9qaXMiLCJhcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGEiLCJhcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UiLCJpbnN0YW5jZUlkIiwiY3VycmVudFVzZXIiLCJnYXRld2F5Qm90Iiwic3RpY2tlclBhY2siLCJzdGlja2VyUGFja0lkIiwic3RpY2tlclBhY2tzIl0sIm1hcHBpbmdzIjoiOzs7OytCQUlnQkE7OztlQUFBQTs7O3VCQUhpRjtBQUcxRixTQUFTQTtJQUNkLE9BQU87UUFDTEMsVUFBVTtZQUNSQyxJQUFJLENBQUNDO2dCQUNILE9BQU8sQ0FBQyxVQUFVLEVBQUVBLFdBQVc7WUFDakM7WUFDQUMsU0FBUyxDQUFDRCxXQUFXRSxPQUFPQyxXQUFXQztnQkFDckMsSUFBSUMsTUFBTSxDQUFDLFVBQVUsRUFBRUwsVUFBVSxDQUFDLEVBQUVFLE1BQU0sVUFBVSxFQUFFQyxVQUFVLENBQUMsQ0FBQztnQkFFbEUsSUFBSUMsU0FBUztv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
|