@wppconnect/server 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/config/upload.js +1 -1
  3. package/dist/config.js +8 -2
  4. package/dist/controller/catalogController.js +296 -29
  5. package/dist/controller/deviceController.js +875 -30
  6. package/dist/controller/encryptController.js +14 -2
  7. package/dist/controller/groupController.js +343 -9
  8. package/dist/controller/labelsController.js +68 -1
  9. package/dist/controller/messageController.js +289 -40
  10. package/dist/controller/miscController.js +221 -0
  11. package/dist/controller/orderController.js +27 -3
  12. package/dist/controller/sessionController.js +236 -9
  13. package/dist/controller/statusController.js +53 -5
  14. package/dist/index.js +8 -8
  15. package/dist/mapper/index.js +2 -2
  16. package/dist/middleware/auth.js +16 -15
  17. package/dist/middleware/healthCheck.js +15 -1
  18. package/dist/middleware/statusConnection.js +2 -1
  19. package/dist/routes/index.js +741 -710
  20. package/dist/swagger-backup.json +21463 -0
  21. package/dist/swagger.js +100 -0
  22. package/dist/swagger.json +4957 -20348
  23. package/dist/types/express/index.d.js +2 -0
  24. package/dist/util/chatWootClient.js +49 -45
  25. package/dist/util/createSessionUtil.js +55 -45
  26. package/dist/util/db/mongodb/db.js +7 -7
  27. package/dist/util/functions.js +31 -23
  28. package/dist/util/getAllTokens.js +1 -1
  29. package/dist/util/logger.js +22 -22
  30. package/dist/util/manageSession.js +130 -0
  31. package/dist/util/sessionUtil.js +5 -3
  32. package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +7 -7
  33. package/dist/util/tokenStore/mongodbTokenStory.js +2 -3
  34. package/dist/util/tokenStore/redisTokenStory.js +25 -25
  35. package/docker-compose.yml +7 -7
  36. package/package.json +40 -33
  37. package/wppconnect_tokens/wppconnect.json +0 -0
  38. package/dist/types/Request.js +0 -2
@@ -24,6 +24,7 @@ var _encryptController = require("../controller/encryptController");
24
24
  var GroupController = _interopRequireWildcard(require("../controller/groupController"));
25
25
  var LabelsController = _interopRequireWildcard(require("../controller/labelsController"));
26
26
  var MessageController = _interopRequireWildcard(require("../controller/messageController"));
27
+ var MiscController = _interopRequireWildcard(require("../controller/miscController"));
27
28
  var OrderController = _interopRequireWildcard(require("../controller/orderController"));
28
29
  var SessionController = _interopRequireWildcard(require("../controller/sessionController"));
29
30
  var StatusController = _interopRequireWildcard(require("../controller/statusController"));
@@ -49,753 +50,783 @@ routes.post('/api/:session/:secretkey/generate-token', _encryptController.encryp
49
50
  routes.get('/api/:secretkey/show-all-sessions', SessionController.showAllSessions);routes.post('/api/:secretkey/start-all', SessionController.startAllSessions); // Sessions
50
51
  routes.get('/api/:session/check-connection-session',
51
52
  _auth.default,
52
- SessionController.checkConnectionSession);
53
-
54
- routes.get(
55
- '/api/:session/get-media-by-message/:messageId',
56
- _auth.default,
57
- SessionController.getMediaByMessage);
58
-
59
- routes.get(
60
- '/api/:session/status-session',
61
- _auth.default,
62
- SessionController.getSessionState);
63
-
64
- routes.get(
65
- '/api/:session/qrcode-session',
66
- _auth.default,
67
- SessionController.getQrCode);
68
-
69
- routes.post(
70
- '/api/:session/start-session',
71
- _auth.default,
72
- SessionController.startSession);
73
-
74
- routes.post(
75
- '/api/:session/logout-session',
76
- _auth.default,
77
- _statusConnection.default,
78
- SessionController.logOutSession);
79
-
80
- routes.post(
81
- '/api/:session/close-session',
82
- _auth.default,
83
- SessionController.closeSession);
84
-
85
- routes.post(
86
- '/api/:session/subscribe-presence',
87
- _auth.default,
88
- SessionController.subscribePresence);
89
-
90
- routes.post(
91
- '/api/:session/download-media',
92
- _auth.default,
93
- _statusConnection.default,
94
- SessionController.downloadMediaByMessage);
95
-
53
+ SessionController.checkConnectionSession
54
+ );
55
+ routes.get(
56
+ '/api/:session/get-media-by-message/:messageId',
57
+ _auth.default,
58
+ SessionController.getMediaByMessage
59
+ );
60
+ routes.get(
61
+ '/api/:session/get-platform-from-message/:messageId',
62
+ _auth.default,
63
+ DeviceController.getPlatformFromMessage
64
+ );
65
+ routes.get(
66
+ '/api/:session/status-session',
67
+ _auth.default,
68
+ SessionController.getSessionState
69
+ );
70
+ routes.get(
71
+ '/api/:session/qrcode-session',
72
+ _auth.default,
73
+ SessionController.getQrCode
74
+ );
75
+ routes.post(
76
+ '/api/:session/start-session',
77
+ _auth.default,
78
+ SessionController.startSession
79
+ );
80
+ routes.post(
81
+ '/api/:session/logout-session',
82
+ _auth.default,
83
+ _statusConnection.default,
84
+ SessionController.logOutSession
85
+ );
86
+ routes.post(
87
+ '/api/:session/:secretkey/clear-session-data',
88
+ MiscController.clearSessionData
89
+ );
90
+ routes.post(
91
+ '/api/:session/close-session',
92
+ _auth.default,
93
+ SessionController.closeSession
94
+ );
95
+ routes.post(
96
+ '/api/:session/subscribe-presence',
97
+ _auth.default,
98
+ SessionController.subscribePresence
99
+ );
100
+ routes.post(
101
+ '/api/:session/download-media',
102
+ _auth.default,
103
+ _statusConnection.default,
104
+ SessionController.downloadMediaByMessage
105
+ );
96
106
 
97
107
  // Messages
98
108
  routes.post(
99
- '/api/:session/send-message',
100
- _auth.default,
101
- _statusConnection.default,
102
- MessageController.sendMessage);
103
-
104
- routes.post(
105
- '/api/:session/send-image',
106
- upload.single('file'),
107
- _auth.default,
108
- _statusConnection.default,
109
- MessageController.sendFile);
110
-
111
- routes.post(
112
- '/api/:session/send-sticker',
113
- upload.single('file'),
114
- _auth.default,
115
- _statusConnection.default,
116
- MessageController.sendImageAsSticker);
117
-
118
- routes.post(
119
- '/api/:session/send-sticker-gif',
120
- upload.single('file'),
121
- _auth.default,
122
- _statusConnection.default,
123
- MessageController.sendImageAsStickerGif);
124
-
125
- routes.post(
126
- '/api/:session/send-reply',
127
- _auth.default,
128
- _statusConnection.default,
129
- MessageController.replyMessage);
130
-
131
- routes.post(
132
- '/api/:session/send-file',
133
- upload.single('file'),
134
- _auth.default,
135
- _statusConnection.default,
136
- MessageController.sendFile);
137
-
138
- routes.post(
139
- '/api/:session/send-file-base64',
140
- _auth.default,
141
- _statusConnection.default,
142
- MessageController.sendFile);
143
-
144
- routes.post(
145
- '/api/:session/send-voice',
146
- _auth.default,
147
- _statusConnection.default,
148
- MessageController.sendVoice);
149
-
150
- routes.post(
151
- '/api/:session/send-voice-base64',
152
- _auth.default,
153
- _statusConnection.default,
154
- MessageController.sendVoice64);
155
-
156
- routes.post(
157
- '/api/:session/send-status',
158
- _auth.default,
159
- _statusConnection.default,
160
- MessageController.sendStatusText);
161
-
162
- routes.post(
163
- '/api/:session/send-link-preview',
164
- _auth.default,
165
- _statusConnection.default,
166
- MessageController.sendLinkPreview);
167
-
168
- routes.post(
169
- '/api/:session/send-location',
170
- _auth.default,
171
- _statusConnection.default,
172
- MessageController.sendLocation);
173
-
174
- routes.post(
175
- '/api/:session/send-mentioned',
176
- _auth.default,
177
- _statusConnection.default,
178
- MessageController.sendMentioned);
179
-
180
- routes.post(
181
- '/api/:session/send-buttons',
182
- _auth.default,
183
- _statusConnection.default,
184
- MessageController.sendButtons);
185
-
186
- routes.post(
187
- '/api/:session/send-list-message',
188
- _auth.default,
189
- _statusConnection.default,
190
- MessageController.sendListMessage);
191
-
192
- routes.post(
193
- '/api/:session/send-poll-message',
194
- _auth.default,
195
- _statusConnection.default,
196
- MessageController.sendPollMessage);
197
-
109
+ '/api/:session/send-message',
110
+ _auth.default,
111
+ _statusConnection.default,
112
+ MessageController.sendMessage
113
+ );
114
+ routes.post(
115
+ '/api/:session/send-image',
116
+ upload.single('file'),
117
+ _auth.default,
118
+ _statusConnection.default,
119
+ MessageController.sendFile
120
+ );
121
+ routes.post(
122
+ '/api/:session/send-sticker',
123
+ upload.single('file'),
124
+ _auth.default,
125
+ _statusConnection.default,
126
+ MessageController.sendImageAsSticker
127
+ );
128
+ routes.post(
129
+ '/api/:session/send-sticker-gif',
130
+ upload.single('file'),
131
+ _auth.default,
132
+ _statusConnection.default,
133
+ MessageController.sendImageAsStickerGif
134
+ );
135
+ routes.post(
136
+ '/api/:session/send-reply',
137
+ _auth.default,
138
+ _statusConnection.default,
139
+ MessageController.replyMessage
140
+ );
141
+ routes.post(
142
+ '/api/:session/send-file',
143
+ upload.single('file'),
144
+ _auth.default,
145
+ _statusConnection.default,
146
+ MessageController.sendFile
147
+ );
148
+ routes.post(
149
+ '/api/:session/send-file-base64',
150
+ _auth.default,
151
+ _statusConnection.default,
152
+ MessageController.sendFile
153
+ );
154
+ routes.post(
155
+ '/api/:session/send-voice',
156
+ _auth.default,
157
+ _statusConnection.default,
158
+ MessageController.sendVoice
159
+ );
160
+ routes.post(
161
+ '/api/:session/send-voice-base64',
162
+ _auth.default,
163
+ _statusConnection.default,
164
+ MessageController.sendVoice64
165
+ );
166
+ routes.post(
167
+ '/api/:session/send-status',
168
+ _auth.default,
169
+ _statusConnection.default,
170
+ MessageController.sendStatusText
171
+ );
172
+ routes.post(
173
+ '/api/:session/send-link-preview',
174
+ _auth.default,
175
+ _statusConnection.default,
176
+ MessageController.sendLinkPreview
177
+ );
178
+ routes.post(
179
+ '/api/:session/send-location',
180
+ _auth.default,
181
+ _statusConnection.default,
182
+ MessageController.sendLocation
183
+ );
184
+ routes.post(
185
+ '/api/:session/send-mentioned',
186
+ _auth.default,
187
+ _statusConnection.default,
188
+ MessageController.sendMentioned
189
+ );
190
+ routes.post(
191
+ '/api/:session/send-buttons',
192
+ _auth.default,
193
+ _statusConnection.default,
194
+ MessageController.sendButtons
195
+ );
196
+ routes.post(
197
+ '/api/:session/send-list-message',
198
+ _auth.default,
199
+ _statusConnection.default,
200
+ MessageController.sendListMessage
201
+ );
202
+ routes.post(
203
+ '/api/:session/send-poll-message',
204
+ _auth.default,
205
+ _statusConnection.default,
206
+ MessageController.sendPollMessage
207
+ );
198
208
 
199
209
  // Group
