/
arc_twitter.txt
1685 lines (1683 loc) · 121 KB
/
arc_twitter.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# arc_twitter v4.5.0
# <a href="http://www.twitter.com">Twitter</a> for Textpattern
# Andy Carter
# http://andy-carter.com/
# ......................................................................
# This is a plugin for Textpattern - http://textpattern.com/
# To install: textpattern > admin > plugins
# Paste the following text into the 'Install plugin' box:
# ......................................................................
YToxMTp7czo0OiJuYW1lIjtzOjExOiJhcmNfdHdpdHRlciI7czo3OiJ2ZXJzaW9uIjtzOjU6
IjQuNS4wIjtzOjY6ImF1dGhvciI7czoxMToiQW5keSBDYXJ0ZXIiO3M6MTA6ImF1dGhvcl91
cmkiO3M6MjM6Imh0dHA6Ly9hbmR5LWNhcnRlci5jb20vIjtzOjExOiJkZXNjcmlwdGlvbiI7
czo2MDoiPGEgaHJlZj0iaHR0cDovL3d3dy50d2l0dGVyLmNvbSI+VHdpdHRlcjwvYT4gZm9y
IFRleHRwYXR0ZXJuIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NDoidHlwZSI7czoxOiI1Ijtz
OjU6ImZsYWdzIjtzOjE6IjMiO3M6NDoiaGVscCI7czoxNTM2NjoiCTxoMT48c3BhbiBjbGFz
cz0iY2FwcyI+VFhQPC9zcGFuPiBUd2VldCAoYXJjX3R3aXR0ZXIgZm9yIFRleHRwYXR0ZXJu
KTwvaDE+CgoJPHA+PHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gVHdlZXQgcHJvdmlk
ZXMgYWNjZXNzIHRvIHlvdXIgVHdpdHRlciBhY2NvdW50IHRocm91Z2ggYm90aCB0aGUgYWRt
aW4gaW50ZXJmYWNlIGFuZCB0aGUgcHVibGljIHNpZGUgb2YgeW91ciBzaXRlLiBVcGRhdGUg
VHdpdHRlciB3aGVuIHlvdSBwb3N0IGEgbmV3IGFydGljbGUgKHdpdGggYXJ0aWNsZS1ieS1h
cnRpY2xlIG9wdCBvdXQgb3B0aW9uKSwgdXBkYXRlIGFuZCB2aWV3IHlvdXIgVHdpdHRlciBm
ZWVkIHRocm91Z2ggdGhlIGFkbWluIFR3aXR0ZXIgdGFiLCBhbmQgZGlzcGxheSBUd2l0dGVy
IGZlZWRzIG9uIHlvdXIgc2l0ZS48L3A+CgoJPGgyPlRhYmxlIG9mIGNvbnRlbnRzPC9oMj4K
Cgk8b2w+CgkJPGxpPjxhIGhyZWY9IiNhcmNfdHdpdHRlcl9yZXF1aXJlbWVudHMiPlBsdWdp
biByZXF1aXJlbWVudHM8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2FyY190d2l0dGVyX2lu
c3RhbGxhdGlvbiI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2E+PC9saT4KCQk8
bGk+PGEgaHJlZj0iI2FyY190d2l0dGVyX3RhZ3MiPlRhZ3M8L2E+PC9saT4KCQk8bGk+PGEg
aHJlZj0iI2FyY190d2l0dGVyX2NhY2hpbmciPkNhY2hpbmc8L2E+PC9saT4KCQk8bGk+PGEg
aHJlZj0iI2FyY190d2l0dGVyX3ByZWZzIj5QcmVmZXJlbmNlczwvYT48L2xpPgoJCTxsaT48
YSBocmVmPSIjYXJjX3R3aXR0ZXJfYXJ0aWNsZSI+VHdlZXRpbmcgYXJ0aWNsZXM8L2E+PC9s
aT4KCQk8bGk+PGEgaHJlZj0iI2FyY190d2l0dGVyX2FkbWluIj5UaGUgVHdpdHRlciB0YWI8
L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2FyY190d2l0dGVyX2F1dGhvciI+QXV0aG9yPC9h
PjwvbGk+Cgk8L29sPgoKCTxoMiBpZD0iYXJjX3R3aXR0ZXJfcmVxdWlyZW1lbnRzIj5QbHVn
aW4gcmVxdWlyZW1lbnRzPC9oMj4KCgk8cD5hcmNfdHdpdHRlciYjODIxNztzIG1pbnVtdW0g
cmVxdWlyZW1lbnRzOjwvcD4KCgk8dWw+CgkJPGxpPlRleHRwYXR0ZXJuIDQuNis8L2xpPgoJ
CTxsaT48c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiA1IGFuZCBjVVJMPC9saT4KCTwv
dWw+CgoJPGgyIGlkPSJhcmNfdHdpdHRlcl9pbnN0YWxsYXRpb24iPkluc3RhbGxhdGlvbiAv
IFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cD5UbyBpbnN0YWxsIGdvIHRvIHRoZSAmIzgyMTY7
cGx1Z2lucyYjODIxNzsgdGFiIHVuZGVyICYjODIxNjthZG1pbiYjODIxNzsgYW5kIHBhc3Rl
IHRoZSBwbHVnaW4gY29kZSBpbnRvIHRoZSAmIzgyMTY7SW5zdGFsbCBwbHVnaW4mIzgyMTc7
IGJveCwgJiM4MjE2O3VwbG9hZCYjODIxNzsgYW5kIHRoZW4gJiM4MjE2O2luc3RhbGwmIzgy
MTc7LiBUaGUgcGx1Z2luIHdpbGwgYmUgYXV0b21hdGljYWxseSBhY3RpdmF0ZWQuPC9wPgoK
CTxwPkJlZm9yZSB5b3Ugc3RhcnQgdXNpbmcgPHNwYW4gY2xhc3M9InRhZyI+YXJjX3R3aXR0
ZXI8L3NwYW4+IHlvdSB3aWxsIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNhY2hlIGRp
cmVjdG9yeSBpcyB3cml0YWJsZS4gU2VlIHRoZSAmIzgyMTY7Q2FjaGluZyYjODIxNzsgc3Vi
c2VjdGlvbiBiZWxvdyBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi48L3A+CgoJPHA+WW91IHdp
bGwgbmVlZCB0byBhc3NvY2lhdGUgeW91ciBzaXRlIHdpdGggYSBUd2l0dGVyIGFjY291bnQg
YnkgY29ubmVjdGluZyB0byBUd2l0dGVyIGZyb20gdGhlIHBsdWdpbiYjODIxNztzIG9wdGlv
bnMgc2NyZWVuLiBDbGljayBvbiB0aGUgbGluayB0byBjb25uZWN0IHRvIFR3aXR0ZXIsIHlv
dSB3aWxsIGJlIGFza2VkIHRvIGxvZ2luIHRvIFR3aXR0ZXIsIGNsaWNraW5nIHRoaXMgbGlu
ayB3aWxsIHRlbXBvcmFyaWx5IHRha2UgeW91IHRvIHRoZSBUd2l0dGVyIHNpdGUgd2hlcmUg
eW91IHdpbGwgYmUgYXNrZWQgdG8gbG9naW4gYW5kIGFwcHJvdmUgYWNjZXNzIGZvciA8c3Bh
biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBUd2VldCB0byByZWFkIGFuZCB3cml0ZSB0byB5
b3VyIFR3aXR0ZXIgYWNjb3VudC4gSWYgYWxsIGlzIHN1Y2Nlc3NmdWwgeW91IHdpbGwgYmUg
cmV0dXJuZWQgdG8gdGhlIG9wdGlvbnMgc2NyZWVuIGFuZCB5b3VyIHVzZXIgbmFtZSB3aWxs
IGFwcGVhci48L3A+CgoJPHA+QXQgYW55IHRpbWUgeW91IGNhbiBkaXNhc3NvY2lhdGUgeW91
ciBUd2l0dGVyIGFjY291bnQgd2l0aCA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBU
d2VldCB2aWEgeW91ciBUd2l0dGVyIGFjY291bnQgcHJlZmVyZW5jZXMgb24gdGhlIDxhIGhy
ZWY9Imh0dHA6Ly93d3cudHdpdHRlci5jb20iPlR3aXR0ZXIgd2Vic2l0ZTwvYT4uPC9wPgoK
CTxwPlRvIHVuaW5zdGFsbCA8c3BhbiBjbGFzcz0idGFnIj5hcmNfdHdpdHRlcjwvc3Bhbj4g
c2ltcGx5IGRlbGV0ZSB0aGUgcGx1Z2luIGZyb20gdGhlICYjODIxNjtQbHVnaW5zJiM4MjE3
OyB0YWIuICBUaGlzIHdpbGwgcmVtb3ZlIHRoZSBwbHVnaW4gY29kZSwgZGVsZXRlIHJlbGF0
ZWQgcHJlZmVyZW5jZXMgYW5kIGRyb3AgdGhlIDxzcGFuIGNsYXNzPSJ0YWciPmFyY190d2l0
dGVyPC9zcGFuPiB0YWJsZSBmcm9tIHlvdXIgVGV4dHBhdHRlcm4gZGF0YWJhc2UuPC9wPgoK
CTxoMiBpZD0iYXJjX3R3aXR0ZXJfdGFncyI+VGFnczwvaDI+CgoJPGgzIGlkPSJhcmNfdHdp
dHRlcl90YWciPmFyY190d2l0dGVyPC9oMz4KCjxwcmU+PGNvZGU+Jmx0O3R4cDogYXJjX3R3
aXR0ZXIgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxoND5BdHRyaWJ1dGVzPC9oND4KCgk8dWw+
CgkJPGxpPjxlbT51c2VyPC9lbT4gJiM4MjEyOyBUd2l0dGVyIHVzZXIgbmFtZS4gRGVmYXVs
dDogPGVtPmFyY190d2l0dGVyIHVzZXJuYW1lPC9lbT4uPC9saT4KCQk8bGk+PGVtPnJldHdl
ZXRzPC9lbT4gJiM4MjEyOyAxIHRvIGluY2x1ZGUgcmV0d2VldHMsIDAgdG8gZXhjbHVkZSB0
aGVtIGZyb20gdGhlIGZlZWQuIERlZmF1bHQ6ICYjODIxNjswJiM4MjE3Oy48L2xpPgoJCTxs
aT48ZW0+cmVwbGllczwvZW0+ICYjODIxMjsgMSB0byBpbmNsdWRlIHJlcGxpZXMsIDAgdG8g
ZXhjbHVkZSB0aGVtIGZyb20gdGhlIGZlZWQuIERlZmF1bHQ6ICYjODIxNjsxJiM4MjE3Oy48
L2xpPgoJCTxsaT48ZW0+bGltaXQ8L2VtPiAmIzgyMTI7IG1heGltdW0gbnVtYmVyIG9mIHR3
ZWV0cyB0byBkaXNwbGF5IChtYXguIDIwMCkuIERlZmF1bHQ6ICYjODIxNjsyNSYjODIxNzsu
PC9saT4KCQk8bGk+PGVtPmZldGNoPC9lbT4gJiM4MjEyOyBtYXhpbXVtIG51bWJlciBvZiB0
d2VldHMgdG8gcmV0cmlldmUgZnJvbSBUd2l0dGVyIChtYXguIDIwMCk8c3VwIGNsYXNzPSJm
b290bm90ZSI+PGEgaHJlZj0iI2ZuNTkwMDM4MTc3NWE3OGRhNmE3ODQ0ZiI+MTwvYT48L3N1
cD4uIERlZmF1bHQ6ICYjODIxNjswJiM4MjE3Oy48L2xpPgoJCTxsaT48ZW0+ZnVsbF91cmxz
PC9lbT4gJiM4MjEyOyAxIHRvIGRpc3BsYXkgZnVsbCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM
PC9zcGFuPnMsIDAgZm9yIHQuY28gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj5zLiBE
ZWZhdWx0OiAmIzgyMTY7MCYjODIxNzsuPC9saT4KCQk8bGk+PGVtPmRhdGVmb3JtYXQ8L2Vt
PiAmIzgyMTI7IGZvcm1hdCB0aGF0IHVwZGF0ZSBkYXRlcyB3aWxsIGFwcGVhciBhcy4gRGVm
YXVsdDogPGVtPkFyY2hpdmUgZGF0ZSBmb3JtYXQ8L2VtPi48L2xpPgoJCTxsaT48ZW0+bGFi
ZWw8L2VtPiAmIzgyMTI7IGxhYmVsIGZvciB0aGUgdG9wIG9mIHRoZSBsaXN0LjwvbGk+CgkJ
PGxpPjxlbT5sYWJlbHRhZzwvZW0+ICYjODIxMjsgaW5kZXBlbmRlbnQgd3JhcHRhZyBmb3Ig
bGFiZWwuPC9saT4KCQk8bGk+PGVtPmJyZWFrPC9lbT4gJiM4MjEyOyA8c3BhbiBjbGFzcz0i
Y2FwcyI+SFRNTDwvc3Bhbj4gdGFnICh3aXRob3V0IGJyYWNrZXRzKSwgb3Igc3RyaW5nLCB1
c2VkIHRvIHNlcGFyYXRlIHRoZSB1cGRhdGVzLiBEZWZhdWx0OiAmIzgyMTY7bGkmIzgyMTc7
LjwvbGk+CgkJPGxpPjxlbT53cmFwdGFnPC9lbT4gJiM4MjEyOyA8c3BhbiBjbGFzcz0iY2Fw
cyI+SFRNTDwvc3Bhbj4gdGFnIHRvIGJlIHVzZWQgYXMgdGhlIHdyYXB0YWcsIHdpdGhvdXQg
YnJhY2tldHMuPC9saT4KCQk8bGk+PGVtPmNsYXNzPC9lbT4gJiM4MjEyOyA8c3BhbiBjbGFz
cz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBhdHRyaWJ1dGUgZm9yIHdyYXB0YWcuIERlZmF1
bHQ6ICYjODIxNjthcmNfdHdpdHRlciYjODIxNzsuPC9saT4KCQk8bGk+PGVtPmNsYXNzX3Bv
c3RlZDwvZW0+ICYjODIxMjsgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3Mg
YXR0cmlidXRlIGFwcGxpZWQgdG8gc3BhbiB0YWcgYXJvdW5kIHBvc3RlZCBkYXRlLiBEZWZh
dWx0OiAmIzgyMTY7YXJjX3R3aXR0ZXItcG9zdGVkJiM4MjE3Oy48L2xpPgoJPC91bD4KCgk8
cCBpZD0iZm41OTAwMzgxNzc1YTc4ZGE2YTc4NDRmIiBjbGFzcz0iZm9vdG5vdGUiPjxzdXA+
MTwvc3VwPiBUd2l0dGVyJiM4MjE3O3MgPHNwYW4gY2xhc3M9ImNhcHMiPkFQSTwvc3Bhbj4g
Y291bnRzIHRoZSBudW1iZXIgb2YgdHdlZXRzIHRvIHJldHVybiBiZWZvcmUgYXBwbHlpbmcg
c29tZSBvZiB0aGUgZmlsdGVycywgc28gdGhlIHJlc3BvbnNlIGNhbiBiZSBmZXdlciB0d2Vl
dHMgdGhhbiBleHBlY3RlZC4gVG8gaGVscCBhdm9pZCB0aGlzIHlvdSBjYW4gc2V0IGEgPGVt
PmZldGNoPC9lbT4gbGltaXQgdGhhdCBpcyBoaWdoZXIgdGhhbiB0aGUgZGlzcGxheSA8ZW0+
bGltaXQ8L2VtPiB0aGF0IHlvdSB3YW50IHRvIG91dHB1dC4gSWYgPGVtPmZldGNoPC9lbT4g
aXMgbGVzcyB0aGFuIDxlbT5saW1pdDwvZW0+IHRoZSBsYXR0ZXIgd2lsbCBiZSB1c2VkIGlu
c3RlYWQuPC9wPgoKCTxoND5FeGFtcGxlIHVzYWdlPC9oND4KCjxwcmU+PGNvZGU+Jmx0O3R4
cDphcmNfdHdpdHRlciB1c2VyPSZxdW90O2RybW9ua2V5bmluamEmcXVvdDsgbGltaXQ9JnF1
b3Q7NSZxdW90OyB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7
IGRhdGVmb3JtYXQ9JnF1b3Q7JWIgJU9lLCAlSTolTSAlcCZxdW90OyAvJmd0Owo8L2NvZGU+
PC9wcmU+CgoJPHA+UHJvZHVjZXMgYSBidWxsZXQgcG9pbnQgbGlzdCBvZiB0aGUgbGFzdCA1
IFR3aXR0ZXIgdXBkYXRlcyBmcm9tIGRybW9ua2V5bmluamEmIzgyMTc7cyBUd2l0dGVyIGZl
ZWQgd2l0aCBhIGRlZmluZWQgZGF0ZSBmb3JtYXQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQg
YXJjaGl2ZSBkYXRlIGZvcm1hdC48L3A+CgoJPGgzIGlkPSJhcmNfdHdpdHRlcl9zZWFyY2hf
dGFnIj5hcmNfdHdpdHRlcl9zZWFyY2g8L2gzPgoKPHByZT48Y29kZT4mbHQ7dHhwOmFyY190
d2l0dGVyX3NlYXJjaCBoYXNodGFncz0mcXVvdDt0eHAmcXVvdDsgLyZndDsKPC9jb2RlPjwv
cHJlPgoKCTxoND5BdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxlbT5zZWFyY2g8L2Vt
PiAmIzgyMTI7IGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHNlYXJjaCB3b3Jkcy48L2xpPgoJ
CTxsaT48ZW0+aGFzaHRhZ3M8L2VtPiAmIzgyMTI7IGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9m
IGhhc2h0YWdzIHRvIHNlYXJjaCBmb3IgKG5vdCBpbmNsdWRpbmcgdGhlIGhhc2gpLjwvbGk+
CgkJPGxpPjxlbT5yZXBseTwvZW0+ICYjODIxMjsgdXNlcm5hbWUgb2YgdHdlZXRzIGluIHJl
cGx5IHRvLjwvbGk+CgkJPGxpPjxlbT5tZW50aW9uPC9lbT4gJiM4MjEyOyB1c2VybmFtZSBv
ZiB1c2VyIG1lbnRpb25lZCBpbiB0d2VldHMgKDxpPmkuZS48L2k+IHR3ZWV0cyBjb250YWlu
aW5nIEB1c2VybmFtZSkuPC9saT4KCQk8bGk+PGVtPmxpbWl0PC9lbT4gJiM4MjEyOyBtYXhp
bXVtIG51bWJlciBvZiB0d2VldHMgdG8gZGlzcGxheSAobWF4LiAyMDApLiBEZWZhdWx0OiAm
IzgyMTY7MTAmIzgyMTc7LjwvbGk+CgkJPGxpPjxlbT5mdWxsX3VybHM8L2VtPiAmIzgyMTI7
IDEgdG8gZGlzcGxheSBmdWxsIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+cywgMCBm
b3IgdC5jbyA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPnMuIERlZmF1bHQ6ICYjODIx
NjswJiM4MjE3Oy48L2xpPgoJCTxsaT48ZW0+ZGF0ZWZvcm1hdDwvZW0+ICYjODIxMjsgZm9y
bWF0IHRoYXQgdXBkYXRlIGRhdGVzIHdpbGwgYXBwZWFyIGFzLiBEZWZhdWx0OiA8ZW0+QXJj
aGl2ZSBkYXRlIGZvcm1hdDwvZW0+LjwvbGk+CgkJPGxpPjxlbT5sYWJlbDwvZW0+ICYjODIx
MjsgbGFiZWwgZm9yIHRoZSB0b3Agb2YgdGhlIGxpc3QuPC9saT4KCQk8bGk+PGVtPmxhYmVs
dGFnPC9lbT4gJiM4MjEyOyBpbmRlcGVuZGVudCB3cmFwdGFnIGZvciBsYWJlbC48L2xpPgoJ
CTxsaT48ZW0+YnJlYWs8L2VtPiAmIzgyMTI7IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9z
cGFuPiB0YWcgKHdpdGhvdXQgYnJhY2tldHMpLCBvciBzdHJpbmcsIHVzZWQgdG8gc2VwYXJh
dGUgdGhlIHVwZGF0ZXMuIERlZmF1bHQ6ICYjODIxNjtsaSYjODIxNzsuPC9saT4KCQk8bGk+
PGVtPndyYXB0YWc8L2VtPiAmIzgyMTI7IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFu
PiB0YWcgdG8gYmUgdXNlZCBhcyB0aGUgd3JhcHRhZywgd2l0aG91dCBicmFja2V0cy48L2xp
PgoJCTxsaT48ZW0+Y2xhc3M8L2VtPiAmIzgyMTI7IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8
L3NwYW4+IGNsYXNzIGF0dHJpYnV0ZSBmb3Igd3JhcHRhZy4gRGVmYXVsdDogJiM4MjE2O2Fy
Y190d2l0dGVyX3NlYXJjaCYjODIxNzsuPC9saT4KCQk8bGk+PGVtPmNsYXNzX3VzZXI8L2Vt
PiAmIzgyMTI7IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGF0dHJpYnV0
ZSBhcHBsaWVkIHRvIHNwYW4gdGFnIGFyb3VuZCB1c2VyIG5hbWUuIERlZmF1bHQ6ICYjODIx
NjthcmNfdHdpdHRlci11c2VyJiM4MjE3Oy48L2xpPgoJCTxsaT48ZW0+Y2xhc3NfcG9zdGVk
PC9lbT4gJiM4MjEyOyA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBhdHRy
aWJ1dGUgYXBwbGllZCB0byBzcGFuIHRhZyBhcm91bmQgcG9zdGVkIGRhdGUuIERlZmF1bHQ6
ICYjODIxNjthcmNfdHdpdHRlci1wb3N0ZWQmIzgyMTc7LjwvbGk+Cgk8L3VsPgoKCTxoND5F
eGFtcGxlIHVzYWdlPC9oND4KCjxwcmU+PGNvZGU+Jmx0O3R4cDphcmNfdHdpdHRlcl9zZWFy
Y2ggc2VhcmNoPSZxdW90O3BsdWdpbiZxdW90OyBoYXNodGFncz0mcXVvdDt0eHAsdGV4dHBh
dHRlcm4mcXVvdDsgbGltaXQ9JnF1b3Q7MjUmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoK
CTxwPlByb2R1Y2VzIGEgbGlzdCBvZiB0d2VldHMgY29udGFpbmluZyB0aGUgd29yZCAmIzgy
MTY7cGx1Z2luJiM4MjE3OyBhbmQgdGhlIGhhc2h0YWdzICYjODIxNjsjdHhwJiM4MjE3OyBh
bmQgJiM4MjE2OyN0ZXh0cGF0dGVybiYjODIxNzsuIFRoZSB0YWcgd2lsbCByZXR1cm4gYSBt
YXhpbXVtIG9mIDI1IHR3ZWV0cy48L3A+CgoJPGgzIGlkPSJhcmNfdHdpdHRlcl9yZXR3ZWV0
X3RhZyI+YXJjX3R3aXR0ZXJfdHdlZXRfYnV0dG9uPC9oMz4KCgk8cD5PdXRwdXRzIHRoZSBU
d2l0dGVyIHR3ZWV0IGJ1dHRvbiAoZm9ybWVybHkgPGNvZGU+Jmx0O3R4cDphcmNfdHdpdHRl
cl9yZXR3ZWV0IC8mZ3Q7PC9jb2RlPikuPC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOmFyY190
d2l0dGVyX3R3ZWV0X2J1dHRvbiAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGg0PkF0dHJpYnV0
ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PGVtPnVzZXI8L2VtPiAmIzgyMTI7IFR3aXR0ZXIgdXNl
ciBuYW1lIHRvIHF1b3RlLiBEZWZhdWx0OiA8ZW0+YXJjX3R3aXR0ZXIgdXNlcm5hbWU8L2Vt
Pi48L2xpPgoJCTxsaT48ZW0+dXJsPC9lbT4gJiM4MjEyOyA8c3BhbiBjbGFzcz0iY2FwcyI+
VVJMPC9zcGFuPiB0byB0d2VldC48L2xpPgoJCTxsaT48ZW0+dGV4dDwvZW0+ICYjODIxMjsg
dHdlZXQgdGV4dC48L2xpPgoJCTxsaT48ZW0+Zm9sbG93MTwvZW0+ICYjODIxMjsgc3VnZ2Vz
dGVkIFR3aXR0ZXIgYWNjb3VudCB0byBmb2xsb3cuPC9saT4KCQk8bGk+PGVtPmZvbGxvdzI8
L2VtPiAmIzgyMTI7IGFzIDxlbT5mb2xsb3cxPC9lbT4uPC9saT4KCQk8bGk+PGVtPmxhbmc8
L2VtPiAmIzgyMTI7IGxhbmdhdWdlLiBEZWZhdWx0OiAmIzgyMTY7ZW4mIzgyMTc7LjwvbGk+
CgkJPGxpPjxlbT5jb3VudDwvZW0+ICYjODIxMjsgY291bnQgYm94IHBvc2l0aW9uLCBvcHRp
b25zOiBub25lLCBob3Jpem9udGFsIG9yIHZlcnRpY2FsLiBEZWZhdWx0OiAmIzgyMTY7aG9y
aXpvbnRhbCYjODIxNzsuPC9saT4KCQk8bGk+PGVtPmluY2x1ZGVfanM8L2VtPiAmIzgyMTI7
IHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIHdpZGdldCBKYXZhU2NyaXB0LiBEZWZh
dWx0OiAmIzgyMTY7MSYjODIxNzsuPC9saT4KCQk8bGk+PGVtPm9wdGltaXNlX2pzPC9lbT4g
JiM4MjEyOyBvcHRpbWlzZSB0aGUgSmF2YVNjcmlwdCBieSB1c2luZyBhIGxvY2FsIHNjcmlw
dCByYXRoZXIgdGhhbiB0aGF0IGhvc3RlZCBvbiB0aGVUd2l0dGVyIHNpdGUuIERlZmF1bHQ6
ICYjODIxNjswJiM4MjE3Oy48L2xpPgoJCTxsaT48ZW0+Y2xhc3M8L2VtPiAmIzgyMTI7IDxz
cGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGF0dHJpYnV0ZSBhcHBsaWVkIHRv
IHRoZSB0d2VldCBidXR0b24uIERlZmF1bHQ6ICYjODIxNjt0d2l0dGVyLXNoYXJlLWJ1dHRv
biYjODIxNzsuPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJhcmNfdHdpdHRlcl9mb2xsb3dfYnV0
dG9uX3RhZyI+YXJjX3R3aXR0ZXJfZm9sbG93X2J1dHRvbjwvaDM+CgoJPHA+T3V0cHV0cyB0
aGUgVHdpdHRlciBmb2xsb3cgYnV0dG9uIChhbiBhbHRlcm5hdGl2ZSB2ZXJzaW9uIGlzIGlu
Y2x1ZGVkIGluIHRoZSA8YSBocmVmPSJodHRwOi8vYW5keS1jYXJ0ZXIuY29tL3R4cC9hcmNf
dHdpdHRlcl9pbnRlbnRzLXR4cC10d2VldC1hZGQtb24iPmFyY190d2l0dGVyX2ludGVudHMg
ZXh0ZW5zaW9uIHBsdWdpbjwvYT4pLjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDphcmNfdHdp
dHRlcl9mb2xsb3dfYnV0dG9uIC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDQ+QXR0cmlidXRl
czwvaDQ+CgoJPHVsPgoJCTxsaT48ZW0+dXNlcjwvZW0+ICYjODIxMjsgVHdpdHRlciB1c2Vy
IG5hbWUgdG8gZm9sbG93LiBEZWZhdWx0OiA8ZW0+YXJjX3R3aXR0ZXIgdXNlcm5hbWU8L2Vt
Pi48L2xpPgoJCTxsaT48ZW0+bGFuZzwvZW0+ICYjODIxMjsgbGFuZ3VhZ2UuIERlZmF1bHQ6
ICYjODIxNjtlbiYjODIxNzsuPC9saT4KCQk8bGk+PGVtPmNvdW50PC9lbT4gJiM4MjEyOyB3
aGV0aGVyIG9yIG5vdCB0aGUgZm9sbG93ZXIgY291bnQgaXMgc2hvd24uIERlZmF1bHQ6ICYj
ODIxNjsxJiM4MjE3Oy48L2xpPgoJCTxsaT48ZW0+aW5jbHVkZV9qczwvZW0+ICYjODIxMjsg
d2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgd2lkZ2V0IEphdmFTY3JpcHQuIERlZmF1
bHQ6ICYjODIxNjsxJiM4MjE3Oy48L2xpPgoJCTxsaT48ZW0+b3B0aW1pc2VfanM8L2VtPiAm
IzgyMTI7IG9wdGltaXNlIHRoZSBKYXZhU2NyaXB0IGJ5IHVzaW5nIGEgbG9jYWwgc2NyaXB0
IHJhdGhlciB0aGFuIHRoYXQgaG9zdGVkIG9uIHRoZSBUd2l0dGVyIHNpdGUuIERlZmF1bHQ6
ICYjODIxNjswJiM4MjE3Oy48L2xpPgoJCTxsaT48ZW0+Y2xhc3M8L2VtPiAmIzgyMTI7IDxz
cGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGF0dHJpYnV0ZSBhcHBsaWVkIHRv
IHRoZSBmb2xsb3cgYnV0dG9uLiBEZWZhdWx0OiAmIzgyMTY7dHdpdHRlci1mb2xsb3ctYnV0
dG9uJiM4MjE3Oy48L2xpPgoJPC91bD4KCgk8aDMgaWQ9ImFyY190d2l0dGVyX3R3ZWV0X3Vy
bCI+YXJjX3R3aXR0ZXJfdHdlZXRfdXJsPC9oMz4KCgk8cD5SZXR1cm5zIHRoZSA8c3BhbiBj
bGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBvZiB0aGUgVHdpdHRlciBzdGF0dXMgZm9yIGFuIGFy
dGljbGUuPC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOmFyY190d2l0dGVyX3R3ZWV0X3VybCAv
Jmd0Owo8L2NvZGU+Cjxjb2RlPiZsdDt0eHA6YXJjX3R3aXR0ZXJfdHdlZXRfdXJsJmd0O0xp
bmsgdGV4dCZsdDsvdHhwOmFyY190d2l0dGVyX3R3ZWV0X3VybCZndDsKPC9jb2RlPjwvcHJl
PgoKCTxoND5BdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxlbT5pZDwvZW0+ICYjODIx
MjsgVGV4dHBhdHRlcm4gYXJ0aWNsZSBJRC4gRGVmYXVsdDogPGVtPmN1cnJlbnQgYXJ0aWNs
ZTwvZW0+LjwvbGk+CgkJPGxpPjxlbT50aXRsZTwvZW0+ICYjODIxMjsgdGl0bGUgYXR0cmli
dXRlIG9mIHRoZSBsaW5rLjwvbGk+CgkJPGxpPjxlbT5jbGFzczwvZW0+ICYjODIxMjsgPHNw
YW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgYXR0cmlidXRlIGFwcGxpZWQgdG8g
dGhlIGxpbmsuPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJhcmNfdHdpdHRlcl90aW55dXJsIj5h
cmNfdHdpdHRlcl90aW55dXJsPC9oMz4KCgk8cD5SZXR1cm5zIHRoZSBzaG9ydGVuZWQgPHNw
YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gb2YgdGhlIGFydGljbGUgdXNlZCBmb3IgdGhl
IFR3aXR0ZXIgdXBkYXRlLjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDphcmNfdHdpdHRlcl90
aW55dXJsIC8mZ3Q7CjwvY29kZT4KPGNvZGU+Jmx0O3R4cDphcmNfdHdpdHRlcl90aW55dXJs
Jmd0O0xpbmsgdGV4dCZsdDsvdHhwOmFyY190d2l0dGVyX3Rpbnl1cmwmZ3Q7CjwvY29kZT48
L3ByZT4KCgk8aDQ+QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48ZW0+aWQ8L2VtPiAm
IzgyMTI7IFRleHRwYXR0ZXJuIGFydGljbGUgSUQuIERlZmF1bHQ6IDxlbT5jdXJyZW50IGFy
dGljbGU8L2VtPi48L2xpPgoJCTxsaT48ZW0+dGl0bGU8L2VtPiAmIzgyMTI7IHRpdGxlIGF0
dHJpYnV0ZSBvZiB0aGUgbGluay48L2xpPgoJCTxsaT48ZW0+Y2xhc3M8L2VtPiAmIzgyMTI7
IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGF0dHJpYnV0ZSBhcHBsaWVk
IHRvIHRoZSBsaW5rLjwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXJjX3R3aXR0ZXJfY2FjaGlu
ZyI+Q2FjaGluZzwvaDI+CgoJPHA+SW4gb3JkZXIgdG8gcHJldmVudCBleGNlc3NpdmUgcmVw
ZWF0aXRpdmUgY2FsbHMgdG8gdGhlIFR3aXR0ZXIgd2Vic2l0ZSBpdCBpcyByZWNvbW1lbmRl
ZCB0byBjYWNoZSByZXN1bHRzLiBUd2l0dGVyIGxpbWl0cyB0aGUgbnVtYmVyIG9mIGNhbGxz
IHRocm91Z2ggdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5BUEk8L3NwYW4+LCBhbmQgY29udGlu
dW91cyBjYWxscyB3aWxsIHJlc3VsdCBpbiBUd2l0dGVyIGNsb3NpbmcgdG8gZnVydGhlciBy
ZXF1ZXN0cy4gQnkgZGVmYXVsdCwgYXJjX3R3aXR0ZXIgY2FjaGVzIGZvciAzMCBtaW51dGUg
aW50ZXJ2YWxzLjwvcD4KCgk8cD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIGF2YWls
YWJsZSB0byB0aGUgPGVtPmFyY190d2l0dGVyPC9lbT4gYW5kIDxlbT5hcmNfdHdpdHRlcl9z
ZWFyY2g8L2VtPiB0YWdzOi08L3A+CgoJPHVsPgoJCTxsaT48ZW0+Y2FjaGluZzwvZW0+ICYj
ODIxMjsgJiM4MjE2OzEmIzgyMTc7IHRvIGNhY2hlIGZlZWQsICYjODIxNjswJiM4MjE3OyB0
byB0dXJuIGNhY2hpbmcgb2ZmIChub3QgcmVjb21tZW5kZWQpLiBEZWZhdWx0OiAmIzgyMTY7
MSYjODIxNzsuPC9saT4KCQk8bGk+PGVtPmNhY2hlX2RpcjwvZW0+ICYjODIxMjsgYWJzb2x1
dGUgcGF0aCB0byB0aGUgY2FjaGUgZGlyZWN0b3J5IChtdXN0IGJlIHdyaXRhYmxlKS4gRGVm
YXVsdDogPGVtPmFyY190d2l0dGVyIHByZWZlcmVuY2VzPC9lbT4uPC9saT4KCQk8bGk+PGVt
PmNhY2hlX3RpbWU8L2VtPiAmIzgyMTI7IHRpbWUgaW4gbWludXRlcyB0aGF0IHRoZSBjYWNo
ZSBmaWxlcyBhcmUgc3RvcmVkIGJlZm9yZSBiZWluZyByZWZyZXNoZWQuIERlZmF1bHQ6ICYj
ODIxNjs1JiM4MjE3Oy48L2xpPgoJPC91bD4KCgk8cD5UaGUgYWRtaW4gc2lkZSBvZiB0aGlz
IHBsdWdpbiBlbmZvcmNlcyBjYWNoaW5nLCBhcGFydCBmcm9tIHdoZW4gaXQgaXMgcG9zdGlu
ZyB0byBUd2l0dGVyICg8aT5lLmcuPC9pPiB3aGVuIHBvc3Rpbmcgb3IgZGVsZXRpbmcgYW4g
dXBkYXRlKS48L3A+CgoJPGgyIGlkPSJhcmNfdHdpdHRlcl9wcmVmcyI+UHJlZmVyZW5jZXM8
L2gyPgoKCTxwPllvdSBjYW4gYWNjZXNzIHRoZSBwbHVnaW5zIGNvcmUgcHJlZmVyZW5jZXMg
ZnJvbSBlaXRoZXIgdGhlIFByZWZlcmVuY2VzIG9yIFBsdWdpbnMgdGFicyBpbiBhZG1pbi4g
U2V0dXAgeW91ciBUd2l0dGVyIGFjY291bnQgKHlvdSB3aWxsIGJlIGFza2VkIHRvIGNvbm5l
Y3QgdmlhIFR3aXR0ZXIgYW5kIHRoaXMgbmVlZHMgZG9pbmcgYmVmb3JlIHlvdSBjYW4gdXNl
IHRoZSBwbHVnaW4pIGFuZCBjaGFuZ2UgdGhlIGNhY2hlIGRpcmVjdG9yeSB1c2luZyBhcmNf
dHdpdHRlciYjODIxNztzIHByZWZlcmVuY2VzLiBXaXRob3V0IHByb3ZpZGluZyB5b3VyIGFj
Y291bnQgbG9naW4gZGV0YWlscyB0aGUgYWRtaW4gYXJlYSBmZWF0dXJlcyBvZiB0aGlzIHBs
dWdpbiB3aWxsIGJlIGluYWN0aXZlLjwvcD4KCgk8cD5Zb3UgY2FuIHNlbGVjdCB0aGUgPHNw
YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gc2hvcnRlbmVyIG1ldGhvZCB5b3Ugd2FudCB0
byB1c2UgdG8gbGluayBiYWNrIHRvIHlvdXIgYXJ0aWNsZSBvbiBUd2l0dGVyLiBQbGVhc2Ug
bm90ZSB0aGF0IGlmIHlvdSBzZWxlY3Qgc21kX3Nob3J0X3VybCB5b3Ugd2lsbCBuZWVkIHRv
IGhhdmUgaW5zdGFsbGVkIGFuZCBhY3RpdmF0ZWQgdGhlIDxhIGhyZWY9Imh0dHA6Ly90ZXh0
cGF0dGVybi5vcmcvcGx1Z2lucy8xMDk5L3NtZF9zaG9ydF91cmwiPjxzcGFuIGNsYXNzPSJ0
YWciPnNtZF9zaG9ydF91cmw8L3NwYW4+IHBsdWdpbjwvYT4gZGV2ZWxvcGVkIGJ5IFN0ZWYg
RGF3c29uLjwvcD4KCgk8aDIgaWQ9ImFyY190d2l0dGVyX2FydGljbGUiPlR3ZWV0aW5nIGFy
dGljbGVzPC9oMj4KCgk8cD5CeSBkZWZhdWx0IGFyY190d2l0dGVyIHdpbGwgcG9zdCBhbiB1
cGRhdGUgdG8gVHdpdHRlciBpbmNsdWRpbmcgYSBzaG9ydGVuZWQgPHNwYW4gY2xhc3M9ImNh
cHMiPlVSTDwvc3Bhbj4gdG8geW91ciBhcnRpY2xlLiBPbmx5IGxpdmUgYW5kIGFjdGl2ZSBh
cnRpY2xlcyB3aWxsIGJlIHNlbnQgdG8gVHdpdHRlciwgPGk+aS5lLjwvaT4gYXJ0aWNsZXMg
cG9zdGVkIGluIHRoZSBmdXR1cmUgb3IgYXMgc3RpY2t5IGFydGljbGVzIHdpbGwgbm90IGJl
IHNlbnQuIElmIHlvdXIgYXJ0aWNsZSBpcyBzdWNjZXNzZnVsbHkgc3VibWl0dGVkIHRvIFR3
aXR0ZXIgdGhlIHVwZGF0ZSB3aWxsIGFwcGVhciBpbiBwbGFjZSBvZiB0aGUgVHdpdHRlciBv
cHRpb24gb24gdGhlIHJpZ2h0LWhhbmQtc2lkZSBvZiB0aGUgYXJ0aWNsZSBlZGl0IHNjcmVl
bi48L3A+CgoJPHA+VHdlZXRzIGFyZSBzZW50IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OiA8
ZW0+VHdlZXQgcHJlZml4PC9lbT4gPGVtPkFydGljbGUgdGl0bGU8L2VtPiA8ZW0+U2hvcnRl
bmVkIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+PC9lbT4gPGVtPlR3ZWV0IHN1ZmZp
eDwvZW0+LiBZb3UgY2FuIGNoYW5nZSB0aGUgcHJlZml4IGFuZCBzdWZmaXggb24gYW4gYXJ0
aWNsZS1ieS1hcnRpY2xlIGJhc2lzIGJ5IGNoYW5naW5nIHRoZSB0d2VldCBvcHRpb25zIHVu
ZGVyICYjODIxNjtVcGRhdGUgVHdpdHRlciYjODIxNzsgb24gdGhlIGFydGljbGUgZWRpdG9y
IHNjcmVlbi4gVGhlIGRlZmF1bHQgPGVtPlR3ZWV0IHByZWZpeDwvZW0+IGNhbiBiZSBzZXQg
dW5kZXIgdGhlIDxzcGFuIGNsYXNzPSJ0YWciPmFyY190d2l0dGVyPC9zcGFuPiBwcmVmZXJl
bmNlcyBzY3JlZW4gKHRoZSBkZWZhdWx0IG9uIGluc3RhbGxhdGlvbiBpcyAmIzgyMjA7SnVz
dCBwb3N0ZWQ6JiM4MjIxOykuPC9wPgoKCTxwPlBsZWFzZSBub3RlIHRoYXQgb25jZSBhbiBh
cnRpY2xlIGhhcyBiZWVuIHR3ZWV0ZWQgdGhlIHR3ZWV0IGNhbm5vdCBiZSBlZGl0ZWQuPC9w
PgoKCTxwPklmIHlvdSB3YW50IHRvIG1vbml0b3IgaG93IG1hbnkgY2xpY2tzIHlvdSYjODIx
NztyZSBnZXR0aW5nIGZyb20geW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0
d2VldHMgaW4gR29vZ2xlIEFuYWx5dGljcyBlbmFibGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVU
TTwvc3Bhbj4gaW4gdGhlIHBsdWdpbiYjODIxNztzIHByZWZlcmVuY2VzLiBJdCB3aWxsIGFk
ZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVRNPC9zcGFuPiBwYXJhbWV0ZXJzIHRvIHRoZSA8c3Bh
biBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPnMgdHdlZXRlZCB0aGF0IGNhbiB0aGVuIGJlIG1v
bml0b3JlZCB2aWEgdGhlIDxlbT5DYW1wYWlnbnM8L2VtPiBzZWN0aW9uIG9mIEdvb2dsZSBB
bmFseXRpY3MuPC9wPgoKCTxoMiBpZD0iYXJjX3R3aXR0ZXJfYWRtaW4iPlRoZSBUd2l0dGVy
IHRhYjwvaDI+CgoJPHA+VW5kZXIgdGhlIEV4dGVuc2lvbnMgdGFiICh0aGlzIGNhbiBiZSBj
aGFuZ2VkIGZyb20gdGhlIHBsdWdpbiYjODIxNztzIHByZWZlcmVuY2UgcGFnZSkgYSBuZXcg
VHdpdHRlciB0YWIgc2hvdWxkIGFwcGVhciBvbmNlIHlvdSBoYXZlIGNvbm5lY3RlZCB5b3Vy
IHNpdGUgdG8geW91ciBUd2l0dGVyIGFjY291bnQuIEZyb20gaGVyZSB5b3Ugd2lsbCBiZSBh
YmxlIHRvIHN1Ym1pdCBuZXcgVHdpdHRlciB1cGRhdGVzLCB2aWV3IGJhc2ljIGFjY291bnQg
c3RhdGlzdGljcywgYW5kIGNoZWNrIG91dCB5b3VyIHJlY2VudCB1cGRhdGVzIChpbmNsdWRp
bmcgdGhlIG9wdGlvbiB0byBkZWxldGUgeW91ciB0d2VldHMpLjwvcD4KCgk8aDIgaWQ9ImFy
Y190d2l0dGVyX2F1dGhvciI+QXV0aG9yPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vYW5k
eS1jYXJ0ZXIuY29tIj5BbmR5IENhcnRlcjwvYT4uIEZvciBvdGhlciBUZXh0cGF0dGVybiBw
bHVnaW5zIGJ5IG1lIHZpc2l0IG15IDxhIGhyZWY9Imh0dHA6Ly9hbmR5LWNhcnRlci5jb20v
dHhwIj5QbHVnaW5zIHBhZ2U8L2E+LjwvcD4KCgk8cD5Db250cmlidXRvcnM6IEFuZHkgQ2Fy
dGVyLCBQaGlsIFdhcmVoYW0gYW5kIFRvbW15IFNjaG11Y2tlci48L3A+CgoJPHA+VGhhbmtz
IHRvIDxhIGhyZWY9Imh0dHA6Ly9tYW5mcmUubmV0LyI+TWljaGFlbCBNYW5mcmU8L2E+IGZv
ciBpbnNwaXJhdGlvbiBmb3IgdGhlIGFydGljbGUgdHdlZXQgcGFydCBvZiB0aGlzIHBsdWdp
biBiYXNlZCBvbiBoaXMgPHNwYW4gY2xhc3M9InRhZyI+bWVtX3R3aXR0ZXI8L3NwYW4+IHBs
dWdpbi4gIEFkZGl0aW9uYWwgdGhhbmtzIHRvIHRoZSBncmVhdCBUZXh0cGF0dGVybiBjb21t
dW5pdHkgZm9yIGhlbHBpbmcgdG8gdGVzdCB0aGlzIHBsdWdpbiBhbmQgZm9yIHN1Z2dlc3Rp
bmcgbmV3IGZlYXR1cmVzLiBUaGUgT0F1dGggcGFydCBvZiB0aGUgcGx1Z2luIGlzIHRoYW5r
cyB0byA8YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vYWJyYWhhbSI+QWJyYWhhbSBXaWxs
aWFtczwvYT4uPC9wPgoKIjtzOjQ6ImNvZGUiO3M6NzQ2MDQ6Imdsb2JhbCAkcHJlZnMsJHR4
cGNmZywkYXJjX3R3aXR0ZXJfY29uc3VtZXJLZXksJGFyY190d2l0dGVyX2NvbnN1bWVyU2Vj
cmV0OwoKJGFyY190d2l0dGVyID0gYXJyYXkoKTsKCi8vIFJlZ2lzdGVyIHRhZ3MuClR4cDo6
Z2V0KCdcVGV4dHBhdHRlcm5cVGFnXFJlZ2lzdHJ5JykKICAgIC0+cmVnaXN0ZXIoJ2FyY190
d2l0dGVyJykKICAgIC0+cmVnaXN0ZXIoJ2FyY190d2l0dGVyX3NlYXJjaCcpCiAgICAtPnJl
Z2lzdGVyKCdhcmNfdHdpdHRlcl90d2VldF9idXR0b24nKQogICAgLT5yZWdpc3RlcignYXJj
X3R3aXR0ZXJfZm9sbG93X2J1dHRvbicpCiAgICAtPnJlZ2lzdGVyKCdhcmNfdHdpdHRlcl90
d2VldF91cmwnKQogICAgLT5yZWdpc3RlcignYXJjX3R3aXR0ZXJfdGlueXVybCcpCiAgICAt
PnJlZ2lzdGVyKCdhcmNfdHdpdHRlcl93aWRnZXRfanMnKTsKCiRhcmNfdHdpdHRlcl9jb25z
dW1lcktleSA9ICduS2NYc2x3elpoQmQwa2ZLTWV0blBBJzsKJGFyY190d2l0dGVyX2NvbnN1
bWVyU2VjcmV0ID0gJ0M2blNQQ0wzZWVIR1RCaEtDZ3dkOW9jbGN1RDBzckI4V1ZrZlhRWUM1
NCc7CgphZGRfcHJpdnMoJ3BsdWdpbl9wcmVmcy5hcmNfdHdpdHRlcicsJzEsMicpOwpyZWdp
c3Rlcl9jYWxsYmFjaygnYXJjX3R3aXR0ZXJfaW5zdGFsbCcsJ3BsdWdpbl9saWZlY3ljbGUu
YXJjX3R3aXR0ZXInLCAnaW5zdGFsbGVkJyk7CnJlZ2lzdGVyX2NhbGxiYWNrKCdhcmNfdHdp
dHRlcl91bmluc3RhbGwnLCdwbHVnaW5fbGlmZWN5Y2xlLmFyY190d2l0dGVyJywgJ2RlbGV0
ZWQnKTsKcmVnaXN0ZXJfY2FsbGJhY2soJ2FyY190d2l0dGVyX3ByZWZzJywncGx1Z2luX3By
ZWZzLmFyY190d2l0dGVyJyk7CgovKgogKiBTZXR1cCBpbml0aWFsIHByZWZlcmVuY2VzIGlm
IG5vdCBpbiB0aGUgdHhwX3ByZWZzIHRhYmxlLgogKi8KaWYgKCFpc3NldCgkcHJlZnNbJ2Fy
Y190d2l0dGVyX3VzZXInXSkpIHsKCXNldF9wcmVmKCdhcmNfdHdpdHRlcl91c2VyJywgJycs
ICdhcmNfdHdpdHRlcicsIDEsICd0ZXh0X2lucHV0Jyk7Cn0KaWYgKCFpc3NldCgkcHJlZnNb
J2FyY190d2l0dGVyX3ByZWZpeCddKSkgewoJc2V0X3ByZWYoJ2FyY190d2l0dGVyX3ByZWZp
eCcsJ0p1c3QgcG9zdGVkOicsICdhcmNfdHdpdHRlcicsIDIsICd0ZXh0X2lucHV0Jyk7Cn0K
aWYgKCFpc3NldCgkcHJlZnNbJ2FyY190d2l0dGVyX3N1ZmZpeCddKSkgewoJc2V0X3ByZWYo
J2FyY190d2l0dGVyX3N1ZmZpeCcsJycsICdhcmNfdHdpdHRlcicsIDIsICd0ZXh0X2lucHV0
Jyk7Cn0KaWYgKCFpc3NldCgkcHJlZnNbJ2FyY190d2l0dGVyX2NhY2hlX2RpciddKSkgewoJ
c2V0X3ByZWYoJ2FyY190d2l0dGVyX2NhY2hlX2RpcicsJHR4cGNmZ1sndHhwYXRoJ10uJHBy
ZWZzWyd0ZW1wZGlyJ10sICdhcmNfdHdpdHRlcicsIDEsICd0ZXh0X2lucHV0Jyk7Cn0KaWYg
KCFpc3NldCgkcHJlZnNbJ2FyY190d2l0dGVyX3R3ZWV0X2RlZmF1bHQnXSkpIHsKCXNldF9w
cmVmKCdhcmNfdHdpdHRlcl90d2VldF9kZWZhdWx0JywgMSwgJ2FyY190d2l0dGVyJywgMiwg
J3llc25vUmFkaW8nKTsKfQppZiAoIWlzc2V0KCRwcmVmc1snYXJjX3R3aXR0ZXJfdXJsX21l
dGhvZCddKSkgewoJc2V0X3ByZWYoJ2FyY190d2l0dGVyX3VybF9tZXRob2QnLCAnZnVsbCcs
ICdhcmNfdHdpdHRlcicsIDIsICdhcmNfdHdpdHRlcl91cmxfbWV0aG9kX3NlbGVjdCcpOwp9
CmlmICghaXNzZXQoJHByZWZzWydhcmNfc2hvcnRfdXJsJ10pKSB7CglzZXRfcHJlZignYXJj
X3Nob3J0X3VybCcsIDAsICdhcmNfdHdpdHRlcicsIDIsICd5ZXNub1JhZGlvJyk7Cn0KaWYg
KCFpc3NldCgkcHJlZnNbJ2FyY19zaG9ydF9zaXRlX3VybCddKSkgewoJc2V0X3ByZWYoJ2Fy
Y19zaG9ydF9zaXRlX3VybCcsICRwcmVmc1snc2l0ZXVybCddLCAnYXJjX3R3aXR0ZXInLCAy
LCAndGV4dF9pbnB1dCcpOwp9Ci8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBUd2l0dGVyIHRhYiBo
YXMgYmVlbiBkZWZpbmVkCmlmICghaXNzZXQoJHByZWZzWydhcmNfdHdpdHRlcl90YWInXSkp
IHsKICBzZXRfcHJlZignYXJjX3R3aXR0ZXJfdGFiJywgJ2V4dGVuc2lvbnMnLCAnYXJjX3R3
aXR0ZXInLCAyLAoJJ2FyY190d2l0dGVyX3RhYl9zZWxlY3QnKTsKCSRwcmVmc1snYXJjX3R3
aXR0ZXJfdGFiJ10gPSAnZXh0ZW5zaW9ucyc7Cn0KaWYgKCFpc3NldCgkcHJlZnNbJ2FyY19z
aG9ydF91dG0nXSkpIHsKCXNldF9wcmVmKCdhcmNfc2hvcnRfdXRtJywgMCwgJ2FyY190d2l0
dGVyJywgMiwgJ3llc25vUmFkaW8nKTsKfQoKLy8gQ2hlY2sgaWYgYXJjX3Nob3J0X3VybCBp
cyBlbmFibGVkCmlmICgoaXNzZXQoJHByZWZzWydhcmNfc2hvcnRfdXJsJ10pJiYkcHJlZnNb
J2FyY19zaG9ydF91cmwnXSkKfHwgKGlzc2V0KCRwcmVmc1snYXJjX3Nob3J0X3VybF9tZXRo
b2QnXSkmJiRwcmVmc1snYXJjX3R3aXR0ZXJfdXJsX21ldGhvZCddPT0nYXJjX3R3aXR0ZXIn
KSkgewogIHJlZ2lzdGVyX2NhbGxiYWNrKCdhcmNfc2hvcnRfdXJsX3JlZGlyZWN0JywgJ3R4
cF9kaWUnLCA0MDQpOwp9CgppZiAoQHR4cGludGVyZmFjZSA9PSAnYWRtaW4nKSB7CglyZWdp
c3Rlcl9jYWxsYmFjaygnX2FyY190d2l0dGVyX2F1dG9fZW5hYmxlJywgJ3BsdWdpbl9saWZl
Y3ljbGUuYXJjX3R3aXR0ZXInLCAnaW5zdGFsbGVkJyk7CglpZiAoIWVtcHR5KCRwcmVmc1sn
YXJjX3R3aXR0ZXJfdXNlciddKQoJCSYmICFlbXB0eSgkcHJlZnNbJ2FyY190d2l0dGVyX2Fj
Y2Vzc1Rva2VuJ10pCgkJJiYgIWVtcHR5KCRwcmVmc1snYXJjX3R3aXR0ZXJfYWNjZXNzVG9r
ZW5TZWNyZXQnXSkgKSB7CgoJCWlmICgkcHJlZnNbJ2FyY190d2l0dGVyX3RhYiddKSB7CgkJ
CWFkZF9wcml2cygnYXJjX2FkbWluX3R3aXR0ZXInLCAnMSwyLDMsNCcpOwoJCQlyZWdpc3Rl
cl90YWIoJHByZWZzWydhcmNfdHdpdHRlcl90YWInXSwgJ2FyY19hZG1pbl90d2l0dGVyJywg
J1R3aXR0ZXInKTsKCQkJcmVnaXN0ZXJfY2FsbGJhY2soJ2FyY19hZG1pbl90d2l0dGVyJywg
J2FyY19hZG1pbl90d2l0dGVyJyk7CgkJfQoKCQlyZWdpc3Rlcl9jYWxsYmFjaygnYXJjX2Fy
dGljbGVfdHdlZXQnLCAncGluZycpOwoJCXJlZ2lzdGVyX2NhbGxiYWNrKCdhcmNfYXJ0aWNs
ZV90d2VldCcsICdhcnRpY2xlX3NhdmVkJyk7CgkJcmVnaXN0ZXJfY2FsbGJhY2soJ2FyY19h
cnRpY2xlX3R3ZWV0JywgJ2FydGljbGVfcG9zdGVkJyk7CgkJcmVnaXN0ZXJfY2FsbGJhY2so
J2FyY19hcHBlbmRfdHdpdHRlcicsICdhcnRpY2xlX3VpJywgJ3N0YXR1cycpOwoJfQp9Cgov
KgoJUHVibGljLXNpZGUgZnVuY3Rpb25zCgk9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiovCgpmdW5jdGlvbiBhcmNf
dHdpdHRlcigkYXR0cykKewogIGdsb2JhbCAkcHJlZnMsJGFyY190d2l0dGVyX2NvbnN1bWVy
S2V5LCAkYXJjX3R3aXR0ZXJfY29uc3VtZXJTZWNyZXQ7CgogIGV4dHJhY3QobEF0dHMoYXJy
YXkoCgkndXNlcicgICAgICA9PiAkcHJlZnNbJ2FyY190d2l0dGVyX3VzZXInXSwKCSdwYXNz
d29yZCcgID0+ICcnLAoJJ3RpbWVsaW5lJyAgPT4gJ3VzZXInLAoJJ2xpbWl0JyAgICAgPT4g
JzEwJywKCSdmZXRjaCcgICAgID0+IDAsCgknZnVsbF91cmxzJyA9PiBmYWxzZSwKCSdyZXR3
ZWV0cycgID0+IGZhbHNlLAoJJ3JlcGxpZXMnICAgPT4gdHJ1ZSwKCSdkYXRlZm9ybWF0Jz0+
ICRwcmVmc1snYXJjaGl2ZV9kYXRlZm9ybWF0J10sCgknY2FjaGluZycgICA9PiAnMScsCgkn
Y2FjaGVfZGlyJyA9PiAkcHJlZnNbJ2FyY190d2l0dGVyX2NhY2hlX2RpciddLAoJJ2NhY2hl
X3RpbWUnPT4gJzUnLAoJJ2xhYmVsJyAgICAgPT4gJycsCgknbGFiZWx0YWcnICA9PiAnJywK
CSdicmVhaycgICAgID0+ICdsaScsCgknd3JhcHRhZycgICA9PiAnJywKCSdjbGFzcycgICAg
ID0+IF9fRlVOQ1RJT05fXywKCSdjbGFzc19wb3N0ZWQnID0+IF9fRlVOQ1RJT05fXy4nLXBv
c3RlZCcKCSksJGF0dHMpKTsKCiAgJHR3aXQgPSBuZXcgYXJjX3R3aXR0ZXIoJGFyY190d2l0
dGVyX2NvbnN1bWVyS2V5CgkJCSwgJGFyY190d2l0dGVyX2NvbnN1bWVyU2VjcmV0LCAkcHJl
ZnNbJ2FyY190d2l0dGVyX2FjY2Vzc1Rva2VuJ10KCQkJLCAkcHJlZnNbJ2FyY190d2l0dGVy
X2FjY2Vzc1Rva2VuU2VjcmV0J10pOwoKICBpZiAoJGNhY2hpbmcpIHsgIC8vIHR1cm4gb24g
Y2FjaGluZywgcmVjb21tZW5kZWQgKGRlZmF1bHQpCgkkdHdpdC0+c2V0Q2FjaGluZyh0cnVl
KTsKCSR0d2l0LT5jYWNoZURpcigkY2FjaGVfZGlyKTsKCSR0d2l0LT5jYWNoZVRpbWUoJGNh
Y2hlX3RpbWUpOwogIH0gZWxzZSB7ICAvLyB0dXJuIG9mZiBjYWNoaW5nLCBub3QgcmVjb21t
ZW5kZWQgb3RoZXIgdGhhbiBmb3IgdGVzdGluZwoJJHR3aXQtPnNldENhY2hpbmcoZmFsc2Up
OwogIH0KCiAgc3dpdGNoICgkdGltZWxpbmUpIHsKCWNhc2UgJ2hvbWUnOiBjYXNlICdmcmll
bmRzJzoKCSAgJHRpbWVsaW5lID0gJ2hvbWVfdGltZWxpbmUnOyBicmVhazsKCWNhc2UgJ21l
bnRpb25zJzoKCSAgJHRpbWVsaW5lID0gJ3N0YXR1c2VzL21lbnRpb25zX3RpbWVsaW5lJzsg
YnJlYWs7CgljYXNlICd1c2VyJzogZGVmYXVsdDogJHRpbWVsaW5lID0gJ3N0YXR1c2VzL3Vz
ZXJfdGltZWxpbmUnOwogIH0KCiAgLy8gQ2hlY2sgdGhhdCB0aGUgZmV0Y2ggKFR3aXR0ZXIn
cyBjb3VudCBhdHRyaWJ1dGUpIGlzIHNldCBjb3JyZWN0bHkKICAkZmV0Y2ggPSAoISRmZXRj
aCB8fCAkZmV0Y2g8JGxpbWl0KSA/ICRsaW1pdCA6ICRmZXRjaDsKCiAgJG91dCA9IGFycmF5
KCk7CiAgJHR3ZWV0cyA9ICR0d2l0LT5nZXQoJHRpbWVsaW5lLCBhcnJheSgKCSAgJ3NjcmVl
bl9uYW1lJz0+JHVzZXIsCgkgICdjb3VudCc9PiRmZXRjaCwKCSAgJ2luY2x1ZGVfcnRzJz0+
JHJldHdlZXRzLAoJICAnZXhjbHVkZV9yZXBsaWVzJz0+ISRyZXBsaWVzCgkpKTsKCiAgaWYg
KCR0d2VldHMpIHsKCS8vIEFwcGx5IHRoZSBkaXNwbGF5IGxpbWl0IHRvIHRoZSByZXR1cm5l
ZCB0d2VldHMKCSR0d2VldHMgPSBhcnJheV9zbGljZSgkdHdlZXRzLCAwLCAkbGltaXQpOwoJ
Zm9yZWFjaCAoJHR3ZWV0cyBhcyAkdHdlZXQpIHsKCSAgJHRpbWUgPSBzdHJ0b3RpbWUoaHRt
bGVudGl0aWVzKCR0d2VldC0+Y3JlYXRlZF9hdCkpOwoJICAkZGF0ZSA9IHNhZmVfc3RyZnRp
bWUoJGRhdGVmb3JtYXQsJHRpbWUpOwoJICAkbGlua3MgPSBmYWxzZTsKCSAgaWYgKGlzc2V0
KCR0d2VldC0+ZW50aXRpZXMtPnVybHMpIHx8IGlzc2V0KCR0d2VldC0+ZW50aXRpZXMtPm1l
ZGlhKSkgewoJCSRsaW5rcyA9IGFycmF5KCk7CgkgIH0KCSAgaWYgKGlzc2V0KCR0d2VldC0+
ZW50aXRpZXMtPnVybHMpKSB7CgkJZm9yZWFjaCAoJHR3ZWV0LT5lbnRpdGllcy0+dXJscyBh
cyAkdXJsKSB7CgkJCSRsaW5rc1skdXJsLT51cmxdID0gYXJyYXkoCgkJCQknZXhwYW5kZWRf
dXJsJyA9PiAkdXJsLT5leHBhbmRlZF91cmwsCgkJCQknZGlzcGxheV91cmwnID0+ICR1cmwt
PmRpc3BsYXlfdXJsCgkJCSk7CgkJfQoJICB9CgkgIGlmIChpc3NldCgkdHdlZXQtPmVudGl0
aWVzLT5tZWRpYSkpIHsKCQlmb3JlYWNoICgkdHdlZXQtPmVudGl0aWVzLT5tZWRpYSBhcyAk
dXJsKSB7CgkJCSRsaW5rc1skdXJsLT51cmxdID0gYXJyYXkoCgkJCQknZXhwYW5kZWRfdXJs
JyA9PiAkdXJsLT5leHBhbmRlZF91cmwsCgkJCQknZGlzcGxheV91cmwnID0+ICR1cmwtPmRp
c3BsYXlfdXJsCgkJCSk7CgkJfQoJICB9CgkgICRvdXRbXSA9IGFyY19Ud2l0dGVyOjptYWtl
TGlua3MoaHRtbGVudGl0aWVzKCR0d2VldC0+dGV4dCwgRU5UX1FVT1RFUywnVVRGLTgnKSwg
JGxpbmtzLCAkZnVsbF91cmxzKQoJCS4nICcudGFnKGh0bWxlbnRpdGllcygkZGF0ZSksJ3Nw
YW4nLCcgY2xhc3M9IicuJGNsYXNzX3Bvc3RlZC4nIicpOwoJfQogIH0KCglyZXR1cm4gZG9M
YWJlbCgkbGFiZWwsICRsYWJlbHRhZykuZG9XcmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWss
ICRjbGFzcyk7Cgp9CgpmdW5jdGlvbiBhcmNfdHdpdHRlcl9zZWFyY2goJGF0dHMpCnsKCWds
b2JhbCAkcHJlZnMsJGFyY190d2l0dGVyX2NvbnN1bWVyS2V5LCAkYXJjX3R3aXR0ZXJfY29u
c3VtZXJTZWNyZXQ7CgoJZXh0cmFjdChsQXR0cyhhcnJheSgKCQkndXNlcicgICAgICA9PiAk
cHJlZnNbJ2FyY190d2l0dGVyX3VzZXInXSwKCQknc2VhcmNoJyAgICA9PiAnJywKCQknaGFz
aHRhZ3MnICA9PiAnJywKCQkndXNlcicgICAgICA9PiAnJywKCQkncmVwbHknICAgICA9PiAn
JywKCQknbWVudGlvbicgICA9PiAnJywKCQknbGltaXQnICAgICA9PiAnMTAnLAoJCSdmdWxs
X3VybHMnID0+IGZhbHNlLAoJCSdsYW5nJyAgICAgID0+ICcnLAoJCSdkYXRlZm9ybWF0Jz0+
ICRwcmVmc1snYXJjaGl2ZV9kYXRlZm9ybWF0J10sCgkJJ2NhY2hpbmcnICAgPT4gJzEnLAoJ
CSdjYWNoZV9kaXInID0+ICRwcmVmc1snYXJjX3R3aXR0ZXJfY2FjaGVfZGlyJ10sCgkJJ2Nh
Y2hlX3RpbWUnPT4gJzUnLAoJCSdsYWJlbCcgICAgID0+ICcnLAoJCSdsYWJlbHRhZycgID0+
ICcnLAoJCSdicmVhaycgICAgID0+ICdsaScsCgkJJ3dyYXB0YWcnICAgPT4gJycsCgkJJ2Ns
YXNzJyAgICAgPT4gX19GVU5DVElPTl9fLAoJCSdjbGFzc19wb3N0ZWQnID0+IF9fRlVOQ1RJ
T05fXy4nLXBvc3RlZCcsCgkJJ2NsYXNzX3VzZXInICAgPT4gX19GVU5DVElPTl9fLictdXNl
cicKCSksJGF0dHMpKTsKCgkJJHR3aXQgPSBuZXcgYXJjX3R3aXR0ZXIoJGFyY190d2l0dGVy
X2NvbnN1bWVyS2V5CgkJCSwgJGFyY190d2l0dGVyX2NvbnN1bWVyU2VjcmV0LCAkcHJlZnNb
J2FyY190d2l0dGVyX2FjY2Vzc1Rva2VuJ10KCQkJLCAkcHJlZnNbJ2FyY190d2l0dGVyX2Fj
Y2Vzc1Rva2VuU2VjcmV0J10pOwoKCQlpZiAoJGNhY2hpbmcpIHsgIC8vIHR1cm4gb24gY2Fj
aGluZywgcmVjb21tZW5kZWQgKGRlZmF1bHQpCgkJCSR0d2l0LT5zZXRDYWNoaW5nKHRydWUp
OwoJCQkkdHdpdC0+Y2FjaGVEaXIoJGNhY2hlX2Rpcik7CgkJCSR0d2l0LT5jYWNoZVRpbWUo
JGNhY2hlX3RpbWUpOwoJCX0gZWxzZSB7ICAvLyB0dXJuIG9mZiBjYWNoaW5nLCBub3QgcmVj
b21tZW5kZWQgb3RoZXIgdGhhbiBmb3IgdGVzdGluZwoJCQkkdHdpdC0+c2V0Q2FjaGluZyhm
YWxzZSk7CgkJfQoKCQkvLyBjb25zdHJ1Y3Qgc2VhcmNoIHF1ZXJ5CgkJaWYgKCFlbXB0eSgk
c2VhcmNoKSkgewoJCQkkdGVybXMgPSBleHBsb2RlKCcsJywkc2VhcmNoKTsgJHRlcm1zID0g
YXJyYXlfbWFwKCd0cmltJywkdGVybXMpOwoJCQkkc2VhcmNoID0gaW1wbG9kZSgnICcsJHRl
cm1zKTsKCQl9CgkJaWYgKCRoYXNodGFncykgewoJCQkkaGFzaGVzID0gZXhwbG9kZSgnLCcs
JGhhc2h0YWdzKTsgJGhhc2hlcyA9IGFycmF5X21hcCgndHJpbScsJGhhc2hlcyk7CgkJCSRz
ZWFyY2guPSAoKCRzZWFyY2gpPycgJzonJykuJyMnLmltcGxvZGUoJyAjJywkaGFzaGVzKTsK
CQl9CgkJaWYgKCRyZXBseSkgewoJCQkkc2VhcmNoLj0gKCgkc2VhcmNoKT8nICc6JycpLid0
bzonLnRyaW0oJHJlcGx5KTsKCQl9CgkJaWYgKCR1c2VyKSB7CgkJCSRzZWFyY2guPSAoKCRz
ZWFyY2gpPycgJzonJykuJ2Zyb206Jy50cmltKCR1c2VyKTsKCQl9CgkJaWYgKCRtZW50aW9u
KSB7CgkJCSRzZWFyY2guPSAoKCRzZWFyY2gpPycgJzonJykuJ0AnLnRyaW0oJG1lbnRpb24p
OwoJCX0KCgkJaWYgKGVtcHR5KCRzZWFyY2gpKSB7CgkJCXJldHVybiAnJzsKCQl9IGVsc2Ug
ewoJCQkkc2VhcmNoID0gdXJsZW5jb2RlKCRzZWFyY2gpOwoJCX0KCgkJJG91dCA9IGFycmF5
KCk7CgkJJHJlc3VsdHMgPSAkdHdpdC0+Z2V0KCdzZWFyY2gvdHdlZXRzJwoJCQksIGFycmF5
KCdxJz0+JHNlYXJjaCwnY291bnQnPT4kbGltaXQsJ2xhbmcnPT4kbGFuZykpOwoKCQkkdHdl
ZXRzID0gJHJlc3VsdHMtPnN0YXR1c2VzOwoJCWlmICgkdHdlZXRzKSB7CgoJCQlmb3JlYWNo
ICgkdHdlZXRzIGFzICR0d2VldCkgewoKCQkJCSR1bmFtZSA9ICR0d2VldC0+dXNlci0+c2Ny
ZWVuX25hbWU7CgkJCQkkbmFtZSA9ICR0d2VldC0+dXNlci0+bmFtZTsKCQkJCSR0aW1lID0g
c3RydG90aW1lKGh0bWxlbnRpdGllcygkdHdlZXQtPmNyZWF0ZWRfYXQpKTsKCQkJCSRkYXRl
ID0gc2FmZV9zdHJmdGltZSgkZGF0ZWZvcm1hdCwkdGltZSk7CgkJCQkkdGV4dCA9ICR0d2Vl
dC0+dGV4dDsKCgkJCQkkbGlua3MgPSBmYWxzZTsKCQkJCWlmIChpc3NldCgkdHdlZXQtPmVu
dGl0aWVzLT51cmxzKSkgewoJCQkJCSRsaW5rcyA9IGFycmF5KCk7CgkJCQkJZm9yZWFjaCAo
JHR3ZWV0LT5lbnRpdGllcy0+dXJscyBhcyAkdXJsKSB7CgkJCQkJCSRsaW5rc1skdXJsLT51
cmxdID0gYXJyYXkoCgkJCQkJCQknZXhwYW5kZWRfdXJsJyA9PiAkdXJsLT5leHBhbmRlZF91
cmwsCgkJCQkJCQknZGlzcGxheV91cmwnID0+ICR1cmwtPmRpc3BsYXlfdXJsCgkJCQkJCSk7
CgkJCQkJfQoJCQkJfQoKCQkJCSRvdXRbXSA9IHRhZyhocmVmKGh0bWxlbnRpdGllcygkdW5h
bWUpLCdodHRwOi8vdHdpdHRlci5jb20vJyAuICR0d2VldC0+dXNlci0+c2NyZWVuX25hbWUs
CgkJCQkJJyB0aXRsZT0iJy5odG1sZW50aXRpZXMoJG5hbWUpLiciJykuJzogJywnc3BhbicK
CQkJCQkJLCcgY2xhc3M9IicuJGNsYXNzX3VzZXIuJyInKQoJCQkJCS5hcmNfVHdpdHRlcjo6
bWFrZUxpbmtzKGh0bWxlbnRpdGllcygkdGV4dCwgRU5UX1FVT1RFUywnVVRGLTgnKSwgJGxp
bmtzLCAkZnVsbF91cmxzKQoJCQkJCS4nICcudGFnKGh0bWxlbnRpdGllcygkZGF0ZSksJ3Nw
YW4nCgkJCQkJCSwnIGNsYXNzPSInLiRjbGFzc19wb3N0ZWQuJyInKTsKCgkJCX0KCgkJCXJl
dHVybiBkb0xhYmVsKCRsYWJlbCwgJGxhYmVsdGFnKS5kb1dyYXAoJG91dCwgJHdyYXB0YWcs
ICRicmVhaywgJGNsYXNzKTsKCQl9Cgp9CgpmdW5jdGlvbiBhcmNfdHdpdHRlcl90d2VldCgk
YXR0cykgewoJZ2xvYmFsICR0aGlzYXJ0aWNsZTsKCglleHRyYWN0KGxBdHRzKGFycmF5KAoJ
ICAnaWQnICAgICAgICA9PiAkdGhpc2FydGljbGVbJ3RoaXNpZCddLAoJICAnaW5jbHVkZV91
cmwnICAgPT4gdHJ1ZQoJKSwkYXR0cykpOwoKCWlmICgkaWQpIHsKCSAgLy8gRmV0Y2ggYXJj
X3R3aXR0ZXIgc3R1ZmYgdG8gYnVpbGQgdHdlZXQgZnJvbQoJICAkdHdlZXQgPSAoJGluY2x1
ZGVfdXJsKSA/IHNhZmVfcm93KCJ0d2VldCIsICdhcmNfdHdpdHRlcicsICJhcnRpY2xlX2lk
PXskaWR9IikKCQk6IHNhZmVfcm93KCJSRVBMQUNFKHR3ZWV0LENPTkNBVCgnICcsdGlueXVy
bCksJycpIEFTIHR3ZWV0IgoJCSAgLCAnYXJjX3R3aXR0ZXInLCAiYXJ0aWNsZV9pZD17JGlk
fSIpOwoJfQoKCWlmICgkdHdlZXRbJ3R3ZWV0J10pIHsKCSAgcmV0dXJuIGFyY19Ud2l0dGVy
OjptYWtlTGlua3MoCgkJaHRtbGVudGl0aWVzKCR0d2VldFsndHdlZXQnXSwgRU5UX1FVT1RF
UywnVVRGLTgnKSk7Cgl9Cn0KCmZ1bmN0aW9uIGFyY190d2l0dGVyX3R3ZWV0X3VybCgkYXR0
cywgJHRoaW5nPW51bGwpIHsKCWdsb2JhbCAkdGhpc2FydGljbGUsJHByZWZzOwoKCWV4dHJh
Y3QobEF0dHMoYXJyYXkoCgkgICdpZCcgICAgICA9PiAkdGhpc2FydGljbGVbJ3RoaXNpZCdd
LAoJICAndGl0bGUnICAgPT4gJycsCgkgICdjbGFzcycgICA9PiAnJwoJKSwkYXR0cykpOwoK
CWlmICgkaWQpIHsKCSAgLy8gRmV0Y2ggYXJjX3R3aXR0ZXIgc3R1ZmYgdG8gYnVpbGQgdHdl
ZXQgZnJvbQoJICAkdHdlZXQgPSBzYWZlX3JvdygidHdlZXRfaWQiCgkJLCAnYXJjX3R3aXR0
ZXInLCAiYXJ0aWNsZV9pZD17JGlkfSIpOwoJfQoKCWlmICgkdHdlZXRbJ3R3ZWV0X2lkJ10p
IHsKCSAgJHVybCA9ICJodHRwOi8vdHdpdHRlci5jb20vIi4kcHJlZnNbJ2FyY190d2l0dGVy
X3VzZXInXS4iL3N0YXR1cy8iLiR0d2VldFsndHdlZXRfaWQnXTsKCSAgaWYgKCR0aGluZz09
PW51bGwpIHsKCQlyZXR1cm4gJHVybDsKCSAgfQoJICByZXR1cm4gaHJlZihwYXJzZSgkdGhp
bmcpLCAkdXJsLAoJCSgkdGl0bGUgPyAnIHRpdGxlPSInLiR0aXRsZS4nIicgOiAnJykKCQku
KCRjbGFzcyA/ICcgY2xhc3M9IicuJGNsYXNzLiciJyA6ICcnKSk7Cgl9Cn0KCmZ1bmN0aW9u
IGFyY190d2l0dGVyX3Rpbnl1cmwoJGF0dHMsICR0aGluZz1udWxsKSB7CglnbG9iYWwgJHRo
aXNhcnRpY2xlOwoKCWV4dHJhY3QobEF0dHMoYXJyYXkoCgkgICdpZCcgICAgICA9PiAkdGhp
c2FydGljbGVbJ3RoaXNpZCddLAoJICAndGl0bGUnICAgPT4gJycsCgkgICdjbGFzcycgICA9
PiAnJwoJKSwkYXR0cykpOwoKCWlmICgkaWQpIHsKCSAgLy8gRmV0Y2ggYXJjX3R3aXR0ZXIg
c3R1ZmYgdG8gYnVpbGQgdHdlZXQgZnJvbQoJICAkdHdlZXQgPSBzYWZlX3JvdygidGlueXVy
bCIKCQksICdhcmNfdHdpdHRlcicsICJhcnRpY2xlX2lkPXskaWR9Iik7Cgl9CgoJaWYgKCR0
d2VldFsndGlueXVybCddKSB7CgkgIGlmICgkdGhpbmc9PT1udWxsKSB7CgkJcmV0dXJuICR0
d2VldFsndGlueXVybCddOwoJICB9CgoJICByZXR1cm4gaHJlZihwYXJzZSgkdGhpbmcpLCAk
dHdlZXRbJ3Rpbnl1cmwnXSwKCQkoJHRpdGxlID8gJyB0aXRsZT0iJy4kdGl0bGUuJyInIDog
JycpCgkJLigkY2xhc3MgPyAnIGNsYXNzPSInLiRjbGFzcy4nIicgOiAnJykpOwoJfQp9Cgov
KgogKiBQdWJsaWMgdGFnIGZvciBvdXRwdXR0aW5nIHdpZGdldCBKUwogKi8KZnVuY3Rpb24g
YXJjX3R3aXR0ZXJfd2lkZ2V0X2pzKCRhdHRzKQp7CiAgZXh0cmFjdChsQXR0cyhhcnJheSgK
CQknb3B0aW1pc2UnID0+IGZhbHNlCgkpLCRhdHRzKSk7CgogIHJldHVybiBfYXJjX3R3aXR0
ZXJfd2lkZ2V0X2pzKCRvcHRpbWlzZSk7Cn0KCmZ1bmN0aW9uIF9hcmNfdHdpdHRlcl93aWRn
ZXRfanMoJG9wdGltaXNlPXRydWUpCnsKICBnbG9iYWwgJGFyY190d2l0dGVyOwoKICAvLyBD
aGVjayBpZiB3aWRnZXQgSlMgaGFzIGFscmVhZHkgYmVlbiBvdXRwdXQKICBpZiAoJGFyY190
d2l0dGVyWyd3aWRnZXRfanMnXSkgcmV0dXJuOwoKICBpZiAoJG9wdGltaXNlPT1mYWxzZSkg
ewoJcmV0dXJuICc8c2NyaXB0IHNyYz0iaHR0cDovL3BsYXRmb3JtLnR3aXR0ZXIuY29tL3dp
ZGdldHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+JzsKICB9CgogICRq
cyA9IDw8PEpTCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKGZ1bmN0aW9uKCkg
ewogIGlmICh3aW5kb3cuX190d2l0dGVySW50ZW50SGFuZGxlcikgcmV0dXJuOwogIHZhciBp
bnRlbnRSZWdleCA9IC90d2l0dGVyXC5jb20oXDpcZHsyLDR9KT9cL2ludGVudFwvKFx3Kykv
LAoJICB3aW5kb3dPcHRpb25zID0gJ3Njcm9sbGJhcnM9eWVzLHJlc2l6YWJsZT15ZXMsdG9v
bGJhcj1ubyxsb2NhdGlvbj15ZXMnLAoJICB3aWR0aCA9IDU1MCwKCSAgaGVpZ2h0ID0gNDIw
LAoJICB3aW5IZWlnaHQgPSBzY3JlZW4uaGVpZ2h0LAoJICB3aW5XaWR0aCA9IHNjcmVlbi53
aWR0aDsKCiAgZnVuY3Rpb24gaGFuZGxlSW50ZW50KGUpIHsKCWUgPSBlIHx8IHdpbmRvdy5l
dmVudDsKCXZhciB0YXJnZXQgPSBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQsCgkJbSwgbGVm
dCwgdG9wOwoKCXdoaWxlICh0YXJnZXQgJiYgdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNl
KCkgIT09ICdhJykgewoJICB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZTsKCX0KCglpZiAo
dGFyZ2V0ICYmIHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYScgJiYgdGFy
Z2V0LmhyZWYpIHsKCSAgbSA9IHRhcmdldC5ocmVmLm1hdGNoKGludGVudFJlZ2V4KTsKCSAg
aWYgKG0pIHsKCQlsZWZ0ID0gTWF0aC5yb3VuZCgod2luV2lkdGggLyAyKSAtICh3aWR0aCAv
IDIpKTsKCQl0b3AgPSAwOwoKCQlpZiAod2luSGVpZ2h0ID4gaGVpZ2h0KSB7CgkJICB0b3Ag
PSBNYXRoLnJvdW5kKCh3aW5IZWlnaHQgLyAyKSAtIChoZWlnaHQgLyAyKSk7CgkJfQoKCQl3
aW5kb3cub3Blbih0YXJnZXQuaHJlZiwgJ2ludGVudCcsIHdpbmRvd09wdGlvbnMgKyAnLHdp
ZHRoPScgKyB3aWR0aCArCgkJCQkJCQkJCQkgICAnLGhlaWdodD0nICsgaGVpZ2h0ICsgJyxs
ZWZ0PScgKyBsZWZ0ICsgJyx0b3A9JyArIHRvcCk7CgkJZS5yZXR1cm5WYWx1ZSA9IGZhbHNl
OwoJCWUucHJldmVudERlZmF1bHQgJiYgZS5wcmV2ZW50RGVmYXVsdCgpOwoJICB9Cgl9CiAg
fQoKICBpZiAoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewoJZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVJbnRlbnQsIGZhbHNlKTsKICB9IGVsc2UgaWYg
KGRvY3VtZW50LmF0dGFjaEV2ZW50KSB7Cglkb2N1bWVudC5hdHRhY2hFdmVudCgnb25jbGlj
aycsIGhhbmRsZUludGVudCk7CiAgfQogIHdpbmRvdy5fX3R3aXR0ZXJJbnRlbnRIYW5kbGVy
ID0gdHJ1ZTsKfSgpKTsKPC9zY3JpcHQ+CkpTOwogICRhcmNfdHdpdHRlclsnd2lkZ2V0X2pz
J10gPSB0cnVlOwogIHJldHVybiAkanM7Cn0KCi8vIERlcHJlY2F0ZWQgYXJjX3R3aXR0ZXJf
cmV0d2VldCB0YWcsIHVzZSBhcmNfdHdpdHRlcl90d2VldF9idXR0b24gaW5zdGVhZApmdW5j
dGlvbiBhcmNfdHdpdHRlcl9yZXR3ZWV0KCRhdHRzLCAkdGhpbmc9bnVsbCkKewogIHJldHVy
biBhcmNfdHdpdHRlcl90d2VldF9idXR0b24oJGF0dHMsICR0aGluZz1udWxsKTsKfQpmdW5j
dGlvbiBhcmNfdHdpdHRlcl90d2VldF9idXR0b24oJGF0dHMsICR0aGluZz1udWxsKQp7Cgln
bG9iYWwgJHByZWZzLCRhcmNfdHdpdHRlcl9jb25zdW1lcktleSwgJGFyY190d2l0dGVyX2Nv
bnN1bWVyU2VjcmV0OwoJZ2xvYmFsICR0aGlzYXJ0aWNsZTsKCglleHRyYWN0KGxBdHRzKGFy
cmF5KAoJCSd1c2VyJyAgICAgICAgPT4gJHByZWZzWydhcmNfdHdpdHRlcl91c2VyJ10sIC8v
IHZpYSB1c2VyIGFjY291bnQKCQkndXJsJyAgICAgICAgID0+ICcnLAoJCSd0ZXh0JyAgICAg
ICAgPT4gJycsCgkJJ2ZvbGxvdzEnICAgICA9PiAnJywKCQknZm9sbG93MicgICAgID0+ICcn
LAoJCSdsYW5nJyAgICAgICAgPT4gJycsCgkJJ2NvdW50JyAgICAgICA9PiAnaG9yaXpvbnRh
bCcsCgkJJ2luY2x1ZGVfanMnICA9PiB0cnVlLAoJCSdvcHRpbWlzZV9qcycgPT4gZmFsc2Us
CgkJJ3dyYXB0YWcnICAgICA9PiAnJywKCQknY2xhc3MnICAgICAgID0+ICd0d2l0dGVyLXNo
YXJlLWJ1dHRvbicKCSksJGF0dHMpKTsKCgkkcSA9ICcnOyAvLyBxdWVyeSBzdHJpbmcKCglp
ZiAoJGlkPSR0aGlzYXJ0aWNsZVsndGhpc2lkJ10pIHsKCSAgLy8gRmV0Y2ggYXJjX3R3aXR0
ZXIgc3R1ZmYgdG8gYnVpbGQgdHdlZXQgZnJvbQoJICAkcm93ID0gc2FmZV9yb3coIlJFUExB
Q0UodHdlZXQsQ09OQ0FUKCcgJyx0aW55dXJsKSwnJykgQVMgdHdlZXQsdGlueXVybCIKCQks
ICdhcmNfdHdpdHRlcicsICJhcnRpY2xlX2lkPXskaWR9Iik7CgoJICBpZiAoJHVybD09Jycp
IHsKCQkkdXJsID0gKCR1cmwpID8gJHVybCA6IHBlcm1saW5rdXJsKCR0aGlzYXJ0aWNsZSk7
CgkJJHEgPSAndXJsPScudXJsZW5jb2RlKCR1cmwpOwoJICB9CgkgIGlmICgkdGV4dD09Jycp
IHsKCQkkdGV4dCA9ICgkcm93Wyd0d2VldCddKSA/ICRyb3dbJ3R3ZWV0J10gOiAkdGhpc2Fy
dGljbGVbJ3RpdGxlJ107CgkgIH0KCSAgJHEgLj0gKCRxID8gJyZhbXA7JyA6ICcnKS4ndGV4
dD0nLnVybGVuY29kZSgkdGV4dCk7Cgl9CglpZiAoJHVzZXIpIHsKCSAgJHEgLj0gKCRxID8g
JyZhbXA7JyA6ICcnKS4ndmlhPScudXJsZW5jb2RlKCR1c2VyKTsKCX0KCWlmICgkZm9sbG93
MSYmJGZvbGxvdzIpIHsKCSAgJHEgLj0gKCRxID8gJyZhbXA7JyA6ICcnKS4ncmVsYXRlZD0n
LnVybGVuY29kZSgkZm9sbG93MS4nOicuJGZvbGxvdzIpOwoJfSBlbHNlaWYgKCRmb2xsb3cx
fHwkZm9sbG93MikgewoJICAkcSAuPSAoJHEgPyAnJmFtcDsnIDogJycpLidyZWxhdGVkPScu
dXJsZW5jb2RlKCRmb2xsb3cxLiRmb2xsb3cyKTsKCX0KCglzd2l0Y2ggKCRsYW5nKSB7Cgkg
IGNhc2UgJ2ZyJzogYnJlYWs7IGNhc2UgJ2RlJzogYnJlYWs7IGNhc2UgJ2VzJzogYnJlYWs7
IGNhc2UgJ2pwJzogYnJlYWs7CgkgIGRlZmF1bHQ6CgkJJGxhbmcgPSAnZW4nOwoJfQoJJHEg
Lj0gKCRxID8gJyZhbXA7JyA6ICcnKS4nbGFuZz0nLnVybGVuY29kZSgkbGFuZyk7CgoJc3dp
dGNoICgkY291bnQpIHsKCSAgY2FzZSAnbm9uZSc6IGJyZWFrOyBjYXNlICd2ZXJ0aWNhbCc6
IGJyZWFrOwoJICBkZWZhdWx0OgoJCSRjb3VudCA9ICdob3Jpem9udGFsJzsKCX0KCSRxIC49
ICgkcSA/ICcmYW1wOycgOiAnJykuJ2NvdW50PScudXJsZW5jb2RlKCRjb3VudCk7CgoJJHRo
aW5nID0gKCR0aGluZz09PW51bGwpID8gJ1R3ZWV0JyA6IHBhcnNlKCR0aGluZyk7CgoJJGh0
bWwgPSBocmVmKCR0aGluZywnaHR0cDovL3R3aXR0ZXIuY29tL3NoYXJlPycuJHEKCSAgLCAn
IGNsYXNzPSInLiRjbGFzcy4nIicpOwoKCSRqcyA9ICgkaW5jbHVkZV9qcykgPyBfYXJjX3R3
aXR0ZXJfd2lkZ2V0X2pzKCRvcHRpbWlzZV9qcz90cnVlOmZhbHNlKSA6ICcnOwoKCXJldHVy
biAkanMuJGh0bWw7Cn0KCi8qCiAqIFR3aXR0ZXIgRm9sbG93IGJ1dHRvbgogKi8KZnVuY3Rp
b24gYXJjX3R3aXR0ZXJfZm9sbG93X2J1dHRvbigkYXR0cywgJHRoaW5nPW51bGwpCnsKCWds
b2JhbCAkcHJlZnMsJGFyY190d2l0dGVyX2NvbnN1bWVyS2V5LCAkYXJjX3R3aXR0ZXJfY29u
c3VtZXJTZWNyZXQ7CglnbG9iYWwgJHRoaXNhcnRpY2xlOwoKCWV4dHJhY3QobEF0dHMoYXJy
YXkoCgkJJ3VzZXInICAgICAgICA9PiAkcHJlZnNbJ2FyY190d2l0dGVyX3VzZXInXSwgLy8g
dmlhIHVzZXIgYWNjb3VudAoJCSdsYW5nJyAgICAgICAgPT4gJycsCgkJJ2NvdW50JyAgICAg
ICA9PiB0cnVlLAoJCSdpbmNsdWRlX2pzJyAgPT4gdHJ1ZSwKCQknb3B0aW1pc2VfanMnID0+
IGZhbHNlLAoJCSdjbGFzcycgICAgICAgPT4gJ3R3aXR0ZXItZm9sbG93LWJ1dHRvbicKCSks
JGF0dHMpKTsKCgkkYXR0cyA9ICcnOyAvLyBkYXRhIGF0dHJpYnV0ZXMKCglzd2l0Y2ggKCRs
YW5nKSB7CgkgIGNhc2UgJ2ZyJzogYnJlYWs7IGNhc2UgJ2RlJzogYnJlYWs7IGNhc2UgJ2Vz
JzogYnJlYWs7IGNhc2UgJ2pwJzogYnJlYWs7CgkgIGRlZmF1bHQ6CgkJJGxhbmcgPSAnZW4n
OwoJfQoJJGF0dHMgLj0gJyBkYXRhLWxhbmc9IicudXJsZW5jb2RlKCRsYW5nKS4nIic7CgoJ
JGF0dHMgLj0gJyBkYXRhLXNob3ctY291bnQ9IicuKCRjb3VudD8ndHJ1ZSc6J2ZhbHNlJyku
JyInOwoKCSR0aGluZyA9ICgkdGhpbmc9PT1udWxsKSA/ICdGb2xsb3cgQCcuJHVzZXIgOiBw
YXJzZSgkdGhpbmcpOwoKCSRodG1sID0gaHJlZigkdGhpbmcsJ2h0dHA6Ly90d2l0dGVyLmNv
bS8nLnVybGVuY29kZSgkdXNlcikKCSAgLCAnIGNsYXNzPSInLiRjbGFzcy4nIicuJGF0dHMp
OwoKCSRqcyA9ICgkaW5jbHVkZV9qcykgPyBfYXJjX3R3aXR0ZXJfd2lkZ2V0X2pzKCRvcHRp
bWlzZV9qcz90cnVlOmZhbHNlKSA6ICcnOwoKCXJldHVybiAkanMuJGh0bWw7Cn0KCi8qCglB
ZG1pbi1zaWRlIGZ1bmN0aW9ucwoJPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoqLwoKLy8gSW5zdGFsbGF0aW9uIGZ1
bmN0aW9uIC0gYnVpbGRzIE15U1FMIHRhYmxlCmZ1bmN0aW9uIGFyY190d2l0dGVyX2luc3Rh
bGwoKQp7CglnbG9iYWwgJERCOwoJLy8gRm9yIGZpcnN0IGluc3RhbGwsIGNyZWF0ZSB0YWJs
ZSBmb3IgdHdlZXRzCgkkc3FsID0gIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTICIuUEZY
LiJhcmNfdHdpdHRlciAiOwoJJHNxbC49ICIoYXJjX3R3aXR0ZXJpZCBJTlRFR0VSIEFVVE9f
SU5DUkVNRU5UIFBSSU1BUlkgS0VZLAoJCWFydGljbGVfaWQgSU5URUdFUigxMSksCgkJdHdl
ZXRfaWQgVkFSQ0hBUigxMDApLAoJCXR3ZWV0IFZBUkNIQVIoMjgwKSwKCQl0aW55dXJsIFZB
UkNIQVIoMzApKTsiOwoKCWlmICghc2FmZV9xdWVyeSgkc3FsKSkgewoJCXJldHVybiAnRXJy
b3IgLSB1bmFibGUgdG8gY3JlYXRlIGFyY190d2l0dGVyIHRhYmxlJzsKCX0KCgkvLyBDaGVj
ayBpZiB3ZSBuZWVkIHRvIHVwZGF0ZSBhbiBleGlzdGluZyB0YWJsZSB0byB1c2UgdGhlIGxh
cmdlciBzdHJpbmcgbGVuZ3RoLgoJJHNxbCA9ICdTRUxFQ1QgY29sdW1uX3R5cGUgRlJPTSBp
bmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSBjb2x1bW5fbmFtZSA9IFwndHdlZXRc
JyBBTkQgdGFibGVfbmFtZSA9IFwnJyAuIHNhZmVfcGZ4KCdhcmNfdHdpdHRlcicpIC4gJ1wn
JzsKCSRzcWwgLj0gJyBBTkQgdGFibGVfc2NoZW1hID0gXCcnIC4gJERCLT5kYiAuICdcJyc7
CgkkcmVzdWx0ID0gbmV4dFJvdyhzYWZlX3F1ZXJ5KCRzcWwpKTsKCWlmICghIGVtcHR5KCRy
ZXN1bHRbJ2NvbHVtbl90eXBlJ10pICYmIHN0cnBvcygkcmVzdWx0Wydjb2x1bW5fdHlwZSdd
LCAndmFyY2hhcigxNDApJykgIT09IGZhbHNlKSB7CgkJc2FmZV9hbHRlcignYXJjX3R3aXR0
ZXInLCAnQ0hBTkdFIHR3ZWV0IHR3ZWV0IFZBUkNIQVIoMjgwKScpOwoJfQoKfQoKLy8gVW5p
bnN0YWxsIGZ1bmN0aW9uIC0gZGVsZXRlcyBNeVNRTCB0YWJsZSBhbmQgcmVsYXRlZCBwcmVm
ZXJlbmNlcwpmdW5jdGlvbiBhcmNfdHdpdHRlcl91bmluc3RhbGwoKQp7CgoJJHNxbCA9ICJE
Uk9QIFRBQkxFIElGIEVYSVNUUyAiLlBGWC4iYXJjX3R3aXR0ZXI7IjsKCWlmICghc2FmZV9x
dWVyeSgkc3FsKSkgewoJCXJldHVybiAnRXJyb3IgLSB1bmFibGUgdG8gZGVsZXRlIGFyY190
d2l0dGVyIHRhYmxlJzsKCX0KCgkkc3FsID0gIkRFTEVURSBGUk9NICAiLlBGWC4idHhwX3By
ZWZzIFdIRVJFIGV2ZW50PSdhcmNfdHdpdHRlcic7IjsKCWlmICghc2FmZV9xdWVyeSgkc3Fs
KSkgewoJCXJldHVybiAnRXJyb3IgLSB1bmFibGUgdG8gZGVsZXRlIGFyY190d2l0dGVyIHBy
ZWZlcmVuY2VzJzsKCX0KCn0KZnVuY3Rpb24gYXJjX3R3aXR0ZXJfdXJsX21ldGhvZF9zZWxl
Y3QoJG5hbWUsICR2YWwpCnsKCSRtZXRob2RzID0gYXJyYXkoCgkJJ2Z1bGwnID0+ICdEbyBu
b3Qgc2hvcnRlbicsCgkJJ3Rpbnl1cmwnID0+ICdUaW55dXJsJywKCQknaXNnZCcgPT4gJ0lz
LmdkJywKCQknYXJjX3R3aXR0ZXInID0+ICdUWFAgVHdlZXQnLAoJCSdzbWQnID0+ICdzbWRf
c2hvcnRfdXJsJwoJKTsKCXJldHVybiBzZWxlY3RJbnB1dCgkbmFtZSwgJG1ldGhvZHMsICR2
YWwsICcnLCAnJywgJG5hbWUpOwp9CmZ1bmN0aW9uIGFyY190d2l0dGVyX3RhYl9zZWxlY3Qo
JG5hbWUsICR2YWwpCnsKCSR0YWJzID0gYXJyYXkoJ2NvbnRlbnQnID0+ICdDb250ZW50JywK
CQknZXh0ZW5zaW9ucycgPT4gJ0V4dGVuc2lvbnMnLAoJCScnID0+ICdIaWRkZW4nKTsKCXJl
dHVybiBzZWxlY3RJbnB1dCgkbmFtZSwgJHRhYnMsICR2YWwsICcnLCAnJywgJG5hbWUpOwp9
Ci8vIFByb3ZpZGUgaW50ZXJmYWNlIGZvciBzZXR0aW5nIHByZWZlcmVuY2VzCmZ1bmN0aW9u
IGFyY190d2l0dGVyX3ByZWZzKCRldmVudCwkc3RlcCkKewoKCWdsb2JhbCAkcHJlZnMsICRh
cmNfdHdpdHRlcl9jb25zdW1lcktleSwgJGFyY190d2l0dGVyX2NvbnN1bWVyU2VjcmV0OwoK
CSR1c2VyID0gJHByZWZzWydhcmNfdHdpdHRlcl91c2VyJ107CgkkcHJlZml4ID0gJHByZWZz
WydhcmNfdHdpdHRlcl9wcmVmaXgnXTsKCSRzdWZmaXggPSAkcHJlZnNbJ2FyY190d2l0dGVy
X3N1ZmZpeCddOwoJJHR3ZWV0X2RlZmF1bHQgPSAkcHJlZnNbJ2FyY190d2l0dGVyX3R3ZWV0
X2RlZmF1bHQnXTsKCSR1cmxfbWV0aG9kID0gJHByZWZzWydhcmNfdHdpdHRlcl91cmxfbWV0
aG9kJ107Cgkkc2hvcnRfdXJsID0gJHByZWZzWydhcmNfc2hvcnRfdXJsJ107Cgkkc2hvcnRf
c2l0ZV91cmwgPSAkcHJlZnNbJ2FyY19zaG9ydF9zaXRlX3VybCddOwoJJGNhY2hlX2RpciA9
ICRwcmVmc1snYXJjX3R3aXR0ZXJfY2FjaGVfZGlyJ107CgkkdGFiID0gJHByZWZzWydhcmNf
dHdpdHRlcl90YWInXTsKCSR1dG0gPSAhZW1wdHkoJHByZWZzWydhcmNfdHdpdHRlcl91dG0n
XSkgPyAkcHJlZnNbJ2FyY190d2l0dGVyX3V0bSddIDogMDsKCglzd2l0Y2ggKCRzdGVwKSB7
CgkJY2FzZSAncHJlZnNfc2F2ZSc6IHBhZ2V0b3AoJ1RYUCBUd2VldCcsICdQcmVmZXJlbmNl
cyBzYXZlZCcpOyBicmVhazsKCQljYXNlICdyZWdpc3Rlcic6IHBhZ2V0b3AoJ1RYUCBUd2Vl
dCcsJ0Nvbm5lY3QgdG8gVHdpdHRlcicpOyBicmVhazsKCQljYXNlICd2YWxpZGF0ZSc6CgkJ
ZGVmYXVsdDogcGFnZXRvcCgnVFhQIFR3ZWV0Jyk7Cgl9CgoJJGh0bWwgPSAnJzsKCglpZiAo
JHN0ZXA9PSdyZWdpc3RlcicpIHsgLy8gT0F1dGggcmVnaXN0cmF0aW9uIHByb2Nlc3MKCgkJ
JHR3aXQgPSBuZXcgYXJjX3R3aXR0ZXIoJGFyY190d2l0dGVyX2NvbnN1bWVyS2V5LCAkYXJj
X3R3aXR0ZXJfY29uc3VtZXJTZWNyZXQpOwoKCQkvLyBCdWlsZCBhIGNhbGxiYWNrIFVSTCBm
b3IgVHdpdHRlciB0byByZXR1cm4gdG8gdGhlIG5leHQgc3RhZ2UKCQkkY2FsbGJhY2tVUkwg
PSAkdHdpdC0+Y2FsbGJhY2tVUkwoJGV2ZW50LCd2YWxpZGF0ZScpOwoKCQkkcmVxdWVzdCA9
ICR0d2l0LT5nZXRSZXF1ZXN0VG9rZW4oJGNhbGxiYWNrVVJMKTsKCQkkcmVxdWVzdF90b2tl
biA9ICRyZXF1ZXN0WyJvYXV0aF90b2tlbiJdOwoJCSRyZXF1ZXN0X3Rva2VuX3NlY3JldCA9
ICRyZXF1ZXN0WyJvYXV0aF90b2tlbl9zZWNyZXQiXTsKCgkJc2V0X3ByZWYoJ2FyY190d2l0
dGVyX3JlcXVlc3RUb2tlbicsJHJlcXVlc3RfdG9rZW4sICdhcmNfdHdpdHRlcicsMik7CgkJ
c2V0X3ByZWYoJ2FyY190d2l0dGVyX3JlcXVlc3RUb2tlblNlY3JldCcsJHJlcXVlc3RfdG9r
ZW5fc2VjcmV0LCAnYXJjX3R3aXR0ZXInLDIpOwoKCSRodG1sID0gIjxkaXYgY2xhc3M9J3Rl
eHQtY29sdW1uJz4iCgkgIC4iPHA+Ii5ocmVmKCdTaWduLWluIHRvIFR3aXR0ZXInLCAkdHdp
dC0+Z2V0QXV0aG9yaXplVVJMKCRyZXF1ZXN0KSkuIiBhbmQgZm9sbG93IHRoZSBpbnN0cnVj
dGlvbnMgdG8gYWxsb3cgVFhQIFR3ZWV0IHRvIHVzZSB5b3VyIGFjY291bnQuIElmIHlvdSBh
cmUgYWxyZWFkeSBzaWduZWQgaW4gdG8gVHdpdHRlciB0aGVuIHRoYXQgYWNjb3VudCB3aWxs
IGJlIGFzc29jaWF0ZWQgd2l0aCBUWFAgVHdlZXQgc28geW91IG1heSBuZWVkIHRvIHNpZ24g
b3V0IGZpcnN0IGlmIHlvdSB3YW50IHRvIHVzZSBhIGRpZmZlcmVudCBhY2NvdW50LjwvcD4i
CgkgIC4iPC9kaXY+IjsKCgl9IGVsc2VpZiAoJHN0ZXA9PSd2YWxpZGF0ZScpIHsKCQkkdHdp
dCA9IG5ldyBhcmNfdHdpdHRlcigkYXJjX3R3aXR0ZXJfY29uc3VtZXJLZXkKCQkJLCAkYXJj
X3R3aXR0ZXJfY29uc3VtZXJTZWNyZXQsICRwcmVmc1snYXJjX3R3aXR0ZXJfcmVxdWVzdFRv
a2VuJ10KCQkJLCAkcHJlZnNbJ2FyY190d2l0dGVyX3JlcXVlc3RUb2tlblNlY3JldCddKTsK
CQkvLyBBc2sgVHdpdHRlciBmb3IgYW4gYWNjZXNzIHRva2VuIChhbmQgYW4gYWNjZXNzIHRv
a2VuIHNlY3JldCkKCQkkcmVxdWVzdCA9ICR0d2l0LT5nZXRBY2Nlc3NUb2tlbiggZ3BzKCdv
YXV0aF92ZXJpZmllcicpICk7CgkJJGFjY2Vzc190b2tlbiA9ICRyZXF1ZXN0WydvYXV0aF90
b2tlbiddOwoJCSRhY2Nlc3NfdG9rZW5fc2VjcmV0ID0gJHJlcXVlc3RbJ29hdXRoX3Rva2Vu
X3NlY3JldCddOwoJCSR1c2VyID0gJHJlcXVlc3RbJ3NjcmVlbl9uYW1lJ107CgkJLy8gU3Rv
cmUgdGhlIGFjY2VzcyB0b2tlbiBhbmQgc2VjcmV0CgkJc2V0X3ByZWYoJ2FyY190d2l0dGVy
X2FjY2Vzc1Rva2VuJywkYWNjZXNzX3Rva2VuLCAnYXJjX3R3aXR0ZXInLDIpOwoJCXNldF9w
cmVmKCdhcmNfdHdpdHRlcl9hY2Nlc3NUb2tlblNlY3JldCcsJGFjY2Vzc190b2tlbl9zZWNy
ZXQKCQkJLCAnYXJjX3R3aXR0ZXInLDIpOwoJCXNldF9wcmVmKCdhcmNfdHdpdHRlcl91c2Vy
JywkdXNlcik7CgkJJHByZWZzWydhcmNfdHdpdHRlcl9hY2Nlc3NUb2tlbiddID0gJGFjY2Vz
c190b2tlbjsKCQkkcHJlZnNbJ2FyY190d2l0dGVyX2FjY2Vzc1Rva2VuU2VjcmV0J10gPSAk
YWNjZXNzX3Rva2VuX3NlY3JldDsKCQl1bnNldCgkdHdpdCk7Cgl9CgoJaWYgKCRzdGVwPT0i
cHJlZnNfc2F2ZSIpIHsKCgkJJHByZWZpeCA9IHRyaW0oZ3BzKCdhcmNfdHdpdHRlcl9wcmVm
aXgnKSk7CgkJJHN1ZmZpeCA9IHRyaW0oZ3BzKCdhcmNfdHdpdHRlcl9zdWZmaXgnKSk7CgkJ
JHR3ZWV0X2RlZmF1bHQgPSBncHMoJ2FyY190d2l0dGVyX3R3ZWV0X2RlZmF1bHQnKTsKCQkk
dXJsX21ldGhvZCA9IGdwcygnYXJjX3R3aXR0ZXJfdXJsX21ldGhvZCcpOwoJCSRzaG9ydF91
cmwgPSBncHMoJ2FyY19zaG9ydF91cmwnKTsKCQkkc2hvcnRfc2l0ZV91cmwgPSBncHMoJ2Fy
Y19zaG9ydF9zaXRlX3VybCcpOwoJCSRjYWNoZV9kaXIgPSBncHMoJ2FyY190d2l0dGVyX2Nh
Y2hlX2RpcicpOwoJCSR0YWIgPSBncHMoJ2FyY190d2l0dGVyX3RhYicpOwoJCSR1dG0gPSBn
cHMoJ2FyY190d2l0dGVyX3V0bScpOwoKCQlpZiAoc3RybGVuKCRwcmVmaXgpPD0yMCkgewoJ
CQlzZXRfcHJlZignYXJjX3R3aXR0ZXJfcHJlZml4JywkcHJlZml4KTsKCQl9IGVsc2UgewoJ
CQkkcHJlZml4ID0gJHByZWZzWydhcmNfdHdpdHRlcl9wcmVmaXgnXTsKCQl9CgkJaWYgKHN0
cmxlbigkc3VmZml4KTw9MjApIHsKCQkJc2V0X3ByZWYoJ2FyY190d2l0dGVyX3N1ZmZpeCcs
JHN1ZmZpeCk7CgkJfSBlbHNlIHsKCQkJJHN1ZmZpeCA9ICRwcmVmc1snYXJjX3R3aXR0ZXJf
c3VmZml4J107CgkJfQoJCSR0d2VldF9kZWZhdWx0ID0gKCR0d2VldF9kZWZhdWx0KSA/IDEg
OiAwOwoJCSRzaG9ydF91cmwgPSAoJHNob3J0X3VybCkgPyAxIDogMDsKCQlpZiAoISRzaG9y
dF9zaXRlX3VybCkgewoJCQkkc2hvcnRfc2l0ZV91cmwgPSAkcHJlZnNbJ3NpdGV1cmwnXTsK
CQl9CgkJc2V0X3ByZWYoJ2FyY190d2l0dGVyX3R3ZWV0X2RlZmF1bHQnLCAkdHdlZXRfZGVm
YXVsdCk7CgkJc2V0X3ByZWYoJ2FyY19zaG9ydF91cmwnLCAkc2hvcnRfdXJsKTsKCQlzZXRf
cHJlZignYXJjX3R3aXR0ZXJfdXJsX21ldGhvZCcsICR1cmxfbWV0aG9kKTsKCQlzZXRfcHJl
ZignYXJjX3Nob3J0X3NpdGVfdXJsJywgJHNob3J0X3NpdGVfdXJsKTsKCQlzZXRfcHJlZign
YXJjX3R3aXR0ZXJfY2FjaGVfZGlyJywgJGNhY2hlX2Rpcik7CgkJc2V0X3ByZWYoJ2FyY190
d2l0dGVyX3RhYicsICR0YWIpOwoJCXNldF9wcmVmKCdhcmNfdHdpdHRlcl91dG0nLCAkdXRt
KTsKCgl9CgoJaWYgKCAkc3RlcCE9J3JlZ2lzdGVyJyApIHsKCQlpZiAoIGlzc2V0KCRwcmVm
c1snYXJjX3R3aXR0ZXJfYWNjZXNzVG9rZW4nXSkKCQkmJiBpc3NldCgkcHJlZnNbJ2FyY190
d2l0dGVyX2FjY2Vzc1Rva2VuU2VjcmV0J10pICkgewoJCQkkdHdpdCA9IG5ldyBhcmNfdHdp
dHRlcigkYXJjX3R3aXR0ZXJfY29uc3VtZXJLZXkKCQkJCSwgJGFyY190d2l0dGVyX2NvbnN1
bWVyU2VjcmV0LCAkcHJlZnNbJ2FyY190d2l0dGVyX2FjY2Vzc1Rva2VuJ10KCQkJCSwgJHBy
ZWZzWydhcmNfdHdpdHRlcl9hY2Nlc3NUb2tlblNlY3JldCddKTsKCQkJJHJlZ2lzdGVyVVJM
ID0gJHR3aXQtPmNhbGxiYWNrVVJMKCRldmVudCwncmVnaXN0ZXInKTsKCgkJCS8vIERlZmlu
ZSB0aGUgZmllbGRzIHJlYWR5IHRvIGJ1aWxkIHRoZSBmb3JtCgkJCSRmaWVsZHMgPSBhcnJh
eSgKCQkJCSdUd2VldCBTZXR0aW5ncycgPT4gYXJyYXkoCgkJCQkgICdhcmNfdHdpdHRlcl9w
cmVmaXgnID0+IGFycmF5KAoJCQkJCSdsYWJlbCcgPT4gJ1R3ZWV0IHByZWZpeCcsCgkJCQkJ
J3ZhbHVlJyA9PiAkcHJlZml4CgkJCQkgICksCgkJCQkgICdhcmNfdHdpdHRlcl9zdWZmaXgn
ID0+IGFycmF5KAoJCQkJCSdsYWJlbCcgPT4gJ1R3ZWV0IHN1ZmZpeCcsCgkJCQkJJ3ZhbHVl
JyA9PiAkc3VmZml4CgkJCQkgICksCgkJCQkgICdhcmNfdHdpdHRlcl90d2VldF9kZWZhdWx0
JyA9PiBhcnJheSgKCQkJCQknbGFiZWwnID0+ICdUd2VldCBhcnRpY2xlcyBieSBkZWZhdWx0
JywKCQkJCQkndHlwZScgPT4gJ3llc25vUmFkaW8nLAoJCQkJCSd2YWx1ZScgPT4gJHR3ZWV0
X2RlZmF1bHQKCQkJCSAgKSwKCQkJCSAgJ2FyY190d2l0dGVyX3VybF9tZXRob2QnID0+IGFy
cmF5KAoJCQkJCSdsYWJlbCcgPT4gJ1VSTCBzaG9ydG5lcicsCgkJCQkJJ3R5cGUnID0+ICdh
cmNfdHdpdHRlcl91cmxfbWV0aG9kX3NlbGVjdCcsCgkJCQkJJ3ZhbHVlJyA9PiAkdXJsX21l
dGhvZAoJCQkJICApCgkJCQkpLAoJCQkJJ1RYUCBUd2VldCBzaG9ydCBVUkwnID0+IGFycmF5
KAoJCQkJICAnYXJjX3Nob3J0X3VybCcgPT4gYXJyYXkoCgkJCQkJJ2xhYmVsJyA9PiAnRW5h
YmxlIFRYUCBUd2VldCBzaG9ydCBVUkwgcmVkaXJlY3QnLAoJCQkJCSd0eXBlJyA9PiAneWVz
bm9SYWRpbycsCgkJCQkJJ3ZhbHVlJyA9PiAkc2hvcnRfdXJsCgkJCQkgICksCgkJCQkgICdh
cmNfc2hvcnRfc2l0ZV91cmwnID0+IGFycmF5KAoJCQkJCSdsYWJlbCcgPT4gJ1RYUCBUd2Vl
dCBzaG9ydCBzaXRlIFVSTCcsCgkJCQkJJ3ZhbHVlJyA9PiAkc2hvcnRfc2l0ZV91cmwKCQkJ
CSAgKQoJCQkJKSwKCQkJCSdUd2l0dGVyIFRhYicgPT4gYXJyYXkoCgkJCQkgICdhcmNfdHdp
dHRlcl90YWInID0+IGFycmF5KAoJCQkJCSdsYWJlbCcgPT4gJ0xvY2F0aW9uIG9mIHRhYics
CgkJCQkJJ3R5cGUnID0+ICdhcmNfdHdpdHRlcl90YWJfc2VsZWN0JywKCQkJCQkndmFsdWUn
ID0+ICR0YWIKCQkJCSAgKQoJCQkJKSwKCQkJCSdHb29nbGUgQW5hbHl0aWNzJyA9PiBhcnJh
eSgKCQkJCQknYXJjX3R3aXR0ZXJfdXRtJyA9PiBhcnJheSgKCQkJCQkJJ2xhYmVsJyA9PiAn
RW5hYmxlIFVUTScsCgkJCQkJCSd0eXBlJyA9PiAneWVzbm9SYWRpbycsCgkJCQkJCSd2YWx1
ZScgPT4gJHV0bQoJCQkJCSkKCQkJCSksCgkJCQknQ2FjaGUnID0+IGFycmF5KAoJCQkJICAn
YXJjX3R3aXR0ZXJfY2FjaGVfZGlyJyA9PiBhcnJheSgKCQkJCQknbGFiZWwnID0+ICdDYWNo
ZSBkaXJlY3RvcnknLAoJCQkJCSd2YWx1ZScgPT4gJGNhY2hlX2RpcgoJCQkJICApCgkJCQkp
CgkJCSk7CgoJCQkkZm9ybSA9ICI8aDI+VHdpdHRlciBhY2NvdW50IGRldGFpbHM8L2gyPiIK
CQkuIjxwPjxzcGFuIGNsYXNzPSdlZGl0LWxhYmVsJz5Ud2l0dGVyIHVzZXJuYW1lPC9zcGFu
PiIKCQkuIjxzcGFuIGNsYXNzPSdlZGl0LXZhbHVlJz4iCgkJLigkcHJlZnNbJ2FyY190d2l0
dGVyX3VzZXInXSA/ICR1c2VyLicgKCcuaHJlZignUmUtY29ubmVjdCcsJHJlZ2lzdGVyVVJM
KS4nKScgOiAnPGVtPnVua25vd248L2VtPicuaHJlZignQ29ubmVjdCB0byBUd2l0dGVyJywk
cmVnaXN0ZXJVUkwpKQoJCQkJLiI8L3NwYW4+PC9wPiI7CgoJCQkkZm9ybSAuPSBfYXJjX3R3
aXR0ZXJfZm9ybV9idWlsZGVyKCRmaWVsZHMpOwoKCQkJJGZvcm0gLj0gc0lucHV0KCdwcmVm
c19zYXZlJykubi5lSW5wdXQoJ3BsdWdpbl9wcmVmcy5hcmNfdHdpdHRlcicpOwoKCSAgJGZv
cm0gLj0gJzxwPicuZklucHV0KCdzdWJtaXQnLCAnU3VibWl0JywgZ1R4dCgnc2F2ZV9idXR0
b24nKSwgJ3B1Ymxpc2gnKS4nPC9wPic7CgoJICAkaHRtbCA9ICI8aDEgY2xhc3M9J3R4cC1o
ZWFkaW5nJz5UWFAgVHdlZXQ8L2gxPiIKCQkuIjxwIGNsYXNzPSduYXYtdGVydGlhcnknPiIK
CQkuIjxhIGhyZWY9Jy4vP2V2ZW50PWFyY19hZG1pbl90d2l0dGVyJyBjbGFzcz0nbmF2bGlu
ayc+VHdpdHRlcjwvYT48YSBocmVmPScuLz9ldmVudD1wbHVnaW5fcHJlZnMuYXJjX3R3aXR0
ZXInIGNsYXNzPSduYXZsaW5rLWFjdGl2ZSc+T3B0aW9uczwvYT4iCgkJLiI8L3A+IjsKCgkg
ICRodG1sIC49IGZvcm0oIjxkaXYgY2xhc3M9J3BsdWdpbi1jb2x1bW4nPiIuJGZvcm0uIjwv
ZGl2PiIsICIgY2xhc3M9J2VkaXQtZm9ybSciKTsKCgkJfSBlbHNlaWYgKCAkc3RlcCE9J3Jl
Z2lzdGVyJyApIHsKCgkJCSRyZWdpc3RlclVSTCA9IGFyY190d2l0dGVyOjpjYWxsYmFja1VS
TCgkZXZlbnQsJ3JlZ2lzdGVyJyk7CgoJCQkkZm9ybSA9ICI8aDI+VHdpdHRlciBhY2NvdW50
IGRldGFpbHM8L2gyPiIKCQkuIjxzcGFuIGNsYXNzPSdlZGl0LWxhYmVsJz5Ud2l0dGVyIHVz
ZXJuYW1lPC9zcGFuPiIKCQkuIjxzcGFuIGNsYXNzPSdlZGl0LXZhbHVlJz48ZW0+dW5rbm93
bjwvZW0+ICZtZGFzaDsgIgoJCS5ocmVmKCdDb25uZWN0IHRvIFR3aXR0ZXInLCRyZWdpc3Rl
clVSTCkKCQkJCS4iPC9zcGFuPiI7CgoJICAkaHRtbCA9IGZvcm0oIjxkaXYgY2xhc3M9J3Bs
dWdpbi1jb2x1bW4nPiIuJGZvcm0uIjwvZGl2PiIsICIgY2xhc3M9J2VkaXQtZm9ybSciKTsK
CgkJfQoJfQoKCS8vIFNldCBqUXVlcnkgZm9yIHN3aXRjaGluZyBvbi9vZmYgcmVsZXZhbnQg
YXJjX3Nob3J0X3VybCBmaWVsZHMKCSRqcyA9IDw8PEpTCjxzY3JpcHQgbGFuZ3VhZ2U9Imph
dmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoZG9jdW1lbnQpLnJlYWR5KGZ1
bmN0aW9uKCl7CiAgdmFyIG9ub2ZmID0gJCgnLmFyY19zaG9ydF91cmwnKTsKICB2YXIgYXJj
X3Nob3J0X3VybF9vZmYgPSAkKCcjYXJjX3Nob3J0X3VybC1hcmNfc2hvcnRfdXJsLTAnKTsK
ICB2YXIgdXJsID0gJCgnLmFyY19zaG9ydF9zaXRlX3VybCcpOwogIHZhciB1cmxfbWV0aG9k
ID0gJCgnc2VsZWN0W25hbWU9ImFyY190d2l0dGVyX3VybF9tZXRob2QiXScpOwoKICBpZiAo
YXJjX3Nob3J0X3VybF9vZmYuYXR0cignY2hlY2tlZCcpPT0nY2hlY2tlZCcgJiYgJCgnb3B0
aW9uOnNlbGVjdGVkJywgdXJsX21ldGhvZCkudmFsKCkhPSdhcmNfdHdpdHRlcicpIHsKCXVy
bC5oaWRlKCk7CiAgfQogICQoJ2lucHV0Jywgb25vZmYpLmNoYW5nZShmdW5jdGlvbigpewoJ
aWYgKCQoJ29wdGlvbjpzZWxlY3RlZCcsIHVybF9tZXRob2QpLnZhbCgpIT0nYXJjX3R3aXR0
ZXInKSB7CgkgIGFyY19zaG9ydF91cmxfb2ZmLmF0dHIoJ2NoZWNrZWQnKT09J2NoZWNrZWQn
ID8gdXJsLmhpZGUoKSA6IHVybC5zaG93KCk7Cgl9CiAgfSk7CgogIGlmICgkKCdvcHRpb246
c2VsZWN0ZWQnLCB1cmxfbWV0aG9kKS52YWwoKT09J2FyY190d2l0dGVyJykgewoJb25vZmYu
aGlkZSgpOyB1cmwuc2hvdygpOwogIH0KICB1cmxfbWV0aG9kLmNoYW5nZShmdW5jdGlvbigp
ewoJaWYgKCQoJ29wdGlvbjpzZWxlY3RlZCcsIHVybF9tZXRob2QpLnZhbCgpPT0nYXJjX3R3
aXR0ZXInKSB7CgkgIG9ub2ZmLnRvZ2dsZSgpOyB1cmwuc2hvdygpOwoJfSBlbHNlIHsKCSAg
b25vZmYudG9nZ2xlKCk7CgkgIGFyY19zaG9ydF91cmxfb2ZmLmF0dHIoJ2NoZWNrZWQnKT09
J2NoZWNrZWQnID8gdXJsLmhpZGUoKSA6IHVybC5zaG93KCk7Cgl9CiAgfSkKfSk7Cjwvc2Ny
aXB0PgpKUzsKCgllY2hvICRqcy4kaHRtbDsKfQoKZnVuY3Rpb24gX2FyY190d2l0dGVyX2Zv
cm1fYnVpbGRlcigkZmllbGRzKSB7CgogICRmb3JtID0gJyc7CgogIGZvcmVhY2ggKCRmaWVs
ZHMgYXMgJGZrID0+ICRmdikgewoKCSRmb3JtIC49ICgkZmspID8gIjxoMj4kZms8L2gyPiIg
OiAnJzsKCglmb3JlYWNoICgkZnYgYXMgJGsgPT4gJHYpIHsKCgkgICR0eXBlID0gaXNzZXQo
JHZbJ3R5cGUnXSkgPyAkdlsndHlwZSddIDogJ3RleHQnOwoKCSAgJGZvcm0gLj0gIjxwIGNs
YXNzPSckayc+IgoJCS4iPHNwYW4gY2xhc3M9J2VkaXQtbGFiZWwnPjxsYWJlbCBmb3I9JyRr
Jz4iLiR2WydsYWJlbCddLiI8L2xhYmVsPjwvc3Bhbj4iOwoKCSAgc3dpdGNoICgkdHlwZSkg
IHsKCgkJY2FzZSAndGV4dGFyZWEnOgoKCQkgICRmb3JtIC49IHRleHRfYXJlYSgkaywgJzUw
JywgJzU1MCcsICR2Wyd2YWx1ZSddLCAkayk7CgkJICBicmVhazsKCgkJY2FzZSAneWVzbm9S
YWRpbyc6CgoJCSAgJGZvcm0gLj0gIjxzcGFuIGNsYXNzPSdlZGl0LXZhbHVlJz4iLnllc25v
UmFkaW8oJGssICR2Wyd2YWx1ZSddLCAnJywgJGspLiI8L3NwYW4+IjsKCQkgIGJyZWFrOwoK
CQljYXNlICdhcmNfdHdpdHRlcl90YWJfc2VsZWN0JzoKCgkJICAkZm9ybSAuPSAiPHNwYW4g
Y2xhc3M9J2VkaXQtdmFsdWUnPiIuYXJjX3R3aXR0ZXJfdGFiX3NlbGVjdCgkaywgJHZbJ3Zh
bHVlJ10pLiI8L3NwYW4+IjsKCQkgIGJyZWFrOwoKCQljYXNlICdhcmNfdHdpdHRlcl91cmxf
bWV0aG9kX3NlbGVjdCc6CgoJCSAgJGZvcm0gLj0gIjxzcGFuIGNsYXNzPSdlZGl0LXZhbHVl
Jz4iLmFyY190d2l0dGVyX3VybF9tZXRob2Rfc2VsZWN0KCRrLCAkdlsndmFsdWUnXSkuIjwv
c3Bhbj4iOwoJCSAgYnJlYWs7CgoJCWRlZmF1bHQ6CgoJCSAgJGZvcm0gLj0gIjxzcGFuIGNs
YXNzPSdlZGl0LXZhbHVlJz4iLmZJbnB1dCgndGV4dCcsJGssJHZbJ3ZhbHVlJ10sJycsJycs
JycsJycsJycsJGspLiI8L3NwYW4+IjsKCQkgIGJyZWFrOwoKCSAgfQoKCSAgJGZvcm0gLj0g
IjwvcD4iOwoJfQoKICB9CgogIHJldHVybiAkZm9ybTsKfQoKLy8gQWRkIFR3aXR0ZXIgdGFi
IHRvIFRleHRwYXR0ZXJuCmZ1bmN0aW9uIGFyY19hZG1pbl90d2l0dGVyKCRldmVudCwkc3Rl
cCkKewoJZ2xvYmFsICRwcmVmcywgJGFyY190d2l0dGVyX2NvbnN1bWVyS2V5LCAkYXJjX3R3
aXR0ZXJfY29uc3VtZXJTZWNyZXQ7CgoJJHR3aXQgPSBuZXcgYXJjX3R3aXR0ZXIoJGFyY190
d2l0dGVyX2NvbnN1bWVyS2V5CgkJCSwgJGFyY190d2l0dGVyX2NvbnN1bWVyU2VjcmV0LCAk
cHJlZnNbJ2FyY190d2l0dGVyX2FjY2Vzc1Rva2VuJ10KCQkJLCAkcHJlZnNbJ2FyY190d2l0
dGVyX2FjY2Vzc1Rva2VuU2VjcmV0J10pOwoKCSR0d2l0LT5jYWNoZURpcigkcHJlZnNbJ2Fy
Y190d2l0dGVyX2NhY2hlX2RpciddKTsKCgkkZGF0YSA9ICR0d2l0LT5nZXQoJ3VzZXJzL3No
b3cnCgkJLCBhcnJheSgnc2NyZWVuX25hbWUnPT4kcHJlZnNbJ2FyY190d2l0dGVyX3VzZXIn
XSkpOwoJJHR3aXR0ZXJVc2VyID0gJGRhdGE7CgkkdHdpdHRlclVzZXJVUkwgPSAnaHR0cDov
L3d3dy50d2l0dGVyLmNvbS8nLiR0d2l0dGVyVXNlci0+c2NyZWVuX25hbWU7CgoJaWYgKCRz
dGVwPT0idHdlZXQiKSB7IC8vIHBvc3QgYW4gdXBkYXRlIHRvIFR3aXR0ZXIKCgkJLy8gZmV0
Y2ggYW5kIGNsZWFuIG1lc3NhZ2UKCQkkbWVzc2FnZSA9IHN0cmlwX3RhZ3MoZ3BzKCdtZXNz
YWdlJykpOwoJCS8vIFdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdC5jbyBVUkwgc2hvcnRlbmlu
ZyBpbiBvdXIgY291bnQgKDIyIGNoYXJhY3RlcnMgZm9yIGEgVVJMLCAyMyBpZiBodHRwcyku
CgkJJHVybFBhdHRlcm4gPSAiLyhodHRwfGh0dHBzKTpcL1wvW1x3LV0rKFwuW1x3LV0rKSso
W1x3LixAP149JSZhbXA7OlwvfisjLV0qW1x3QD9ePSUmYW1wO1wvfisjLV0pPy8iOwoJCSR0
bXBNZXNzYWdlID0gcHJlZ19yZXBsYWNlKCR1cmxQYXR0ZXJuLCAiJDF4eHh4eHh4eHh4eHh4
eHh4eHgiLCAkbWVzc2FnZSk7CgkJJGNvdW50ID0gc3RybGVuKCR0bXBNZXNzYWdlKTsKCQl1
bnNldCgkdG1wTWVzc2FnZSk7CgoJCWlmICgkY291bnQ8PTI4MCAmJiAkY291bnQ+MCkgeyAv
LyBwb3N0IHVwZGF0ZQoJCQkkcmVzdWx0ID0gJHR3aXQtPnBvc3QoJ3N0YXR1c2VzL3VwZGF0
ZScsIGFycmF5KCdzdGF0dXMnID0+ICRtZXNzYWdlKSk7CgkJfSBlbHNlIHsgLy8gbWVzc2Fn
ZSB0b28gbG9uZywgSmF2YVNjcmlwdCBpbnRlcmZhY2Ugc2hvdWxkIHByZXZlbnQgdGhpcwoJ
CQkkcmVzdWx0ID0gZmFsc2U7CgkJfQoKCQlwYWdldG9wKCdUd2l0dGVyJywKCQkJKCgkcmVz
dWx0IT1mYWxzZSk/J1R3aXR0ZXIgdXBkYXRlZCc6J0Vycm9yIHVwZGF0aW5nIFR3aXR0ZXIn
KSk7CgoJfSBlbHNlaWYgKCRzdGVwPT0iZGVsZXRlIikgeyAvLyBkZWxldGUgYW4gdXBkYXRl
IGZyb20gVHdpdHRlcgoKCQkkaWQgPSBzdHJpcF90YWdzKGdwcygnaWQnKSk7CgkJaWYgKCRp
ZCkgewoJCQkkdHdpdC0+ZGVsZXRlKCdzdGF0dXNlcy9kZXN0cm95LycuJGlkKTsKCQkJc2Fm
ZV9kZWxldGUoJ2FyY190d2l0dGVyJywidHdlZXRfaWQgPSAkaWQiKTsKCQl9CgoJCXBhZ2V0
b3AoJ1R3aXR0ZXInLCdUd2l0dGVyIHVwZGF0ZWQnKTsKCgl9IGVsc2UgewoKCQlwYWdldG9w
KCdUd2l0dGVyJyk7CgoJfQoKCS8vIFByZXBhcmUgSmF2YVNjcmlwdCB0byBjcmVhdGUgVHdp
dHRlciB1cGRhdGUgaW50ZXJmYWNlCgoJJGpzID0gJzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFz
Y3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRqcy49IDw8PEpTCiQoZG9jdW1l
bnQpLnJlYWR5KGZ1bmN0aW9uKCl7Cgl2YXIgY291bnRlciA9ICQoJzxzcGFuPicsIHsKCQkn
dGV4dCcgOiAnMjgwJywKCQknaWQnIDogJ3R3ZWV0Y291bnQnCgl9KTsKCSQoJy5tZXNzYWdl
JykuYXBwZW5kKGNvdW50ZXIpOwoJdmFyIGNvdW50ZXJTdHlsZSA9ICdmb250LXdlaWdodDpi
b2xkO3BhZGRpbmctbGVmdDouNWVtO2ZvbnQtc2l6ZToyZW07bGluZS1oZWlnaHQ6MS4yZW07
JzsKCSQoJyN0d2VldGNvdW50JykuYXR0cignc3R5bGUnLCBjb3VudGVyU3R5bGUrJ2NvbG9y
OiNjY2M7Jyk7CgkkKCcjbWVzc2FnZScpLmtleXVwKGZ1bmN0aW9uKCkgewoJCS8vIFdlIG5l
ZWQgdG8gYWNjb3VudCBmb3IgdC5jbyBVUkwgc2hvcnRlbmluZyBpbiBvdXIgY291bnQgKDIy
IGNoYXJhY3RlcnMgZm9yIGEgVVJMLCAyMyBpZiBodHRwcykuCgkJdmFyIG1lc3NhZ2UgPSAk
KCcjbWVzc2FnZScpLnZhbCgpOwoJCXZhciB1cmxQYXR0ZXJuID0gLyhodHRwfGh0dHBzKTpc
L1wvW1x3LV0rKFwuW1x3LV0rKSsoW1x3LixAP149JSZhbXA7OlwvfisjLV0qW1x3QD9ePSUm
YW1wO1wvfisjLV0pPy87CgkJbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSh1cmxQYXR0ZXJu
LCAnJDF4eHh4eHh4eHh4eHh4eHh4eHgnKTsKCQl2YXIgY291bnQgPSAyODAtbWVzc2FnZS5s
ZW5ndGg7CgkJJCgnI3R3ZWV0Y291bnQnKS5odG1sKGNvdW50KycnKTsgLy8gaGFjayB0byBm
b3JjZSBvdXRwdXQgb2YgMAoJCWlmIChjb3VudDwwKSB7CgkJCSQoJ2lucHV0LnB1Ymxpc2gn
KS5wcm9wKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoJCX0gZWxzZSB7CgkJCSQoJ2lucHV0
LnB1Ymxpc2gnKS5wcm9wKCdkaXNhYmxlZCcsICcnKTsKCQl9CgkJaWYgKGNvdW50PDApIHsK
CQkJJCgnI3R3ZWV0Y291bnQnKS5hdHRyKCdzdHlsZScsIGNvdW50ZXJTdHlsZSsnY29sb3I6
I2YwMDsnKTsKCQl9IGVsc2UgaWYgKGNvdW50PDEwKSB7CgkJCSQoJyN0d2VldGNvdW50Jyku
YXR0cignc3R5bGUnLCBjb3VudGVyU3R5bGUrJ2NvbG9yOiMwMDA7Jyk7CgkJfSBlbHNlIHsK
CQkJJCgnI3R3ZWV0Y291bnQnKS5hdHRyKCdzdHlsZScsIGNvdW50ZXJTdHlsZSsnY29sb3I6
I2NjYzsnKTsKCQl9Cgl9KQp9KTsKSlM7CgkkanMuPSAiPC9zY3JpcHQ+IjsKCgkkb3V0ID0g
Jyc7CgkkdHdlZXRzID0gJHR3aXQtPmdldCgnc3RhdHVzZXMvdXNlcl90aW1lbGluZScKCQks
IGFycmF5KCdzY3JlZW5fbmFtZSc9PiRwcmVmc1snYXJjX3R3aXR0ZXJfdXNlciddLCdjb3Vu
dCc9PjI1KSk7CglpZiAoJHR3ZWV0cykgZm9yZWFjaCAoJHR3ZWV0cyBhcyAkdHdlZXQpIHsK
CQkkdGltZSA9IHN0cnRvdGltZShodG1sZW50aXRpZXMoJHR3ZWV0LT5jcmVhdGVkX2F0KSk7
CgkJJGRhdGUgPSBzYWZlX3N0cmZ0aW1lKCRwcmVmc1snYXJjaGl2ZV9kYXRlZm9ybWF0J10s
JHRpbWUpOwoJCSRsaW5rcyA9IGZhbHNlOwoJCWlmIChpc3NldCgkdHdlZXQtPmVudGl0aWVz
LT51cmxzKSkgewoJCQkkbGlua3MgPSBhcnJheSgpOwoJCQlmb3JlYWNoICgkdHdlZXQtPmVu
dGl0aWVzLT51cmxzIGFzICR1cmwpIHsKCQkJCSRsaW5rc1skdXJsLT51cmxdID0gYXJyYXko
CgkJCQkJJ2V4cGFuZGVkX3VybCcgPT4gJHVybC0+ZXhwYW5kZWRfdXJsLAoJCQkJCSdkaXNw
bGF5X3VybCcgPT4gJHVybC0+ZGlzcGxheV91cmwKCQkJCSk7CgkJCX0KCQl9CgkJJG91dC49
IHRyKHRkKCRkYXRlLCdzcGFuJykKCQkJLnRkKGFyY19Ud2l0dGVyOjptYWtlTGlua3MoaHRt
bGVudGl0aWVzKCR0d2VldC0+dGV4dAoJCQkJLCBFTlRfUVVPVEVTLCdVVEYtOCcpLCAkbGlu
a3MsIHRydWUpKQoJCQkudGQoZExpbmsoJ2FyY19hZG1pbl90d2l0dGVyJywnZGVsZXRlJywn
aWQnLCR0d2VldC0+aWRfc3RyLCcnKSkKCQkpOwoJfQoKCSRmaWVsZHMgPSBhcnJheSgKCScn
ID0+IGFycmF5KAoJICAnbWVzc2FnZScgPT4gYXJyYXkoCgkJJ2xhYmVsJyA9PiAnVXBkYXRl
IFR3aXR0ZXInLAoJCSd0eXBlJyA9PiAndGV4dGFyZWEnLAoJCSd2YWx1ZScgPT4gJycKCSAg
KQoJKQoJKTsKCgkkcHJvZmlsZSA9ICc8aW1nIHNyYz0iJy4kdHdpdHRlclVzZXItPnByb2Zp
bGVfaW1hZ2VfdXJsLiciIGFsdD0iVHdpdHRlciBhdmF0YXIiIHN0eWxlPSJmbG9hdDpsZWZ0
OyBtYXJnaW4tcmlnaHQ6IDFlbSIgLz4nCgkuZ3JhZihocmVmKCR0d2l0dGVyVXNlci0+bmFt
ZSwkdHdpdHRlclVzZXJVUkwpLCcgc3R5bGU9ImZvbnQtc2l6ZToxLjJlbTtmb250LXdlaWdo
dDpib2xkOyInKQoJLmdyYWYoaHJlZigkdHdpdHRlclVzZXItPmZyaWVuZHNfY291bnQuJyBm
b2xsb3dpbmcnLCR0d2l0dGVyVXNlclVSTC4nL2ZvbGxvd2luZycpCgkuJywgJy5ocmVmKCR0
d2l0dGVyVXNlci0+Zm9sbG93ZXJzX2NvdW50LicgZm9sbG93ZXJzJywkdHdpdHRlclVzZXJV
UkwuJy9mb2xsb3dlcnMnKQoJLicsICcuaHJlZigkdHdpdHRlclVzZXItPnN0YXR1c2VzX2Nv
dW50LicgdXBkYXRlcycsJHR3aXR0ZXJVc2VyVVJMKSk7CgoJJGZvcm0gPSBfYXJjX3R3aXR0
ZXJfZm9ybV9idWlsZGVyKCRmaWVsZHMpCgkuZUlucHV0KCdhcmNfYWRtaW5fdHdpdHRlcicp
Cgkuc0lucHV0KCd0d2VldCcpOwogICRmb3JtIC49ICc8cD4nLmZJbnB1dCgnc3VibWl0Jywg
J1N1Ym1pdCcsIGdUeHQoJ1VwZGF0ZScpLCAncHVibGlzaCcpLic8L3A+JzsKCiAgJGh0bWwg
PSAiPGgxIGNsYXNzPSd0eHAtaGVhZGluZyc+VFhQIFR3ZWV0PC9oMT4iCgkuIjxwIGNsYXNz
PSduYXYtdGVydGlhcnknPiIKCS4iPGEgaHJlZj0nLi8/ZXZlbnQ9YXJjX2FkbWluX3R3aXR0
ZXInIGNsYXNzPSduYXZsaW5rLWFjdGl2ZSc+VHdpdHRlcjwvYT48YSBocmVmPScuLz9ldmVu
dD1wbHVnaW5fcHJlZnMuYXJjX3R3aXR0ZXInIGNsYXNzPSduYXZsaW5rJz5PcHRpb25zPC9h
PiIKCS4iPC9wPiI7CgoJJGh0bWwgLj0gIjxkaXYgY2xhc3M9J3RleHQtY29sdW1uJz4iLiRw
cm9maWxlLiI8L2Rpdj4iCgkuIjxiciBzdHlsZT0nY2xlYXI6Ym90aCcgLz4iCgkuZm9ybSgi
PGRpdiBjbGFzcz0ncGx1Z2luLWNvbHVtbic+Ii4kZm9ybS4iPC9kaXY+Ii5icik7CgoJLy8g
QXR0YWNoIHJlY2VudCBUd2l0dGVyIHVwZGF0ZXMKCgkkaHRtbC49ICI8ZGl2IGNsYXNzPSd0
eHAtbGlzdHRhYmxlcyc+IgoJLnN0YXJ0VGFibGUoJ2FyY190d2l0dGVyX3RpbWVsaW5lJywn
JywndHhwLWxpc3QnKS4kb3V0LmVuZFRhYmxlKCkKCS4iPC9kaXY+IjsKCgkvLyBPdXRwdXQg
SmF2YVNjcmlwdCBhbmQgSFRNTAoKCWVjaG8gJGpzLiRodG1sOwp9CgovLyBBZGQgVHdpdHRl
ciBvcHRpb25zIHRvIGFydGljbGUgYXJ0aWNsZSBzY3JlZW4KZnVuY3Rpb24gYXJjX2FwcGVu
ZF90d2l0dGVyKCRldmVudCwgJHN0ZXAsICRkYXRhLCAkcnMxKQp7CglnbG9iYWwgJHByZWZz
LCAkYXJjX3R3aXR0ZXIsICRhcHBfbW9kZTsKCgkkcHJlZml4ID0gdHJpbShncHMoJ2FyY190
d2l0dGVyX3ByZWZpeCcpKTsKCSRwcmVmaXggPSAoJHByZWZpeCkgPyAkcHJlZml4IDogJHBy
ZWZzWydhcmNfdHdpdHRlcl9wcmVmaXgnXTsKCSRzdWZmaXggPSB0cmltKGdwcygnYXJjX3R3
aXR0ZXJfc3VmZml4JykpOwoJJHN1ZmZpeCA9ICgkc3VmZml4KSA/ICRzdWZmaXggOiAkcHJl
ZnNbJ2FyY190d2l0dGVyX3N1ZmZpeCddOwoKCWlmICgkcnMxWydJRCddKSB7CgkJJHNxbCA9
ICJTRUxFQ1QgdHdlZXRfaWQsdHdlZXQgRlJPTSAiLlBGWC4iYXJjX3R3aXR0ZXIgV0hFUkUg
YXJ0aWNsZV9pZD0iLiRyczFbJ0lEJ10uIjsiOwoJCSRyczIgPSBzYWZlX3F1ZXJ5KCRzcWwp
OyAkcnMyID0gbmV4dFJvdygkcnMyKTsKCX0gZWxzZSB7IC8vIG5ldyBhcnRpY2xlCgkJJHJz
MiA9ICcnOwoJfQoKCWlmICgkYXBwX21vZGUgPT0gJ2FzeW5jJykKCXsKCSBzZW5kX3Njcmlw
dF9yZXNwb25zZSgnJCgiI2FyY190d2l0dGVyIikucmVtb3ZlKCk7Jyk7Cgl9CgoJaWYgKCRy
czFbJ0lEJ10gJiYgJHJzMlsndHdlZXRfaWQnXSkKCXsKCQkkY29udGVudCA9IGFyY19Ud2l0
dGVyOjptYWtlTGlua3MoJHJzMlsndHdlZXQnXSk7CgkJcmV0dXJuICRkYXRhLmZpZWxkc2V0
KHRhZygkY29udGVudCwgJ3AnKSwgJ1R3aXR0ZXIgdXBkYXRlJywgJ2FyY190d2l0dGVyJyk7
Cgl9CgllbHNlCgl7CgkJJHZhciA9IGdwcygnYXJjX3R3ZWV0X3RoaXMnKTsKCQkkdmFyID0g
KCRyczFbJ0lEJ10mJiEkdmFyKSA/IDAgOiAkcHJlZnNbJ2FyY190d2l0dGVyX3R3ZWV0X2Rl
ZmF1bHQnXTsKCQkkY29udGVudCAgPSB0YWcoeWVzbm9SYWRpbygnYXJjX3R3ZWV0X3RoaXMn
LCAkdmFyLCAnJywgJ2FyY190d2VldF90aGlzJyksJ3AnKTsKCQkkY29udGVudCAuPSB0YWco
aHJlZignT3B0aW9ucycsJyNhcmNfdHdpdHRlcl9vcHRpb25zJywgJyBvbmNsaWNrPSIkKFwn
I2FyY190d2l0dGVyX29wdGlvbnNcJykudG9nZ2xlKCk7IHJldHVybiBmYWxzZTsiJyksJ3An
LCcgc3R5bGU9Im1hcmdpbi10b3A6NXB4OyInKTsKCQkkY29udGVudCAuPSB0YWcodGFnKHRh
ZygnVHdlZXQgcHJlZml4JywnbGFiZWwnLCAnIGZvcj0iYXJjX3R3aXR0ZXJfcHJlZml4Iicp
IC4gJzxiciAvPicKCQkJLmZJbnB1dCgndGV4dCcsJ2FyY190d2l0dGVyX3ByZWZpeCcsJHBy
ZWZpeCwnZWRpdCcsJycsJycsJzIyJywnJywnYXJjX3R3aXR0ZXJfcHJlZml4JyksJ3AnKQoJ
CQkudGFnKHRhZygnVHdlZXQgc3VmZml4IChlZyAjaGFzaHRhZ3MpJywnbGFiZWwnLCAnIGZv
cj0iYXJjX3R3aXR0ZXJfc3VmZml4IicpIC4gJzxiciAvPicKCQkJLmZJbnB1dCgndGV4dCcs
J2FyY190d2l0dGVyX3N1ZmZpeCcsJHN1ZmZpeCwnZWRpdCcsJycsJycsJzIyJywnJywnYXJj
X3R3aXR0ZXJfc3VmZml4JyksJ3AnKQoJCQksJ2RpdicsJyBpZD0iYXJjX3R3aXR0ZXJfb3B0
aW9ucyIgY2xhc3M9InRvZ2dsZSIgc3R5bGU9ImRpc3BsYXk6bm9uZSInKTsKCQlpZiAoaXNz
ZXQoJGFyY190d2l0dGVyWydlcnJvciddKSkgewoJCQkkY29udGVudCAuPSAnPHA+Jy4kYXJj
X3R3aXR0ZXJbJ2Vycm9yJ10uJzwvcD4nOwoJCX0KCQlyZXR1cm4gJGRhdGEuZmllbGRzZXQo
JGNvbnRlbnQsICdVcGRhdGUgVHdpdHRlcicsICdhcmNfdHdpdHRlcicpOwoJfQoKfQoKLy8g
VXBkYXRlIFR3aXR0ZXIgd2l0aCBwb3N0ZWQgYXJ0aWNsZQpmdW5jdGlvbiBhcmNfYXJ0aWNs
ZV90d2VldCgkZXZlbnQsJHN0ZXApCnsKCWdsb2JhbCAkcHJlZnMsICRhcmNfdHdpdHRlciwg
JGFyY190d2l0dGVyX2NvbnN1bWVyS2V5CgkJLCAkYXJjX3R3aXR0ZXJfY29uc3VtZXJTZWNy
ZXQ7CgoJJGFydGljbGVfaWQgPSBlbXB0eSgkR0xPQkFMU1snSUQnXSkgPyBncHMoJ0lEJykg
OiAkR0xPQkFMU1snSUQnXTsKCWlmICghZW1wdHkoJGFydGljbGVfaWQpKSB7CgoJCWluY2x1
ZGVfb25jZSB0eHBhdGguJy9wdWJsaXNoL3RhZ2hhbmRsZXJzLnBocCc7CgoJCSRhcnRpY2xl
ID0gc2FmZV9yb3coIklELCBUaXRsZSwgU2VjdGlvbiwgUG9zdGVkIiwgJ3RleHRwYXR0ZXJu
JywKCQkJIklEPXskYXJ0aWNsZV9pZH0gQU5EIFN0YXR1cz00IEFORCBub3coKT49UG9zdGVk
Iik7CgoJCWlmICgkYXJ0aWNsZSAmJiBncHMoJ2FyY190d2VldF90aGlzJykpIHsgLy8gdHdl
ZXQgYXJ0aWNsZQoKCQkJLy8gTmVlZCB0byBtYW51YWxseSB1cGRhdGUgdGhlICdVUkwgb25s
eSB0aXRsZScgYmVmb3JlIGJ1aWxkaW5nIHRoZQoJCQkvLyBVUkwKCQkJJGFydGljbGVbJ3Vy
bF90aXRsZSddID0gZ3BzKCd1cmxfdGl0bGUnKTsKCgkJCS8vIE1ha2Ugc2hvcnQgVVJMCgkJ
CSR1cmwgPSBwZXJtbGlua3VybCgkYXJ0aWNsZSk7CgkJCSRzaG9ydF91cmwgPSBhcmNfc2hv
cnRlbl91cmwoCgkJCQkkdXJsLAoJCQkJJHByZWZzWydhcmNfdHdpdHRlcl91cmxfbWV0aG9k
J10sCgkJCQlhcnJheSgnaWQnID0+ICRhcnRpY2xlX2lkKQoJCQkpOwoKCQkJaWYgKCEkc2hv
cnRfdXJsKSB7IC8vIEZhaWxlZCB0byBvYnRhaW4gYSBzaG9ydGVuZWQgVVJMLCBkbyBub3Qg
dHdlZXQhCgkJCQkkYXJjX3R3aXR0ZXJbJ2Vycm9yJ10gPSAnVW5hYmxlIHRvIG9idGFpbiBh
IHNob3J0IFVSTCBmb3IgdGhpcyBhcnRpY2xlLic7CgoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9
CgoJCQkvLyBDb25zdHJ1Y3QgVHdpdHRlciB1cGRhdGUKCQkJJHByZWZpeCAgPSB0cmltKGdw
cygnYXJjX3R3aXR0ZXJfcHJlZml4JykpOwoJCQkkcHJlX2xlbiA9IHN0cmxlbigkcHJlZml4
KTsKCQkJJHByZWZpeCAgPSAoJHByZWZpeCAmJiAkcHJlX2xlbjw9MjApID8gJHByZWZpeC4n
ICcgOiAnJzsKCQkJJHN1ZmZpeCAgPSB0cmltKGdwcygnYXJjX3R3aXR0ZXJfc3VmZml4Jykp
OwoJCQkkc3VmX2xlbiA9IHN0cmxlbigkc3VmZml4KTsKCQkJJHN1ZmZpeCAgPSAoJHN1ZmZp
eCAmJiAkc3VmX2xlbjw9NDApID8gJyAnLiRzdWZmaXggOiAnJzsKCQkJJHVybF9sZW4gPSBw
cmVnX21hdGNoKCd8Xmh0dHBzfGknLCAkc2hvcnRfdXJsKSA/IDIzIDogMjI7IC8vIGNvdW50
IFVSTCBsZW5ndGggKyAxIGZvciBwcmVmaXhlZCBzcGFjZQoJCQlpZiAoJHByZWZpeCkgewoJ
CQkJJHByZV9sZW4gKz0gMTsKCQkJfQoJCQlpZiAoJHN1ZmZpeCkgewoJCQkJJHN1Zl9sZW4g
Kz0gMTsKCQkJfQoJCQlpZiAoKHN0cmxlbigkYXJ0aWNsZVsnVGl0bGUnXSkrJHVybF9sZW4r
JHByZV9sZW4rJHN1Zl9sZW4pPjI4MCkgewoJCQkJJGFydGljbGVbJ1RpdGxlJ10gPSBzdWJz
dHIoJGFydGljbGVbJ1RpdGxlJ10sMCwxMzUtJHVybF9sZW4tJHByZV9sZW4tJHN1Zl9sZW4p
LicuLi4nOwoJCQl9CgkJCSR0d2VldCA9ICRwcmVmaXguJGFydGljbGVbJ1RpdGxlJ10uIiAi
LiRzaG9ydF91cmwuJHN1ZmZpeDsKCgkJCS8vIFVwZGF0ZSBUd2l0dGVyCgkJCSR0d2l0ID0g
bmV3IGFyY190d2l0dGVyKCRhcmNfdHdpdHRlcl9jb25zdW1lcktleQoJCQkJLCAkYXJjX3R3
aXR0ZXJfY29uc3VtZXJTZWNyZXQsICRwcmVmc1snYXJjX3R3aXR0ZXJfYWNjZXNzVG9rZW4n
XQoJCQkJLCAkcHJlZnNbJ2FyY190d2l0dGVyX2FjY2Vzc1Rva2VuU2VjcmV0J10pOwoJCQkk
cmVzdWx0ID0gJHR3aXQtPnBvc3QoJ3N0YXR1c2VzL3VwZGF0ZScsIGFycmF5KCdzdGF0dXMn
ID0+ICR0d2VldCkpOwoKCQkJJHR3ZWV0X2lkID0gKGlzX29iamVjdCgkcmVzdWx0KSkgPyAk
cmVzdWx0LT5pZF9zdHIgOiAwOwoKCQkJaWYgKCR0d2VldF9pZCkgewoKCQkJCSR0d2VldCA9
IGFkZHNsYXNoZXMoJHR3ZWV0KTsKCgkJCQkvLyBJZiB3ZSdyZSBub3QgdXNpbmcgYSBVUkwg
c2hvcnRlbmVyIGRvbid0IHN0b3JlIHRoZSBzaG9ydCBVUkwuCgkJCQlpZiAoJHByZWZzWydh
cmNfdHdpdHRlcl91cmxfbWV0aG9kJ109PSdmdWxsJykgewoJCQkJCSRzaG9ydF91cmwgPSBu
dWxsOwoJCQkJfQoKCQkJCS8vIHVwZGF0ZSBhcmNfdHdpdHRlciB0YWJsZSB3aXRoIHR3ZWV0
CgkJCQkkc3FsID0gIklOU0VSVCBJTlRPICIuUEZYLiJhcmNfdHdpdHRlciAoYXJ0aWNsZV9p
ZCx0d2VldF9pZCx0d2VldCx0aW55dXJsKSAiOwoJCQkJJHNxbC49ICJWQUxVRVMoJGFydGlj
bGVfaWQsJHR3ZWV0X2lkLFwiJHR3ZWV0XCIsJyRzaG9ydF91cmwnKTsiOwoJCQkJc2FmZV9x
dWVyeSgkc3FsKTsKCgkJCQlyZXR1cm4gdHJ1ZTsKCgkJCX0gZWxzZSB7CgoJCQkJJGFyY190
d2l0dGVyWydlcnJvciddID0gJ1R3aXR0ZXIgcmVzcG9uc2U6ICcKCQkJCQkuJHR3aXQtPmh0
dHBfY29kZTsKCQkJCXJldHVybiBmYWxzZTsKCgkJCX0KCgkJfQoKCX0KCglyZXR1cm4gZmFs
c2U7Cgp9CgovKgogKiBTaG9ydGVuIFVSTHMgdXNpbmcgdmFyaW91cyBtZXRob2RzCiAqLwoK
ZnVuY3Rpb24gYXJjX3Nob3J0ZW5fdXJsKCR1cmwsICRtZXRob2Q9JycsICRhdHRzPWFycmF5
KCkpCnsKICBnbG9iYWwgJHByZWZzOwoKICAkY2ggPSBjdXJsX2luaXQoKTsKICBjdXJsX3Nl
dG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxP
UFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9U
SU1FT1VULCAxMCk7CgogICR1dG0gPSBudWxsOwoKICBpZiAoIWVtcHR5KCRwcmVmc1snYXJj
X3R3aXR0ZXJfdXRtJ10pKSB7CgoJJHV0bSA9ICd1dG1fc291cmNlPXR3aXR0ZXIuY29tJnV0
bV9tZWRpdW09c29jaWFsJnV0bV9jYW1wYWlnbj1hcmNfdHdpdHRlciZ1dG1fY29udGVudD10
eHA6JyAuICRhdHRzWydpZCddOwoJJHNlcGFyYXRvciA9IChwYXJzZV91cmwoJHVybCwgUEhQ
X1VSTF9RVUVSWSkgPT0gTlVMTCkgPyAnPycgOiAnJic7CgkkdXJsIC49ICRzZXBhcmF0b3Ig
LiAkdXRtOwoKICB9CgogIHN3aXRjaCAoJG1ldGhvZCkgewoJY2FzZSAnc21kJzogLy8gY3Jl
YXRlIGEgc2hvcnRlbmVkIFVSTCB1c2luZyBTTUQgU2hvcnQgVVJMCgoJCSR1cmwgPSAhZW1w
dHkoJGF0dHNbJ2lkJ10pID8gaHUgLiAkYXR0c1snaWQnXSA6IGZhbHNlOwoJCSR1cmwgLj0g
KCR1cmwhPT1mYWxzZSAmJiAhZW1wdHkoJHV0bSkpID8gJz8nIC4gJHV0bSA6IGZhbHNlOwoJ
CXJldHVybiAkdXJsOyBicmVhazsKCgljYXNlICdhcmNfdHdpdHRlcic6IC8vIG5hdGl2ZSBV
Ukwgc2hvcnRlbmluZwoKCQkkdXJsID0gIWVtcHR5KCRhdHRzWydpZCddKSA/IFBST1RPQ09M
IC4gJHByZWZzWydhcmNfc2hvcnRfc2l0ZV91cmwnXSAuICcvJyAuICRhdHRzWydpZCddIDog
ZmFsc2U7CgkJJHVybCAuPSAoJHVybCE9PWZhbHNlICYmICFlbXB0eSgkdXRtKSkgPyAnPycg
LiAkdXRtIDogZmFsc2U7CgkJcmV0dXJuICR1cmw7CgkJYnJlYWs7CgoJY2FzZSAnaXNnZCc6
CgoJCSR1ID0gJ2h0dHA6Ly9pcy5nZC9hcGkucGhwP2xvbmd1cmw9Jy51cmxlbmNvZGUoJHVy
bCk7CgkJY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHUpOwoKCQkkdGlueXVybCA9
IGN1cmxfZXhlYygkY2gpOwoJCWlmICgkdGlueXVybCE9J0Vycm9yJyAmJiAkdGlueXVybCE9
JycpIHsKCQkJcmV0dXJuICR0aW55dXJsOwoJCX0gZWxzZSB7CgkJCXRyaWdnZXJfZXJyb3Io
J2FyY190d2l0dGVyIGZhaWxlZCB0byBnZXQgYSBpcy5nZCBVUkwgZm9yICcKCQkJCS4kdXJs
LEVfVVNFUl9XQVJOSU5HKTsKCQl9CgkJYnJlYWs7CgoJY2FzZSAndGlueXVybCc6IC8vIGNy
ZWF0ZSBhIHNob3J0ZW5lZCBVUkwgdXNpbmcgVGlueVVSTAoKCQkkdSA9ICdodHRwOi8vdGlu
eXVybC5jb20vYXBpLWNyZWF0ZS5waHA/dXJsPScudXJsZW5jb2RlKCR1cmwpOwoJCWN1cmxf
c2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1KTsKCQkkdGlueXVybCA9IGN1cmxfZXhlYygk
Y2gpOwoJCWlmICgkdGlueXVybCE9J0Vycm9yJyAmJiAkdGlueXVybCE9JycpIHsKCQkJcmV0
dXJuICR0aW55dXJsOwoJCX0gZWxzZSB7CgkJCXRyaWdnZXJfZXJyb3IoJ2FyY190d2l0dGVy
IGZhaWxlZCB0byBnZXQgYSBUaW55VVJMIGZvciAnLiR1cmwsRV9VU0VSX1dBUk5JTkcpOwoJ
CX0KCglkZWZhdWx0OgoKCQlyZXR1cm4gJHVybDsKCiAgfQoKICByZXR1cm4gZmFsc2U7IC8v
IGZhaWwKCn0KCi8qCiAqIFNob3J0ZW5lZCBVUkwgcmVkaXJlY3QgYmFzZWQgb24gc21kX3No
b3J0X3VybAogKi8KZnVuY3Rpb24gYXJjX3Nob3J0X3VybF9yZWRpcmVjdCgkZXZlbnQsICRz
dGVwKSB7CiAgZ2xvYmFsICRwcmVmczsKCiAgJGhhdmVfaWQgPSAwOwoKICAvLyBDaGVjayBp
ZiB0aGVyZSBpcyBhbiBhdmFpbGFibGUgc2hvcnQgc2l0ZSB1cmwgYW5kIGlmIGl0IGlzIGJl
aW5nIHVzZWQgaW4KICAvLyB0aGlzIGluc3RhbmNlCiAgJHNob3J0X3NpdGVfdXJsID0gJHBy
ZWZzWydhcmNfc2hvcnRfc2l0ZV91cmwnXTsKICBpZiAoJHNob3J0X3NpdGVfdXJsKSB7Cgkk
c2hvcnRfc2l0ZV91cmwgPSBQUk9UT0NPTC4kc2hvcnRfc2l0ZV91cmwuJy8nOwoJJHVybF9w
YXJ0cyA9IHBhcnNlX3VybCgkc2hvcnRfc2l0ZV91cmwpOwoJJHJlID0gJyNeJy4kdXJsX3Bh
cnRzWydwYXRoJ10uJyhbMC05XS4qKSMnOwoJJGhhdmVfaWQgPSBwcmVnX21hdGNoKCRyZSwg