@ukwhatn/wikidot 4.0.2 → 4.0.3

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.
@@ -1,627 +0,0 @@
1
- import {
2
- NoElementError,
3
- NotFoundException,
4
- UnexpectedError,
5
- fromPromise
6
- } from "./index-7dqqxq7x.js";
7
-
8
- // src/module/user/user.ts
9
- import * as cheerio from "cheerio";
10
-
11
- // src/util/table/char-table.ts
12
- var specialCharMap = {
13
- "À": "a",
14
- "Á": "a",
15
- "Â": "a",
16
- "Ã": "a",
17
- "Ä": "ae",
18
- "Å": "a",
19
- "Æ": "ae",
20
- "Ç": "c",
21
- "È": "e",
22
- "É": "e",
23
- "Ê": "e",
24
- "Ë": "e",
25
- "Ì": "i",
26
- "Í": "i",
27
- "Î": "i",
28
- "Ï": "i",
29
- "Ð": "d",
30
- "Ñ": "n",
31
- "Ò": "o",
32
- "Ó": "o",
33
- "Ô": "o",
34
- "Õ": "o",
35
- "Ö": "oe",
36
- "Ø": "o",
37
- "Ù": "u",
38
- "Ú": "u",
39
- "Û": "u",
40
- "Ü": "ue",
41
- "Ý": "y",
42
- "Þ": "t",
43
- "ß": "ss",
44
- "à": "a",
45
- "á": "a",
46
- "â": "a",
47
- "ã": "a",
48
- "ä": "ae",
49
- "å": "a",
50
- "æ": "ae",
51
- "ç": "c",
52
- "è": "e",
53
- "é": "e",
54
- "ê": "e",
55
- "ë": "e",
56
- "ì": "i",
57
- "í": "i",
58
- "î": "i",
59
- "ï": "i",
60
- "ð": "d",
61
- "ñ": "n",
62
- "ò": "o",
63
- "ó": "o",
64
- "ô": "o",
65
- "õ": "o",
66
- "ö": "oe",
67
- "ø": "o",
68
- "ù": "u",
69
- "ú": "u",
70
- "û": "u",
71
- "ü": "ue",
72
- "ý": "y",
73
- "þ": "t",
74
- "ÿ": "y",
75
- "Ā": "a",
76
- "ā": "a",
77
- "Ă": "a",
78
- "ă": "a",
79
- "Ą": "a",
80
- "ą": "a",
81
- "Ć": "c",
82
- "ć": "c",
83
- "Ĉ": "c",
84
- "ĉ": "c",
85
- "Ċ": "c",
86
- "ċ": "c",
87
- "Č": "c",
88
- "č": "c",
89
- "Ď": "d",
90
- "ď": "d",
91
- "Đ": "d",
92
- "đ": "d",
93
- "Ē": "e",
94
- "ē": "e",
95
- "Ĕ": "e",
96
- "ĕ": "e",
97
- "Ė": "e",
98
- "ė": "e",
99
- "Ę": "e",
100
- "ę": "e",
101
- "Ě": "e",
102
- "ě": "e",
103
- "Ĝ": "g",
104
- "ĝ": "g",
105
- "Ğ": "g",
106
- "ğ": "g",
107
- "Ġ": "g",
108
- "ġ": "g",
109
- "Ģ": "g",
110
- "ģ": "g",
111
- "Ĥ": "h",
112
- "ĥ": "h",
113
- "Ħ": "h",
114
- "ħ": "h",
115
- "Ĩ": "i",
116
- "ĩ": "i",
117
- "Ī": "i",
118
- "ī": "i",
119
- "Ĭ": "i",
120
- "ĭ": "i",
121
- "Į": "i",
122
- "į": "i",
123
- "İ": "i",
124
- "ı": "i",
125
- "IJ": "ij",
126
- "ij": "ij",
127
- "Ĵ": "j",
128
- "ĵ": "j",
129
- "Ķ": "k",
130
- "ķ": "k",
131
- "ĸ": "k",
132
- "Ĺ": "l",
133
- "ĺ": "l",
134
- "Ļ": "l",
135
- "ļ": "l",
136
- "Ľ": "l",
137
- "ľ": "l",
138
- "Ŀ": "l",
139
- "ŀ": "l",
140
- "Ł": "l",
141
- "ł": "l",
142
- "Ń": "n",
143
- "ń": "n",
144
- "Ņ": "n",
145
- "ņ": "n",
146
- "Ň": "n",
147
- "ň": "n",
148
- "ʼn": "n",
149
- "Ŋ": "n",
150
- "ŋ": "n",
151
- "Ō": "o",
152
- "ō": "o",
153
- "Ŏ": "o",
154
- "ŏ": "o",
155
- "Ő": "o",
156
- "ő": "o",
157
- "Œ": "oe",
158
- "œ": "oe",
159
- "Ŕ": "r",
160
- "ŕ": "r",
161
- "Ŗ": "r",
162
- "ŗ": "r",
163
- "Ř": "r",
164
- "ř": "r",
165
- "Ś": "s",
166
- "ś": "s",
167
- "Ŝ": "s",
168
- "ŝ": "s",
169
- "Ş": "s",
170
- "ş": "s",
171
- "Š": "s",
172
- "š": "s",
173
- "Ţ": "t",
174
- "ţ": "t",
175
- "Ť": "t",
176
- "ť": "t",
177
- "Ŧ": "t",
178
- "ŧ": "t",
179
- "Ũ": "u",
180
- "ũ": "u",
181
- "Ū": "u",
182
- "ū": "u",
183
- "Ŭ": "u",
184
- "ŭ": "u",
185
- "Ů": "u",
186
- "ů": "u",
187
- "Ű": "u",
188
- "ű": "u",
189
- "Ų": "u",
190
- "ų": "u",
191
- "Ŵ": "w",
192
- "ŵ": "w",
193
- "Ŷ": "y",
194
- "ŷ": "y",
195
- "Ÿ": "y",
196
- "Ź": "z",
197
- "ź": "z",
198
- "Ż": "z",
199
- "ż": "z",
200
- "Ž": "z",
201
- "ž": "z",
202
- "ſ": "ss",
203
- "Ƒ": "f",
204
- "ƒ": "f",
205
- "Ș": "s",
206
- "ș": "s",
207
- "Ț": "t",
208
- "ț": "t",
209
- "Ά": "a",
210
- "Έ": "e",
211
- "Ή": "i",
212
- "Ί": "i",
213
- "Ό": "o",
214
- "Ύ": "y",
215
- "Ώ": "o",
216
- "ΐ": "i",
217
- "Α": "a",
218
- "Β": "v",
219
- "Γ": "g",
220
- "Δ": "d",
221
- "Ε": "e",
222
- "Ζ": "z",
223
- "Η": "i",
224
- "Θ": "th",
225
- "Ι": "i",
226
- "Κ": "k",
227
- "Λ": "l",
228
- "Μ": "m",
229
- "Ν": "n",
230
- "Ξ": "x",
231
- "Ο": "o",
232
- "Π": "p",
233
- "Ρ": "r",
234
- "Σ": "s",
235
- "Τ": "t",
236
- "Υ": "y",
237
- "Φ": "f",
238
- "Χ": "ch",
239
- "Ψ": "ps",
240
- "Ω": "o",
241
- "Ϊ": "i",
242
- "Ϋ": "y",
243
- "ά": "a",
244
- "έ": "e",
245
- "ή": "i",
246
- "ί": "i",
247
- "ΰ": "y",
248
- "α": "a",
249
- "β": "v",
250
- "γ": "g",
251
- "δ": "d",
252
- "ε": "e",
253
- "ζ": "z",
254
- "η": "i",
255
- "θ": "th",
256
- "ι": "i",
257
- "κ": "k",
258
- "λ": "l",
259
- "μ": "m",
260
- "ν": "n",
261
- "ξ": "x",
262
- "ο": "o",
263
- "π": "p",
264
- "ρ": "r",
265
- "ς": "s",
266
- "σ": "s",
267
- "τ": "t",
268
- "υ": "y",
269
- "φ": "f",
270
- "χ": "ch",
271
- "ψ": "ps",
272
- "ω": "o",
273
- "ϊ": "i",
274
- "ϋ": "y",
275
- "ό": "o",
276
- "ύ": "y",
277
- "ώ": "o",
278
- "ϑ": "th",
279
- "Ё": "e",
280
- "Ђ": "d",
281
- "Ѓ": "g",
282
- "Є": "e",
283
- "Ѕ": "z",
284
- "І": "i",
285
- "Ї": "i",
286
- "Ј": "j",
287
- "Љ": "l",
288
- "Њ": "n",
289
- "Ћ": "c",
290
- "Ќ": "k",
291
- "Ў": "u",
292
- "Џ": "d",
293
- "А": "a",
294
- "Б": "b",
295
- "В": "v",
296
- "Г": "g",
297
- "Д": "d",
298
- "Е": "e",
299
- "Ж": "z",
300
- "З": "z",
301
- "И": "i",
302
- "Й": "j",
303
- "К": "k",
304
- "Л": "l",
305
- "М": "m",
306
- "Н": "n",
307
- "О": "o",
308
- "П": "p",
309
- "Р": "r",
310
- "С": "s",
311
- "Т": "t",
312
- "У": "u",
313
- "Ф": "f",
314
- "Х": "h",
315
- "Ц": "c",
316
- "Ч": "c",
317
- "Ш": "s",
318
- "Щ": "s",
319
- "Ы": "y",
320
- "Э": "e",
321
- "Ю": "u",
322
- "Я": "a",
323
- "а": "a",
324
- "б": "b",
325
- "в": "v",
326
- "г": "g",
327
- "д": "d",
328
- "е": "e",
329
- "ж": "z",
330
- "з": "z",
331
- "и": "i",
332
- "й": "j",
333
- "к": "k",
334
- "л": "l",
335
- "м": "m",
336
- "н": "n",
337
- "о": "o",
338
- "п": "p",
339
- "р": "r",
340
- "с": "s",
341
- "т": "t",
342
- "у": "u",
343
- "ф": "f",
344
- "х": "h",
345
- "ц": "c",
346
- "ч": "c",
347
- "ш": "s",
348
- "щ": "s",
349
- "ы": "y",
350
- "э": "e",
351
- "ю": "u",
352
- "я": "a",
353
- "ё": "e",
354
- "ђ": "d",
355
- "ѓ": "g",
356
- "є": "e",
357
- "ѕ": "z",
358
- "і": "i",
359
- "ї": "i",
360
- "ј": "j",
361
- "љ": "l",
362
- "њ": "n",
363
- "ћ": "c",
364
- "ќ": "k",
365
- "ў": "u",
366
- "џ": "d",
367
- "Ѣ": "e",
368
- "ѣ": "e",
369
- "Ѫ": "a",
370
- "ѫ": "a",
371
- "Ѳ": "f",
372
- "ѳ": "f",
373
- "Ѵ": "y",
374
- "ѵ": "y",
375
- "Ґ": "g",
376
- "ґ": "g",
377
- "Ғ": "g",
378
- "ғ": "g",
379
- "Ҕ": "g",
380
- "ҕ": "g",
381
- "Җ": "z",
382
- "җ": "z",
383
- "Қ": "k",
384
- "қ": "k",
385
- "Ҝ": "k",
386
- "ҝ": "k",
387
- "Ҟ": "k",
388
- "ҟ": "k",
389
- "Ҡ": "k",
390
- "ҡ": "k",
391
- "Ң": "n",
392
- "ң": "n",
393
- "Ҥ": "n",
394
- "ҥ": "n",
395
- "Ҧ": "p",
396
- "ҧ": "p",
397
- "Ҩ": "o",
398
- "ҩ": "o",
399
- "Ҫ": "s",
400
- "ҫ": "s",
401
- "Ҭ": "t",
402
- "ҭ": "t",
403
- "Ү": "u",
404
- "ү": "u",
405
- "Ұ": "u",
406
- "ұ": "u",
407
- "Ҳ": "h",
408
- "ҳ": "h",
409
- "Ҵ": "c",
410
- "ҵ": "c",
411
- "Ҷ": "c",
412
- "ҷ": "c",
413
- "Ҹ": "c",
414
- "ҹ": "c",
415
- "Һ": "h",
416
- "һ": "h",
417
- "Ҽ": "c",
418
- "ҽ": "c",
419
- "Ҿ": "c",
420
- "ҿ": "c",
421
- "Ӂ": "z",
422
- "ӂ": "z",
423
- "Ӄ": "k",
424
- "ӄ": "k",
425
- "Ӆ": "l",
426
- "ӆ": "l",
427
- "Ӈ": "n",
428
- "ӈ": "n",
429
- "Ӊ": "n",
430
- "ӊ": "n",
431
- "Ӌ": "c",
432
- "ӌ": "c",
433
- "Ӑ": "a",
434
- "ӑ": "a",
435
- "Ӓ": "a",
436
- "ӓ": "a",
437
- "Ӕ": "ae",
438
- "ӕ": "ae",
439
- "Ӗ": "e",
440
- "ӗ": "e",
441
- "Ә": "a",
442
- "ә": "a",
443
- "Ӛ": "a",
444
- "ӛ": "a",
445
- "Ӝ": "z",
446
- "ӝ": "z",
447
- "Ӟ": "z",
448
- "ӟ": "z",
449
- "Ӡ": "z",
450
- "ӡ": "z",
451
- "Ӣ": "i",
452
- "ӣ": "i",
453
- "Ӥ": "i",
454
- "ӥ": "i",
455
- "Ӧ": "o",
456
- "ӧ": "o",
457
- "Ө": "o",
458
- "ө": "o",
459
- "Ӫ": "o",
460
- "ӫ": "o",
461
- "Ӯ": "u",
462
- "ӯ": "u",
463
- "Ӱ": "u",
464
- "ӱ": "u",
465
- "Ӳ": "u",
466
- "ӳ": "u",
467
- "Ӵ": "c",
468
- "ӵ": "c",
469
- "Ӹ": "y",
470
- "ӹ": "y",
471
- "Ԋ": "n",
472
- "ԋ": "n",
473
- "Ԏ": "t",
474
- "ԏ": "t",
475
- "Ԛ": "q",
476
- "ԛ": "q",
477
- "Ԝ": "w",
478
- "ԝ": "w"
479
- };
480
-
481
- // src/util/string-util.ts
482
- function toUnix(targetStr) {
483
- let result = "";
484
- for (const char of targetStr) {
485
- const mapped = specialCharMap[char];
486
- result += mapped !== undefined ? mapped : char;
487
- }
488
- result = result.toLowerCase();
489
- result = result.replace(/[^a-z0-9\-:_]/g, "-");
490
- result = result.replace(/^_/, ":_");
491
- result = result.replace(/(?<!:)_/g, "-");
492
- result = result.replace(/^-*/, "");
493
- result = result.replace(/-*$/, "");
494
- result = result.replace(/-{2,}/g, "-");
495
- result = result.replace(/:{2,}/g, ":");
496
- result = result.replace(/:-/g, ":");
497
- result = result.replace(/-:/g, ":");
498
- result = result.replace(/_-/g, "_");
499
- result = result.replace(/-_/g, "_");
500
- result = result.replace(/^:/, "");
501
- result = result.replace(/:$/, "");
502
- return result;
503
- }
504
-
505
- // src/module/user/user-collection.ts
506
- class UserCollection extends Array {
507
- constructor(users) {
508
- super();
509
- if (users) {
510
- this.push(...users);
511
- }
512
- }
513
- findByName(name) {
514
- const lowerName = name.toLowerCase();
515
- for (const user of this) {
516
- if (user && user.name.toLowerCase() === lowerName) {
517
- return user;
518
- }
519
- }
520
- return;
521
- }
522
- findById(id) {
523
- for (const user of this) {
524
- if (user && user.id === id) {
525
- return user;
526
- }
527
- }
528
- return;
529
- }
530
- filterNonNull() {
531
- return this.filter((user) => user !== null);
532
- }
533
- }
534
-
535
- // src/module/user/user.ts
536
- class User {
537
- client;
538
- id;
539
- name;
540
- displayName;
541
- avatarUrl;
542
- unixName;
543
- ip = null;
544
- userType = "user";
545
- constructor(client, data) {
546
- this.client = client;
547
- this.id = data.id;
548
- this.name = data.name;
549
- this.displayName = data.displayName ?? null;
550
- this.avatarUrl = data.avatarUrl ?? `https://www.wikidot.com/avatar.php?userid=${data.id}`;
551
- this.unixName = data.unixName ?? toUnix(data.name);
552
- }
553
- static fromName(client, name) {
554
- return fromPromise((async () => {
555
- const unixName = toUnix(name);
556
- const url = `https://www.wikidot.com/user:info/${unixName}`;
557
- const response = await fetch(url);
558
- if (!response.ok) {
559
- throw new UnexpectedError(`Failed to fetch user info: ${response.status}`);
560
- }
561
- const html = await response.text();
562
- const $ = cheerio.load(html);
563
- if ($("div.error-block").length > 0) {
564
- return null;
565
- }
566
- const userIdElem = $("a.btn.btn-default.btn-xs");
567
- if (userIdElem.length === 0) {
568
- throw new NoElementError("User ID element not found");
569
- }
570
- const href = userIdElem.attr("href");
571
- if (!href) {
572
- throw new NoElementError("User ID href not found");
573
- }
574
- const userId = Number.parseInt(href.split("/").pop() ?? "0", 10);
575
- const nameElem = $("h1.profile-title");
576
- if (nameElem.length === 0) {
577
- throw new NoElementError("User name element not found");
578
- }
579
- const userName = nameElem.text().trim();
580
- return new User(client, {
581
- id: userId,
582
- name: userName,
583
- unixName
584
- });
585
- })(), (error) => {
586
- if (error instanceof NotFoundException || error instanceof NoElementError) {
587
- return error;
588
- }
589
- return new UnexpectedError(`Failed to get user: ${String(error)}`);
590
- });
591
- }
592
- static fromNames(client, names) {
593
- return fromPromise((async () => {
594
- const results = await Promise.all(names.map(async (name) => {
595
- const result = await User.fromName(client, name);
596
- return result.isOk() ? result.value : null;
597
- }));
598
- return new UserCollection(results);
599
- })(), (error) => new UnexpectedError(`Failed to get users: ${String(error)}`));
600
- }
601
- isUser() {
602
- return true;
603
- }
604
- isDeletedUser() {
605
- return false;
606
- }
607
- isAnonymousUser() {
608
- return false;
609
- }
610
- isGuestUser() {
611
- return false;
612
- }
613
- isWikidotUser() {
614
- return false;
615
- }
616
- toString() {
617
- return `User(id=${this.id}, name=${this.name}, unixName=${this.unixName})`;
618
- }
619
- }
620
- export {
621
- User
622
- };
623
-
624
- export { UserCollection, User };
625
-
626
- //# debugId=686B106FBEC9EAF764756E2164756E21
627
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL21vZHVsZS91c2VyL3VzZXIudHMiLCAic3JjL3V0aWwvdGFibGUvY2hhci10YWJsZS50cyIsICJzcmMvdXRpbC9zdHJpbmctdXRpbC50cyIsICJzcmMvbW9kdWxlL3VzZXIvdXNlci1jb2xsZWN0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCAqIGFzIGNoZWVyaW8gZnJvbSAnY2hlZXJpbyc7XG5pbXBvcnQgeyBOb0VsZW1lbnRFcnJvciwgTm90Rm91bmRFeGNlcHRpb24sIFVuZXhwZWN0ZWRFcnJvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9lcnJvcnMnO1xuaW1wb3J0IHsgZnJvbVByb21pc2UsIHR5cGUgV2lraWRvdFJlc3VsdEFzeW5jIH0gZnJvbSAnLi4vLi4vY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IHRvVW5peCB9IGZyb20gJy4uLy4uL3V0aWwvc3RyaW5nLXV0aWwnO1xuaW1wb3J0IHR5cGUgeyBDbGllbnRSZWYgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0VXNlciwgVXNlclR5cGUgfSBmcm9tICcuL2Fic3RyYWN0LXVzZXInO1xuaW1wb3J0IHsgVXNlckNvbGxlY3Rpb24gfSBmcm9tICcuL3VzZXItY29sbGVjdGlvbic7XG5cbi8qKlxuICog44Om44O844K244O844OH44O844K/XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckRhdGEge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgYXZhdGFyVXJsPzogc3RyaW5nIHwgbnVsbDtcbiAgdW5peE5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICog6YCa5bi444Om44O844K244O8XG4gKi9cbmV4cG9ydCBjbGFzcyBVc2VyIGltcGxlbWVudHMgQWJzdHJhY3RVc2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IGNsaWVudDogQ2xpZW50UmVmO1xuXG4gIC8qKiDjg6bjg7zjgrbjg7xJRCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IG51bWJlcjtcblxuICAvKiog44Om44O844K244O85ZCNICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIOihqOekuuWQjSAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheU5hbWU6IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqIOOCouODkOOCv+ODvFVSTCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXZhdGFyVXJsOiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBVTklY5b2i5byP44Gu44Om44O844K244O85ZCNICovXG4gIHB1YmxpYyByZWFkb25seSB1bml4TmFtZTogc3RyaW5nO1xuXG4gIC8qKiBJUOOCouODieODrOOCue+8iOmAmuW4uOODpuODvOOCtuODvOOBp+OBr251bGzvvIkgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiog44Om44O844K244O856iu5YilICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyVHlwZTogVXNlclR5cGUgPSAndXNlcic7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50OiBDbGllbnRSZWYsIGRhdGE6IFVzZXJEYXRhKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy5pZCA9IGRhdGEuaWQ7XG4gICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgIHRoaXMuZGlzcGxheU5hbWUgPSBkYXRhLmRpc3BsYXlOYW1lID8/IG51bGw7XG4gICAgdGhpcy5hdmF0YXJVcmwgPSBkYXRhLmF2YXRhclVybCA/PyBgaHR0cHM6Ly93d3cud2lraWRvdC5jb20vYXZhdGFyLnBocD91c2VyaWQ9JHtkYXRhLmlkfWA7XG4gICAgdGhpcy51bml4TmFtZSA9IGRhdGEudW5peE5hbWUgPz8gdG9Vbml4KGRhdGEubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICog44Om44O844K244O85ZCN44GL44KJ44Om44O844K244O844KS5Y+W5b6X44GZ44KLXG4gICAqIEBwYXJhbSBjbGllbnQgLSDjgq/jg6njgqTjgqLjg7Pjg4hcbiAgICogQHBhcmFtIG5hbWUgLSDjg6bjg7zjgrbjg7zlkI1cbiAgICogQHJldHVybnMg44Om44O844K244O877yI5a2Y5Zyo44GX44Gq44GE5aC05ZCI44GvbnVsbO+8iVxuICAgKi9cbiAgc3RhdGljIGZyb21OYW1lKGNsaWVudDogQ2xpZW50UmVmLCBuYW1lOiBzdHJpbmcpOiBXaWtpZG90UmVzdWx0QXN5bmM8VXNlciB8IG51bGw+IHtcbiAgICByZXR1cm4gZnJvbVByb21pc2UoXG4gICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCB1bml4TmFtZSA9IHRvVW5peChuYW1lKTtcbiAgICAgICAgY29uc3QgdXJsID0gYGh0dHBzOi8vd3d3Lndpa2lkb3QuY29tL3VzZXI6aW5mby8ke3VuaXhOYW1lfWA7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpO1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRFcnJvcihgRmFpbGVkIHRvIGZldGNoIHVzZXIgaW5mbzogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBodG1sID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKGh0bWwpO1xuXG4gICAgICAgIC8vIOWtmOWcqOODgeOCp+ODg+OCr1xuICAgICAgICBpZiAoJCgnZGl2LmVycm9yLWJsb2NrJykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWTlj5blvpdcbiAgICAgICAgY29uc3QgdXNlcklkRWxlbSA9ICQoJ2EuYnRuLmJ0bi1kZWZhdWx0LmJ0bi14cycpO1xuICAgICAgICBpZiAodXNlcklkRWxlbS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTm9FbGVtZW50RXJyb3IoJ1VzZXIgSUQgZWxlbWVudCBub3QgZm91bmQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBocmVmID0gdXNlcklkRWxlbS5hdHRyKCdocmVmJyk7XG4gICAgICAgIGlmICghaHJlZikge1xuICAgICAgICAgIHRocm93IG5ldyBOb0VsZW1lbnRFcnJvcignVXNlciBJRCBocmVmIG5vdCBmb3VuZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVzZXJJZCA9IE51bWJlci5wYXJzZUludChocmVmLnNwbGl0KCcvJykucG9wKCkgPz8gJzAnLCAxMCk7XG5cbiAgICAgICAgLy8gbmFtZeWPluW+l1xuICAgICAgICBjb25zdCBuYW1lRWxlbSA9ICQoJ2gxLnByb2ZpbGUtdGl0bGUnKTtcbiAgICAgICAgaWYgKG5hbWVFbGVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBOb0VsZW1lbnRFcnJvcignVXNlciBuYW1lIGVsZW1lbnQgbm90IGZvdW5kJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXNlck5hbWUgPSBuYW1lRWxlbS50ZXh0KCkudHJpbSgpO1xuXG4gICAgICAgIHJldHVybiBuZXcgVXNlcihjbGllbnQsIHtcbiAgICAgICAgICBpZDogdXNlcklkLFxuICAgICAgICAgIG5hbWU6IHVzZXJOYW1lLFxuICAgICAgICAgIHVuaXhOYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH0pKCksXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTm90Rm91bmRFeGNlcHRpb24gfHwgZXJyb3IgaW5zdGFuY2VvZiBOb0VsZW1lbnRFcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFVuZXhwZWN0ZWRFcnJvcihgRmFpbGVkIHRvIGdldCB1c2VyOiAke1N0cmluZyhlcnJvcil9YCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDopIfmlbDjg6bjg7zjgrbjg7zlkI3jgYvjgonjg6bjg7zjgrbjg7zjgpLlj5blvpfjgZnjgotcbiAgICogQHBhcmFtIGNsaWVudCAtIOOCr+ODqeOCpOOCouODs+ODiFxuICAgKiBAcGFyYW0gbmFtZXMgLSDjg6bjg7zjgrbjg7zlkI3phY3liJdcbiAgICogQHJldHVybnMg44Om44O844K244O844Kz44Os44Kv44K344On44OzXG4gICAqL1xuICBzdGF0aWMgZnJvbU5hbWVzKGNsaWVudDogQ2xpZW50UmVmLCBuYW1lczogc3RyaW5nW10pOiBXaWtpZG90UmVzdWx0QXN5bmM8VXNlckNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gZnJvbVByb21pc2UoXG4gICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgbmFtZXMubWFwKGFzeW5jIChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBVc2VyLmZyb21OYW1lKGNsaWVudCwgbmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmlzT2soKSA/IHJlc3VsdC52YWx1ZSA6IG51bGw7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5ldyBVc2VyQ29sbGVjdGlvbihyZXN1bHRzKTtcbiAgICAgIH0pKCksXG4gICAgICAoZXJyb3IpID0+IG5ldyBVbmV4cGVjdGVkRXJyb3IoYEZhaWxlZCB0byBnZXQgdXNlcnM6ICR7U3RyaW5nKGVycm9yKX1gKVxuICAgICk7XG4gIH1cblxuICAvLyBBYnN0cmFjdFVzZXLlrp/oo4VcbiAgaXNVc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlzRGVsZXRlZFVzZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlzQW5vbnltb3VzVXNlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaXNHdWVzdFVzZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlzV2lraWRvdFVzZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFVzZXIoaWQ9JHt0aGlzLmlkfSwgbmFtZT0ke3RoaXMubmFtZX0sIHVuaXhOYW1lPSR7dGhpcy51bml4TmFtZX0pYDtcbiAgfVxufVxuIiwKICAgICIvKipcbiAqIOeJueauiuiomOWPt+ODu+mdnuiLseiqnuOCouODq+ODleOCoeODmeODg+ODiOOCkuiLseiqnuOCouODq+ODleOCoeODmeODg+ODiOOBq+WkieaPm+OBmeOCi+OBn+OCgeOBruODnuODg+ODlOODs+OCsOODhuODvOODluODq1xuICpcbiAqIOmdnkFTQ0lJ5paH5a2X44KS5a++5b+c44GZ44KLQVNDSUnmloflrZfjgavlpInmj5vjgZnjgovjgZ/jgoHjga7jg57jg4Pjg5Tjg7PjgrDjgpLmj5DkvpvjgZnjgovjgIJcbiAqIOS4u+OBq1VSTOeUn+aIkOOChOODmuODvOOCuOWQjeOBrnVuaXjlvaLlvI/jgbjjga7lpInmj5vmmYLjgavkvb/nlKjjgZXjgozjgovjgIJcbiAqL1xuXG5leHBvcnQgY29uc3Qgc3BlY2lhbENoYXJNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdcXHUwMEMwJzogJ2EnLFxuICAnXFx1MDBDMSc6ICdhJyxcbiAgJ1xcdTAwQzInOiAnYScsXG4gICdcXHUwMEMzJzogJ2EnLFxuICAnXFx1MDBDNCc6ICdhZScsXG4gICdcXHUwMEM1JzogJ2EnLFxuICAnXFx1MDBDNic6ICdhZScsXG4gICdcXHUwMEM3JzogJ2MnLFxuICAnXFx1MDBDOCc6ICdlJyxcbiAgJ1xcdTAwQzknOiAnZScsXG4gICdcXHUwMENBJzogJ2UnLFxuICAnXFx1MDBDQic6ICdlJyxcbiAgJ1xcdTAwQ0MnOiAnaScsXG4gICdcXHUwMENEJzogJ2knLFxuICAnXFx1MDBDRSc6ICdpJyxcbiAgJ1xcdTAwQ0YnOiAnaScsXG4gICdcXHUwMEQwJzogJ2QnLFxuICAnXFx1MDBEMSc6ICduJyxcbiAgJ1xcdTAwRDInOiAnbycsXG4gICdcXHUwMEQzJzogJ28nLFxuICAnXFx1MDBENCc6ICdvJyxcbiAgJ1xcdTAwRDUnOiAnbycsXG4gICdcXHUwMEQ2JzogJ29lJyxcbiAgJ1xcdTAwRDgnOiAnbycsXG4gICdcXHUwMEQ5JzogJ3UnLFxuICAnXFx1MDBEQSc6ICd1JyxcbiAgJ1xcdTAwREInOiAndScsXG4gICdcXHUwMERDJzogJ3VlJyxcbiAgJ1xcdTAwREQnOiAneScsXG4gICdcXHUwMERFJzogJ3QnLFxuICAnXFx1MDBERic6ICdzcycsXG4gICdcXHUwMEUwJzogJ2EnLFxuICAnXFx1MDBFMSc6ICdhJyxcbiAgJ1xcdTAwRTInOiAnYScsXG4gICdcXHUwMEUzJzogJ2EnLFxuICAnXFx1MDBFNCc6ICdhZScsXG4gICdcXHUwMEU1JzogJ2EnLFxuICAnXFx1MDBFNic6ICdhZScsXG4gICdcXHUwMEU3JzogJ2MnLFxuICAnXFx1MDBFOCc6ICdlJyxcbiAgJ1xcdTAwRTknOiAnZScsXG4gICdcXHUwMEVBJzogJ2UnLFxuICAnXFx1MDBFQic6ICdlJyxcbiAgJ1xcdTAwRUMnOiAnaScsXG4gICdcXHUwMEVEJzogJ2knLFxuICAnXFx1MDBFRSc6ICdpJyxcbiAgJ1xcdTAwRUYnOiAnaScsXG4gICdcXHUwMEYwJzogJ2QnLFxuICAnXFx1MDBGMSc6ICduJyxcbiAgJ1xcdTAwRjInOiAnbycsXG4gICdcXHUwMEYzJzogJ28nLFxuICAnXFx1MDBGNCc6ICdvJyxcbiAgJ1xcdTAwRjUnOiAnbycsXG4gICdcXHUwMEY2JzogJ29lJyxcbiAgJ1xcdTAwRjgnOiAnbycsXG4gICdcXHUwMEY5JzogJ3UnLFxuICAnXFx1MDBGQSc6ICd1JyxcbiAgJ1xcdTAwRkInOiAndScsXG4gICdcXHUwMEZDJzogJ3VlJyxcbiAgJ1xcdTAwRkQnOiAneScsXG4gICdcXHUwMEZFJzogJ3QnLFxuICAnXFx1MDBGRic6ICd5JyxcbiAgJ1xcdTAxMDAnOiAnYScsXG4gICdcXHUwMTAxJzogJ2EnLFxuICAnXFx1MDEwMic6ICdhJyxcbiAgJ1xcdTAxMDMnOiAnYScsXG4gICdcXHUwMTA0JzogJ2EnLFxuICAnXFx1MDEwNSc6ICdhJyxcbiAgJ1xcdTAxMDYnOiAnYycsXG4gICdcXHUwMTA3JzogJ2MnLFxuICAnXFx1MDEwOCc6ICdjJyxcbiAgJ1xcdTAxMDknOiAnYycsXG4gICdcXHUwMTBBJzogJ2MnLFxuICAnXFx1MDEwQic6ICdjJyxcbiAgJ1xcdTAxMEMnOiAnYycsXG4gICdcXHUwMTBEJzogJ2MnLFxuICAnXFx1MDEwRSc6ICdkJyxcbiAgJ1xcdTAxMEYnOiAnZCcsXG4gICdcXHUwMTEwJzogJ2QnLFxuICAnXFx1MDExMSc6ICdkJyxcbiAgJ1xcdTAxMTInOiAnZScsXG4gICdcXHUwMTEzJzogJ2UnLFxuICAnXFx1MDExNCc6ICdlJyxcbiAgJ1xcdTAxMTUnOiAnZScsXG4gICdcXHUwMTE2JzogJ2UnLFxuICAnXFx1MDExNyc6ICdlJyxcbiAgJ1xcdTAxMTgnOiAnZScsXG4gICdcXHUwMTE5JzogJ2UnLFxuICAnXFx1MDExQSc6ICdlJyxcbiAgJ1xcdTAxMUInOiAnZScsXG4gICdcXHUwMTFDJzogJ2cnLFxuICAnXFx1MDExRCc6ICdnJyxcbiAgJ1xcdTAxMUUnOiAnZycsXG4gICdcXHUwMTFGJzogJ2cnLFxuICAnXFx1MDEyMCc6ICdnJyxcbiAgJ1xcdTAxMjEnOiAnZycsXG4gICdcXHUwMTIyJzogJ2cnLFxuICAnXFx1MDEyMyc6ICdnJyxcbiAgJ1xcdTAxMjQnOiAnaCcsXG4gICdcXHUwMTI1JzogJ2gnLFxuICAnXFx1MDEyNic6ICdoJyxcbiAgJ1xcdTAxMjcnOiAnaCcsXG4gICdcXHUwMTI4JzogJ2knLFxuICAnXFx1MDEyOSc6ICdpJyxcbiAgJ1xcdTAxMkEnOiAnaScsXG4gICdcXHUwMTJCJzogJ2knLFxuICAnXFx1MDEyQyc6ICdpJyxcbiAgJ1xcdTAxMkQnOiAnaScsXG4gICdcXHUwMTJFJzogJ2knLFxuICAnXFx1MDEyRic6ICdpJyxcbiAgJ1xcdTAxMzAnOiAnaScsXG4gICdcXHUwMTMxJzogJ2knLFxuICAnXFx1MDEzMic6ICdpaicsXG4gICdcXHUwMTMzJzogJ2lqJyxcbiAgJ1xcdTAxMzQnOiAnaicsXG4gICdcXHUwMTM1JzogJ2onLFxuICAnXFx1MDEzNic6ICdrJyxcbiAgJ1xcdTAxMzcnOiAnaycsXG4gICdcXHUwMTM4JzogJ2snLFxuICAnXFx1MDEzOSc6ICdsJyxcbiAgJ1xcdTAxM0EnOiAnbCcsXG4gICdcXHUwMTNCJzogJ2wnLFxuICAnXFx1MDEzQyc6ICdsJyxcbiAgJ1xcdTAxM0QnOiAnbCcsXG4gICdcXHUwMTNFJzogJ2wnLFxuICAnXFx1MDEzRic6ICdsJyxcbiAgJ1xcdTAxNDAnOiAnbCcsXG4gICdcXHUwMTQxJzogJ2wnLFxuICAnXFx1MDE0Mic6ICdsJyxcbiAgJ1xcdTAxNDMnOiAnbicsXG4gICdcXHUwMTQ0JzogJ24nLFxuICAnXFx1MDE0NSc6ICduJyxcbiAgJ1xcdTAxNDYnOiAnbicsXG4gICdcXHUwMTQ3JzogJ24nLFxuICAnXFx1MDE0OCc6ICduJyxcbiAgJ1xcdTAxNDknOiAnbicsXG4gICdcXHUwMTRBJzogJ24nLFxuICAnXFx1MDE0Qic6ICduJyxcbiAgJ1xcdTAxNEMnOiAnbycsXG4gICdcXHUwMTREJzogJ28nLFxuICAnXFx1MDE0RSc6ICdvJyxcbiAgJ1xcdTAxNEYnOiAnbycsXG4gICdcXHUwMTUwJzogJ28nLFxuICAnXFx1MDE1MSc6ICdvJyxcbiAgJ1xcdTAxNTInOiAnb2UnLFxuICAnXFx1MDE1Myc6ICdvZScsXG4gICdcXHUwMTU0JzogJ3InLFxuICAnXFx1MDE1NSc6ICdyJyxcbiAgJ1xcdTAxNTYnOiAncicsXG4gICdcXHUwMTU3JzogJ3InLFxuICAnXFx1MDE1OCc6ICdyJyxcbiAgJ1xcdTAxNTknOiAncicsXG4gICdcXHUwMTVBJzogJ3MnLFxuICAnXFx1MDE1Qic6ICdzJyxcbiAgJ1xcdTAxNUMnOiAncycsXG4gICdcXHUwMTVEJzogJ3MnLFxuICAnXFx1MDE1RSc6ICdzJyxcbiAgJ1xcdTAxNUYnOiAncycsXG4gICdcXHUwMTYwJzogJ3MnLFxuICAnXFx1MDE2MSc6ICdzJyxcbiAgJ1xcdTAxNjInOiAndCcsXG4gICdcXHUwMTYzJzogJ3QnLFxuICAnXFx1MDE2NCc6ICd0JyxcbiAgJ1xcdTAxNjUnOiAndCcsXG4gICdcXHUwMTY2JzogJ3QnLFxuICAnXFx1MDE2Nyc6ICd0JyxcbiAgJ1xcdTAxNjgnOiAndScsXG4gICdcXHUwMTY5JzogJ3UnLFxuICAnXFx1MDE2QSc6ICd1JyxcbiAgJ1xcdTAxNkInOiAndScsXG4gICdcXHUwMTZDJzogJ3UnLFxuICAnXFx1MDE2RCc6ICd1JyxcbiAgJ1xcdTAxNkUnOiAndScsXG4gICdcXHUwMTZGJzogJ3UnLFxuICAnXFx1MDE3MCc6ICd1JyxcbiAgJ1xcdTAxNzEnOiAndScsXG4gICdcXHUwMTcyJzogJ3UnLFxuICAnXFx1MDE3Myc6ICd1JyxcbiAgJ1xcdTAxNzQnOiAndycsXG4gICdcXHUwMTc1JzogJ3cnLFxuICAnXFx1MDE3Nic6ICd5JyxcbiAgJ1xcdTAxNzcnOiAneScsXG4gICdcXHUwMTc4JzogJ3knLFxuICAnXFx1MDE3OSc6ICd6JyxcbiAgJ1xcdTAxN0EnOiAneicsXG4gICdcXHUwMTdCJzogJ3onLFxuICAnXFx1MDE3Qyc6ICd6JyxcbiAgJ1xcdTAxN0QnOiAneicsXG4gICdcXHUwMTdFJzogJ3onLFxuICAnXFx1MDE3Ric6ICdzcycsXG4gICdcXHUwMTkxJzogJ2YnLFxuICAnXFx1MDE5Mic6ICdmJyxcbiAgJ1xcdTAyMTgnOiAncycsXG4gICdcXHUwMjE5JzogJ3MnLFxuICAnXFx1MDIxQSc6ICd0JyxcbiAgJ1xcdTAyMUInOiAndCcsXG4gICdcXHUwMzg2JzogJ2EnLFxuICAnXFx1MDM4OCc6ICdlJyxcbiAgJ1xcdTAzODknOiAnaScsXG4gICdcXHUwMzhBJzogJ2knLFxuICAnXFx1MDM4Qyc6ICdvJyxcbiAgJ1xcdTAzOEUnOiAneScsXG4gICdcXHUwMzhGJzogJ28nLFxuICAnXFx1MDM5MCc6ICdpJyxcbiAgJ1xcdTAzOTEnOiAnYScsXG4gICdcXHUwMzkyJzogJ3YnLFxuICAnXFx1MDM5Myc6ICdnJyxcbiAgJ1xcdTAzOTQnOiAnZCcsXG4gICdcXHUwMzk1JzogJ2UnLFxuICAnXFx1MDM5Nic6ICd6JyxcbiAgJ1xcdTAzOTcnOiAnaScsXG4gICdcXHUwMzk4JzogJ3RoJyxcbiAgJ1xcdTAzOTknOiAnaScsXG4gICdcXHUwMzlBJzogJ2snLFxuICAnXFx1MDM5Qic6ICdsJyxcbiAgJ1xcdTAzOUMnOiAnbScsXG4gICdcXHUwMzlEJzogJ24nLFxuICAnXFx1MDM5RSc6ICd4JyxcbiAgJ1xcdTAzOUYnOiAnbycsXG4gICdcXHUwM0EwJzogJ3AnLFxuICAnXFx1MDNBMSc6ICdyJyxcbiAgJ1xcdTAzQTMnOiAncycsXG4gICdcXHUwM0E0JzogJ3QnLFxuICAnXFx1MDNBNSc6ICd5JyxcbiAgJ1xcdTAzQTYnOiAnZicsXG4gICdcXHUwM0E3JzogJ2NoJyxcbiAgJ1xcdTAzQTgnOiAncHMnLFxuICAnXFx1MDNBOSc6ICdvJyxcbiAgJ1xcdTAzQUEnOiAnaScsXG4gICdcXHUwM0FCJzogJ3knLFxuICAnXFx1MDNBQyc6ICdhJyxcbiAgJ1xcdTAzQUQnOiAnZScsXG4gICdcXHUwM0FFJzogJ2knLFxuICAnXFx1MDNBRic6ICdpJyxcbiAgJ1xcdTAzQjAnOiAneScsXG4gICdcXHUwM0IxJzogJ2EnLFxuICAnXFx1MDNCMic6ICd2JyxcbiAgJ1xcdTAzQjMnOiAnZycsXG4gICdcXHUwM0I0JzogJ2QnLFxuICAnXFx1MDNCNSc6ICdlJyxcbiAgJ1xcdTAzQjYnOiAneicsXG4gICdcXHUwM0I3JzogJ2knLFxuICAnXFx1MDNCOCc6ICd0aCcsXG4gICdcXHUwM0I5JzogJ2knLFxuICAnXFx1MDNCQSc6ICdrJyxcbiAgJ1xcdTAzQkInOiAnbCcsXG4gICdcXHUwM0JDJzogJ20nLFxuICAnXFx1MDNCRCc6ICduJyxcbiAgJ1xcdTAzQkUnOiAneCcsXG4gICdcXHUwM0JGJzogJ28nLFxuICAnXFx1MDNDMCc6ICdwJyxcbiAgJ1xcdTAzQzEnOiAncicsXG4gICdcXHUwM0MyJzogJ3MnLFxuICAnXFx1MDNDMyc6ICdzJyxcbiAgJ1xcdTAzQzQnOiAndCcsXG4gICdcXHUwM0M1JzogJ3knLFxuICAnXFx1MDNDNic6ICdmJyxcbiAgJ1xcdTAzQzcnOiAnY2gnLFxuICAnXFx1MDNDOCc6ICdwcycsXG4gICdcXHUwM0M5JzogJ28nLFxuICAnXFx1MDNDQSc6ICdpJyxcbiAgJ1xcdTAzQ0InOiAneScsXG4gICdcXHUwM0NDJzogJ28nLFxuICAnXFx1MDNDRCc6ICd5JyxcbiAgJ1xcdTAzQ0UnOiAnbycsXG4gICdcXHUwM0QxJzogJ3RoJyxcbiAgJ1xcdTA0MDEnOiAnZScsXG4gICdcXHUwNDAyJzogJ2QnLFxuICAnXFx1MDQwMyc6ICdnJyxcbiAgJ1xcdTA0MDQnOiAnZScsXG4gICdcXHUwNDA1JzogJ3onLFxuICAnXFx1MDQwNic6ICdpJyxcbiAgJ1xcdTA0MDcnOiAnaScsXG4gICdcXHUwNDA4JzogJ2onLFxuICAnXFx1MDQwOSc6ICdsJyxcbiAgJ1xcdTA0MEEnOiAnbicsXG4gICdcXHUwNDBCJzogJ2MnLFxuICAnXFx1MDQwQyc6ICdrJyxcbiAgJ1xcdTA0MEUnOiAndScsXG4gICdcXHUwNDBGJzogJ2QnLFxuICAnXFx1MDQxMCc6ICdhJyxcbiAgJ1xcdTA0MTEnOiAnYicsXG4gICdcXHUwNDEyJzogJ3YnLFxuICAnXFx1MDQxMyc6ICdnJyxcbiAgJ1xcdTA0MTQnOiAnZCcsXG4gICdcXHUwNDE1JzogJ2UnLFxuICAnXFx1MDQxNic6ICd6JyxcbiAgJ1xcdTA0MTcnOiAneicsXG4gICdcXHUwNDE4JzogJ2knLFxuICAnXFx1MDQxOSc6ICdqJyxcbiAgJ1xcdTA0MUEnOiAnaycsXG4gICdcXHUwNDFCJzogJ2wnLFxuICAnXFx1MDQxQyc6ICdtJyxcbiAgJ1xcdTA0MUQnOiAnbicsXG4gICdcXHUwNDFFJzogJ28nLFxuICAnXFx1MDQxRic6ICdwJyxcbiAgJ1xcdTA0MjAnOiAncicsXG4gICdcXHUwNDIxJzogJ3MnLFxuICAnXFx1MDQyMic6ICd0JyxcbiAgJ1xcdTA0MjMnOiAndScsXG4gICdcXHUwNDI0JzogJ2YnLFxuICAnXFx1MDQyNSc6ICdoJyxcbiAgJ1xcdTA0MjYnOiAnYycsXG4gICdcXHUwNDI3JzogJ2MnLFxuICAnXFx1MDQyOCc6ICdzJyxcbiAgJ1xcdTA0MjknOiAncycsXG4gICdcXHUwNDJCJzogJ3knLFxuICAnXFx1MDQyRCc6ICdlJyxcbiAgJ1xcdTA0MkUnOiAndScsXG4gICdcXHUwNDJGJzogJ2EnLFxuICAnXFx1MDQzMCc6ICdhJyxcbiAgJ1xcdTA0MzEnOiAnYicsXG4gICdcXHUwNDMyJzogJ3YnLFxuICAnXFx1MDQzMyc6ICdnJyxcbiAgJ1xcdTA0MzQnOiAnZCcsXG4gICdcXHUwNDM1JzogJ2UnLFxuICAnXFx1MDQzNic6ICd6JyxcbiAgJ1xcdTA0MzcnOiAneicsXG4gICdcXHUwNDM4JzogJ2knLFxuICAnXFx1MDQzOSc6ICdqJyxcbiAgJ1xcdTA0M0EnOiAnaycsXG4gICdcXHUwNDNCJzogJ2wnLFxuICAnXFx1MDQzQyc6ICdtJyxcbiAgJ1xcdTA0M0QnOiAnbicsXG4gICdcXHUwNDNFJzogJ28nLFxuICAnXFx1MDQzRic6ICdwJyxcbiAgJ1xcdTA0NDAnOiAncicsXG4gICdcXHUwNDQxJzogJ3MnLFxuICAnXFx1MDQ0Mic6ICd0JyxcbiAgJ1xcdTA0NDMnOiAndScsXG4gICdcXHUwNDQ0JzogJ2YnLFxuICAnXFx1MDQ0NSc6ICdoJyxcbiAgJ1xcdTA0NDYnOiAnYycsXG4gICdcXHUwNDQ3JzogJ2MnLFxuICAnXFx1MDQ0OCc6ICdzJyxcbiAgJ1xcdTA0NDknOiAncycsXG4gICdcXHUwNDRCJzogJ3knLFxuICAnXFx1MDQ0RCc6ICdlJyxcbiAgJ1xcdTA0NEUnOiAndScsXG4gICdcXHUwNDRGJzogJ2EnLFxuICAnXFx1MDQ1MSc6ICdlJyxcbiAgJ1xcdTA0NTInOiAnZCcsXG4gICdcXHUwNDUzJzogJ2cnLFxuICAnXFx1MDQ1NCc6ICdlJyxcbiAgJ1xcdTA0NTUnOiAneicsXG4gICdcXHUwNDU2JzogJ2knLFxuICAnXFx1MDQ1Nyc6ICdpJyxcbiAgJ1xcdTA0NTgnOiAnaicsXG4gICdcXHUwNDU5JzogJ2wnLFxuICAnXFx1MDQ1QSc6ICduJyxcbiAgJ1xcdTA0NUInOiAnYycsXG4gICdcXHUwNDVDJzogJ2snLFxuICAnXFx1MDQ1RSc6ICd1JyxcbiAgJ1xcdTA0NUYnOiAnZCcsXG4gICdcXHUwNDYyJzogJ2UnLFxuICAnXFx1MDQ2Myc6ICdlJyxcbiAgJ1xcdTA0NkEnOiAnYScsXG4gICdcXHUwNDZCJzogJ2EnLFxuICAnXFx1MDQ3Mic6ICdmJyxcbiAgJ1xcdTA0NzMnOiAnZicsXG4gICdcXHUwNDc0JzogJ3knLFxuICAnXFx1MDQ3NSc6ICd5JyxcbiAgJ1xcdTA0OTAnOiAnZycsXG4gICdcXHUwNDkxJzogJ2cnLFxuICAnXFx1MDQ5Mic6ICdnJyxcbiAgJ1xcdTA0OTMnOiAnZycsXG4gICdcXHUwNDk0JzogJ2cnLFxuICAnXFx1MDQ5NSc6ICdnJyxcbiAgJ1xcdTA0OTYnOiAneicsXG4gICdcXHUwNDk3JzogJ3onLFxuICAnXFx1MDQ5QSc6ICdrJyxcbiAgJ1xcdTA0OUInOiAnaycsXG4gICdcXHUwNDlDJzogJ2snLFxuICAnXFx1MDQ5RCc6ICdrJyxcbiAgJ1xcdTA0OUUnOiAnaycsXG4gICdcXHUwNDlGJzogJ2snLFxuICAnXFx1MDRBMCc6ICdrJyxcbiAgJ1xcdTA0QTEnOiAnaycsXG4gICdcXHUwNEEyJzogJ24nLFxuICAnXFx1MDRBMyc6ICduJyxcbiAgJ1xcdTA0QTQnOiAnbicsXG4gICdcXHUwNEE1JzogJ24nLFxuICAnXFx1MDRBNic6ICdwJyxcbiAgJ1xcdTA0QTcnOiAncCcsXG4gICdcXHUwNEE4JzogJ28nLFxuICAnXFx1MDRBOSc6ICdvJyxcbiAgJ1xcdTA0QUEnOiAncycsXG4gICdcXHUwNEFCJzogJ3MnLFxuICAnXFx1MDRBQyc6ICd0JyxcbiAgJ1xcdTA0QUQnOiAndCcsXG4gICdcXHUwNEFFJzogJ3UnLFxuICAnXFx1MDRBRic6ICd1JyxcbiAgJ1xcdTA0QjAnOiAndScsXG4gICdcXHUwNEIxJzogJ3UnLFxuICAnXFx1MDRCMic6ICdoJyxcbiAgJ1xcdTA0QjMnOiAnaCcsXG4gICdcXHUwNEI0JzogJ2MnLFxuICAnXFx1MDRCNSc6ICdjJyxcbiAgJ1xcdTA0QjYnOiAnYycsXG4gICdcXHUwNEI3JzogJ2MnLFxuICAnXFx1MDRCOCc6ICdjJyxcbiAgJ1xcdTA0QjknOiAnYycsXG4gICdcXHUwNEJBJzogJ2gnLFxuICAnXFx1MDRCQic6ICdoJyxcbiAgJ1xcdTA0QkMnOiAnYycsXG4gICdcXHUwNEJEJzogJ2MnLFxuICAnXFx1MDRCRSc6ICdjJyxcbiAgJ1xcdTA0QkYnOiAnYycsXG4gICdcXHUwNEMxJzogJ3onLFxuICAnXFx1MDRDMic6ICd6JyxcbiAgJ1xcdTA0QzMnOiAnaycsXG4gICdcXHUwNEM0JzogJ2snLFxuICAnXFx1MDRDNSc6ICdsJyxcbiAgJ1xcdTA0QzYnOiAnbCcsXG4gICdcXHUwNEM3JzogJ24nLFxuICAnXFx1MDRDOCc6ICduJyxcbiAgJ1xcdTA0QzknOiAnbicsXG4gICdcXHUwNENBJzogJ24nLFxuICAnXFx1MDRDQic6ICdjJyxcbiAgJ1xcdTA0Q0MnOiAnYycsXG4gICdcXHUwNEQwJzogJ2EnLFxuICAnXFx1MDREMSc6ICdhJyxcbiAgJ1xcdTA0RDInOiAnYScsXG4gICdcXHUwNEQzJzogJ2EnLFxuICAnXFx1MDRENCc6ICdhZScsXG4gICdcXHUwNEQ1JzogJ2FlJyxcbiAgJ1xcdTA0RDYnOiAnZScsXG4gICdcXHUwNEQ3JzogJ2UnLFxuICAnXFx1MDREOCc6ICdhJyxcbiAgJ1xcdTA0RDknOiAnYScsXG4gICdcXHUwNERBJzogJ2EnLFxuICAnXFx1MDREQic6ICdhJyxcbiAgJ1xcdTA0REMnOiAneicsXG4gICdcXHUwNEREJzogJ3onLFxuICAnXFx1MDRERSc6ICd6JyxcbiAgJ1xcdTA0REYnOiAneicsXG4gICdcXHUwNEUwJzogJ3onLFxuICAnXFx1MDRFMSc6ICd6JyxcbiAgJ1xcdTA0RTInOiAnaScsXG4gICdcXHUwNEUzJzogJ2knLFxuICAnXFx1MDRFNCc6ICdpJyxcbiAgJ1xcdTA0RTUnOiAnaScsXG4gICdcXHUwNEU2JzogJ28nLFxuICAnXFx1MDRFNyc6ICdvJyxcbiAgJ1xcdTA0RTgnOiAnbycsXG4gICdcXHUwNEU5JzogJ28nLFxuICAnXFx1MDRFQSc6ICdvJyxcbiAgJ1xcdTA0RUInOiAnbycsXG4gICdcXHUwNEVFJzogJ3UnLFxuICAnXFx1MDRFRic6ICd1JyxcbiAgJ1xcdTA0RjAnOiAndScsXG4gICdcXHUwNEYxJzogJ3UnLFxuICAnXFx1MDRGMic6ICd1JyxcbiAgJ1xcdTA0RjMnOiAndScsXG4gICdcXHUwNEY0JzogJ2MnLFxuICAnXFx1MDRGNSc6ICdjJyxcbiAgJ1xcdTA0RjgnOiAneScsXG4gICdcXHUwNEY5JzogJ3knLFxuICAnXFx1MDUwQSc6ICduJyxcbiAgJ1xcdTA1MEInOiAnbicsXG4gICdcXHUwNTBFJzogJ3QnLFxuICAnXFx1MDUwRic6ICd0JyxcbiAgJ1xcdTA1MUEnOiAncScsXG4gICdcXHUwNTFCJzogJ3EnLFxuICAnXFx1MDUxQyc6ICd3JyxcbiAgJ1xcdTA1MUQnOiAndycsXG59O1xuIiwKICAgICIvKipcbiAqIOaWh+Wtl+WIl+ODpuODvOODhuOCo+ODquODhuOCo1xuICovXG5cbmltcG9ydCB7IHNwZWNpYWxDaGFyTWFwIH0gZnJvbSAnLi90YWJsZS9jaGFyLXRhYmxlJztcblxuLyoqXG4gKiDmloflrZfliJfjgpJVbml45b2i5byP44Gr5aSJ5o+b44GZ44KLXG4gKlxuICogbGVnYWN5IHdpa2lkb3Tjga7lrp/oo4XjgavlkIjjgo/jgZvjgZ/lpInmj5vjgpLooYzjgYbjgIJcbiAqIC0g54m55q6K5paH5a2X44KSQVNDSUnmloflrZfjgavlpInmj5tcbiAqIC0g5bCP5paH5a2X44Gr5aSJ5o+bXG4gKiAtIEFTQ0lJ5Lul5aSW44Gu5paH5a2X44KS44OP44Kk44OV44Oz44Gr5aSJ5o+bXG4gKiAtIOmAo+e2muOBmeOCi+ODj+OCpOODleODsy/jgrPjg63jg7PjgpLljZjkuIDjgatcbiAqIC0g5YWI6aCtL+acq+WwvuOBruODj+OCpOODleODsy/jgrPjg63jg7PjgpLliYrpmaRcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0U3RyIC0g5aSJ5o+b5a++6LGh44Gu5paH5a2X5YiXXG4gKiBAcmV0dXJucyDlpInmj5vjgZXjgozjgZ/mloflrZfliJdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5peCh0YXJnZXRTdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIOeJueauiuaWh+Wtl+OBruWkieaPm1xuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGZvciAoY29uc3QgY2hhciBvZiB0YXJnZXRTdHIpIHtcbiAgICBjb25zdCBtYXBwZWQgPSBzcGVjaWFsQ2hhck1hcFtjaGFyXTtcbiAgICByZXN1bHQgKz0gbWFwcGVkICE9PSB1bmRlZmluZWQgPyBtYXBwZWQgOiBjaGFyO1xuICB9XG5cbiAgLy8gbG93ZXJjYXNl44G444Gu5aSJ5o+bXG4gIHJlc3VsdCA9IHJlc3VsdC50b0xvd2VyQ2FzZSgpO1xuXG4gIC8vIGFzY2lp5Lul5aSW44Gu5paH5a2X44KS5YmK6ZmkXG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9bXmEtejAtOVxcLTpfXS9nLCAnLScpO1xuICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvXl8vLCAnOl8nKTtcbiAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLyg/PCE6KV8vZywgJy0nKTtcbiAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL14tKi8sICcnKTtcbiAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLy0qJC8sICcnKTtcbiAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLy17Mix9L2csICctJyk7XG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC86ezIsfS9nLCAnOicpO1xuICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvOi0vZywgJzonKTtcbiAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLy06L2csICc6Jyk7XG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9fLS9nLCAnXycpO1xuICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvLV8vZywgJ18nKTtcblxuICAvLyDlhYjpoK3jgajmnKvlsL7jga4644KS5YmK6ZmkXG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9eOi8sICcnKTtcbiAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoLzokLywgJycpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogU3RyaW5nVXRpbOOCr+ODqeOCue+8iFB5dGhvbuS6kuaPm++8iVxuICovXG5leHBvcnQgY29uc3QgU3RyaW5nVXRpbCA9IHtcbiAgdG9Vbml4LFxufTtcbiIsCiAgICAiaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi91c2VyJztcblxuLyoqXG4gKiDjg6bjg7zjgrbjg7zjgrPjg6zjgq/jgrfjg6fjg7NcbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXk8VXNlciB8IG51bGw+IHtcbiAgY29uc3RydWN0b3IodXNlcnM/OiAoVXNlciB8IG51bGwpW10pIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICh1c2Vycykge1xuICAgICAgdGhpcy5wdXNoKC4uLnVzZXJzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog44Om44O844K244O85ZCN44Gn5qSc57SiXG4gICAqIEBwYXJhbSBuYW1lIC0g44Om44O844K244O85ZCNXG4gICAqIEByZXR1cm5zIOODpuODvOOCtuODvOOBvuOBn+OBr3VuZGVmaW5lZFxuICAgKi9cbiAgZmluZEJ5TmFtZShuYW1lOiBzdHJpbmcpOiBVc2VyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBsb3dlck5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgZm9yIChjb25zdCB1c2VyIG9mIHRoaXMpIHtcbiAgICAgIGlmICh1c2VyICYmIHVzZXIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBsb3dlck5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHVzZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICog44Om44O844K244O8SUTjgafmpJzntKJcbiAgICogQHBhcmFtIGlkIC0g44Om44O844K244O8SURcbiAgICogQHJldHVybnMg44Om44O844K244O844G+44Gf44GvdW5kZWZpbmVkXG4gICAqL1xuICBmaW5kQnlJZChpZDogbnVtYmVyKTogVXNlciB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChjb25zdCB1c2VyIG9mIHRoaXMpIHtcbiAgICAgIGlmICh1c2VyICYmIHVzZXIuaWQgPT09IGlkKSB7XG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIG51bGzjgpLpmaTjgYTjgZ/jg6bjg7zjgrbjg7zjga7jgb/jgpLov5TjgZlcbiAgICogQHJldHVybnMgbnVsbOS7peWkluOBruODpuODvOOCtuODvOmFjeWIl1xuICAgKi9cbiAgZmlsdGVyTm9uTnVsbCgpOiBVc2VyW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigodXNlcik6IHVzZXIgaXMgVXNlciA9PiB1c2VyICE9PSBudWxsKTtcbiAgfVxufVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7QUFBQTs7O0FDT08sSUFBTSxpQkFBeUM7QUFBQSxFQUNwRCxLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFVO0FBQUEsRUFDVixLQUFV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