200
210
  routes.get(
201
- '/api/:session/all-broadcast-list',
202
- _auth.default,
203
- _statusConnection.default,
204
- GroupController.getAllBroadcastList);
205
-
206
- routes.get(
207
- '/api/:session/all-groups',
208
- _auth.default,
209
- _statusConnection.default,
210
- GroupController.getAllGroups);
211
-
212
- routes.get(
213
- '/api/:session/group-members/:groupId',
214
- _auth.default,
215
- _statusConnection.default,
216
- GroupController.getGroupMembers);
217
-
218
- routes.get(
219
- '/api/:session/group-admins/:groupId',
220
- _auth.default,
221
- _statusConnection.default,
222
- GroupController.getGroupAdmins);
223
-
224
- routes.get(
225
- '/api/:session/group-invite-link/:groupId',
226
- _auth.default,
227
- _statusConnection.default,
228
- GroupController.getGroupInviteLink);
229
-
230
- routes.get(
231
- '/api/:session/group-revoke-link/:groupId',
232
- _auth.default,
233
- _statusConnection.default,
234
- GroupController.revokeGroupInviteLink);
235
-
236
- routes.get(
237
- '/api/:session/group-members-ids/:groupId',
238
- _auth.default,
239
- _statusConnection.default,
240
- GroupController.getGroupMembersIds);
241
-
242
- routes.post(
243
- '/api/:session/create-group',
244
- _auth.default,
245
- _statusConnection.default,
246
- GroupController.createGroup);
247
-
248
- routes.post(
249
- '/api/:session/leave-group',
250
- _auth.default,
251
- _statusConnection.default,
252
- GroupController.leaveGroup);
253
-
254
- routes.post(
255
- '/api/:session/join-code',
256
- _auth.default,
257
- _statusConnection.default,
258
- GroupController.joinGroupByCode);
259
-
260
- routes.post(
261
- '/api/:session/add-participant-group',
262
- _auth.default,
263
- _statusConnection.default,
264
- GroupController.addParticipant);
265
-
266
- routes.post(
267
- '/api/:session/remove-participant-group',
268
- _auth.default,
269
- _statusConnection.default,
270
- GroupController.removeParticipant);
271
-
272
- routes.post(
273
- '/api/:session/promote-participant-group',
274
- _auth.default,
275
- _statusConnection.default,
276
- GroupController.promoteParticipant);
277
-
278
- routes.post(
279
- '/api/:session/demote-participant-group',
280
- _auth.default,
281
- _statusConnection.default,
282
- GroupController.demoteParticipant);
283
-
284
- routes.post(
285
- '/api/:session/group-info-from-invite-link',
286
- _auth.default,
287
- _statusConnection.default,
288
- GroupController.getGroupInfoFromInviteLink);
289
-
290
- routes.post(
291
- '/api/:session/group-description',
292
- _auth.default,
293
- _statusConnection.default,
294
- GroupController.setGroupDescription);
295
-
296
- routes.post(
297
- '/api/:session/group-property',
298
- _auth.default,
299
- _statusConnection.default,
300
- GroupController.setGroupProperty);
301
-
302
- routes.post(
303
- '/api/:session/group-subject',
304
- _auth.default,
305
- _statusConnection.default,
306
- GroupController.setGroupSubject);
307
-
308
- routes.post(
309
- '/api/:session/messages-admins-only',
310
- _auth.default,
311
- _statusConnection.default,
312
- GroupController.setMessagesAdminsOnly);
313
-
314
- routes.post(
315
- '/api/:session/group-pic',
316
- upload.single('file'),
317
- _auth.default,
318
- _statusConnection.default,
319
- GroupController.setGroupProfilePic);
320
-
321
- routes.post(
322
- '/api/:session/change-privacy-group',
323
- _auth.default,
324
- _statusConnection.default,
325
- GroupController.changePrivacyGroup);
326
-
211
+ '/api/:session/all-broadcast-list',
212
+ _auth.default,
213
+ _statusConnection.default,
214
+ GroupController.getAllBroadcastList
215
+ );
216
+ routes.get(
217
+ '/api/:session/all-groups',
218
+ _auth.default,
219
+ _statusConnection.default,
220
+ GroupController.getAllGroups
221
+ );
222
+ routes.get(
223
+ '/api/:session/group-members/:groupId',
224
+ _auth.default,
225
+ _statusConnection.default,
226
+ GroupController.getGroupMembers
227
+ );
228
+ routes.get(
229
+ '/api/:session/group-admins/:groupId',
230
+ _auth.default,
231
+ _statusConnection.default,
232
+ GroupController.getGroupAdmins
233
+ );
234
+ routes.get(
235
+ '/api/:session/group-invite-link/:groupId',
236
+ _auth.default,
237
+ _statusConnection.default,
238
+ GroupController.getGroupInviteLink
239
+ );
240
+ routes.get(
241
+ '/api/:session/group-revoke-link/:groupId',
242
+ _auth.default,
243
+ _statusConnection.default,
244
+ GroupController.revokeGroupInviteLink
245
+ );
246
+ routes.get(
247
+ '/api/:session/group-members-ids/:groupId',
248
+ _auth.default,
249
+ _statusConnection.default,
250
+ GroupController.getGroupMembersIds
251
+ );
252
+ routes.post(
253
+ '/api/:session/create-group',
254
+ _auth.default,
255
+ _statusConnection.default,
256
+ GroupController.createGroup
257
+ );
258
+ routes.post(
259
+ '/api/:session/leave-group',
260
+ _auth.default,
261
+ _statusConnection.default,
262
+ GroupController.leaveGroup
263
+ );
264
+ routes.post(
265
+ '/api/:session/join-code',
266
+ _auth.default,
267
+ _statusConnection.default,
268
+ GroupController.joinGroupByCode
269
+ );
270
+ routes.post(
271
+ '/api/:session/add-participant-group',
272
+ _auth.default,
273
+ _statusConnection.default,
274
+ GroupController.addParticipant
275
+ );
276
+ routes.post(
277
+ '/api/:session/remove-participant-group',
278
+ _auth.default,
279
+ _statusConnection.default,
280
+ GroupController.removeParticipant
281
+ );
282
+ routes.post(
283
+ '/api/:session/promote-participant-group',
284
+ _auth.default,
285
+ _statusConnection.default,
286
+ GroupController.promoteParticipant
287
+ );
288
+ routes.post(
289
+ '/api/:session/demote-participant-group',
290
+ _auth.default,
291
+ _statusConnection.default,
292
+ GroupController.demoteParticipant
293
+ );
294
+ routes.post(
295
+ '/api/:session/group-info-from-invite-link',
296
+ _auth.default,
297
+ _statusConnection.default,
298
+ GroupController.getGroupInfoFromInviteLink
299
+ );
300
+ routes.post(
301
+ '/api/:session/group-description',
302
+ _auth.default,
303
+ _statusConnection.default,
304
+ GroupController.setGroupDescription
305
+ );
306
+ routes.post(
307
+ '/api/:session/group-property',
308
+ _auth.default,
309
+ _statusConnection.default,
310
+ GroupController.setGroupProperty
311
+ );
312
+ routes.post(
313
+ '/api/:session/group-subject',
314
+ _auth.default,
315
+ _statusConnection.default,
316
+ GroupController.setGroupSubject
317
+ );
318
+ routes.post(
319
+ '/api/:session/messages-admins-only',
320
+ _auth.default,
321
+ _statusConnection.default,
322
+ GroupController.setMessagesAdminsOnly
323
+ );
324
+ routes.post(
325
+ '/api/:session/group-pic',
326
+ upload.single('file'),
327
+ _auth.default,
328
+ _statusConnection.default,
329
+ GroupController.setGroupProfilePic
330
+ );
331
+ routes.post(
332
+ '/api/:session/change-privacy-group',
333
+ _auth.default,
334
+ _statusConnection.default,
335
+ GroupController.changePrivacyGroup
336
+ );
327
337
 
328
338
  // Chat
329
339
  routes.get(
330
- '/api/:session/all-chats',
331
- _auth.default,
332
- _statusConnection.default,
333
- DeviceController.getAllChats);
334
-
335
- routes.get(
336
- '/api/:session/all-chats-with-messages',
337
- _auth.default,
338
- _statusConnection.default,
339
- DeviceController.getAllChatsWithMessages);
340
-
341
- routes.get(
342
- '/api/:session/all-messages-in-chat/:phone',
343
- _auth.default,
344
- _statusConnection.default,
345
- DeviceController.getAllMessagesInChat);
346
-
347
- routes.get(
348
- '/api/:session/all-new-messages',
349
- _auth.default,
350
- _statusConnection.default,
351
- DeviceController.getAllNewMessages);
352
-
353
- routes.get(
354
- '/api/:session/unread-messages',
355
- _auth.default,
356
- _statusConnection.default,
357
- DeviceController.getUnreadMessages);
358
-
359
- routes.get(
360
- '/api/:session/all-unread-messages',
361
- _auth.default,
362
- _statusConnection.default,
363
- DeviceController.getAllUnreadMessages);
364
-
365
- routes.get(
366
- '/api/:session/chat-by-id/:phone',
367
- _auth.default,
368
- _statusConnection.default,
369
- DeviceController.getChatById);
370
-
371
- routes.get(
372
- '/api/:session/message-by-id/:messageId',
373
- _auth.default,
374
- _statusConnection.default,
375
- DeviceController.getMessageById);
376
-
377
- routes.get(
378
- '/api/:session/chat-is-online/:phone',
379
- _auth.default,
380
- _statusConnection.default,
381
- DeviceController.getChatIsOnline);
382
-
383
- routes.get(
384
- '/api/:session/last-seen/:phone',
385
- _auth.default,
386
- _statusConnection.default,
387
- DeviceController.getLastSeen);
388
-
389
- routes.get(
390
- '/api/:session/list-mutes/:type',
391
- _auth.default,
392
- _statusConnection.default,
393
- DeviceController.getListMutes);
394
-
395
- routes.get(
396
- '/api/:session/load-messages-in-chat/:phone',
397
- _auth.default,
398
- _statusConnection.default,
399
- DeviceController.loadAndGetAllMessagesInChat);
400
-
401
- routes.get(
402
- '/api/:session/get-messages/:phone',
403
- _auth.default,
404
- _statusConnection.default,
405
- DeviceController.getMessages);
406
-
407
-
408
- routes.post(
409
- '/api/:session/archive-chat',
410
- _auth.default,
411
- _statusConnection.default,
412
- DeviceController.archiveChat);
413
-
414
- routes.post(
415
- '/api/:session/archive-all-chats',
416
- _auth.default,
417
- _statusConnection.default,
418
- DeviceController.archiveAllChats);
419
-
420
- routes.post(
421
- '/api/:session/clear-chat',
422
- _auth.default,
423
- _statusConnection.default,
424
- DeviceController.clearChat);
425
-
426
- routes.post(
427
- '/api/:session/clear-all-chats',
428
- _auth.default,
429
- _statusConnection.default,
430
- DeviceController.clearAllChats);
431
-
432
- routes.post(
433
- '/api/:session/delete-chat',
434
- _auth.default,
435
- _statusConnection.default,
436
- DeviceController.deleteChat);
437
-
438
- routes.post(
439
- '/api/:session/delete-all-chats',
440
- _auth.default,
441
- _statusConnection.default,
442
- DeviceController.deleteAllChats);
443
-
444
- routes.post(
445
- '/api/:session/delete-message',
446
- _auth.default,
447
- _statusConnection.default,
448
- DeviceController.deleteMessage);
449
-
450
- routes.post(
451
- '/api/:session/react-message',
452
- _auth.default,
453
- _statusConnection.default,
454
- DeviceController.reactMessage);
455
-
456
- routes.post(
457
- '/api/:session/forward-messages',
458
- _auth.default,
459
- _statusConnection.default,
460
- DeviceController.forwardMessages);
461
-
462
- routes.post(
463
- '/api/:session/mark-unseen',
464
- _auth.default,
465
- _statusConnection.default,
466
- DeviceController.markUnseenMessage);
467
-
468
- routes.post(
469
- '/api/:session/pin-chat',
470
- _auth.default,
471
- _statusConnection.default,
472
- DeviceController.pinChat);
473
-
474
- routes.post(
475
- '/api/:session/contact-vcard',
476
- _auth.default,
477
- _statusConnection.default,
478
- DeviceController.sendContactVcard);
479
-
480
- routes.post(
481
- '/api/:session/send-mute',
482
- _auth.default,
483
- _statusConnection.default,
484
- DeviceController.sendMute);
485
-
486
- routes.post(
487
- '/api/:session/send-seen',
488
- _auth.default,
489
- _statusConnection.default,
490
- DeviceController.sendSeen);
491
-
492
- routes.post(
493
- '/api/:session/chat-state',
494
- _auth.default,
495
- _statusConnection.default,
496
- DeviceController.setChatState);
497
-
498
- routes.post(
499
- '/api/:session/temporary-messages',
500
- _auth.default,
501
- _statusConnection.default,
502
- DeviceController.setTemporaryMessages);
503
-
504
- routes.post(
505
- '/api/:session/typing',
506
- _auth.default,
507
- _statusConnection.default,
508
- DeviceController.setTyping);
509
-
510
- routes.post(
511
- '/api/:session/recording',
512
- _auth.default,
513
- _statusConnection.default,
514
- DeviceController.setRecording);
515
-
516
- routes.post(
517
- '/api/:session/star-message',
518
- _auth.default,
519
- _statusConnection.default,
520
- DeviceController.starMessage);
521
-
522
- routes.get(
523
- '/api/:session/reactions/:id',
524
- _auth.default,
525
- _statusConnection.default,
526
- DeviceController.getReactions);
527
-
528
- routes.get(
529
- '/api/:session/votes/:id',
530
- _auth.default,
531
- _statusConnection.default,
532
- DeviceController.getVotes);
533
-
534
- routes.post(
535
- '/api/:session/reject-call',
536
- _auth.default,
537
- _statusConnection.default,
538
- DeviceController.rejectCall);
539
-
340
+ '/api/:session/all-chats',
341
+ _auth.default,
342
+ _statusConnection.default,
343
+ DeviceController.getAllChats
344
+ );
345
+
346
+ routes.get(
347
+ '/api/:session/all-chats-archived',
348
+ _auth.default,
349
+ _statusConnection.default,
350
+ DeviceController.getAllChatsArchiveds
351
+ );
352
+ routes.get(
353
+ '/api/:session/all-chats-with-messages',
354
+ _auth.default,
355
+ _statusConnection.default,
356
+ DeviceController.getAllChatsWithMessages
357
+ );
358
+ routes.get(
359
+ '/api/:session/all-messages-in-chat/:phone',
360
+ _auth.default,
361
+ _statusConnection.default,
362
+ DeviceController.getAllMessagesInChat
363
+ );
364
+ routes.get(
365
+ '/api/:session/all-new-messages',
366
+ _auth.default,
367
+ _statusConnection.default,
368
+ DeviceController.getAllNewMessages
369
+ );
370
+ routes.get(
371
+ '/api/:session/unread-messages',
372
+ _auth.default,
373
+ _statusConnection.default,
374
+ DeviceController.getUnreadMessages
375
+ );
376
+ routes.get(
377
+ '/api/:session/all-unread-messages',
378
+ _auth.default,
379
+ _statusConnection.default,
380
+ DeviceController.getAllUnreadMessages
381
+ );
382
+ routes.get(
383
+ '/api/:session/chat-by-id/:phone',
384
+ _auth.default,
385
+ _statusConnection.default,
386
+ DeviceController.getChatById
387
+ );
388
+ routes.get(
389
+ '/api/:session/message-by-id/:messageId',
390
+ _auth.default,
391
+ _statusConnection.default,
392
+ DeviceController.getMessageById
393
+ );
394
+ routes.get(
395
+ '/api/:session/chat-is-online/:phone',
396
+ _auth.default,
397
+ _statusConnection.default,
398
+ DeviceController.getChatIsOnline
399
+ );
400
+ routes.get(
401
+ '/api/:session/last-seen/:phone',
402
+ _auth.default,
403
+ _statusConnection.default,
404
+ DeviceController.getLastSeen
405
+ );
406
+ routes.get(
407
+ '/api/:session/list-mutes/:type',
408
+ _auth.default,
409
+ _statusConnection.default,
410
+ DeviceController.getListMutes
411
+ );
412
+ routes.get(
413
+ '/api/:session/load-messages-in-chat/:phone',
414
+ _auth.default,
415
+ _statusConnection.default,
416
+ DeviceController.loadAndGetAllMessagesInChat
417
+ );
418
+ routes.get(
419
+ '/api/:session/get-messages/:phone',
420
+ _auth.default,
421
+ _statusConnection.default,
422
+ DeviceController.getMessages
423
+ );
424
+
425
+ routes.post(
426
+ '/api/:session/archive-chat',
427
+ _auth.default,
428
+ _statusConnection.default,
429
+ DeviceController.archiveChat
430
+ );
431
+ routes.post(
432
+ '/api/:session/archive-all-chats',
433
+ _auth.default,
434
+ _statusConnection.default,
435
+ DeviceController.archiveAllChats
436
+ );
437
+ routes.post(
438
+ '/api/:session/clear-chat',
439
+ _auth.default,
440
+ _statusConnection.default,
441
+ DeviceController.clearChat
442
+ );
443
+ routes.post(
444
+ '/api/:session/clear-all-chats',
445
+ _auth.default,
446
+ _statusConnection.default,
447
+ DeviceController.clearAllChats
448
+ );
449
+ routes.post(
450
+ '/api/:session/delete-chat',
451
+ _auth.default,
452
+ _statusConnection.default,
453
+ DeviceController.deleteChat
454
+ );
455
+ routes.post(
456
+ '/api/:session/delete-all-chats',
457
+ _auth.default,
458
+ _statusConnection.default,
459
+ DeviceController.deleteAllChats
460
+ );
461
+ routes.post(
462
+ '/api/:session/delete-message',
463
+ _auth.default,
464
+ _statusConnection.default,
465
+ DeviceController.deleteMessage
466
+ );
467
+ routes.post(
468
+ '/api/:session/react-message',
469
+ _auth.default,
470
+ _statusConnection.default,
471
+ DeviceController.reactMessage
472
+ );
473
+ routes.post(
474
+ '/api/:session/forward-messages',
475
+ _auth.default,
476
+ _statusConnection.default,
477
+ DeviceController.forwardMessages
478
+ );
479
+ routes.post(
480
+ '/api/:session/mark-unseen',
481
+ _auth.default,
482
+ _statusConnection.default,
483
+ DeviceController.markUnseenMessage
484
+ );
485
+ routes.post(
486
+ '/api/:session/pin-chat',
487
+ _auth.default,
488
+ _statusConnection.default,
489
+ DeviceController.pinChat
490
+ );
491
+ routes.post(
492
+ '/api/:session/contact-vcard',
493
+ _auth.default,
494
+ _statusConnection.default,
495
+ DeviceController.sendContactVcard
496
+ );
497
+ routes.post(
498
+ '/api/:session/send-mute',
499
+ _auth.default,
500
+ _statusConnection.default,
501
+ DeviceController.sendMute
502
+ );
503
+ routes.post(
504
+ '/api/:session/send-seen',
505
+ _auth.default,
506
+ _statusConnection.default,
507
+ DeviceController.sendSeen
508
+ );
509
+ routes.post(
510
+ '/api/:session/chat-state',
511
+ _auth.default,
512
+ _statusConnection.default,
513
+ DeviceController.setChatState
514
+ );
515
+ routes.post(
516
+ '/api/:session/temporary-messages',
517
+ _auth.default,
518
+ _statusConnection.default,
519
+ DeviceController.setTemporaryMessages
520
+ );
521
+ routes.post(
522
+ '/api/:session/typing',
523
+ _auth.default,
524
+ _statusConnection.default,
525
+ DeviceController.setTyping
526
+ );
527
+ routes.post(
528
+ '/api/:session/recording',
529
+ _auth.default,
530
+ _statusConnection.default,
531
+ DeviceController.setRecording
532
+ );
533
+ routes.post(
534
+ '/api/:session/star-message',
535
+ _auth.default,
536
+ _statusConnection.default,
537
+ DeviceController.starMessage
538
+ );
539
+ routes.get(
540
+ '/api/:session/reactions/:id',
541
+ _auth.default,
542
+ _statusConnection.default,
543
+ DeviceController.getReactions
544
+ );
545
+ routes.get(
546
+ '/api/:session/votes/:id',
547
+ _auth.default,
548
+ _statusConnection.default,
549
+ DeviceController.getVotes
550
+ );
551
+ routes.post(
552
+ '/api/:session/reject-call',
553
+ _auth.default,
554
+ _statusConnection.default,
555
+ DeviceController.rejectCall
556
+ );
540
557
 
541
558
  // Catalog
542
559
  routes.get(
543
- '/api/:session/get-products',
544
- _auth.default,
545
- _statusConnection.default,
546
- CatalogController.getProducts);
547
-
548
- routes.get(
549
- '/api/:session/get-product-by-id',
550
- _auth.default,
551
- _statusConnection.default,
552
- CatalogController.getProductById);
553
-
554
- routes.post(
555
- '/api/:session/add-product',
556
- _auth.default,
557
- _statusConnection.default,
558
- CatalogController.addProduct);
559
-
560
- routes.post(
561
- '/api/:session/edit-product',
562
- _auth.default,
563
- _statusConnection.default,
564
- CatalogController.editProduct);
565
-
566
- routes.post(
567
- '/api/:session/del-products',
568
- _auth.default,
569
- _statusConnection.default,
570
- CatalogController.delProducts);
571
-
572
- routes.post(
573
- '/api/:session/change-product-image',
574
- _auth.default,
575
- _statusConnection.default,
576
- CatalogController.changeProductImage);
577
-
578
- routes.post(
579
- '/api/:session/add-product-image',
580
- _auth.default,
581
- _statusConnection.default,
582
- CatalogController.addProductImage);
583
-
584
- routes.post(
585
- '/api/:session/remove-product-image',
586
- _auth.default,
587
- _statusConnection.default,
588
- CatalogController.removeProductImage);
589
-
590
- routes.get(
591
- '/api/:session/get-collections',
592
- _auth.default,
593
- _statusConnection.default,
594
- CatalogController.getCollections);
595
-
596
- routes.post(
597
- '/api/:session/create-collection',
598
- _auth.default,
599
- _statusConnection.default,
600
- CatalogController.createCollection);
601
-
602
- routes.post(
603
- '/api/:session/edit-collection',
604
- _auth.default,
605
- _statusConnection.default,
606
- CatalogController.editCollection);
607
-
608
- routes.post(
609
- '/api/:session/del-collection',
610
- _auth.default,
611
- _statusConnection.default,
612
- CatalogController.deleteCollection);
613
-
614
- routes.post(
615
- '/api/:session/send-link-catalog',
616
- _auth.default,
617
- _statusConnection.default,
618
- CatalogController.sendLinkCatalog);
619
-
620
- routes.post(
621
- '/api/:session/set-product-visibility',
622
- _auth.default,
623
- _statusConnection.default,
624
- CatalogController.setProductVisibility);
625
-
626
- routes.post(
627
- '/api/:session/set-cart-enabled',
628
- _auth.default,
629
- _statusConnection.default,
630
- CatalogController.updateCartEnabled);
631
-
560
+ '/api/:session/get-products',
561
+ _auth.default,
562
+ _statusConnection.default,
563
+ CatalogController.getProducts
564
+ );
565
+ routes.get(
566
+ '/api/:session/get-product-by-id',
567
+ _auth.default,
568
+ _statusConnection.default,
569
+ CatalogController.getProductById
570
+ );
571
+ routes.post(
572
+ '/api/:session/add-product',
573
+ _auth.default,
574
+ _statusConnection.default,
575
+ CatalogController.addProduct
576
+ );
577
+ routes.post(
578
+ '/api/:session/edit-product',
579
+ _auth.default,
580
+ _statusConnection.default,
581
+ CatalogController.editProduct
582
+ );
583
+ routes.post(
584
+ '/api/:session/del-products',
585
+ _auth.default,
586
+ _statusConnection.default,
587
+ CatalogController.delProducts
588
+ );
589
+ routes.post(
590
+ '/api/:session/change-product-image',
591
+ _auth.default,
592
+ _statusConnection.default,
593
+ CatalogController.changeProductImage
594
+ );
595
+ routes.post(
596
+ '/api/:session/add-product-image',
597
+ _auth.default,
598
+ _statusConnection.default,
599
+ CatalogController.addProductImage
600
+ );
601
+ routes.post(
602
+ '/api/:session/remove-product-image',
603
+ _auth.default,
604
+ _statusConnection.default,
605
+ CatalogController.removeProductImage
606
+ );
607
+ routes.get(
608
+ '/api/:session/get-collections',
609
+ _auth.default,
610
+ _statusConnection.default,
611
+ CatalogController.getCollections
612
+ );
613
+ routes.post(
614
+ '/api/:session/create-collection',
615
+ _auth.default,
616
+ _statusConnection.default,
617
+ CatalogController.createCollection
618
+ );
619
+ routes.post(
620
+ '/api/:session/edit-collection',
621
+ _auth.default,
622
+ _statusConnection.default,
623
+ CatalogController.editCollection
624
+ );
625
+ routes.post(
626
+ '/api/:session/del-collection',
627
+ _auth.default,
628
+ _statusConnection.default,
629
+ CatalogController.deleteCollection
630
+ );
631
+ routes.post(
632
+ '/api/:session/send-link-catalog',
633
+ _auth.default,
634
+ _statusConnection.default,
635
+ CatalogController.sendLinkCatalog
636
+ );
637
+ routes.post(
638
+ '/api/:session/set-product-visibility',
639
+ _auth.default,
640
+ _statusConnection.default,
641
+ CatalogController.setProductVisibility
642
+ );
643
+ routes.post(
644
+ '/api/:session/set-cart-enabled',
645
+ _auth.default,
646
+ _statusConnection.default,
647
+ CatalogController.updateCartEnabled
648
+ );
632
649
 
633
650
  // Status
634
651
  routes.post(
635
- '/api/:session/send-text-storie',
636
- _auth.default,
637
- _statusConnection.default,
638
- StatusController.sendTextStorie);
639
-
640
- routes.post(
641
- '/api/:session/send-image-storie',
642
- upload.single('file'),
643
- _auth.default,
644
- _statusConnection.default,
645
- StatusController.sendImageStorie);
646
-
647
- routes.post(
648
- '/api/:session/send-video-storie',
649
- upload.single('file'),
650
- _auth.default,
651
- _statusConnection.default,
652
- StatusController.sendVideoStorie);
653
-
652
+ '/api/:session/send-text-storie',
653
+ _auth.default,
654
+ _statusConnection.default,
655
+ StatusController.sendTextStorie
656
+ );
657
+ routes.post(
658
+ '/api/:session/send-image-storie',
659
+ upload.single('file'),
660
+ _auth.default,
661
+ _statusConnection.default,
662
+ StatusController.sendImageStorie
663
+ );
664
+ routes.post(
665
+ '/api/:session/send-video-storie',
666
+ upload.single('file'),
667
+ _auth.default,
668
+ _statusConnection.default,
669
+ StatusController.sendVideoStorie
670
+ );
654
671
 
655
672
  // Labels
656
673
  routes.post(
657
- '/api/:session/add-new-label',
658
- _auth.default,
659
- _statusConnection.default,
660
- LabelsController.addNewLabel);
661
-
662
- routes.post(
663
- '/api/:session/add-or-remove-label',
664
- _auth.default,
665
- _statusConnection.default,
666
- LabelsController.addOrRemoveLabels);
667
-
668
- routes.get(
669
- '/api/:session/get-all-labels',
670
- _auth.default,
671
- _statusConnection.default,
672
- LabelsController.getAllLabels);
673
-
674
+ '/api/:session/add-new-label',
675
+ _auth.default,
676
+ _statusConnection.default,
677
+ LabelsController.addNewLabel
678
+ );
679
+ routes.post(
680
+ '/api/:session/add-or-remove-label',
681
+ _auth.default,
682
+ _statusConnection.default,
683
+ LabelsController.addOrRemoveLabels
684
+ );
685
+ routes.get(
686
+ '/api/:session/get-all-labels',
687
+ _auth.default,
688
+ _statusConnection.default,
689
+ LabelsController.getAllLabels
690
+ );
674
691
  routes.put(
675
- '/api/:session/delete-all-labels',
676
- _auth.default,
677
- _statusConnection.default,
678
- LabelsController.deleteAllLabels);
679
-
692
+ '/api/:session/delete-all-labels',
693
+ _auth.default,
694
+ _statusConnection.default,
695
+ LabelsController.deleteAllLabels
696
+ );
680
697
  routes.put(
681
- '/api/:session/delete-label/:id',
682
- _auth.default,
683
- _statusConnection.default,
684
- LabelsController.deleteLabel);
685
-
698
+ '/api/:session/delete-label/:id',
699
+ _auth.default,
700
+ _statusConnection.default,
701
+ LabelsController.deleteLabel
702
+ );
686
703
 
687
704
  // Contact
688
705
  routes.get(
689
- '/api/:session/check-number-status/:phone',
690
- _auth.default,
691
- _statusConnection.default,
692
- DeviceController.checkNumberStatus);
693
-
694
- routes.get(
695
- '/api/:session/all-contacts',
696
- _auth.default,
697
- _statusConnection.default,
698
- DeviceController.getAllContacts);
699
-
700
- routes.get(
701
- '/api/:session/contact/:phone',
702
- _auth.default,
703
- _statusConnection.default,
704
- DeviceController.getContact);
705
-
706
- routes.get(
707
- '/api/:session/profile/:phone',
708
- _auth.default,
709
- _statusConnection.default,
710
- DeviceController.getNumberProfile);
711
-
712
- routes.get(
713
- '/api/:session/profile-pic/:phone',
714
- _auth.default,
715
- _statusConnection.default,
716
- DeviceController.getProfilePicFromServer);
717
-
718
- routes.get(
719
- '/api/:session/profile-status/:phone',
720
- _auth.default,
721
- _statusConnection.default,
722
- DeviceController.getStatus);
723
-
706
+ '/api/:session/check-number-status/:phone',
707
+ _auth.default,
708
+ _statusConnection.default,
709
+ DeviceController.checkNumberStatus
710
+ );
711
+ routes.get(
712
+ '/api/:session/all-contacts',
713
+ _auth.default,
714
+ _statusConnection.default,
715
+ DeviceController.getAllContacts
716
+ );
717
+ routes.get(
718
+ '/api/:session/contact/:phone',
719
+ _auth.default,
720
+ _statusConnection.default,
721
+ DeviceController.getContact
722
+ );
723
+ routes.get(
724
+ '/api/:session/profile/:phone',
725
+ _auth.default,
726
+ _statusConnection.default,
727
+ DeviceController.getNumberProfile
728
+ );
729
+ routes.get(
730
+ '/api/:session/profile-pic/:phone',
731
+ _auth.default,
732
+ _statusConnection.default,
733
+ DeviceController.getProfilePicFromServer
734
+ );
735
+ routes.get(
736
+ '/api/:session/profile-status/:phone',
737
+ _auth.default,
738
+ _statusConnection.default,
739
+ DeviceController.getStatus
740
+ );
724
741
 
725
742
  // Blocklist
726
743
  routes.get(
727
- '/api/:session/blocklist',
728
- _auth.default,
729
- _statusConnection.default,
730
- DeviceController.getBlockList);
731
-
744
+ '/api/:session/blocklist',
745
+ _auth.default,
746
+ _statusConnection.default,
747
+ DeviceController.getBlockList
748
+ );
732
749
  routes.post(
733
- '/api/:session/block-contact',
734
- _auth.default,
735
- _statusConnection.default,
736
- DeviceController.blockContact);
737
-
750
+ '/api/:session/block-contact',
751
+ _auth.default,
752
+ _statusConnection.default,
753
+ DeviceController.blockContact
754
+ );
738
755
  routes.post(
739
- '/api/:session/unblock-contact',
740
- _auth.default,
741
- _statusConnection.default,
742
- DeviceController.unblockContact);
743
-
756
+ '/api/:session/unblock-contact',
757
+ _auth.default,
758
+ _statusConnection.default,
759
+ DeviceController.unblockContact
760
+ );
744
761
 
745
762
  // Device
746
763
  routes.get(
747
- '/api/:session/get-battery-level',
748
- _auth.default,
749
- _statusConnection.default,
750
- DeviceController.getBatteryLevel);
751
-
764
+ '/api/:session/get-battery-level',
765
+ _auth.default,
766
+ _statusConnection.default,
767
+ DeviceController.getBatteryLevel
768
+ );
752
769
  routes.get(
753
- '/api/:session/host-device',
754
- _auth.default,
755
- _statusConnection.default,
756
- DeviceController.getHostDevice);
757
-
770
+ '/api/:session/host-device',
771
+ _auth.default,
772
+ _statusConnection.default,
773
+ DeviceController.getHostDevice
774
+ );
758
775
  routes.get(
759
- '/api/:session/get-phone-number',
760
- _auth.default,
761
- _statusConnection.default,
762
- DeviceController.getPhoneNumber);
763
-
776
+ '/api/:session/get-phone-number',
777
+ _auth.default,
778
+ _statusConnection.default,
779
+ DeviceController.getPhoneNumber
780
+ );
764
781
 
765
782
  // Profile
766
783
  routes.post(
767
- '/api/:session/set-profile-pic',
768
- upload.single('file'),
769
- _auth.default,
770
- _statusConnection.default,
771
- DeviceController.setProfilePic);
772
-
773
- routes.post(
774
- '/api/:session/profile-status',
775
- _auth.default,
776
- _statusConnection.default,
777
- DeviceController.setProfileStatus);
778
-
779
- routes.post(
780
- '/api/:session/change-username',
781
- _auth.default,
782
- _statusConnection.default,
783
- DeviceController.setProfileName);
784
-
784
+ '/api/:session/set-profile-pic',
785
+ upload.single('file'),
786
+ _auth.default,
787
+ _statusConnection.default,
788
+ DeviceController.setProfilePic
789
+ );
790
+ routes.post(
791
+ '/api/:session/profile-status',
792
+ _auth.default,
793
+ _statusConnection.default,
794
+ DeviceController.setProfileStatus
795
+ );
796
+ routes.post(
797
+ '/api/:session/change-username',
798
+ _auth.default,
799
+ _statusConnection.default,
800
+ DeviceController.setProfileName
801
+ );
785
802
 
786
803
  // Business
787
- routes.get(
788
- '/api/:session/get-business-profiles-products',
789
- _auth.default,
790
- _statusConnection.default,
791
- OrderController.getBusinessProfilesProducts);
792
-
793
- routes.get(
794
- '/api/:session/get-order-by-messageId',
795
- _auth.default,
796
- _statusConnection.default,
797
- OrderController.getOrderbyMsg);
798
-
804
+ routes.post(
805
+ '/api/:session/edit-business-profile',
806
+ _auth.default,
807
+ _statusConnection.default,
808
+ SessionController.editBusinessProfile
809
+ );
810
+ routes.get(
811
+ '/api/:session/get-business-profiles-products',
812
+ _auth.default,
813
+ _statusConnection.default,
814
+ OrderController.getBusinessProfilesProducts
815
+ );
816
+ routes.get(
817
+ '/api/:session/get-order-by-messageId',
818
+ _auth.default,
819
+ _statusConnection.default,
820
+ OrderController.getOrderbyMsg
821
+ );
822
+ routes.get('/api/:secretkey/backup-sessions', MiscController.backupAllSessions);
823
+ routes.post(
824
+ '/api/:secretkey/restore-sessions',
825
+ upload.single('file'),
826
+ MiscController.restoreAllSessions
827
+ );
828
+ routes.get('/api/:session/take-screenshot', MiscController.takeScreenshot);
829
+ routes.post('/api/:session/set-limit', MiscController.setLimit);
799
830
 
800
831
  routes.post('/api/:session/chatwoot', DeviceController.chatWoot);
801
832
 
@@ -808,4 +839,4 @@ routes.get('/healthz', HealthCheck.healthz);
808
839
  routes.get('/unhealthy', HealthCheck.unhealthy);var _default =
809
840
 
810
841
  routes;exports.default = _default;
811
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsInJlcXVpcmUiLCJfbXVsdGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zd2FnZ2VyVWlFeHByZXNzIiwiX3VwbG9hZCIsIkNhdGFsb2dDb250cm9sbGVyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJEZXZpY2VDb250cm9sbGVyIiwiX2VuY3J5cHRDb250cm9sbGVyIiwiR3JvdXBDb250cm9sbGVyIiwiTGFiZWxzQ29udHJvbGxlciIsIk1lc3NhZ2VDb250cm9sbGVyIiwiT3JkZXJDb250cm9sbGVyIiwiU2Vzc2lvbkNvbnRyb2xsZXIiLCJTdGF0dXNDb250cm9sbGVyIiwiX2F1dGgiLCJIZWFsdGhDaGVjayIsIl9zdGF0dXNDb25uZWN0aW9uIiwiX3N3YWdnZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidXBsb2FkIiwibXVsdGVyIiwidXBsb2FkQ29uZmlnIiwicm91dGVzIiwiUm91dGVyIiwicG9zdCIsImVuY3J5cHRTZXNzaW9uIiwic2hvd0FsbFNlc3Npb25zIiwic3RhcnRBbGxTZXNzaW9ucyIsInZlcmlmeVRva2VuIiwiY2hlY2tDb25uZWN0aW9uU2Vzc2lvbiIsImdldE1lZGlhQnlNZXNzYWdlIiwiZ2V0U2Vzc2lvblN0YXRlIiwiZ2V0UXJDb2RlIiwic3RhcnRTZXNzaW9uIiwic3RhdHVzQ29ubmVjdGlvbiIsImxvZ091dFNlc3Npb24iLCJjbG9zZVNlc3Npb24iLCJzdWJzY3JpYmVQcmVzZW5jZSIsImRvd25sb2FkTWVkaWFCeU1lc3NhZ2UiLCJzZW5kTWVzc2FnZSIsInNpbmdsZSIsInNlbmRGaWxlIiwic2VuZEltYWdlQXNTdGlja2VyIiwic2VuZEltYWdlQXNTdGlja2VyR2lmIiwicmVwbHlNZXNzYWdlIiwic2VuZFZvaWNlIiwic2VuZFZvaWNlNjQiLCJzZW5kU3RhdHVzVGV4dCIsInNlbmRMaW5rUHJldmlldyIsInNlbmRMb2NhdGlvbiIsInNlbmRNZW50aW9uZWQiLCJzZW5kQnV0dG9ucyIsInNlbmRMaXN0TWVzc2FnZSIsInNlbmRQb2xsTWVzc2FnZSIsImdldEFsbEJyb2FkY2FzdExpc3QiLCJnZXRBbGxHcm91cHMiLCJnZXRHcm91cE1lbWJlcnMiLCJnZXRHcm91cEFkbWlucyIsImdldEdyb3VwSW52aXRlTGluayIsInJldm9rZUdyb3VwSW52aXRlTGluayIsImdldEdyb3VwTWVtYmVyc0lkcyIsImNyZWF0ZUdyb3VwIiwibGVhdmVHcm91cCIsImpvaW5Hcm91cEJ5Q29kZSIsImFkZFBhcnRpY2lwYW50IiwicmVtb3ZlUGFydGljaXBhbnQiLCJwcm9tb3RlUGFydGljaXBhbnQiLCJkZW1vdGVQYXJ0aWNpcGFudCIsImdldEdyb3VwSW5mb0Zyb21JbnZpdGVMaW5rIiwic2V0R3JvdXBEZXNjcmlwdGlvbiIsInNldEdyb3VwUHJvcGVydHkiLCJzZXRHcm91cFN1YmplY3QiLCJzZXRNZXNzYWdlc0FkbWluc09ubHkiLCJzZXRHcm91cFByb2ZpbGVQaWMiLCJjaGFuZ2VQcml2YWN5R3JvdXAiLCJnZXRBbGxDaGF0cyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwiZ2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRBbGxOZXdNZXNzYWdlcyIsImdldFVucmVhZE1lc3NhZ2VzIiwiZ2V0QWxsVW5yZWFkTWVzc2FnZXMiLCJnZXRDaGF0QnlJZCIsImdldE1lc3NhZ2VCeUlkIiwiZ2V0Q2hhdElzT25saW5lIiwiZ2V0TGFzdFNlZW4iLCJnZXRMaXN0TXV0ZXMiLCJsb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRNZXNzYWdlcyIsImFyY2hpdmVDaGF0IiwiYXJjaGl2ZUFsbENoYXRzIiwiY2xlYXJDaGF0IiwiY2xlYXJBbGxDaGF0cyIsImRlbGV0ZUNoYXQiLCJkZWxldGVBbGxDaGF0cyIsImRlbGV0ZU1lc3NhZ2UiLCJyZWFjdE1lc3NhZ2UiLCJmb3J3YXJkTWVzc2FnZXMiLCJtYXJrVW5zZWVuTWVzc2FnZSIsInBpbkNoYXQiLCJzZW5kQ29udGFjdFZjYXJkIiwic2VuZE11dGUiLCJzZW5kU2VlbiIsInNldENoYXRTdGF0ZSIsInNldFRlbXBvcmFyeU1lc3NhZ2VzIiwic2V0VHlwaW5nIiwic2V0UmVjb3JkaW5nIiwic3Rhck1lc3NhZ2UiLCJnZXRSZWFjdGlvbnMiLCJnZXRWb3RlcyIsInJlamVjdENhbGwiLCJnZXRQcm9kdWN0cyIsImdldFByb2R1Y3RCeUlkIiwiYWRkUHJvZHVjdCIsImVkaXRQcm9kdWN0IiwiZGVsUHJvZHVjdHMiLCJjaGFuZ2VQcm9kdWN0SW1hZ2UiLCJhZGRQcm9kdWN0SW1hZ2UiLCJyZW1vdmVQcm9kdWN0SW1hZ2UiLCJnZXRDb2xsZWN0aW9ucyIsImNyZWF0ZUNvbGxlY3Rpb24iLCJlZGl0Q29sbGVjdGlvbiIsImRlbGV0ZUNvbGxlY3Rpb24iLCJzZW5kTGlua0NhdGFsb2ciLCJzZXRQcm9kdWN0VmlzaWJpbGl0eSIsInVwZGF0ZUNhcnRFbmFibGVkIiwic2VuZFRleHRTdG9yaWUiLCJzZW5kSW1hZ2VTdG9yaWUiLCJzZW5kVmlkZW9TdG9yaWUiLCJhZGROZXdMYWJlbCIsImFkZE9yUmVtb3ZlTGFiZWxzIiwiZ2V0QWxsTGFiZWxzIiwicHV0IiwiZGVsZXRlQWxsTGFiZWxzIiwiZGVsZXRlTGFiZWwiLCJjaGVja051bWJlclN0YXR1cyIsImdldEFsbENvbnRhY3RzIiwiZ2V0Q29udGFjdCIsImdldE51bWJlclByb2ZpbGUiLCJnZXRQcm9maWxlUGljRnJvbVNlcnZlciIsImdldFN0YXR1cyIsImdldEJsb2NrTGlzdCIsImJsb2NrQ29udGFjdCIsInVuYmxvY2tDb250YWN0IiwiZ2V0QmF0dGVyeUxldmVsIiwiZ2V0SG9zdERldmljZSIsImdldFBob25lTnVtYmVyIiwic2V0UHJvZmlsZVBpYyIsInNldFByb2ZpbGVTdGF0dXMiLCJzZXRQcm9maWxlTmFtZSIsImdldEJ1c2luZXNzUHJvZmlsZXNQcm9kdWN0cyIsImdldE9yZGVyYnlNc2ciLCJjaGF0V29vdCIsInVzZSIsInN3YWdnZXJVaSIsInNlcnZlIiwic2V0dXAiLCJzd2FnZ2VyRG9jdW1lbnQiLCJoZWFsdGh6IiwidW5oZWFsdGh5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBtdWx0ZXIgZnJvbSAnbXVsdGVyJztcbmltcG9ydCBzd2FnZ2VyVWkgZnJvbSAnc3dhZ2dlci11aS1leHByZXNzJztcblxuaW1wb3J0IHVwbG9hZENvbmZpZyBmcm9tICcuLi9jb25maWcvdXBsb2FkJztcbmltcG9ydCAqIGFzIENhdGFsb2dDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvY2F0YWxvZ0NvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgRGV2aWNlQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL2RldmljZUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgZW5jcnlwdFNlc3Npb24gfSBmcm9tICcuLi9jb250cm9sbGVyL2VuY3J5cHRDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIEdyb3VwQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL2dyb3VwQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBMYWJlbHNDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvbGFiZWxzQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBNZXNzYWdlQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL21lc3NhZ2VDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIE9yZGVyQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL29yZGVyQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBTZXNzaW9uQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL3Nlc3Npb25Db250cm9sbGVyJztcbmltcG9ydCAqIGFzIFN0YXR1c0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9zdGF0dXNDb250cm9sbGVyJztcbmltcG9ydCB2ZXJpZnlUb2tlbiBmcm9tICcuLi9taWRkbGV3YXJlL2F1dGgnO1xuaW1wb3J0ICogYXMgSGVhbHRoQ2hlY2sgZnJvbSAnLi4vbWlkZGxld2FyZS9oZWFsdGhDaGVjayc7XG5pbXBvcnQgc3RhdHVzQ29ubmVjdGlvbiBmcm9tICcuLi9taWRkbGV3YXJlL3N0YXR1c0Nvbm5lY3Rpb24nO1xuaW1wb3J0IHN3YWdnZXJEb2N1bWVudCBmcm9tICcuLi9zd2FnZ2VyLmpzb24nO1xuXG5jb25zdCB1cGxvYWQgPSBtdWx0ZXIodXBsb2FkQ29uZmlnIGFzIGFueSk7XG5jb25zdCByb3V0ZXMgPSBSb3V0ZXIoKTtcblxuLy8gR2VuZXJhdGUgVG9rZW5cbnJvdXRlcy5wb3N0KCcvYXBpLzpzZXNzaW9uLzpzZWNyZXRrZXkvZ2VuZXJhdGUtdG9rZW4nLCBlbmNyeXB0U2Vzc2lvbik7XG5cbi8vIEFsbCBTZXNzaW9uc1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlY3JldGtleS9zaG93LWFsbC1zZXNzaW9ucycsXG4gIFNlc3Npb25Db250cm9sbGVyLnNob3dBbGxTZXNzaW9uc1xuKTtcbnJvdXRlcy5wb3N0KCcvYXBpLzpzZWNyZXRrZXkvc3RhcnQtYWxsJywgU2Vzc2lvbkNvbnRyb2xsZXIuc3RhcnRBbGxTZXNzaW9ucyk7XG5cbi8vIFNlc3Npb25zXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGVjay1jb25uZWN0aW9uLXNlc3Npb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuY2hlY2tDb25uZWN0aW9uU2Vzc2lvblxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1tZWRpYS1ieS1tZXNzYWdlLzptZXNzYWdlSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuZ2V0TWVkaWFCeU1lc3NhZ2Vcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGF0dXMtc2Vzc2lvbicsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5nZXRTZXNzaW9uU3RhdGVcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9xcmNvZGUtc2Vzc2lvbicsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5nZXRRckNvZGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc3RhcnQtc2Vzc2lvbicsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5zdGFydFNlc3Npb25cbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vbG9nb3V0LXNlc3Npb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIubG9nT3V0U2Vzc2lvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jbG9zZS1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmNsb3NlU2Vzc2lvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdWJzY3JpYmUtcHJlc2VuY2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuc3Vic2NyaWJlUHJlc2VuY2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZG93bmxvYWQtbWVkaWEnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuZG93bmxvYWRNZWRpYUJ5TWVzc2FnZVxuKTtcblxuLy8gTWVzc2FnZXNcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZE1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1pbWFnZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRGaWxlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc3RpY2tlcicsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRJbWFnZUFzU3RpY2tlclxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXN0aWNrZXItZ2lmJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEltYWdlQXNTdGlja2VyR2lmXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtcmVwbHknLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIucmVwbHlNZXNzYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtZmlsZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRGaWxlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtZmlsZS1iYXNlNjQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEZpbGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC12b2ljZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kVm9pY2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC12b2ljZS1iYXNlNjQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZFZvaWNlNjRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1zdGF0dXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZFN0YXR1c1RleHRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1saW5rLXByZXZpZXcnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZExpbmtQcmV2aWV3XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbG9jYXRpb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZExvY2F0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbWVudGlvbmVkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRNZW50aW9uZWRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1idXR0b25zJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRCdXR0b25zXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbGlzdC1tZXNzYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRMaXN0TWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXBvbGwtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kUG9sbE1lc3NhZ2Vcbik7XG5cbi8vIEdyb3VwXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtYnJvYWRjYXN0LWxpc3QnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEFsbEJyb2FkY2FzdExpc3Rcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtZ3JvdXBzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRBbGxHcm91cHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1tZW1iZXJzLzpncm91cElkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRHcm91cE1lbWJlcnNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1hZG1pbnMvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEdyb3VwQWRtaW5zXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtaW52aXRlLWxpbmsvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEdyb3VwSW52aXRlTGlua1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLXJldm9rZS1saW5rLzpncm91cElkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5yZXZva2VHcm91cEludml0ZUxpbmtcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1tZW1iZXJzLWlkcy86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBNZW1iZXJzSWRzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NyZWF0ZS1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuY3JlYXRlR3JvdXBcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vbGVhdmUtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmxlYXZlR3JvdXBcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vam9pbi1jb2RlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5qb2luR3JvdXBCeUNvZGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYWRkLXBhcnRpY2lwYW50LWdyb3VwJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5hZGRQYXJ0aWNpcGFudFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9yZW1vdmUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnJlbW92ZVBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3Byb21vdGUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnByb21vdGVQYXJ0aWNpcGFudFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZW1vdGUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmRlbW90ZVBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLWluZm8tZnJvbS1pbnZpdGUtbGluaycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBJbmZvRnJvbUludml0ZUxpbmtcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtZGVzY3JpcHRpb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwRGVzY3JpcHRpb25cbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtcHJvcGVydHknLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwUHJvcGVydHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtc3ViamVjdCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuc2V0R3JvdXBTdWJqZWN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL21lc3NhZ2VzLWFkbWlucy1vbmx5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5zZXRNZXNzYWdlc0FkbWluc09ubHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtcGljJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwUHJvZmlsZVBpY1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGFuZ2UtcHJpdmFjeS1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuY2hhbmdlUHJpdmFjeUdyb3VwXG4pO1xuXG4vLyBDaGF0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtY2hhdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxDaGF0c1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1jaGF0cy13aXRoLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxNZXNzYWdlc0luQ2hhdFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1uZXctbWVzc2FnZXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxOZXdNZXNzYWdlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3VucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLXVucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEFsbFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1ieS1pZC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRDaGF0QnlJZFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL21lc3NhZ2UtYnktaWQvOm1lc3NhZ2VJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldE1lc3NhZ2VCeUlkXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1pcy1vbmxpbmUvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0Q2hhdElzT25saW5lXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGFzdC1zZWVuLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExhc3RTZWVuXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGlzdC1tdXRlcy86dHlwZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExpc3RNdXRlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2xvYWQtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5sb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXRcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtbWVzc2FnZXMvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0TWVzc2FnZXNcbik7XG5cbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5hcmNoaXZlQ2hhdFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmFyY2hpdmVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jbGVhci1jaGF0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuY2xlYXJDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NsZWFyLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNsZWFyQWxsQ2hhdHNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtY2hhdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWxldGUtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmRlbGV0ZU1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcmVhY3QtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlYWN0TWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9mb3J3YXJkLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZm9yd2FyZE1lc3NhZ2VzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL21hcmstdW5zZWVuJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIubWFya1Vuc2Vlbk1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcGluLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5waW5DaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NvbnRhY3QtdmNhcmQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZW5kQ29udGFjdFZjYXJkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbXV0ZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRNdXRlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc2VlbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRTZWVuXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NoYXQtc3RhdGUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZXRDaGF0U3RhdGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdGVtcG9yYXJ5LW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VGVtcG9yYXJ5TWVzc2FnZXNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdHlwaW5nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VHlwaW5nXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlY29yZGluZycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFJlY29yZGluZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGFyLW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zdGFyTWVzc2FnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3JlYWN0aW9ucy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRSZWFjdGlvbnNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi92b3Rlcy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRWb3Rlc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9yZWplY3QtY2FsbCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlamVjdENhbGxcbik7XG5cbi8vIENhdGFsb2dcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRQcm9kdWN0c1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0LWJ5LWlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmdldFByb2R1Y3RCeUlkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmFkZFByb2R1Y3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZWRpdC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmVkaXRQcm9kdWN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxQcm9kdWN0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGFuZ2UtcHJvZHVjdC1pbWFnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jaGFuZ2VQcm9kdWN0SW1hZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYWRkLXByb2R1Y3QtaW1hZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIuYWRkUHJvZHVjdEltYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlbW92ZS1wcm9kdWN0LWltYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnJlbW92ZVByb2R1Y3RJbWFnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1jb2xsZWN0aW9ucycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRDb2xsZWN0aW9uc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jcmVhdGUtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jcmVhdGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2VkaXQtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5lZGl0Q29sbGVjdGlvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWwtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxldGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbGluay1jYXRhbG9nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNlbmRMaW5rQ2F0YWxvZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZXQtcHJvZHVjdC12aXNpYmlsaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNldFByb2R1Y3RWaXNpYmlsaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NldC1jYXJ0LWVuYWJsZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIudXBkYXRlQ2FydEVuYWJsZWRcbik7XG5cbi8vIFN0YXR1c1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdGV4dC1zdG9yaWUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVGV4dFN0b3JpZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLWltYWdlLXN0b3JpZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIFN0YXR1c0NvbnRyb2xsZXIuc2VuZEltYWdlU3RvcmllXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdmlkZW8tc3RvcmllJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVmlkZW9TdG9yaWVcbik7XG5cbi8vIExhYmVsc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1uZXctbGFiZWwnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTGFiZWxzQ29udHJvbGxlci5hZGROZXdMYWJlbFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hZGQtb3ItcmVtb3ZlLWxhYmVsJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuYWRkT3JSZW1vdmVMYWJlbHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYWxsLWxhYmVscycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmdldEFsbExhYmVsc1xuKTtcbnJvdXRlcy5wdXQoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtbGFiZWxzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuZGVsZXRlQWxsTGFiZWxzXG4pO1xucm91dGVzLnB1dChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWxhYmVsLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmRlbGV0ZUxhYmVsXG4pO1xuXG4vLyBDb250YWN0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGVjay1udW1iZXItc3RhdHVzLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNoZWNrTnVtYmVyU3RhdHVzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWNvbnRhY3RzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ29udGFjdHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jb250YWN0LzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldENvbnRhY3Rcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldE51bWJlclByb2ZpbGVcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLXBpYy86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRQcm9maWxlUGljRnJvbVNlcnZlclxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3Byb2ZpbGUtc3RhdHVzLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldFN0YXR1c1xuKTtcblxuLy8gQmxvY2tsaXN0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ibG9ja2xpc3QnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRCbG9ja0xpc3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYmxvY2stY29udGFjdCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmJsb2NrQ29udGFjdFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi91bmJsb2NrLWNvbnRhY3QnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci51bmJsb2NrQ29udGFjdFxuKTtcblxuLy8gRGV2aWNlXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYmF0dGVyeS1sZXZlbCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEJhdHRlcnlMZXZlbFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2hvc3QtZGV2aWNlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0SG9zdERldmljZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1waG9uZS1udW1iZXInLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRQaG9uZU51bWJlclxuKTtcblxuLy8gUHJvZmlsZVxucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NldC1wcm9maWxlLXBpYycsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0UHJvZmlsZVBpY1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLXN0YXR1cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFByb2ZpbGVTdGF0dXNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vY2hhbmdlLXVzZXJuYW1lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0UHJvZmlsZU5hbWVcbik7XG5cbi8vIEJ1c2luZXNzXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYnVzaW5lc3MtcHJvZmlsZXMtcHJvZHVjdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgT3JkZXJDb250cm9sbGVyLmdldEJ1c2luZXNzUHJvZmlsZXNQcm9kdWN0c1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1vcmRlci1ieS1tZXNzYWdlSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgT3JkZXJDb250cm9sbGVyLmdldE9yZGVyYnlNc2dcbik7XG5cbnJvdXRlcy5wb3N0KCcvYXBpLzpzZXNzaW9uL2NoYXR3b290JywgRGV2aWNlQ29udHJvbGxlci5jaGF0V29vdCk7XG5cbi8vIEFwaSBEb2NcbnJvdXRlcy51c2UoJy9hcGktZG9jcycsIHN3YWdnZXJVaS5zZXJ2ZSk7XG5yb3V0ZXMuZ2V0KCcvYXBpLWRvY3MnLCBzd2FnZ2VyVWkuc2V0dXAoc3dhZ2dlckRvY3VtZW50KSk7XG5cbi8vazhzXG5yb3V0ZXMuZ2V0KCcvaGVhbHRoeicsIEhlYWx0aENoZWNrLmhlYWx0aHopO1xucm91dGVzLmdldCgnL3VuaGVhbHRoeScsIEhlYWx0aENoZWNrLnVuaGVhbHRoeSk7XG5cbmV4cG9ydCBkZWZhdWx0IHJvdXRlcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTs7QUFFQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxpQkFBQSxHQUFBQyx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQUQsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFRLGtCQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxlQUFBLEdBQUFILHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBVSxnQkFBQSxHQUFBSix1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQVcsaUJBQUEsR0FBQUwsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFZLGVBQUEsR0FBQU4sdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFhLGlCQUFBLEdBQUFQLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBYyxnQkFBQSxHQUFBUix1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQWUsS0FBQSxHQUFBYixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWdCLFdBQUEsR0FBQVYsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFpQixpQkFBQSxHQUFBZixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFB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
842
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsInJlcXVpcmUiLCJfbXVsdGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zd2FnZ2VyVWlFeHByZXNzIiwiX3VwbG9hZCIsIkNhdGFsb2dDb250cm9sbGVyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJEZXZpY2VDb250cm9sbGVyIiwiX2VuY3J5cHRDb250cm9sbGVyIiwiR3JvdXBDb250cm9sbGVyIiwiTGFiZWxzQ29udHJvbGxlciIsIk1lc3NhZ2VDb250cm9sbGVyIiwiTWlzY0NvbnRyb2xsZXIiLCJPcmRlckNvbnRyb2xsZXIiLCJTZXNzaW9uQ29udHJvbGxlciIsIlN0YXR1c0NvbnRyb2xsZXIiLCJfYXV0aCIsIkhlYWx0aENoZWNrIiwiX3N0YXR1c0Nvbm5lY3Rpb24iLCJfc3dhZ2dlciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJ1cGxvYWQiLCJtdWx0ZXIiLCJ1cGxvYWRDb25maWciLCJyb3V0ZXMiLCJSb3V0ZXIiLCJwb3N0IiwiZW5jcnlwdFNlc3Npb24iLCJzaG93QWxsU2Vzc2lvbnMiLCJzdGFydEFsbFNlc3Npb25zIiwidmVyaWZ5VG9rZW4iLCJjaGVja0Nvbm5lY3Rpb25TZXNzaW9uIiwiZ2V0TWVkaWFCeU1lc3NhZ2UiLCJnZXRQbGF0Zm9ybUZyb21NZXNzYWdlIiwiZ2V0U2Vzc2lvblN0YXRlIiwiZ2V0UXJDb2RlIiwic3RhcnRTZXNzaW9uIiwic3RhdHVzQ29ubmVjdGlvbiIsImxvZ091dFNlc3Npb24iLCJjbGVhclNlc3Npb25EYXRhIiwiY2xvc2VTZXNzaW9uIiwic3Vic2NyaWJlUHJlc2VuY2UiLCJkb3dubG9hZE1lZGlhQnlNZXNzYWdlIiwic2VuZE1lc3NhZ2UiLCJzaW5nbGUiLCJzZW5kRmlsZSIsInNlbmRJbWFnZUFzU3RpY2tlciIsInNlbmRJbWFnZUFzU3RpY2tlckdpZiIsInJlcGx5TWVzc2FnZSIsInNlbmRWb2ljZSIsInNlbmRWb2ljZTY0Iiwic2VuZFN0YXR1c1RleHQiLCJzZW5kTGlua1ByZXZpZXciLCJzZW5kTG9jYXRpb24iLCJzZW5kTWVudGlvbmVkIiwic2VuZEJ1dHRvbnMiLCJzZW5kTGlzdE1lc3NhZ2UiLCJzZW5kUG9sbE1lc3NhZ2UiLCJnZXRBbGxCcm9hZGNhc3RMaXN0IiwiZ2V0QWxsR3JvdXBzIiwiZ2V0R3JvdXBNZW1iZXJzIiwiZ2V0R3JvdXBBZG1pbnMiLCJnZXRHcm91cEludml0ZUxpbmsiLCJyZXZva2VHcm91cEludml0ZUxpbmsiLCJnZXRHcm91cE1lbWJlcnNJZHMiLCJjcmVhdGVHcm91cCIsImxlYXZlR3JvdXAiLCJqb2luR3JvdXBCeUNvZGUiLCJhZGRQYXJ0aWNpcGFudCIsInJlbW92ZVBhcnRpY2lwYW50IiwicHJvbW90ZVBhcnRpY2lwYW50IiwiZGVtb3RlUGFydGljaXBhbnQiLCJnZXRHcm91cEluZm9Gcm9tSW52aXRlTGluayIsInNldEdyb3VwRGVzY3JpcHRpb24iLCJzZXRHcm91cFByb3BlcnR5Iiwic2V0R3JvdXBTdWJqZWN0Iiwic2V0TWVzc2FnZXNBZG1pbnNPbmx5Iiwic2V0R3JvdXBQcm9maWxlUGljIiwiY2hhbmdlUHJpdmFjeUdyb3VwIiwiZ2V0QWxsQ2hhdHMiLCJnZXRBbGxDaGF0c0FyY2hpdmVkcyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwiZ2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRBbGxOZXdNZXNzYWdlcyIsImdldFVucmVhZE1lc3NhZ2VzIiwiZ2V0QWxsVW5yZWFkTWVzc2FnZXMiLCJnZXRDaGF0QnlJZCIsImdldE1lc3NhZ2VCeUlkIiwiZ2V0Q2hhdElzT25saW5lIiwiZ2V0TGFzdFNlZW4iLCJnZXRMaXN0TXV0ZXMiLCJsb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRNZXNzYWdlcyIsImFyY2hpdmVDaGF0IiwiYXJjaGl2ZUFsbENoYXRzIiwiY2xlYXJDaGF0IiwiY2xlYXJBbGxDaGF0cyIsImRlbGV0ZUNoYXQiLCJkZWxldGVBbGxDaGF0cyIsImRlbGV0ZU1lc3NhZ2UiLCJyZWFjdE1lc3NhZ2UiLCJmb3J3YXJkTWVzc2FnZXMiLCJtYXJrVW5zZWVuTWVzc2FnZSIsInBpbkNoYXQiLCJzZW5kQ29udGFjdFZjYXJkIiwic2VuZE11dGUiLCJzZW5kU2VlbiIsInNldENoYXRTdGF0ZSIsInNldFRlbXBvcmFyeU1lc3NhZ2VzIiwic2V0VHlwaW5nIiwic2V0UmVjb3JkaW5nIiwic3Rhck1lc3NhZ2UiLCJnZXRSZWFjdGlvbnMiLCJnZXRWb3RlcyIsInJlamVjdENhbGwiLCJnZXRQcm9kdWN0cyIsImdldFByb2R1Y3RCeUlkIiwiYWRkUHJvZHVjdCIsImVkaXRQcm9kdWN0IiwiZGVsUHJvZHVjdHMiLCJjaGFuZ2VQcm9kdWN0SW1hZ2UiLCJhZGRQcm9kdWN0SW1hZ2UiLCJyZW1vdmVQcm9kdWN0SW1hZ2UiLCJnZXRDb2xsZWN0aW9ucyIsImNyZWF0ZUNvbGxlY3Rpb24iLCJlZGl0Q29sbGVjdGlvbiIsImRlbGV0ZUNvbGxlY3Rpb24iLCJzZW5kTGlua0NhdGFsb2ciLCJzZXRQcm9kdWN0VmlzaWJpbGl0eSIsInVwZGF0ZUNhcnRFbmFibGVkIiwic2VuZFRleHRTdG9yaWUiLCJzZW5kSW1hZ2VTdG9yaWUiLCJzZW5kVmlkZW9TdG9yaWUiLCJhZGROZXdMYWJlbCIsImFkZE9yUmVtb3ZlTGFiZWxzIiwiZ2V0QWxsTGFiZWxzIiwicHV0IiwiZGVsZXRlQWxsTGFiZWxzIiwiZGVsZXRlTGFiZWwiLCJjaGVja051bWJlclN0YXR1cyIsImdldEFsbENvbnRhY3RzIiwiZ2V0Q29udGFjdCIsImdldE51bWJlclByb2ZpbGUiLCJnZXRQcm9maWxlUGljRnJvbVNlcnZlciIsImdldFN0YXR1cyIsImdldEJsb2NrTGlzdCIsImJsb2NrQ29udGFjdCIsInVuYmxvY2tDb250YWN0IiwiZ2V0QmF0dGVyeUxldmVsIiwiZ2V0SG9zdERldmljZSIsImdldFBob25lTnVtYmVyIiwic2V0UHJvZmlsZVBpYyIsInNldFByb2ZpbGVTdGF0dXMiLCJzZXRQcm9maWxlTmFtZSIsImVkaXRCdXNpbmVzc1Byb2ZpbGUiLCJnZXRCdXNpbmVzc1Byb2ZpbGVzUHJvZHVjdHMiLCJnZXRPcmRlcmJ5TXNnIiwiYmFja3VwQWxsU2Vzc2lvbnMiLCJyZXN0b3JlQWxsU2Vzc2lvbnMiLCJ0YWtlU2NyZWVuc2hvdCIsInNldExpbWl0IiwiY2hhdFdvb3QiLCJ1c2UiLCJzd2FnZ2VyVWkiLCJzZXJ2ZSIsInNldHVwIiwic3dhZ2dlckRvY3VtZW50IiwiaGVhbHRoeiIsInVuaGVhbHRoeSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3V0ZXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgbXVsdGVyIGZyb20gJ211bHRlcic7XG5pbXBvcnQgc3dhZ2dlclVpIGZyb20gJ3N3YWdnZXItdWktZXhwcmVzcyc7XG5cbmltcG9ydCB1cGxvYWRDb25maWcgZnJvbSAnLi4vY29uZmlnL3VwbG9hZCc7XG5pbXBvcnQgKiBhcyBDYXRhbG9nQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL2NhdGFsb2dDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIERldmljZUNvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9kZXZpY2VDb250cm9sbGVyJztcbmltcG9ydCB7IGVuY3J5cHRTZXNzaW9uIH0gZnJvbSAnLi4vY29udHJvbGxlci9lbmNyeXB0Q29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBHcm91cENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9ncm91cENvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgTGFiZWxzQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL2xhYmVsc0NvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgTWVzc2FnZUNvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9tZXNzYWdlQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBNaXNjQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL21pc2NDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIE9yZGVyQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL29yZGVyQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBTZXNzaW9uQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL3Nlc3Npb25Db250cm9sbGVyJztcbmltcG9ydCAqIGFzIFN0YXR1c0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9zdGF0dXNDb250cm9sbGVyJztcbmltcG9ydCB2ZXJpZnlUb2tlbiBmcm9tICcuLi9taWRkbGV3YXJlL2F1dGgnO1xuaW1wb3J0ICogYXMgSGVhbHRoQ2hlY2sgZnJvbSAnLi4vbWlkZGxld2FyZS9oZWFsdGhDaGVjayc7XG5pbXBvcnQgc3RhdHVzQ29ubmVjdGlvbiBmcm9tICcuLi9taWRkbGV3YXJlL3N0YXR1c0Nvbm5lY3Rpb24nO1xuaW1wb3J0IHN3YWdnZXJEb2N1bWVudCBmcm9tICcuLi9zd2FnZ2VyLmpzb24nO1xuXG5jb25zdCB1cGxvYWQgPSBtdWx0ZXIodXBsb2FkQ29uZmlnIGFzIGFueSk7XG5jb25zdCByb3V0ZXMgPSBSb3V0ZXIoKTtcblxuLy8gR2VuZXJhdGUgVG9rZW5cbnJvdXRlcy5wb3N0KCcvYXBpLzpzZXNzaW9uLzpzZWNyZXRrZXkvZ2VuZXJhdGUtdG9rZW4nLCBlbmNyeXB0U2Vzc2lvbik7XG5cbi8vIEFsbCBTZXNzaW9uc1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlY3JldGtleS9zaG93LWFsbC1zZXNzaW9ucycsXG4gIFNlc3Npb25Db250cm9sbGVyLnNob3dBbGxTZXNzaW9uc1xuKTtcbnJvdXRlcy5wb3N0KCcvYXBpLzpzZWNyZXRrZXkvc3RhcnQtYWxsJywgU2Vzc2lvbkNvbnRyb2xsZXIuc3RhcnRBbGxTZXNzaW9ucyk7XG5cbi8vIFNlc3Npb25zXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGVjay1jb25uZWN0aW9uLXNlc3Npb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuY2hlY2tDb25uZWN0aW9uU2Vzc2lvblxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1tZWRpYS1ieS1tZXNzYWdlLzptZXNzYWdlSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuZ2V0TWVkaWFCeU1lc3NhZ2Vcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtcGxhdGZvcm0tZnJvbS1tZXNzYWdlLzptZXNzYWdlSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRQbGF0Zm9ybUZyb21NZXNzYWdlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vc3RhdHVzLXNlc3Npb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuZ2V0U2Vzc2lvblN0YXRlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vcXJjb2RlLXNlc3Npb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuZ2V0UXJDb2RlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3N0YXJ0LXNlc3Npb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuc3RhcnRTZXNzaW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2xvZ291dC1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIFNlc3Npb25Db250cm9sbGVyLmxvZ091dFNlc3Npb25cbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vOnNlY3JldGtleS9jbGVhci1zZXNzaW9uLWRhdGEnLFxuICBNaXNjQ29udHJvbGxlci5jbGVhclNlc3Npb25EYXRhXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2Nsb3NlLXNlc3Npb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuY2xvc2VTZXNzaW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3N1YnNjcmliZS1wcmVzZW5jZScsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5zdWJzY3JpYmVQcmVzZW5jZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kb3dubG9hZC1tZWRpYScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBTZXNzaW9uQ29udHJvbGxlci5kb3dubG9hZE1lZGlhQnlNZXNzYWdlXG4pO1xuXG4vLyBNZXNzYWdlc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kTWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLWltYWdlJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEZpbGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1zdGlja2VyJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEltYWdlQXNTdGlja2VyXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc3RpY2tlci1naWYnLFxuICB1cGxvYWQuc2luZ2xlKCdmaWxlJyksXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kSW1hZ2VBc1N0aWNrZXJHaWZcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1yZXBseScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5yZXBseU1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1maWxlJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEZpbGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1maWxlLWJhc2U2NCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kRmlsZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXZvaWNlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRWb2ljZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXZvaWNlLWJhc2U2NCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kVm9pY2U2NFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXN0YXR1cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kU3RhdHVzVGV4dFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLWxpbmstcHJldmlldycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kTGlua1ByZXZpZXdcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1sb2NhdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kTG9jYXRpb25cbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1tZW50aW9uZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZE1lbnRpb25lZFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLWJ1dHRvbnMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEJ1dHRvbnNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1saXN0LW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZExpc3RNZXNzYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtcG9sbC1tZXNzYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRQb2xsTWVzc2FnZVxuKTtcblxuLy8gR3JvdXBcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1icm9hZGNhc3QtbGlzdCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0QWxsQnJvYWRjYXN0TGlzdFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1ncm91cHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEFsbEdyb3Vwc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLW1lbWJlcnMvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEdyb3VwTWVtYmVyc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLWFkbWlucy86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBBZG1pbnNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1pbnZpdGUtbGluay86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBJbnZpdGVMaW5rXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtcmV2b2tlLWxpbmsvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnJldm9rZUdyb3VwSW52aXRlTGlua1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLW1lbWJlcnMtaWRzLzpncm91cElkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRHcm91cE1lbWJlcnNJZHNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vY3JlYXRlLWdyb3VwJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5jcmVhdGVHcm91cFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9sZWF2ZS1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIubGVhdmVHcm91cFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9qb2luLWNvZGUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmpvaW5Hcm91cEJ5Q29kZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hZGQtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmFkZFBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlbW92ZS1wYXJ0aWNpcGFudC1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIucmVtb3ZlUGFydGljaXBhbnRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcHJvbW90ZS1wYXJ0aWNpcGFudC1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIucHJvbW90ZVBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbW90ZS1wYXJ0aWNpcGFudC1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZGVtb3RlUGFydGljaXBhbnRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtaW5mby1mcm9tLWludml0ZS1saW5rJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRHcm91cEluZm9Gcm9tSW52aXRlTGlua1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1kZXNjcmlwdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuc2V0R3JvdXBEZXNjcmlwdGlvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1wcm9wZXJ0eScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuc2V0R3JvdXBQcm9wZXJ0eVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1zdWJqZWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5zZXRHcm91cFN1YmplY3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vbWVzc2FnZXMtYWRtaW5zLW9ubHknLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldE1lc3NhZ2VzQWRtaW5zT25seVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1waWMnLFxuICB1cGxvYWQuc2luZ2xlKCdmaWxlJyksXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuc2V0R3JvdXBQcm9maWxlUGljXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NoYW5nZS1wcml2YWN5LWdyb3VwJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5jaGFuZ2VQcml2YWN5R3JvdXBcbik7XG5cbi8vIENoYXRcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEFsbENoYXRzXG4pO1xuXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtY2hhdHMtYXJjaGl2ZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxDaGF0c0FyY2hpdmVkc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1jaGF0cy13aXRoLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxNZXNzYWdlc0luQ2hhdFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1uZXctbWVzc2FnZXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxOZXdNZXNzYWdlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3VucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLXVucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEFsbFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1ieS1pZC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRDaGF0QnlJZFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL21lc3NhZ2UtYnktaWQvOm1lc3NhZ2VJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldE1lc3NhZ2VCeUlkXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1pcy1vbmxpbmUvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0Q2hhdElzT25saW5lXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGFzdC1zZWVuLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExhc3RTZWVuXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGlzdC1tdXRlcy86dHlwZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExpc3RNdXRlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2xvYWQtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5sb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXRcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtbWVzc2FnZXMvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0TWVzc2FnZXNcbik7XG5cbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5hcmNoaXZlQ2hhdFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmFyY2hpdmVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jbGVhci1jaGF0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuY2xlYXJDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NsZWFyLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNsZWFyQWxsQ2hhdHNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtY2hhdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWxldGUtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmRlbGV0ZU1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcmVhY3QtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlYWN0TWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9mb3J3YXJkLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZm9yd2FyZE1lc3NhZ2VzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL21hcmstdW5zZWVuJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIubWFya1Vuc2Vlbk1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcGluLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5waW5DaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NvbnRhY3QtdmNhcmQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZW5kQ29udGFjdFZjYXJkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbXV0ZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRNdXRlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc2VlbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRTZWVuXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NoYXQtc3RhdGUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZXRDaGF0U3RhdGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdGVtcG9yYXJ5LW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VGVtcG9yYXJ5TWVzc2FnZXNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdHlwaW5nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VHlwaW5nXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlY29yZGluZycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFJlY29yZGluZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGFyLW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zdGFyTWVzc2FnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3JlYWN0aW9ucy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRSZWFjdGlvbnNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi92b3Rlcy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRWb3Rlc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9yZWplY3QtY2FsbCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlamVjdENhbGxcbik7XG5cbi8vIENhdGFsb2dcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRQcm9kdWN0c1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0LWJ5LWlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmdldFByb2R1Y3RCeUlkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmFkZFByb2R1Y3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZWRpdC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmVkaXRQcm9kdWN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxQcm9kdWN0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGFuZ2UtcHJvZHVjdC1pbWFnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jaGFuZ2VQcm9kdWN0SW1hZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYWRkLXByb2R1Y3QtaW1hZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIuYWRkUHJvZHVjdEltYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlbW92ZS1wcm9kdWN0LWltYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnJlbW92ZVByb2R1Y3RJbWFnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1jb2xsZWN0aW9ucycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRDb2xsZWN0aW9uc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jcmVhdGUtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jcmVhdGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2VkaXQtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5lZGl0Q29sbGVjdGlvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWwtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxldGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbGluay1jYXRhbG9nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNlbmRMaW5rQ2F0YWxvZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZXQtcHJvZHVjdC12aXNpYmlsaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNldFByb2R1Y3RWaXNpYmlsaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NldC1jYXJ0LWVuYWJsZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIudXBkYXRlQ2FydEVuYWJsZWRcbik7XG5cbi8vIFN0YXR1c1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdGV4dC1zdG9yaWUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVGV4dFN0b3JpZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLWltYWdlLXN0b3JpZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIFN0YXR1c0NvbnRyb2xsZXIuc2VuZEltYWdlU3RvcmllXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdmlkZW8tc3RvcmllJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVmlkZW9TdG9yaWVcbik7XG5cbi8vIExhYmVsc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1uZXctbGFiZWwnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTGFiZWxzQ29udHJvbGxlci5hZGROZXdMYWJlbFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hZGQtb3ItcmVtb3ZlLWxhYmVsJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuYWRkT3JSZW1vdmVMYWJlbHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYWxsLWxhYmVscycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmdldEFsbExhYmVsc1xuKTtcbnJvdXRlcy5wdXQoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtbGFiZWxzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuZGVsZXRlQWxsTGFiZWxzXG4pO1xucm91dGVzLnB1dChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWxhYmVsLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmRlbGV0ZUxhYmVsXG4pO1xuXG4vLyBDb250YWN0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGVjay1udW1iZXItc3RhdHVzLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNoZWNrTnVtYmVyU3RhdHVzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWNvbnRhY3RzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ29udGFjdHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jb250YWN0LzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldENvbnRhY3Rcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldE51bWJlclByb2ZpbGVcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLXBpYy86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRQcm9maWxlUGljRnJvbVNlcnZlclxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3Byb2ZpbGUtc3RhdHVzLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldFN0YXR1c1xuKTtcblxuLy8gQmxvY2tsaXN0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ibG9ja2xpc3QnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRCbG9ja0xpc3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYmxvY2stY29udGFjdCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmJsb2NrQ29udGFjdFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi91bmJsb2NrLWNvbnRhY3QnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci51bmJsb2NrQ29udGFjdFxuKTtcblxuLy8gRGV2aWNlXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYmF0dGVyeS1sZXZlbCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEJhdHRlcnlMZXZlbFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2hvc3QtZGV2aWNlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0SG9zdERldmljZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1waG9uZS1udW1iZXInLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRQaG9uZU51bWJlclxuKTtcblxuLy8gUHJvZmlsZVxucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NldC1wcm9maWxlLXBpYycsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0UHJvZmlsZVBpY1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLXN0YXR1cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFByb2ZpbGVTdGF0dXNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vY2hhbmdlLXVzZXJuYW1lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0UHJvZmlsZU5hbWVcbik7XG5cbi8vIEJ1c2luZXNzXG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZWRpdC1idXNpbmVzcy1wcm9maWxlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIFNlc3Npb25Db250cm9sbGVyLmVkaXRCdXNpbmVzc1Byb2ZpbGVcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYnVzaW5lc3MtcHJvZmlsZXMtcHJvZHVjdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgT3JkZXJDb250cm9sbGVyLmdldEJ1c2luZXNzUHJvZmlsZXNQcm9kdWN0c1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1vcmRlci1ieS1tZXNzYWdlSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgT3JkZXJDb250cm9sbGVyLmdldE9yZGVyYnlNc2dcbik7XG5yb3V0ZXMuZ2V0KCcvYXBpLzpzZWNyZXRrZXkvYmFja3VwLXNlc3Npb25zJywgTWlzY0NvbnRyb2xsZXIuYmFja3VwQWxsU2Vzc2lvbnMpO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZWNyZXRrZXkvcmVzdG9yZS1zZXNzaW9ucycsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgTWlzY0NvbnRyb2xsZXIucmVzdG9yZUFsbFNlc3Npb25zXG4pO1xucm91dGVzLmdldCgnL2FwaS86c2Vzc2lvbi90YWtlLXNjcmVlbnNob3QnLCBNaXNjQ29udHJvbGxlci50YWtlU2NyZWVuc2hvdCk7XG5yb3V0ZXMucG9zdCgnL2FwaS86c2Vzc2lvbi9zZXQtbGltaXQnLCBNaXNjQ29udHJvbGxlci5zZXRMaW1pdCk7XG5cbnJvdXRlcy5wb3N0KCcvYXBpLzpzZXNzaW9uL2NoYXR3b290JywgRGV2aWNlQ29udHJvbGxlci5jaGF0V29vdCk7XG5cbi8vIEFwaSBEb2NcbnJvdXRlcy51c2UoJy9hcGktZG9jcycsIHN3YWdnZXJVaS5zZXJ2ZSk7XG5yb3V0ZXMuZ2V0KCcvYXBpLWRvY3MnLCBzd2FnZ2VyVWkuc2V0dXAoc3dhZ2dlckRvY3VtZW50KSk7XG5cbi8vazhzXG5yb3V0ZXMuZ2V0KCcvaGVhbHRoeicsIEhlYWx0aENoZWNrLmhlYWx0aHopO1xucm91dGVzLmdldCgnL3VuaGVhbHRoeScsIEhlYWx0aENoZWNrLnVuaGVhbHRoeSk7XG5cbmV4cG9ydCBkZWZhdWx0IHJvdXRlcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTs7QUFFQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxpQkFBQSxHQUFBQyx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQUQsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFRLGtCQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxlQUFBLEdBQUFILHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBVSxnQkFBQSxHQUFBSix1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQVcsaUJBQUEsR0FBQUwsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFZLGNBQUEsR0FBQU4sdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFhLGVB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